首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >leaflet标签重叠修复- leaflet::addMarkers

leaflet标签重叠修复- leaflet::addMarkers
EN

Stack Overflow用户
提问于 2017-09-25 23:50:22
回答 2查看 2.7K关注 0票数 11

在使用R函数leaflet::addMarkers时,我正在寻找解决重叠标签的方法。

代码语言:javascript
复制
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()
             )
EN

回答 2

Stack Overflow用户

发布于 2017-11-24 23:54:11

您可以在labelOptions中设置noHide = F而不是noHide = T

您可以尝试添加options = markerOptions(riseOnHover = TRUE)以获得标记顶部的标签。

最终的代码将是:

代码语言:javascript
复制
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()
             )
票数 1
EN

Stack Overflow用户

发布于 2022-01-13 18:07:25

不幸的是,我不相信在传单中有ggrepel的类比。

这不会修复重叠的标签,因为可以将它们移出障碍,但也许它是一种替代方案。这里的想法是通过简单地使用这些点的参考号来减少标签的侵入性。然后,将地图与包含有关这些参考数字的信息的表格合并。我的版本可能需要一些时间来清理这些问题,但希望你能理解我的想法。

代码语言:javascript
复制
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")

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46409300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档