1

我遇到了 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 文件也会丢失投影信息。我真的很困惑!

那么我错过了什么?

有没有人有(任何)解决方案?

4

0 回答 0