如何下载geojson数据并将其读取到R #来自http://leafletjs.com/examples/choropleth/us-states.js 状态%lappy(htmltools::HTML) 传单(州)%%>% setView(-96,37.8,4)%>% addProviderTiles(“映射框”,选项=providerTileOptions( id=“mapbox.light”, accessToken=Sys.getenv('MAPBOX\u ACCESS\u TOKEN'))%>% 添加多边形( fillColor=~pal(密度), 重量=2, 不透明度=1, color=“白色”, dashArray=“3”, fillOpacity=0.7, highlight=highlightOptions( 重量=5, color=“#666”, dashArray=“”, fillOpacity=0.7, bringToFront=真), 标签=标签, 标签选项=标签选项( 样式=列表(“font-weight”=“normal”,padding=“3px 8px”), textsize=“15px”, direction=“auto”))%%>% addLegend(pal=pal,值=~密度,不透明度=0.7,标题=NULL, position=“bottomright”)
以上代码是从中复制的 我试图重现输出。然而,我在第一步就被卡住了——下载geojson文件。我使用了第一行中显示的链接,并将其保存为文本文件,然后将其重命名为geojson文件。但我没能读到那个文件。显然,下载或加载到R的文件有问题,但我不知道它在哪里如何下载geojson数据并将其读取到R #来自http://leafletjs.com/examples/choropleth/us-states.js 状态%lappy(htmltools::HTML) 传单(州)%%>% setView(-96,37.8,4)%>% addProviderTiles(“映射框”,选项=providerTileOptions( id=“mapbox.light”, accessToken=Sys.getenv('MAPBOX\u ACCESS\u TOKEN'))%>% 添加多边形( fillColor=~pal(密度), 重量=2, 不透明度=1, color=“白色”, dashArray=“3”, fillOpacity=0.7, highlight=highlightOptions( 重量=5, color=“#666”, dashArray=“”, fillOpacity=0.7, bringToFront=真), 标签=标签, 标签选项=标签选项( 样式=列表(“font-weight”=“normal”,padding=“3px 8px”), textsize=“15px”, direction=“auto”))%%>% addLegend(pal=pal,值=~密度,不透明度=0.7,标题=NULL, position=“bottomright”),r,leaflet,geojson,ropensci,R,Leaflet,Geojson,Ropensci,以上代码是从中复制的 我试图重现输出。然而,我在第一步就被卡住了——下载geojson文件。我使用了第一行中显示的链接,并将其保存为文本文件,然后将其重命名为geojson文件。但我没能读到那个文件。显然,下载或加载到R的文件有问题,但我不知道它在哪里 有人能给点指示吗?我以前从未处理过geojson数据。我只需要前两行代码的帮助,其他代码我都可以自己处理。下载文件的开头有一个javascript分配。移除它似乎可以解决问题 # From http://leafletjs.com/example
有人能给点指示吗?我以前从未处理过geojson数据。我只需要前两行代码的帮助,其他代码我都可以自己处理。下载文件的开头有一个javascript分配。移除它似乎可以解决问题
# From http://leafletjs.com/examples/choropleth/us-states.js
states <- geojsonio::geojson_read("json/us-states.geojson", what = "sp")
bins <- c(0, 10, 20, 50, 100, 200, 500, 1000, Inf)
pal <- colorBin("YlOrRd", domain = states$density, bins = bins)
labels <- sprintf(
"<strong>%s</strong><br/>%g people / mi<sup>2</sup>",
states$name, states$density
) %>% lapply(htmltools::HTML)
leaflet(states) %>%
setView(-96, 37.8, 4) %>%
addProviderTiles("MapBox", options = providerTileOptions(
id = "mapbox.light",
accessToken = Sys.getenv('MAPBOX_ACCESS_TOKEN'))) %>%
addPolygons(
fillColor = ~pal(density),
weight = 2,
opacity = 1,
color = "white",
dashArray = "3",
fillOpacity = 0.7,
highlight = highlightOptions(
weight = 5,
color = "#666",
dashArray = "",
fillOpacity = 0.7,
bringToFront = TRUE),
label = labels,
labelOptions = labelOptions(
style = list("font-weight" = "normal", padding = "3px 8px"),
textsize = "15px",
direction = "auto")) %>%
addLegend(pal = pal, values = ~density, opacity = 0.7, title = NULL,
position = "bottomright")
库(geojson)
图书馆(geojsonio)
谢谢你!这使得一切都是可复制的。
library(geojson)
library(geojsonio)
url <- "http://leafletjs.com/examples/choropleth/us-states.js"
# read as text file
doc <- readLines(url)
# remove the javascript assignment at the front
doc2 <- gsub("var statesData = ", "", doc)
# write out as a temp file and read
write(doc2, file = "tempgeo.json")
states <- geojson_read("tempgeo.json", what = "sp")