【问题标题】:R Leaflet: lines missing when plotting polylinesR Leaflet:绘制折线时缺少线条
【发布时间】:2017-01-02 07:29:46
【问题描述】:

我有一个由一堆线条组成的非常简单的空间对象。我可以毫无问题地以不同的方式绘制它:QGIS、mapshaper.org。甚至标准的 R plot() 函数:

但是当我用leaflet() 绘制它时,一些片段神秘地消失了,留下了不连贯的线条:

下面是一个可重现的例子。注意:为了简单起见,我在这里使用 GeoJSON 源文件。我还尝试将线条保存为 ESRI shapefile,效果相同:使用 QGIS 或 plot() 等绘制数据正常,但使用 leaflet() 绘制数据不正确。

library(leaflet)
library(rgdal)

download.file("https://www.dropbox.com/s/nij2oa2rp7ijaaj/commuter_rail.geojson?dl=1",
                           method = "auto", mode = "wb", destfile = "commuter_rail.json")
commuterLines <- readOGR("commuter_rail.json",
                         "OGRGeoJSON")

# Straight R Plot - Looks good
plot(commuterLines)

# Plot using leaflet - Some lines are missing!

leaflet() %>% addPolylines(data = commuterLines)

更新:

这是作为闪亮应用程序运行的可重现示例,托管在 shinyapps.io,并显示了奇怪的传单行为:https://havb.shinyapps.io/leaflet_example/

【问题讨论】:

  • json 的下载对我不起作用。你试过readLines("foo.json") 吗? rstudio.github.io/leaflet/json.html
  • @maRtin,哎呀,现在修复了。读取 json 不是问题,如果我读取 ESRI shapefile 格式的数据,我会得到完全相同(奇怪)的结果。为了方便起见,我只是在示例中使用了一个 json 文件。如果有用,下面是与 shapefile 相同的数据:dropbox.com/s/4yq7vh4w43q3suy/MBTA.zip?dl=1

标签: r leaflet


【解决方案1】:

更新:问题似乎是 CRAN 提供的旧版传单包中的错误。从 Github 安装最新的开发版本可以解决此问题。

我没有足够的代表发表评论,但我尝试了你的代码,它对我有用:

也许它与您的本地配置有关?您是否尝试过重新安装传单包?

【讨论】:

  • 这真的很奇怪。我重新安装了传单,并更新了 R 和每个包,以防万一。我仍然得到带有传单的破损地图。我什至将代码上传到了shinyapps,并且......结果相同(坏)!见here
  • 我尝试再次复制错误,但它仍然对我有用。您知道 json 文件中的哪些几何图形没有显示吗?也许json文件的那些行有错误?我也很高兴将我的communterLines SpatialLinesDataFrame 的输出发送给您。
  • 我很确定 json 文件中没有错误,原因有两个:将数据绘制为 ESRI shapefile 时出现完全相同的错误;我可以使用QGISCARTO 很好地绘制json 文件。 leaflet 是错误绘图的唯一常数。事实上,我在使用shapefile 时发现了他的问题。我刚刚将数据转换为json,因为它也会触发错误并且更易于共享。也许我们使用不同的leaflet 版本?我的是1.0.1。我很乐意接受你的空间数据框!
  • 我使用的是传单版本 1.0.2.9008。
  • 宾果游戏!最新的 CRAN 传单版本似乎有一个与这个特定空间对象有关的错误。从 Github 安装最新的开发版本解决了这个问题。如果您重写/更新您的答案以表明这一点,我会接受它
猜你喜欢
  • 1970-01-01
  • 2016-01-05
  • 1970-01-01
  • 2019-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多