クローズでないリング発見


で、めでたくダンプ形式のファイルができたので、叩き込んでみたところ、一部でエラー発生。
"geometry contains non-closed rings" と怒られました。
うーん、くまった。
shp2pgsql は、デフォルトでは WKB (正確には"EWKB")を出してくれるのですが分かりづらいので、shp2pgsql に "-w"オプションをつけて、WKT(正確には"EWKT")を吐かせてみました。
で、エラーの出た行を見ると、確かに閉じてない。もう少し言うと、このフィーチャー、二つのリングから成っていて、ダンプ形式では二つ目に問題がありました。
とりあえずダンプ形式では、エラーかどうかは分かりました。
データ自体にエラーがある可能性もありますが、shp2pgsqlのバグの可能性も捨てきれない。
でも、数メガのバイナリファイルを人間の目で見るのは無理。問題のフィーチャーがどこかを探索するなんて無理。
で、シェープ自体を何かに食わせるとどうだろうと思って、職場には ArcGIS があったりするのでシェープを食わせると、エラーも出さない。
でも、問題のフィーチャーを選択してみると、何かおかしい。選択されたフィーチャーのボーダーが太線になるところ、最後のパートだけ太線でない。
もう、元データが悪い、ということにする。