地図レシピ 090320 版リリース

予告してから間が開いてしまいましたが、地図レシピの新版を公開します。→ダウンロードページ

前回のものより新しい平成20年度の地図データから作成し直しました。

今回から、管理しやすいようにレシピファイル名にも都道府県名を追加するようにしました。(例: 01-北海道/北海道-02.txt)

また、アーカイブファイル名の年月日を作成した日付ではなく、地図データの日付にしました。今回は2009/03/20の地図データから生成したので 090320-1 という版数にしています。

データ生成プログラムも一新したので、抜けもなくなっているのではないかと思っていますが、 全てを確認したわけではないので、もし不備がありましたらご指摘をいただけばと思います。

 

地図レシピ更新中

再開第一弾の開発として、ただいま地図レシピを更新中です。

qgmap, WifiConnect と、開発しなければいけないものはあるんですが、地図レシピが中途半端なのが一番ユーザの方々が困るかなと思いまして。
いままでに Matsuさん、つんさん、wasteさん等から抜けのご指摘をいただいていたのに更新できてなかったので。

久しぶりに国土交通省国土計画局のページをみてみると、2009/03/20 に平成20年度版の地図データが公開されていたので、新しい地図をベースに作り直すことにしました。

ということで、1年前のスクリプトをひっぱり出して動かしてみるも・・・動かない(泣)。

まじめに XML を解析せず、正規表現マッチングだけで緯度経度を取り出しているせいでしょうか、メチャクチャな地図になってしまいました。

地図描画失敗
描画失敗

XMLのスキーマ的には変わってないんでしょうが、緯度経度の出力順が変わったんでしょうね。もうちょっとまじめにデコードしないとダメですね。

あと、この画像が 1dot あたり zoom レベル 2 の画像 1 枚に相当していて、これを元に zoom 3~ のデータを生成するんですが、そのスクリプトがない・・・。

いや、あるにはあるんですが、かなり古いバージョンでものすごく時間がかかるやつ。高速に処理できるスクリプトを作ったはずなんですが、どこかに行ってしまったようです。アルゴリズムは頭にあるんで作り直そうかな。

ということでもう少し時間がかかりそうです。

地図レシピ – 一応完成

しばらく放置されていた地図レシピを完成させました。

ただ、google の仕様が変わった(?)のか、地図がダウンロードできなくなっているようでして、
実際の地図をダウンロードしての確認はできてないです。

各都道府県別にズームレベル 2〜19 の範囲のダウンロードスクリプトを格納してあります。

とりあえずは欲しい領域を down_img.pl へコピペしてご利用ください。

と、そのまえに Google Maps の仕様変更に対応しないとですね・・・。
制限が強化されてしまってダウンロードが難しくなっていなければいいのですが・・・。

追記:

Windowユーザ向けのzip形式を追加しました。
ディレクトリ名に漢字を使っているので、tar 形式だと化けるためです。
WIndowsユーザの方は zip 形式をお使いください。

Google Mapsの仕様が変わったというよりは、ダウンローダで地図をダウンロードしている人を制限しているようです。
最初はダウンロードできるのですが、ある程度ダウンロードするとパタリと 0 byte ファイルになってしまいます。

また、そうなるとブラウザで Google Maps を見ても表示されなくなります。IPアドレスで制限しているのかもしれません。

もともと想定外の使い方なので、サーバに負荷をかけないように、ゆっくりダウンロードするしかないのかもしれませんね・・・。

 

地図レシピ – 国土交通省の地図を使ってみた

海岸線データを探していたら、国土交通省国土計画局のページから海岸線とか県境のデータが入手できることが分かった。
しかも、各県毎に分かれているなんて、何て使いやすいんだ!

さっそくダウンロードしてデータのフォーマットをみてみると、XMLらしくなんか良く分かんない(^^;
というか、北海道のXMLデータが225MBってデカすぎ! XMLだからかなり冗長ということもあり、ZIP圧縮のファイルは6.2MB程度までちっちゃくなるんだけど、よくこんなデカいデータをメンテできるなぁ。

いちいちXMLをパースなんてやってられないので、正規表現で緯度経度らしいデータを抽出して、地図を描いてみた。


国土交通省のデータで地図を描いてみた
注意!リンク先は大きなサイズになっています(2560×2560 63kB)

すごい!かなり細かい!! 繋がった線だけでも8000本以上あったので、データのポイント数は数万以上なのだろう。かなり詳細でビックリ。

しかも、塗りつぶしてGoogleMapと重ね合わせたらピッタリ!! さすが政府のデータは正確だ。

国土交通省のデータによる地図
国土交通省の地図データによる海岸線の抽出

あまりにピッタリすぎでちょっとビビった。こんな詳細で正確なデータが無料でダウンロードできるなんてすごい世の中になったもんだ。すばらしい!

これでも十分海岸線ピッタリなんだけど、一応念のため、1ドット分太らせて地図取得のデータに使おう。

ただ、完全に閉じた線データになっていなくて、河口や県境が決まっていない部分は開いてしまっているので、単純に陸と海を塗りわけようとすると、以下のようにうまくいかない。以下は陸地を灰色、海を黒く塗り分けた例。


海岸線が切れていて陸地も黒に!

この辺は画像をGIMP等で手修正しようかな。これくらいならそれほど手間じゃないし。
とりあえず、これで各県の陸地部分のマスクデータは作れそうだ。

あとは、そのマスクデータから GM_Lite の down_img のデータに置き換えればOK。
でも、できるだけレシピの行数は短くしたいから、範囲指定を効率よく使って行数減らさないと。

down_map("10", "57", "22");
down_map("10", "57", "23");
down_map("10", "58", "22");
down_map("10", "58", "23");

down_map("10", "57:58", "22:23");

こんな感じの変換をしないと。
特に詳細地図になると、地図1枚を1行にしていたらコピペっていうレベルじゃなくなってしまいそうだし (^^;
このアルゴリズムがまた大変そうだ。うーん。

このページの地図データは、「国土数値情報 行政区域データ 2007年10月版 国土交通省」のデータを元に作成しています。

地図レシピ – DCLライブラリの地図を使ってみた

うーん。うまくいかないです。

試しにDCLライブラリの日本地図データを使って地図を描いてみた。

DCLライブラリの地図
DCLライブラリのデータで描いた日本地図
注意! リンク先はかなり大きいサイズです!! (8704×9728 150kB)

この結果をみるとかなりいけてるように見えるけど、GoogleMapと重ねると結構ずれてしまう。

上記地図とGoogleMapを重ね合わせる
上記地図とGoogleMapを重ね合わせた結果

若干色が黒い部分がDCLライブラリで描いた海岸線。

地図のサイズが zoom=10 のサイズなので、この画像の1ドットが zoom=2 の地図1枚に相当する。この地図で数ドットずれているだけで zoom=2 では数枚分(ザウルスでは1画面分以上)画像が欠けたり余分だったりするわけだ。

うーん。ちょっとズレすぎだなぁ。余分にダウンロードするのは百歩譲っていいとしても、欠落するのはまずいな。

もっと精度の高いデータが必要だなぁ。