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

时间:2019-08-06 12:44:02

标签: r json encoding polyline google-polyline

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

1 个答案:

答案 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)对象。假设sfsp的后继者,则可以在此处停止。但是,如果您仍然需要SpatialDataFrame,则可以

sp <- as( sf, "Spatial" )