使用带有传单的geoJSON字符串

use*_*975 5 r geojson dataframe leaflet

我有一个数据框,我的第一列是geojson字符串,第二列是该位置的指标.如果粘贴到https://geojson.io/,第一列中的字符串将正确呈现

我想用R中的传单来绘制它,如下面的链接所示.https://rstudio.github.io/leaflet/json.html

不幸的是,我不知道如何将我的数据转换成适用于传单的格式(看似sp对象).

示例数据行:

geojson <- '{"type": "Polygon", "coordinates": [[ [-104.05, 48.99], [-97.22, 48.98], [-96.58, 45.94], [-104.03, 45.94], [-104.05, 48.99] ]]}'
measure1 <- 10000
test_df <- data.frame(geojson, measure1)
test_df$geojson <- as.character(test_df$geojson)
Run Code Online (Sandbox Code Playgroud)

关于这种情况下的最佳实践的任何其他提示也将受到赞赏.

sck*_*ott 3

很确定leaflet要求 geojson 有一个properties插槽。您可以使用geojsonpkg 来做到这一点,例如,

library(leaflet)
library(geojson)
geojson <- '{"type": "Polygon", "coordinates": [[ [-104.05, 48.99], [-97.22, 48.98], [-96.58, 45.94], [-104.03, 45.94], [-104.05, 48.99] ]]}'
geojson <- geojson::properties_add(geojson, population = 10000)
Run Code Online (Sandbox Code Playgroud)

您当然可以手动添加属性槽来操作字符串,但我们使用jqr快速 JSON 解析器来确保正确执行

measure1 <- 10000
df <- data.frame(geojson, measure1, stringsAsFactors = FALSE)

leaflet() %>% 
  addTiles() %>% 
  addGeoJSON(df$geojson) %>% 
  setView(-100, 47.6, 7)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述