在使用R函数leaflet::addMarkers时,我正在寻找解决重叠标签的方法。
long <- c(147.768, 147.768, 147.768,147.768, 147.768, 147.768)
lat <- c(-36.852, -36.852, -36.852,-36.852, -36.852, -36.852)
label <- c('long label1', 'long label2', 'long label3','long label4', 'long label5', 'long label6')
markers <- data.frame(lat,long,label)
leaflet() %>%
addTiles() %>% # Add default OpenStreetMap map tiles
addMarkers(lng=markers$long, lat= markers$lat,
popup="The birthplace of R",
label = markers$label,
labelOptions = labelOptions(noHide = T, direction = 'auto'),
clusterOptions = markerClusterOptions()
)发布于 2017-11-24 23:54:11
您可以在labelOptions中设置noHide = F而不是noHide = T
您可以尝试添加options = markerOptions(riseOnHover = TRUE)以获得标记顶部的标签。
最终的代码将是:
leaflet() %>%
addTiles() %>% # Add default OpenStreetMap map tiles
addMarkers(lng=markers$long, lat= markers$lat,
popup="The birthplace of R",
label = markers$label,
labelOptions = labelOptions(noHide = F, direction = 'auto'),
options = markerOptions(riseOnHover = TRUE),
clusterOptions = markerClusterOptions()
)发布于 2022-01-13 18:07:25
不幸的是,我不相信在传单中有ggrepel的类比。
这不会修复重叠的标签,因为可以将它们移出障碍,但也许它是一种替代方案。这里的想法是通过简单地使用这些点的参考号来减少标签的侵入性。然后,将地图与包含有关这些参考数字的信息的表格合并。我的版本可能需要一些时间来清理这些问题,但希望你能理解我的想法。
library(leaflet)
library(crosstalk)
library(DT)
bscols(leaflet() %>%
addTiles() %>% # Add default OpenStreetMap map tiles
addCircleMarkers(lng=markers$long, lat= markers$lat,
popup="The birthplace of R",
#label = markers$label,
#labelOptions = labelOptions(noHide = T, direction = 'top'),
clusterOptions = markerClusterOptions()) %>%
addLabelOnlyMarkers(lng=markers$long, lat= markers$lat,
label = as.character(row.names(markers)),
labelOptions = labelOptions(noHide = T, textOnly = T),
clusterOptions = markerClusterOptions()),
datatable(markers, width = "100%"))
htmltools::save_html(test, file = "test.html")

https://stackoverflow.com/questions/46409300
复制相似问题