2010年6月6日日曜日

Google Maps APIのV2をV3へ移行する

Google Maps APIのv2が先月正式に非推奨になったのでwww.my-clip.netのAPIをv3へと移行した。v3になったことで大幅に変わった箇所がいくつかあるので下記に列挙しておく。

・API Keyはいらない
v2までは必須だったAPI Keyはもう必要ない。下記のようにVersionを含まないUrlをScriptタグのソースに指定すれば常に最新のライブラリが参照できるようになっている。
http://maps.google.com/maps/api/js?sensor=true_or_false

・google.maps名前空間の導入
v2まではグローバル空間にGMap2、GMarker、GPolyLineというクラスが配置されていたが、v3からはそれぞれgoogle.maps.Map, google.maps.Marker, google.maps.Polylineとなっている。これにあわせていくつかメソッドやプロパティも変更されているので注意するように。
例1:GMarker.getLatLng() → Marker.getPosition()
例2:GeocoderClient.getLocations() → Geocoder.geocode()
(GeocoderはCallbackメソッドのシグネチャと返却される値の構造が変わっているので要注意)

・GBrowserIsCompatible()、GUnload()がない
Referenceで明示的に廃止されたとは記述されていないけれど、Referenceに記述がないのとForumなどの他のユーザーからの報告をもとに類推すると現状上記二つのメソッドに対応するものはない

・StreetViewのサポート
StreetViewの導入がしごく簡単になった。google.maps.MapクラスがStreetViewをサポートするので、Mapクラスの初期化時にオプションでstreetViewControl: trueを渡してやるだけでStreetViewが使用できるようになる。詳細はここに載っているサンプルコードを参照してもらいたい。


クラスの配置場所が変わっているので移行作業が大変そうに映るが思ったよりも大変ではなかった。

1 件のコメント:

  1. New internet program (Maps API):
    GEOCONTEXT-Profiler generate topographic profile in a few seconds.
    Please test:
    http://www.geocontext.org/publ/2010/04/profiler/en


    --

    返信削除