如何使用传单偏移r中的折线

时间:2016-10-20 16:18:14

标签: r shiny leaflet gis

我目前使用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

查看示例当前的样子。

enter image description here

是否有人有更好的想法或知道如何在R中使用PolylineOffset插件?干杯!

1 个答案:

答案 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和更高版本的软件包,该软件包基于较新的传单版本。