Dropbox

MGMapsのローカルマップにすっかりハマっているわけですが、地図ファイルのコピーでMac OS Xのファインダーの挙動にとまどってしまいました。別地域の地図をMGMapsCacheにマージしようとHDD上のMGMapsCacheをMiniSD上にドラッグ・ドロップしたところ置き換えになってしまいました。Windowsであれば上書きで目的が達成できます。

古くからのMacユーザーには当たり前の事なのでしょうが、私のような新参者には驚きです。苦しいときのGoogle頼みで調べてみても今ひとつ良い解決策が見つかりません。結局のところターミナルを開いてrsyncコマンドを使うというのが手軽で良さそうです。Unixに馴染みのある人には説明の必要もない事ですが、自分自身の覚え書きの意味でコマンドの実行例と簡単な説明を書いておきます。

[ MGMapsCacheを例にとつた基本形 ]
rsync -avg ./MGMapsCache /Volumes/MCARD –exclude .DS_Store
(上のexcludeの前にあるハイフンは二つです)

普通はオプション avg を指定すれば良いようです。その他の注目すべきオブションは以下の通りです。外付けのドライブは /Volumes/ 下にマウントされます。
今回のようにMac以外のためにコピーする場合は –exclude .DS_Store を指定すると良いでしょう。(2007/07/02 追記)

[ その他のオプション ]
-S
ファイルの種類によってはスペース効率の良いコピーを行います。とりあえず指定しておくということでも構わないようです。どういうファイルに効くのか、私は今ひとつ分かっていません 🙁

-E
Mac OS Xのリソースフォークも一緒にコピーする時に指定します。今回のようにSDカード(FAT)にコピーするときは必要ありません。

-u
このオプションはコピー元、コピー先に同じファイル名が存在するときに意味を持ちます。コピー先の同名ファイルのタイムスタンプが新しい時に -u が指定されているとコピーを行いません。

[ コピー元のパス名の最後の / の有無 ]
コピー元のパス名の最後に / を付けるかどうかで挙動が変わります。通常は深く考えずに使用すれば大丈夫と思いますが、思わぬ結果を招くことがあるので練習をしておくことをお勧めします。

パス名の最後に / を付けると、そのディレクトリーのコピー先での作成を抑制するというのが、その意味です。例えば ./MGMapsCache の場合は MGMaspCache自体もコピーの対象になりますが ./MGMapsCache/ にすると MGMapsCacheの下にあるディレクトリーとファイルがコピーの対象になるという意味です。

VMware FusionでUSBデバイスの接続障害

Mac OS Xを10.4.10に更新後VMware FusionのゲストマシンにUSB機器が接続できなくなってしまいました。例えばメモリーカードなどを接続しようとするとMac OS XからアンマウントはされるのですがVMware側では接続されないままです。

VMware Fusion Beta 4.1 (Build 49528)を導入することで解決します。

MGMapsのローカルマップを使用すると大量の小さな画像ファイル(Map Tiles)をメモリーカードに持つことになります(jar等にまとめることも検討中のようです)。それがデバイスの画像ギャラリーから見えてしまう、あるいはデバイスが画像ファイルとしてカタログしてしまうという問題はMGMapsのフォーラムでも早くから提起されていました。ファイル数が少なければ良いのですが時には何万というファイル数になるので影響は大きいです。

MGMapsのローカルマップ対応版がα2に成ったときに画像ファイルの拡張子がmgmに変更されたのは、画像ファイルに見せないようにするための対策でした。これは一部のデバイスには有効なのかもしれませんが、私のNOKIA E61は画像ファイルであると判断してしまいました。

対策は単純です、Windows PCなどを使用してMGMapsCacheフォルダーに隠し属性を設定するとE61のギャラリーからは見えなくなります。ただし、一度ギャラリーにカタログされたファイルは隠し属性設定後も見えてしまいます。忙しくて 🙁 、解決方法を確定できていません。たしかMGMapsCacheを見えている状態だか隠しの状態だかで別の名前に変更しギャラリーに一度見せてから隠し属性を持ったMGMapsCacheにしたように思います。詰めの甘い報告で申し訳ないです。

追記) ギャラリーのカタログの消し方をコメントにてJackOneさんに教えていただきました。
一度でもギャラリーが画像ファイルとして認識すると隠し属性を設定しても画像ファイル一覧に現れてしまいます。これを解決するためには、
– E:/System/data/mg2/DB/Eフォルダを削除
– もしローカルマップのフォルダ内に_PAlbTNフォルダが出来ていたらそれも削除
を実行します。

kml2map – KMLファイルから MGMaps のローカルマップを作成

MGMapsのフォーラムにてKMLファイルからローカルマップ(Stored Map)が作れたらいいなぁという書き込みがありました。それに応えて作成したのがkml2map.plです。このプログラムはKMLファイルを読み込みMapTileFE.plに与える地図定義を出力します。

KMLファイルはGoogle EarthやGoogleマップにおける地理データの規格です。ここで取り扱うKMLファイルはGPSのログとして移動の軌跡を記録した物です。その中のLineStringタグ内にある経緯度の情報を分析し、軌跡が含まれる範囲のローカルマップを作成します(実際に地図を作成するのはMapTileFE.plですが)。

プログラムはMGMapsフォーラムのPost .map file hereトピックの最初のメッセージにあります。

パラメーターとしてKMLファイル名を与えると画面に地図定義を出力します。実際にMapTileFEに与えるためにはリダイレクトでファイルにしないといけません。オプションにより地図の種類(GoogleMapのようなもの)、軌跡の周りに取るマージンなどを変更出来ます。詳しくはプログラムに添付されているreadme.txtをご覧ください。

VMware Fusion Pre-Order

6月12日からですから、すでに10日ほど経過していますがVMware Fusion Pre-Orderプログラムというものが開始しされています。VMware Fusionは8月末に正規版の出荷が始まる予定ですが、それまでの間、ライセンスを半額の$39.99で購入できるプログラムです。

いずれVMware Fusionを購入すると決めている方は忘れないうちに購入しておくと良いと思います。

MGMaps ローカルマップ(Stored Map)で中国の地図を見ることが出来るようになりました。実際にはMGMaps本体は最初から対応していたようです。地図を取得するためのMapTileCacher v1.11にてGoogleChinaの指定が出来るようになったものです。

そこで蘇州、杭州の詳細地図を含む上海地区の地図定義ファイルを作りMGMapsフォーラムのPost .map file hereトピックにアップロードしました。

ネットプリント、コンビニ印刷サービス

ただいま自宅にプリンターが無い状態で生活しています。普段、めったなことではプリンターを使わないので大丈夫と思っていたのですが、どうしても紙に出さねばなせない書類をPDFで受け取りました。ビジネス向けサービスをやっている店舗などを使用することを考えたのですが近くにはありません。

困ったときのGoogle頼みで色々検索していたところ見つかったのがネットプリントというサービスです。オンラインで無料のユーザー登録をしてサーバーに印刷したいファイルをアップロード、プリント予約番号を持って近所のセブンイレブンのマルチコピー機を使って自分で印刷。という具合でとても手軽で経済的に印刷出来ました。セブンイレブンには良く行くのに、そんなサービスがあるとは気づきませんでした。

MGMapsローカルマップ(Stored Maps)を使用すると、マップタイルと呼ばれる地図ファイルが大量に必要となります。そのファイルの一つ一つが数KBと比較的小さなファイルであるため断片化により実際のファイルサイズ以上のエリアを消費してしまいます。

この問題は既にMGMapsのフォーラムで話し合われています。断片化を防ぐためには大きなファイルにzip やjarでまとめるなどの方法が提案されていますが、技術的な問題もありどうなるかは判明していません。

そこで取りあえずの対策として、もしメモリーカードがFAT16でフォーマットされている場合はFAT32に変更しクラスターサイズを小さくして断片化の影響を軽減する方法があります。

私の場合Nokia E61に2GBのMiniSDカードを入れています。このカードは(多分)購入してきたままの状態で使用していましたのでFAT16になっています。この時Mac OS Xのファインダーでボリューム情報を見ると空き容量849MB、使用状況1.06GBとなっていました。

このMiniSDカードの中身をPC上に移動し、FAT32でフォーマットし直しました。その後PC上に移動したデータを書き戻してみたら、空き容量1.21GB、使用状況692.1MBとなりました。なんと300MBほども節約できています。地図以外にも小さなファイルは沢山入っているし最初からFAT32にしておくべきだったなぁと思います。これからはカードを最初にFAT32でフォーマットするようにしよう。

MGMapsのオフラインマップ作成に挑戦されている方は、経緯度を調べて、キーボードから何度も同じ経緯度を入力しなければならないのに退屈している頃と思います。将来のMap作成ツールは何かしら改善があるものと期待しますが、とりあえず現在の物を補う形の補助ツールを作成しましたのでお知らせします。

このツールではマップ定義ファイルというものを使用することにより経緯度を何度も入力するという手間から解放されます。また定義ファイルをユーザー間で交換することにより、他の人が作った地図の定義を再利用できるという利点もあります(交換の場が必要ですね)。実際、ツールに添付するサンプルとして多少ましな物を作るのに、ツールをプログラムする時間より多くの時間を費やしました。それくらい面倒な仕事ですし、ユーザー全員が苦労する必要は無いと思います。

マップ定義ファイルをポストするためのトピック「Post .map files here」がMGMapsのフォーラムで立ち上がりました。MGMapsの作者、ほんとうに対応が早いです。(2007/06/17 00:00更新)

このツールにはTokyoとHongKongの二つの定義がサンプルとして入っていますので、これをそのまま使用すれば手間無しで東京と香港の地図が手に入ります。また自分用に手直しするのも簡単だと思います。

[ ツールの入手 ]
MGMapsのフォーラム、Stored Mapsスレッドの15ページ目くらいに貼り付いているMapTileFE.zipをダウンロードしてください。
新しいトピックが立ち上がりました。Post .map files hereにプログラムがあります。

[ 前提 ]
MapTileCahaer.perlが動作すること。「MGMaps オフラインマップの作り方、具体例」参照。

[ 準備 ]
MapTileFE.zipの中身をMapTileCacher.perlと同じフォルダーに展開してください。MapTileFEはマップ定義ファイル(拡張子がmapのファイル)に基づいて地図ファイルを取得します。オリジナルの地図を作成する場合はサンプルとしてTokyo.mapとHongKong.mapが入っていますので、これらを参考に定義ファイルを作成します。

[ 実行 ]
perl MapTileFE.pl をコマンドラインに投入します。定義ファイルの一覧が表示された後に、定義ファイル名を入力してください(拡張子は入れません)。または perl MapTileFE.pl Tokyo のようにパラメーターとして指定することも出来ます。

[ マップ定義ファイル ]
サンプルの中身を見てもらうと大体は分かると思います。
– シャープ記号 ‘#’ で始まる行はコメントです。
– コメントを除いて最初にあらわれる行はMap Type (GoogleMapのようなもの)を表します。
– 残りの行は、Zoomレベルと座標の定義です。この定義は必要なだけ幾つでも入れることができます。フォーマットはZoom_level : TopLeft : RightBottomのようになっています。それぞれのパートはセミコロンで区切ります。Zoom_levelは、一つのZoomレベルもしくは0-10のように範囲でも指定できます。TopLeft, RightBottomは、取得する地図の左上と右下をそれぞれ緯度、経度で表した物です。このあたりはサンプルを見てもらった方が良いでしょう。

MGMaps the second alpha versionが出ています。MGMapsフォーラムのStored Mapsスレッドにてアナウンスおよび実行ファイルの配布が行われています。

ただいま検証中ですが主な変更点は以下のようになっています。

  • Nokia S40デバイス・サポート
    うーむ、持っていないので検証出来ないです。
  • titles(地図ファイル)の拡張子がmgmに変更された。これはギャラリープログラムが大量のtitlesを表示してしまうことを回避するためのようです。
    わたしのE61では依然としてMedia/Gallery/Imagesで沢山の地図が見えています。
  • 地図のフォルダー名がMGMapsCacheに変更された。
  • 地図の表示が速くなった。
    たしかにスクールして行ったときの感じが良くなりました。
  • Mac OS Xでは追加のプログラム(wget)無しで地図が作れるようになりました。
    わたしの提案したパッチを採用してくれました。 🙂

最初のアルファ版で作った地図ファイルと拡張子が変わったりしてるので、そのまま使えません。古い地図ファイルを新しい物に変更するためのPerlスクリプトも提供されています。アルファ版なので大胆な変更も致し方ないのですが、ちゃんとフォローがあるので安心ですね。

マップの作り方も後で更新しておきます。