我遇到了 rgdal 的问题,它在编写 geoJSON 文件时会丢失投影信息。
library(rgdal)
inputJSON<- readOGR("test.geojson", "OGRGeoJSON") # works!
如果我输入summary(inputJSON)
,我会得到以下输出:
Object of class SpatialPointsDataFrame
Coordinates:
min max
coords.x1 0 499690.8
coords.x2 0 321771.2
Is projected: TRUE
proj4string :
[+proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1 +x_0=450000 +y_0=-5000000
+ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs]
那是告诉我该文件已成功读入 R 并且它还获取了投影信息。
在处理了一些数据之后,我想使用以下命令将我的 data.frame (inputJSON) 保存为一个新的 geoJSON 文件:
writeOGR(inputJSON, "outTest.geojson", layer="inputJSON", driver="GeoJSON",check_exists = FALSE)
这也会产生所需的geoJSON文件,但它不会将投影信息写入其中,而且没有该信息的geoJSON文件(对于我的建议)几乎是无用的。
为了比较输入文件(test.geojson)的开头:
{
"type": "FeatureCollection",
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::31258" } },
"features": [
生成的文件(outTest.geojson):
{
"type": "FeatureCollection",
"features": [
所以这:
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::31258" } },
缺少重要的部分。
如果我没记错的话,我的 rgdal 版本是
rgdal' 版本 1.0-6
并且应该是最新的。好吧,我还尝试了其他带有可用 geoJSON 文件编写器 ( geojsonio,leafletR
) 的包,但它们都不考虑投影。那么我错过了什么?有没有可能使这项工作?我认为 ogr2ogr 的 GeoJSON 驱动程序(包所基于)根本不处理投影。通过命令行将 shapefile 传输到 geoJSON 文件,生成的 geoJSON 文件也会丢失投影信息。我真的很困惑!
那么我错过了什么?
有没有人有(任何)解决方案?