我正在尝试将代表行政区域的形状文件转换Philippines
为geojson。我从这里获取形状文件。我要转换的文件是这个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 时在服务器上产生错误的几何示例。我还发布了我在同一个城市的当地人得到的几何图形。
服务器:几何
本地:几何
我也在ST_IsValidReason
这两种几何体上运行。我的服务器上出现以下错误。
SELECT ST_IsValidReason(ST_SetSRID(
ST_GeomFromGeoJSON(my_geometry),4326))
Server : Error [('Self-intersection[120.979159 14.71218]',)]
Local : [('Valid Geometry',)]
我在印度、日本、泰国等不同国家尝试了完全相同的事情,对于我测试过的所有国家,同样的事情正在发生。在本地我没有发现任何错误,但在我的服务器上我得到了无效的几何图形。
谁能解释我的查询有什么问题以及如何解决这个问题?
PS-我的两个系统都是 64 位并运行 Ubuntu 14.04。