From green hilltop viewpoints to the Arabian Sea, explore a few favourite corners of the Manipal–Udupi coast. Tap any marker to open its field note.
The markers are interactive. Zoom in, switch between map and satellite view, or select a place from its popup.
places <- data.frame(
name = c(
"Manipal Institute of Technology",
"End Point Park",
"Manipal Lake",
"Udupi Sri Krishna Matha",
"Malpe Beach"
),
type = c("Campus", "Viewpoint", "Nature", "Heritage", "Coast"),
lat = c(13.351389, 13.36976, 13.34248, 13.33222, 13.36197),
lng = c(74.792600, 74.78590, 74.78597, 74.74611, 74.69753),
note = c(
"A lively campus hub and the starting point for this mini-explorer.",
"A green hilltop escape with wide views over the surrounding landscape.",
"A peaceful waterside pause for a walk and a little quiet.",
"A historic temple complex in the heart of Udupi.",
"A sandy Arabian Sea shoreline for sunset colours and sea breeze."
),
stringsAsFactors = FALSE
)
pal <- colorFactor(
palette = c("#287a69", "#e09b45", "#4d91a5", "#9568a8", "#d66b55"),
domain = places$type
)
popup_text <- sprintf(
"<div style='min-width:190px'>
<h4 style='margin:2px 0 6px;color:#17483f'>%s</h4>
<span style='display:inline-block;background:#edf5f0;padding:3px 8px;border-radius:10px;font-size:11px'>%s</span>
<p style='margin:9px 0 4px'>%s</p>
</div>",
htmlEscape(places$name), htmlEscape(places$type), htmlEscape(places$note)
)
leaflet(places) |>
addProviderTiles(providers$CartoDB.Positron, group = "Light map") |>
addProviderTiles(providers$Esri.WorldImagery, group = "Satellite") |>
addCircleMarkers(
lng = ~lng, lat = ~lat,
radius = 9, color = ~pal(type), weight = 2,
fillColor = ~pal(type), fillOpacity = 0.9,
popup = popup_text, label = ~name
) |>
addLegend(
position = "bottomright", pal = pal, values = ~type,
title = "Explore by type", opacity = 1
) |>
addLayersControl(
baseGroups = c("Light map", "Satellite"),
options = layersControlOptions(collapsed = TRUE)
) |>
fitBounds(
lng1 = min(places$lng) - 0.012,
lat1 = min(places$lat) - 0.012,
lng2 = max(places$lng) + 0.012,
lat2 = max(places$lat) + 0.012
)knitr::kable(
places[, c("name", "type", "note")],
col.names = c("Place", "Category", "Why stop here?"),
align = c("l", "l", "l")
)| Place | Category | Why stop here? |
|---|---|---|
| Manipal Institute of Technology | Campus | A lively campus hub and the starting point for this mini-explorer. |
| End Point Park | Viewpoint | A green hilltop escape with wide views over the surrounding landscape. |
| Manipal Lake | Nature | A peaceful waterside pause for a walk and a little quiet. |
| Udupi Sri Krishna Matha | Heritage | A historic temple complex in the heart of Udupi. |
| Malpe Beach | Coast | A sandy Arabian Sea shoreline for sunset colours and sea breeze. |
colorFactor() to create your own
map palette.places data frame; the map and
legend update automatically.A small map can turn familiar places into a new adventure. Happy exploring!
Created on 10 November 2026 using R Markdown and the Leaflet R package. Coordinates are approximate map points for orientation; check local access and conditions before visiting.