我试图将代表Philippines
行政区域的形状文件转换为geojson。我从here获取了形状文件。我尝试转换的文件是PHL_adm3.shp
。
我正在使用这个bash脚本:
function shp2geojson() {
ogr2ogr -f GeoJSON "$1.geojson" "$1.shp"
}
for var in *.shp; do shp2geojson ${var%\.*}; done
我在我的服务器上运行了这个脚本并获得了相应的geojson文件。现在我在我的本地运行了相同的脚本,许多城市的几何图形在我的本地不同于我的服务器上。虽然坐标没有太大差别,但它们仅在6-7位小数之后有所不同,但是当我尝试将它们插入PostGIS
时它们会抛出异常。
这是在PostGIS中插入时在服务器上产生错误的几何体的示例。我还发布了我在同一个城市当地的几何图形。
服务器:Geometry
本地:Geometry
我还在两个几何上运行ST_IsValidReason
。我的服务器上出现以下错误。
SELECT ST_IsValidReason(ST_SetSRID(
ST_GeomFromGeoJSON(my_geometry),4326))
Server : Error [('Self-intersection[120.979159 14.71218]',)]
Local : [('Valid Geometry',)]
我在印度,日本泰国等不同国家和我测试的所有国家都尝试了同样的事情,同样的事情正在发生。在本地我没有发现任何错误,但在我的服务器上我得到了无效的几何。
任何人都可以解释我的查询有什么问题以及如何解决这个问题吗?
P.S.-我的两个系统都是64位并运行Ubuntu 14.04。