我正在使用交通网络数据集,我想导入以JSON格式提供的交通速度数据。
我可以使用read.scorata()读取R中的数据。但是,我无法将其转换为空间数据框以用于进一步分析。当前数据帧中有一个字段是已编码折线。如何使用此字段进行转换?
library(RSocrata)
#Loading only two rows for easy reproduction
Test_TSD <- read.socrata("https://data.cityofnewyork.us/resource/i4gi-tjb9.json?borough=Manhattan&id=225")
答案 0 :(得分:0)
library(googlePolylines)
可以将这些折线解码为坐标。
要转换为sf
对象,目前需要几个步骤。 (有plans使其成为googlePolylines库的一部分)
coords <- googlePolylines::decode( Test_TSD$encoded_poly_line )
sfg <- lapply( coords, function(x) sf::st_linestring( x = as.matrix(x) ) )
sfc <- sf::st_sfc( sfg )
sf <- sf::st_as_sf( cbind( Test_TSD, sfc ) )
您现在有了一个简单的功能(sf
)对象。假设sf
是sp
的后继者,则可以在此处停止。但是,如果您仍然需要SpatialDataFrame
,则可以
sp <- as( sf, "Spatial" )