[python]地図データてどうやってベクター情報にするの?

[python]地図データてどうやってベクター情報にするの?をはてなブックマークに追加 [python]地図データてどうやってベクター情報にするの?をdel.icio.usに追加 Yahoo!ブックマークに登録 [python]地図データてどうやってベクター情報にするの?をGoogle Bookmarksに追加

てっく煮ブログさんで、北海道を落とすとどう跳ねるのか?というすげー面白いエントリがあったので、俺もやってみたくて色々と調べてみました。
box2dを使って地図を落としているのはよくわかるのですが、この北海道のカタチどおりにちゃんと跳ねているので、どうやってこのスプライトを作ったのかしら?と思っていましたら、ソースが公開されているじゃありませんか。すげー嬉しい!

hokkaido.png

で、ソースにEasySvgConvert.asというファイルがありましたので、これを調べてみるとbox2d上の北海道の実際のカタチは上図の青い線の感じになるようでした。北海道を地面にごろんと1回転するように転がしてみて、地面に接した頂点になる点を結べばいいのかな。難しいな。

で、実際の地図データはどこにあるのか探してみましたら、国土数値情報ダウンロードサービスというものがありまして、ここに日本地図が載っていました。データそのものは、xmlで出来ていて、データ上の緯度経度の点をプロットして行くと、地図になります。xmlがかなり大きなサイズなのでいつものようにSQLiteに突っ込んで処理しました。
kanagawa.png
これは神奈川県をプロットしてみた図です。今回もpythonでプロットしてみました。多分、この最北部のドットを拾ってあげて、そこから地図をごろんと転がしてあげれば、いいんじゃないかなと思いますが、その実装自体をどうやんのかもう少し調べてみようかと思います。

pythonで地図のxmlをパースしながら必要な緯度経度の情報をSQLiteに突っ込んでみたんだけど、

doc = minidom.parse( 'kanagawa.xml' )

これだけでめちゃくちゃ重くなった。多分minidomじゃなくてsaxでパースする必要があったんだと思う。
出来たSQLiteデータベースはコチラ

コメントをどうぞ