[API]久々のGoogle Maps API、というよりもGoogle AJAX API
なんだか久々にGoogle Maps APIをはじめとするGoogle AJAX APIを使っているんですが、前には見なかった機能がいくつかあったので、メモ:
google.loader.ClientLocation
ずいぶん前からGoogle Maps APIを使うときにも、Google AJAX API loaderを使うようにしているんですが、この場合、google.load(’maps’, ‘2′) みたいにAPIをロードすると、google.loader.ClientLocationというオブジェクトが自動的に生成されるようになったみたいです(日本語訳がまだされてませんねw)。
これは、クライアントのIPアドレスから現在地を推測するというやつですね(ONGMAPではGeoIPというAPIを使って同じことを実現していますが、これでGeoIPのAPIを使う必要がなくなりましたね)。
(ちなみに、Google Maps APIのサインアップ画面に表示されるサンプルはいまだにAPI loaderじゃない方式なんだけど、これはいつになったら更新されるんだろ?)
APIの動的ローディング
Google Maps APIみたいな外部APIをExt JSから動的に呼び出したいな思って色々とやっているんですが(そっちは別の機会に書きたいと思いますが)、Google AJAX APIそのものが動的呼び出しを考えた仕様になったみたいですね。
まず、API loaderが、コールバックを受け取れるようになっている(前から?)
google.load('maps', '2', {callback: function(){...});
みたいな感じで書くことができます。
あと、スクリプトタグのパラメーターとしてコールバック関数を指定することも可能になってます:
http://www.google.com/jsapi?key=.........&callback=hoge
みたいな感じ。
Google Maps APIって読み込みに結構時間がかかるので、この辺のやり方をうまく組み合わせればページの表示速度(体感速度)が結構あがりますよね。
iPhone/iPod Touch対応
これはまだ試してないですが、GMap2に「enablePinchToZoom()」というメソッドが追加されていました。これで、あとはマーカーの挙動がきちんとすれば、iPhone対応の地図のマッシュアップサイトがサクッとできそうです。
追記:
簡単なコードで試してみました。
- enablePinchToZoom()を使うにはバージョンを「2.x」にする必要があるようです。
- 二本指でのズームイン・ズームアウトはできますが、enableContinuousZoom()にしても、さすがにアプリのようにスムーズには動きませんw
- マーカーは、、、まだ微妙ですね。一応タップするとinfoWindowは開くけど、右上の×をタップしても中々閉じない(タブは使えない・・・)
Posted: 2009/02/13 under API| Comments: 0

記事 RSS
