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

标签 r shiny leaflet gis

我目前正在使用 R/shiny 中的传单绘制几个城市连接(折线),效果非常好。但是,有几条线相互重叠,我希望能够抵消这些重叠的线。

bbecquet 已经为 leaflet 提供了一个很棒的插件来完成这项工作,但它尚未在 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 插件吗?干杯!

最佳答案

在 Shiny 的 ui 部分添加以下内容:

tags$head(
    tags$script(src="leaflet.polylineoffset.js")
)

并将 javascript 文件放入 Shiny 应用程序的 www 文件夹中。 然后在 server 部分使用如下所示的偏移量:

leafletProxy("my_map") %>%
addPolylines(data=coords, weight=1, options=list(offset=3))

在示例中,已经有一个名为“my_map”的初始化 map ,并且 coords 包含折线的坐标。 偏移以像素为单位,与缩放级别无关。

bbecquet 在这个插件上做得很好,但不幸的是它对我来说不能正常工作。我稍微调整了 javascript 代码来解决问题。您可以在这里找到我的版本: modified offset javascript

它仅适用于 R leaflet 软件包版本 2 及更高版本,该版本基于更新版本的 leaflet。

关于r - 如何使用传单在r中偏移折线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40159581/

相关文章:

javascript - 传单 map 在选项卡式面板内未正确显示

r - 无法显示png

r - 如何为日期滑动输入

r - 控制ggplot2图例位置而不改变轴的比例

r - Traminer:具有观察次数的平均时间条形图

javascript - Shiny 应用程序可以在不访问服务器的情况下响应控件吗?

javascript - 是否可以在单个 HTML 页面中包含多个 leaflet/mapbox map ?

javascript - 使用 leafletjs 和 bootstrap 加载 map 图 block 时出现问题

r - 在 R 中创建时间对象

r - 为什么有些原语有字节码而有些没有?