結論から言うと「群馬に海がなくてよかった」

国土数値情報(行政区域)の2011年度版の都道府県簡略化ポリゴン作成を id:yellow_73:20120323 を参考にしてやってみる。ああ、もうすっかり忘れてたよ。

今回は何かうまくいかない。なんかね、インタセクトしてるだのなんだのとか言われた。

しょうがないので都道府県ひとつずつポリゴンを追加していくことにする。北海道だけ入れて…セーフ、青森…セーフ、と。…そして群馬県でエラーが出た。

他にもエラーが出とらんか、それ以降も追加していくが、1都府県ずつ入れるのも面倒なんで、10都府県ごとに入れるようにする。群馬より後はセーフでした。

トポロジにポリゴンを追加していると時間がかかるので、平行して原因を調べてみる。時間はかかるがQGISPostGISに入っている、都道府県ポリゴンを開いてみる。まず、スパイク(と都道府県ポリゴンから尖った部分がにょきっと出てるのを指しています)っぽいのが栃木に刺さっとるのを発見。どうにかスパイクを取り去れないかごにょごにょしていました。ふと栃木側を選択してみると栃木ポリゴンの境界が強調されて、ここでようやっと気づいた。どうも栃木は群馬のスパイクにあわせて変形している。あれか、最強民族にやられたか。それはともかく、これ自体は問題かも知れないが、とりあえず「インタセクト」とは関係ないので見逃すことにした。

スパイク以外がなかなか見つからなかったのですが、ふと群馬に隣接する県のポリゴンを結合させてたのをQGISで見たところ、もうひとつが見つかった。埼玉の飛び地があったんです。埼玉を追い出せんとは群馬は最強民族違ったんか…。*1

いやそれはともかく、群馬ポリゴンの中に埼玉飛び地ポリゴンが上に載ってて、群馬ポリゴンは穴になってませんでした。もしかしたら穴になってたかも知れませんが、簡単化するために都道府県ポリゴンは外環のみ取り出していたので、これのせいで問題が出てきたのかも知れない。

解決法を考えると、群馬ポリゴン内の埼玉飛び地ポリゴンを抹殺するしかないかな、と。しかしこれどうしてやろうかといろいろやってたのですが、そのうちトポロジへのポリゴン追加が群馬を除いてすべて終了。とりあえず簡略化して、ジオメトリのポリゴンにエクスポートしてやる。

トポロジに叩き込む際にポリゴンの面積が一定以上であるようにWHERE条件をかけていたため、埼玉飛び地ポリゴンはどっか行っちゃってました。そのうえ、群馬ポリゴンが知らない間に作られとる。

群馬以外はポリゴン追加に成功しているので、群馬部分は空白になってるのは確か。しかし、内陸であるため周囲の県ポリゴンによって、群馬県を囲むエッジが全部出来上がってた。群馬が海沿いなら、海岸線ラインストリングを叩き込まないと、周囲を閉じたラインストリングで囲むポリゴンにはなれなかったと思います。

結局はだな、「群馬に海がなくてよかった」であると。

*1:今年の成人式の頃に群馬を弄るツイートが出回ってました