如何从编码折线创建空间线数据框?

How to create spatial line dataframe from encoded polylines?

我正在处理交通网络数据集,我想导入以 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")

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) 对象。鉴于 sfsp 的继承者,您可以到此为止。但是,如果你仍然需要 SpatialDataFrame 你可以做

sp <- as( sf, "Spatial" )