使用Leaflet(对于R)加载SpatialPolygonsDataFrame不起作用

JDH*_*JDH 6 r rgdal leaflet

首先,我是R的新手所以请耐心等待.

我最终要完成的是用Leaflet展示阿姆斯特丹的互动地图.为此,我正在使用RGDAL来读取shapefile.

链接包含阿姆斯特丹的shapefile.

我正在使用以下代码来读取shapefile并显示地图.

amsterdam <- readOGR(".", layer = "sd2010zw_region", verbose = FALSE)

leaflet(amsterdam) %>%
  addProviderTiles("CartoDB.Positron", options= providerTileOptions(opacity = 0.99)) %>%
    addPolygons(
      stroke = FALSE, fillOpacity = 0.5, smoothFactor = 0.5
    )
Run Code Online (Sandbox Code Playgroud)

我得到的是CartoDB.Positron的地图,而不是第二层的'polygonmap'.我得到的是包含各种数据的SpatialPolygonsDataFrame.

另一方面,当我使用绘图方法时,我得到了阿姆斯特丹的地图

plot(amsterdam, axes=TRUE, border="gray")
Run Code Online (Sandbox Code Playgroud)

但我不想使用情节,我想使用Leaflet :)

我在这做错了什么?

Tim*_*bim 16

问题是预测.您需要将数据投影到longlat使用spTransform无论从rgdalSP.此外,提供您SpatialPolygonsDataFrameaddPolygons()电话.

library(leaflet)
library(rgdal)

amsterdam <- readOGR(".", layer = "sd2010zw_region", verbose = FALSE)

ams_ll <- spTransform(amsterdam, CRS("+init=epsg:4326"))

leaflet() %>%
  addProviderTiles("CartoDB.Positron", options= providerTileOptions(opacity = 0.99)) %>%
  addPolygons(data = ams_ll,
    stroke = FALSE, fillOpacity = 0.5, smoothFactor = 0.5
  )
Run Code Online (Sandbox Code Playgroud)