仅当在leaflet()中调用数据时才显示多边形

时间:2019-07-15 19:10:38

标签: r leaflet r-leaflet

我正在尝试将多边形的多个图层映射到传单地图。分别添加但未添加在一起时,这些多边形会显示并抛出错误:“在derivePolygons(data,lng,lat,lating(lng),missing(lat),“ addPolylines”)中出现错误:   必须同时使用lng和lat调用addPolylines,或者都不使用“

我有三个用以下代码创建的sfc_POLYGON类的缓冲文件:

CCL2 <- read_sf([my file here])
class(CCL2)
#[1] "sf"         "tbl_df"     "tbl"        "data.frame"

CCL3<-st_combine(CCL2) 

#create a buffer of x miles about the CCL
buffer_1 <- st_buffer(CCL3, dist = .04)

buffer_2 <- st_buffer(CCL3, dist = .03)

buffer_3 <- st_buffer(CCL3, dist = .02)

我想做的是有一张传单,一次显示所有内容,并附有以下几行代码:

bmap <- leaflet() %>%
  addProviderTiles(providers$Stamen.TonerLines) %>%
  addProviderTiles(providers$Stamen.TonerBackground) %>%
  addPolylines(buffer_1, opacity = 1, col = "red") %>%
  addPolylines(buffer_2, opacity = 1, col = "blue") %>%
  addPolylines(buffer_3, opacity = 1, col = "green")

(AddTiles %>% does not seem to make a difference so I have left that out)

该代码引发了我上面提到的错误。 到目前为止,我已经尝试过:

  • 使用Polygons()转换sfc_POLYGON缓冲文件。
  • 使用addPolygons()代替addPolylines()
  • 将lng = NULL和lat = NULL用作参数

基本上,因为缓冲区具有MULTILINESTRING /几何数据,所以它们分别映射and look like this.,这是有效的代码:

bmap <- leaflet(buffer_1) %>%
  addProviderTiles(providers$Stamen.TonerLines) %>%
  addProviderTiles(providers$Stamen.TonerBackground) %>%
  addPolylines(opacity = 1, col = "red")

寻求帮助,以查看是否有任何方式可以一次显示所有3个缓冲区。

1 个答案:

答案 0 :(得分:2)

多边形和折线都存在相同的问题,当我提供参数data = buffer_1而不是仅仅提供buffer_1作为参数时,它就起作用了。