« [chumby]chumbyにUSBカメラをつないでみた | Main | [iPhone]iPhone 3Gの「カメラ」のシャッター音を消し、あの聞こえづらいメール着信音を変更する »

2008.07.21

[iPhone]iPhone 3GのSafariと「マップ / Googleマップ / GMaps.app」の連携:ぐるなびの地図表示地点を「マップ」で表示

iPhone 3GにはGPSが搭載されており、iPhone SDKからもCore Locationを通して位置情報の取得ができるので、今後面白いソフトウェアが出てくるものと予想されます。

ネイティブアプリに踏み込む前に、Safariでも位置情報関係で面白いことはできんかな、ということで、Safariと「マップ / Googleマップ / GMaps.app」の連携をするブックマークレットを簡単に作ってみました。

今回作ったものは、ぐるなびで店を検索し、地図を表示させてからこのブックマークレットを起動すると「マップ / Googleマップ / GMaps.app」が起動、お店の場所にピンを立てられるというものです。

ピンが立った地点をブックマークすればGPSで現在位置を確認しながら店探しができるので、たどり着くのが簡単になるんじゃないでしょうか。

▼まずぐるなびで地図を表示

Gurunavi_01

▼ブックマークから今回のブックマークレットを起動

Gurunavi_02

▼「マップ」が起動して、地図と同じ地点にピンが立ちます

Gurunavi_03

ブックマークレットの登録

あんまりテストしていないので、無保証です。

javascript:var u,l;var pfx="http://maps.google.com/maps?q=";var dl=document.links;for(var i=0;i<dl.length;i++){u=String(dl[i]);if(u.match(/.+map\.php.+/)){rg=/.+pos=(\d+)\/(\d+)\/([0-9.]+),(\d+)\/(\d+)\/([0-9.]+).+/;l=unescape(u).match(rg);for(var j=1;j<l.length;j++){l[j]=parseFloat(l[j]);};lat=l[1]+(l[2]/60)+(l[3]/60/60);lon=l[4]+(l[5]/60)+(l[6]/60/60);lat=lat-lat*0.00010695+lon*0.000017464+0.0046017;lon=lon-lat*0.000046038-lon*0.000083043+0.010040;window.location=pfx+lat+"+"+lon;break;}}

ブックマークレットは、母艦のIEやSafariなど、iPhone 3Gとブックマークレットの同期をしているブラウザに登録して、iTunes経由で登録すると楽かと思います。

あるいは、この「リンク先」をiPhone 3GのSafariにブックマークします。URLには今回のブックマークレットが丸々付いているので、URLの「javascript:」以前を削除すれば登録できます。
ブックマークのURLは、一度ブックマークしてからでないと編集できないので注意してください。

ぐるなびの使う測地系は日本測地系、マップの使う測地系は世界測地系なので、座標変換をしなければなりません。モロデンスキー変換をしなけりゃならないのか、と憂鬱になりましたが、近似値を出す超簡単な変換式を以下のエントリで発見したので、それで難を逃れました。
この場をお借りしてお礼申し上げます。

oitale blog:ぐるペパ:Google Maps内に全情報を表示する方向へ

|

« [chumby]chumbyにUSBカメラをつないでみた | Main | [iPhone]iPhone 3Gの「カメラ」のシャッター音を消し、あの聞こえづらいメール着信音を変更する »