MGMapsのローカルマップを作るMapTileChacher.perlの私の環境での実行例です。二日前の記事もあわせてご覧ください。
[ 変更の履歴 ] – 長いエントリーなので最初に変更履歴を書いておきます
2007/06/13 07:56 MGMapsのSuite settingsの項目追加 [デバイスでの表示 ]
2007/06/14 08:16 アルファ第2版対応
[ 準備 ] – Windowx XP, Linux, Mac OS X (Tiger)別に書いておきます
共通
専用のディレクトリー(フォルダー)を作成しておくのがお勧めです。そこにMapTileCacher.perlを置きます。
Windows XP
ActiveStateから無料のActivePerlをダウンロード(Windows, MSI)し導入します。バージョンは5.6、5.8のどちらでも構わないと思います。
SunsiteのFTPサーバーからsslibsXXXc.zipとwgetXXXXXXXXb.zip(ただしXはバージョンを表す数字)をダウンロードします。それぞれを解凍しlibeay32.dllとssleay32.dllをC:¥windows¥system32へ、wget.exeをパスの通っている場所もしくはMapTileCahcer.perlと同じ場所にコピーします。「wgetの使い方」というページにさらに詳しい手順が紹介されていますので参考にしてみてください。
Linux
おそらく標準的なパッケージに必要なコマンドは含まれていると思われるので特別な準備は必要ないでしょう。
Mac OS X
wgetをAndrew’s Denからダウンロードし導入します。 MapTileCacher.perl v1.10 ではMac OS X標準のcurlをwgetの代わりに使用するので特別な準備は必要ありません。
[ 確認 ]
コマンドライン・ウインドウ(Mac OS Xならターミナル)を開きMapTileCahcer.perlのある場所をカレント・ディレクトリーとします。mapというディレクトリーを作成したとして cd c:¥mapとかcd ~/mapみたいな感じです。
perl -v を投入し This is perl, v5.8.6みたいなメッセージが表示されることを確認。
Mac OS X以外の場合、wget を投入し wget: missing URLなどと表示されることを確認。
[ 実行例 ] – WindowsでGoogle Mapを取得した例です
コマンドライン・ウインドウを開きMapTileCahcer.perlのある場所をカレント・ディレクトリーとします。
- perl MapTileCacher.perl を実行。
- map typeの一覧が表示される。Choice: に対して GoogleMap と答える。
- Enter Zoom Level(0-23): に対して 10を答える。
- Top left (latitude, longitude): に対して 35.81, 139.44 と答える(所沢市付近)。
- Bottom right (latitude, longitude): に対して 35.36, 139.98 と答える(木更津市付近)。
- Press enter to continue. と表示されるのでreturnキーを押す。
- 以下のようなメッセージがいくつか表示される。
*Downloading tile 1 of 9 from http://mt2.google.com/mt?n=404&v=w2.52&x=908&y=402
&zoom=7
08:28:32 URL:http://mt2.google.com/mt?n=404&v=w2.52&x=908&y=402&zoom=7 [22919/22
919] -> “TempTile” [1]FINISHED –08:28:32–
- 最後に***Caching Complete***と表示されたら終了です。
正常に実行されるとMGMapsCacheV1MGMapsCacheというディレクトリーが作成されます。その下にマップタイプとZoomレベルを表すディレクトリー、そらにその下に数字のディレクトリーが出来、その中にマップファイルが作られます。マップファイルはGoogleMapの場合pngファイルになっています(マップの種類によってはjpgだったりもします)。ただし拡張子はmgmになっています。拡張子を一時的にpmgに変更すればWindowsで表示するこも出来るので該当のエリアのものであるかどうか簡単に判断出来ると思います。
Zoom レベル10がうまく行けば必要に応じ同じエリアの他のZoomレベルも取得します。11, 12, 13, 14, 15と連続して取得した方がデバイス上での操作性が良いです。15まであれば、ほぼ実用的であると思います。Zoomレベル16まで取ると細かい路地まで表示されますが関東一円を取得すると何百MB単位になってしまいます。
実行中にERROR: Requested tile did not exist.のようなメッセージが出た場合は経度緯度の指定に間違いがあるかもしれません。 またTempTileファイルが見つからないようなメッセージの場合はwgetコマンドがうまく動いていない可能性があります。
[ 経緯度、Zoomレベルについて ]
東経を正数、西経を負数、北緯を正数、南緯を負数で表します。従ってアジアの場合どちらも正数になります。Zoomレベルは数値が小さいほど広い範囲を表示でき、大きいほど詳細な地図になります。
経緯度を調べるたりZoomレベルの目安を得るのにGoogle MapのURLリンク機能が使えます。Google Mapで経緯度を取得したい地点を中央にして アイコンをクリックもしくはマウスポインターを置きURLを表示します。URL中のll=が経緯度です。またz=で表示されている数値が Zoomレベルに相当します。
MGMapsのフォーラムで世界地図的なものはZoomレベル0-3で経緯度を90,-180と-90,180で取得すれば良いというポストがありました。大体は取れたけど、ちょっとつながっていないなぁ、まっいいか。 🙂
[ デバイスでの表示 ] – Nokia E61での実行例です
マップのコピー
MGMapsCacheV1MGMapsCacheフォルダーを丸ごとE61の外部メモリー(Mini SD)のルートにコピーしました。Sony Ericssonのデバイスでは、おそらくOtherとかDocumentというフォルダーの下にコピーしないとMGMapsから見ることが出来ないと思います。
Suite settingの変更
E61の場合、Menu/Tools/App.mgr.を開きます。Mobile GMapsを探しOptions/Suite settingsにて’Read user data’と’Edit user data’の設定を’Ask first time’もしくは’Always allowed’にします。日本語版E61での設定例は「PDAとGPS」にあります。
MGMapsの設定
Setting/Map BrowsingにてStored Mapsにチェックします。Storage PathがE:であることを確認します(Sony Ericssonでは、おそらくここにフォルダーを指定する必要があります)。
マップの表示
MGMapsで以前に目標地点付近を表示していたならズーム(*, #)をすることにより地図が表示されると思います。完全に迷子になっているのならばGo to機能が使えます。例えば関東でしたら Latitude 35 36 33, Longitude 139 43 30, Zoom Level 10で品川付近に移動すると思います。
エラー表示
まったく表示できず見当もつかないという場合にはMGMapsのHelp/Debug logが役に立ちます。各種エラーメッセージに混じって開こうとしている地図ファイルがパス名で表示されるので、実際にメモリーカードにコピーしたファイル名と比較してみると良いでしょう。
15 comments untill now