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)
关于这种情况下的最佳实践的任何其他提示也将受到赞赏.
很确定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)
| 归档时间: |
|
| 查看次数: |
483 次 |
| 最近记录: |