Rich Gibson & Schuyler Erle著 武舎広幸+福地太郎+武舎るみ訳 GOOGLE MAPS HACKSTM

付録2 Google Maps APIバージョン1とバージョン2の相違点

APIバージョン1が使われているページをバージョン2にする作業をなさる方のために、両者の違いを簡単にまとめてみました。

おもな違い

  • マップのクラスとしてGMapの代わりにGMpa2というクラスが使われます。GMap2にはGMapにはなかった機能がいろいろと含まれています。
  • バージョン1のGMapクラスもサポートされていますので、それほどの問題は起こらないはずです。Googleでは99%互換であると書いています。
  • 新しいバージョン2のAPIを使うにはディベロッパーキーの"v=1"のところを"v=2"とすればOKです。 基本的にはこれだけで修正無しですべてのサイトが動くはずですが、何らかの事情で動かなくなる可能性があるとのことです。
  • 上と関係しますが、公開されていなかったAPIについては変更点があるとのことです。 インターネットなどでGoogle以外の人によって公開されていた方法を元にバージョン1の非公開のAPIを使っている場合は、特に注意が必要です。
  • バージョン1は2006年11月8日にシャットダウンされました。これからは、ソースでバージョン1が指定されていても、バージョン2が使われます。少なくとも1ヶ月間はサポートされるそうですが、それ以上は保証されないとのことです。 (もうバージョン2が公開されてから1ヵ月以上経過していますので、いつサポートされなくなるかわからないということになります)。
  • GMap2クラスにはsetCenter()というメソッドが追加され、これひとつで、中心の指定、ズームレベルの指定、地図のタイプの指定ができるようになりました。 これまで使われていた、centerAndZoom()、setMapTypeは使わなくてもよくなります。 なお、今まではsetMapType()を呼んでからcenterAndZoom()を呼んでも動いていましたが、バージョン2ではこの順番での呼び出しは動作しません。
  • ズームのレベルの順番が反対になりました。 0がもっとも拡大率の低い(広範囲を覆う)地図です。 こうすることにより、ズームレベルの上限をこれからもあげることができます。 これまでのズームレベルからの変換は次の式で行えます。
      <新しいズームレベル> = 17 - <以前のズームレベル>
  • 地図のタイプを表す定数が変わりました。
    • G_NORMAL_MAP ― 地図
    • G_SATELLITE_MAP ― 航空写真(サテライト)
    • G_HYBRID_MAP ― 地図+写真(ハイブリッド)
  • とくにIE使用時のメモリリークをなくすためunload時にGUnload()を呼ぶことが推奨されています。 次のようにするのがよいとのことです。
        <body onunload="GUnload()">
  • デバッグ用にGLog.write()という関数が加わりました。alert()を使って途中で止めなくても、 デバッグ用のメッセージを表示することができます。使い方は『追加情報5 GLog.write()の使い方』をご覧ください。
  • タブ付きの情報ウィンドウが加わりました。『追加情報4 タブ付きの情報ウィンドウ』 に簡単な説明を書きましたのでご覧ください。

バージョン2対応にするために必要な主なこと

バージョン1対応のプログラムをバージョン2対応にするのに必要なおもな事柄をリストしてみました。ご参考まで。

  • ディベロッパーキーの「v1」 → 「v2」
  • GMap → GMap2
  • Gmap.centerAndZoom(Point, ZoomLevel) → GMap2.setCenter(GLatLng, 17-ZoomLevel)
  • new GPoint(x, y) → new GLatLng(y, x);
     ただし、GMarkerに渡すのはGLatLngではなくGPoint
  • map.addControl(new GSmallMapControl()); をsetCenter(以前は代わりにcenterAndZoomが使われていた)の後に移動(このほかのコントロールも同様)。
  • Point → GLatLng (多くの場合というだけで全部ではありません)
  • GMap.recenterOrPanToLatLng(GPoint) → GMap2.panTo(GLatLng)

GPS装置

マーリンアームズの書籍のご紹介