作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个从 gqig gis 软件导出的 MultiLineString Geogeson 文件。一个小例子:
{
"type": "FeatureCollection",
"name": "route1",
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::3857"
} },
"features": [
{ "type": "Feature", "properties": { "FID": 0 }, "geometry": { "type":
"MultiLineString", "coordinates": [ [ [ 1936131.287994222715497,
-4335318.772792792879045 ], [ -2633407.770391199737787,
1763382.609922708477825 ], [ -2922369.195528693497181,
4600947.908943663351238 ], [ -1640888.092745035886765,
5275789.498084637336433 ], [ -361201.781421858817339, 5970373.793290910311043
], [ -361201.781421858817339, 5970373.793290910311043 ] ] ]
} }
]
}
如何将其转换为具有长列和纬度列的数据框绑定(bind)节点?预期结果:
node long lat
1 1936131.287994222715497 -4335318.772792792879045
2 -2633407.770391199737787 1763382.609922708477825
我尝试过的(创建列表):
route1 <- jsonlite::fromJSON(readr::read_file("routes/route1.geojson"))
最佳答案
library(sf)
可以读取 GeoJSON。这将为您提供一个 sf 对象。如果您想要坐标,可以使用st_coordinates()
函数。
library(sf)
sf <- sf::st_read( geo, quiet = T )
df <- as.data.frame( sf::st_coordinates( sf ) )
# X Y L1 L2
# 1 1936131.3 -4335319 1 1
# 2 -2633407.8 1763383 1 1
# 3 -2922369.2 4600948 1 1
# 4 -1640888.1 5275789 1 1
# 5 -361201.8 5970374 1 1
# 6 -361201.8 5970374 1 1
这个额外的 L1
和 L2
列告诉您每个坐标对属于 MULTILINESTRING 中的哪个线串。
关于R 如何将 MultiLineString GeoJson 文件转换为具有长列和纬度列的数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55074839/
我是一名优秀的程序员,十分优秀!