1

の行政区域を表すシェープファイルをPhilippinesgeojsonに変換しようとしています。ここから形状ファイルを取得しています。変換しようとしているファイルはこれ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を実行しています。

4

0 に答える 0