我目前使用R / shiny中的传单映射多个城市连接(折线),这非常好。但是,有几条线在彼此的顶部,我希望能够抵消这些重叠线。
bbecquet 已经有一个很好的插件可以完成工作,但它没有在R包中实现(但是?)。
https://github.com/bbecquet/Leaflet.PolylineOffset
我目前的解决方案非常适合"动手实践"因为我只是根据缩放级别移动线条。
# temp2 is a SpatialLinesDataFrame
negs <- as.matrix(coordinates(temp2[1,])[[1]][[1]])
negs[,1] <- (negs[,1])+exp(input$map_zoom)
negs[,2] <- (negs[,2])+exp(input$map_zoom)
temp2@lines[[1]]@Lines[[1]]@coords[] <- negs
查看示例当前的样子。
是否有人有更好的想法或知道如何在R中使用PolylineOffset插件?干杯!
答案 0 :(得分:0)
在发亮的ui
部分中添加以下内容:
tags$head(
tags$script(src="leaflet.polylineoffset.js")
)
并将javascript文件放在您闪亮的应用程序的www
文件夹中。
然后在server
部分中使用偏移量,如下所示:
leafletProxy("my_map") %>%
addPolylines(data=coords, weight=1, options=list(offset=3))
在该示例中,已经有一个初始化为“ my_map”的地图,并且coords
包含折线的坐标。 offset
以像素为单位,取决于缩放级别。
bbecquet在此插件上做得很好,但不幸的是,它对我而言无法正常工作。我对javascript代码进行了一些调整以解决问题。您可以在这里找到我的版本: modified offset javascript
它仅适用于R leaflet
版本2和更高版本的软件包,该软件包基于较新的传单版本。