私はErik Westraによる超邪悪な本「Python Geospatial Development」(Amazonリンク)のコピーを手に取り、それを調べています。現在、地理空間Webアプリを構築する準備として、GSHHS海岸線データをシェープファイルからPostGISデータベースにロードするように教えています。
私の問題はこれです。GSHHSデータをPostGISにインポートしようとすると、海岸線のポリゴンが「有効」と見なされないために拒否されます。具体的には、海岸線ポリゴンの一部(すべてではない)が「閉じていないリング」であると説明されているエラーメッセージが表示されます。
このエラーは、ポリゴンの最初と最後の点が同じではないことを伝えようとしていることを理解しています。しかし、これは単に真実ではありません。多くのポリゴンのWKT表現を調べましたが、それらは正しいものです。彼らは間違いなく同じ座標で始まり、同じ座標で終わります。
ポリゴンは、OGRライブラリを使用してシェープファイルから抽出され、各ポリゴンフィーチャをWKTにエクスポートします。Shapelyを使用してポリゴンを再構成し、WKBを試しましたが、役に立ちませんでした。私がしている shp2pgsqlとローダーを使用して、MULTIPOLYGONテーブルとPostGISのに同じデータをロードすることができました。
:そこに誰がいた場合、私は思っていた
、おそらく、同じ本を使用()と同じ問題で捕まってしまった、と私のための答えを持っていますか?
(b)同様の問題に遭遇し、解決策を見つけましたか?
(c)失敗した場合、PostGISにロードする前に有効なジオメトリを確保するための「ベストプラクティス」のアドバイスはありますか?
更新:ある同僚は、「閉じていないリング」の問題は別の問題の兆候である可能性があることを示唆しています。私のPostGIS / PostgreSQL構成にサイズ制限(挿入トランザクション、受信パケット、テキスト文字列など)がある可能性があります。
入力として非常に長いWKTポリゴンを使用しているので、PostGISは、各ポリゴンを完成させるには早すぎる可能性があります。明日テストしてみますが、たぶん聞こえそうです。国境の挿入は、一部のレコードのみを受け入れ、他のレコードは受け入れませんでした。記憶から、受け入れられた形状は、アンティグアなどの小さな島国のものでした(したがって、おそらく短いWKT表現がありました)。
したがって、これは無効なジオメトリスレッドではなく、PostGISデータベース管理スレッドになりかねません。