在传单热图中添加弹出标签

Add a pop-up label in a leaflet heatmap

是否可以在用户将鼠标悬停在传单热图中的某个点上时添加弹出标签?例如,从 quakes 数据集查看 depthstations

library(leaflet)

leaflet(quakes) %>%
  addProviderTiles(providers$CartoDB.DarkMatter) %>%
  setView( 178, -20, 5 ) %>%
  addHeatmap(
    lng = ~long, lat = ~lat, intensity = ~mag,
    blur = 20, max = 0.05, radius = 15
  )

## for more examples see
# browseURL(system.file("examples/heatmaps.R", package = "leaflet.extras"))
kml <- readr::read_file(
  system.file("examples/data/kml/crimes.kml.zip", package = "leaflet.extras")
)

leaflet() %>%
  setView(-77.0369, 38.9072, 12) %>%
  addProviderTiles(providers$CartoDB.Positron) %>%
  addKMLHeatmap(kml, radius = 7) %>%
  addKML(
    kml,
    markerType = "circleMarker",
    stroke = FALSE, fillColor = "black", fillOpacity = 1,
    markerOptions = markerOptions(radius = 1))

我不确定这是你想要的,但你可以用通常的方式添加标记弹出窗口:

library(leaflet)
leaflet(quakes) %>%
  addProviderTiles(providers$CartoDB.DarkMatter) %>%
  setView( 178, -20, 5 ) %>%
  addHeatmap(
    lng = ~long, lat = ~lat, intensity = ~mag,
    blur = 20, max = 0.05, radius = 15
  ) %>% 
  addMarkers(lng = quakes$long, lat = quakes$lat, 
             popup = paste("Depth", quakes$depth, "<br>",
                           "Stations:", quakes$stations))

如果您不想让主导标记可见,您可以添加圆形标记,但将 fillOpacity 设置为零:

leaflet(quakes) %>%
  addProviderTiles(providers$CartoDB.DarkMatter) %>%
  setView( 178, -20, 5 ) %>%
  addHeatmap(
    lng = ~long, lat = ~lat, intensity = ~mag,
    blur = 20, max = 0.05, radius = 15
  ) %>% 
  addCircleMarkers(lng = quakes$long, lat = quakes$lat, 
                   fillOpacity = 0, weight = 0,
                   popup = paste("Depth:", quakes$depth, "<br>",
                                 "Stations:", quakes$stations),
                   labelOptions = labelOptions(noHide = TRUE))