の行政区域を表すシェープファイルを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を実行しています。