如何使用leaflet addGeoJSON()函数一次显示多个多边形?

时间:2016-06-20 22:55:24

标签: r leaflet polygon

我试图在leaflet地图上显示几个zipcodes(因此多边形......)。数据以geojson文件here提供。我选择了一些来自西雅图的邮政编码。

我尝试了以下(可重现的例子):

library(jsonlite) 
library(leaflet)  
url <- "https://raw.githubusercontent.com/openseattle/seattle-boundaries/master/data/zip-codes.geojson"
geojson <- fromJSON(url) 
map <- leaflet() %>% addTiles() %>% addGeoJSON(geojson)
map

我无法弄清楚如何正确设置addGeoJSON参数,而调用地图只会显示leaflet() %>% addTiles()部分......

对于非我所在的非json高级用户来说,文档太轻了:

  

geojson:GeoJSON列表,或长度为1的字符向量

我该怎么办?非常感谢您对此问题的看法

此致

1 个答案:

答案 0 :(得分:3)

您只需要将geojson解析为data.frame,fromJSON(url, FALSE)

library(jsonlite) 
library(leaflet)  
url <- "https://raw.githubusercontent.com/openseattle/seattle-boundaries/master/data/zip-codes.geojson"
geojson <- fromJSON(url, simplifyVector = FALSE) 
leaflet() %>% 
  addTiles() %>% 
  addGeoJSON(geojson) %>% 
  setView(lng = -122.2, lat = 47.6, zoom = 10)

enter image description here

addGeoJSON()也会接受一个字符串,例如

geojson_str <- paste0(readLines(url), collapse = "")

然后将其传递给addGeoJSON