Sample marker data (3 locations). You can replace with your data.

locations <- data.frame(
name = c("Badshahi Mosque (Lahore)", "Faisal Mosque (Islamabad)", "Mazar-e-Quaid (Karachi)"),
lat  = c(31.5889, 33.7294, 24.8719),
lng  = c(74.3100, 73.0377, 67.0590),
desc = c(
"Badshahi Mosque — built during Mughal era.",
"Faisal Mosque — modern national mosque of Pakistan.",
"Mazar-e-Quaid — mausoleum of Muhammad Ali Jinnah."
),
img = c(
"[https://upload.wikimedia.org/wikipedia/commons/thumb/7/77/Badshahi_Mosque_Lahore.jpg/320px-Badshahi_Mosque_Lahore.jpg](https://upload.wikimedia.org/wikipedia/commons/thumb/7/77/Badshahi_Mosque_Lahore.jpg/320px-Badshahi_Mosque_Lahore.jpg)",
"[https://upload.wikimedia.org/wikipedia/commons/thumb/9/92/Faisal_Mosque.jpg/320px-Faisal_Mosque.jpg](https://upload.wikimedia.org/wikipedia/commons/thumb/9/92/Faisal_Mosque.jpg/320px-Faisal_Mosque.jpg)",
"[https://upload.wikimedia.org/wikipedia/commons/thumb/8/8a/Mazar-e-Quaid_in_Karachi.jpg/320px-Mazar-e-Quaid_in_Karachi.jpg](https://upload.wikimedia.org/wikipedia/commons/thumb/8/8a/Mazar-e-Quaid_in_Karachi.jpg/320px-Mazar-e-Quaid_in_Karachi.jpg)"
),
stringsAsFactors = FALSE
)

# Create popups with images

popups <- sprintf(
"<strong>%s</strong><br/>%s<br/><img src='%s' width='220'><br/><a target='_blank' href='https://www.google.com/maps/search/?api=1&query=%f,%f'>Open in Google Maps</a>",
locations$name, locations$desc, locations$img, locations$lat, locations$lng
)

# Build leaflet map

m <- leaflet(options = leafletOptions(minZoom = 3, maxZoom = 18)) %>%
addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>%
addProviderTiles(providers$Esri.WorldImagery, group = "Esri.WorldImagery") %>%
addMarkers(
data = locations,
~lng, ~lat,
popup = popups,
label = ~name,
clusterOptions = markerClusterOptions()
) %>%

# Add a tiny synthetic polygon (sample choropleth)

addPolygons(
lng = c(73.5, 74.0, 74.0, 73.5),
lat = c(31.0, 31.0, 31.5, 31.5),
color = "#440154", weight = 2, fillOpacity = 0.25,
popup = "Sample polygon (for demo)"
) %>%
addLayersControl(
baseGroups = c("OpenStreetMap", "Esri.WorldImagery"),
overlayGroups = c("Markers", "Sample polygon"),
options = layersControlOptions(collapsed = FALSE)
) %>%
addMiniMap(toggleDisplay = TRUE) %>%
addMeasure(position = "bottomleft", primaryLengthUnit = "kilometers") %>%
setView(lng = 72.5, lat = 27.5, zoom = 5)

m