お気に入り | 日本語 | ログイン

Google Maps API バージョン 2 アップグレード ガイド

このドキュメントでは、Google Maps API のバージョン 1 から 2006 年 4 月 3 日にリリースされたバージョン 2 にアップグレードする方法を説明します。2006 年 4 月 3 日以前に開発したサイトの場合、最新バージョンの API を使用するには、このドキュメントの指示に従ってサイトを更新する必要があります。

目次

はじめに

アップグレードの概要

Maps API のバージョン 2 は、旧バージョンの API と 99% の下位互換を実現するように設計されています。バージョン 2 は新しいマップ クラスとして GMap2 を導入しています。これには新しいメソッド名で更新されたインターフェースが含まれます。古いマップ クラスである GMap は、バージョン 2 の API でも存続し、バージョン 1 の API と同じ文書化されたインターフェースが含まれます。ただし、バージョン 2 の API で導入された新しい機能のほとんどは、新しい GMap2 の地図インターフェースでのみ機能します。

この設計では、以下の 2 つのアップグレード パスがあります。

  • バージョン 2 の新しい機能がない同じ GMap インターフェースを使い続けます。
    最も速くアップグレードする方法は、v=1 の代わりに v=2 を参照するように Maps API <script> URL を更新することです。バージョン 2 は古い GMap インターフェースを保持しているので、理論上、サイトは変更しなくても引き続き機能します。しかし実際には、若干のデバッグが必要になる場合もあります。API のバージョン 1 とバージョン 2 との既知の非互換性のリストについては、非互換性のセクションを参照してください。また、問題が解決しない場合は、Maps API ディスカッション グループにご参加ください。
  • バージョン 2 の機能を活用するために GMap2 インターフェースにアップグレードします。
    タブ付き情報ウィンドウやカスタム マップ コントロールなどのバージョン 2 の機能を活用するには、GMap に代えて GMap2 を使用します。まず、v=1 の代わりに v=2 を参照するように Maps API <script> URL を更新し、その後、下記の詳細なGMap2アップグレード ガイドに従ってコードを更新します。

バージョン 1 と 2 の API 間で文書化されていない機能の多くが維持されていません。これは、この新しいバージョンの API にアップグレードするサイトにとって最大のストレスになると考えられます。

アップグレードが必要なケース

どの Maps API サイトもアップグレードが必要です。バージョン 2 には Maps API の基礎部分に対する重要な拡張が多数含まれており、ほとんどのサイトが正常にアップグレードされれば、バージョン 1 は使われなくなります。

報告されるバグがどんなに少なくてもバージョン 1 とバージョン 2 は最低 1 か月間は共存し、移行に多くの問題や複雑な問題が報告された場合はバージョン 1 の存続延長を検討します。共存期間が終了すると、バージョン 2 が「デフォルト」となり、すべてのサイトは自動的にバージョン 2 を使用するようになります。問題は、Google Maps API ディスカッション グループにご報告ください。このサイトには Google のサポート スタッフもモデレータとして参加しています。

バージョン 1 とバージョン 2 の非互換性

バージョン 1 とバージョン 2 の間で互換性のない文書化された機能には、わずかながら以下のようなものがあります。

  • GXslt ブラウザのサポート
    GXslt はネイティブ XSLT サポートを備えたブラウザのみをサポートするようになりました。Safari にはネイティブ XSLT サポートがないため、GXslt は Safari をサポートしなくなりました。Google のオープン ソース AJAXSLT ライブラリを使用すれば、お使いのアプリケーションにとって重要な動作を Safari で再生することができます。
  • openInfoWindowXslt() メソッド
    GXslt の変更により、GMapGMarkeropenInfoWindowXslt() メソッドをサポートしなくなりました。
  • 地図の初期化の順序 (setMapType)
    バージョン 1.0 では、centerAndZoom の前に setMapType を呼び出すことができました。バージョン 2.0 では、地図の場所が初期化される前に setMapType を呼び出すことはできません。GMap2 にアップグレードする場合は、GMap2 で新しい setCenter メソッドを使用し、1 回のメソッド呼び出しで中心、ズーム レベル、マップ タイプを初期化することをお勧めします。
  • 文書化されていないメソッド
    Maps API のバージョン 2 では、API の主要部分が大きく変更されているため、文書化されていない機能のほとんどすべてが変更されるか、サポートされなくなっています。

GMap から GMap2 へのアップグレード

GLatLng クラス

地理的座標とピクセル座標が、GPointGLatLng という別のクラスとして表現されるようになりました。setCenter のようなメソッドが GPoint のインスタンスの代わりに GLatLng のインスタンスを使用するようになったため、GMap2 にアップグレードする場合、これを反映するためにメソッド呼び出しの多くを更新する必要があります。

バージョン 2 では、国際日付変更線を正しく順守する GLatLngBounds クラスも導入しています。

詳細については、クラス リファレンスを参照してください。

ズーム レベルの順序

GMap2 のズーム レベル インデックスは、精細レベルではなく粗大レベルで 0 から始まります。これによって地図の解像度を自由に上げることができるようになり、高解像度の画像の導入が容易になります。古いズーム レベルと新しいズーム レベルは、以下の式で切り替えることができます。

newZoom = 17 - oldZoom

マップ タイプ名の変更

バージョン 2 の API では、マップ タイプ(地図、航空写真、地図+写真)に新しい名前が追加されました。

  • G_NORMAL_MAP
  • G_SATELLITE_MAP
  • G_HYBRID_MAP

メソッド名の変更

GMap インターフェースのメソッドの多くが、GLatLng クラスを使用する新しいメソッドに置き換えられ、新しい拡張可能な GMap2 インターフェースとの整合性が向上しました。コンストラクタ呼び出し、メソッド起動、イベント ハンドラは、下表に基づいて更新できます。

タイプ バージョン 1
バージョン 2
コンストラクタ GMap(container, mapTypes?, width?, height?)
GMap2(container, opts?)
メソッド GMap.getCenterLatLng()
GMap2.getCenter()
メソッド GMap.getBoundsLatLng()
GMap2.getBounds()
メソッド GMap.getSpanLatLng()
GMap2.getBounds()
メソッド GMap.getZoomLevel()
GMap2.getZoom()
メソッド GMap.centerAtLatLng(center)
GMap2.setCenter(center, zoom?, type?)
メソッド GMap.centerAndZoom(center, zoom)
GMap2.setCenter(center, zoom?, type?)
メソッド GMap.recenterOrPanToLatLng(center)
GMap2.panTo(center)
メソッド GMap.zoomTo(level)
GMap2.setZoom(level)
メソッド GMap.openInfoWindow(point, node, offset?, onopen?, onclose?)
GMap2.openInfoWindow(point, node, opts?)
メソッド GMap.openInfoWindowHtml(point, html, offset?, onopen?, onclose?)
GMap2.openInfoWindowHtml(point, html, opts?)
メソッド GMap.openInfoWindowXslt(point, node, xslturi, offset? , onopen?, onclose?)
-
メソッド GMap.showMapBlowup(point, node, offset?, onopen?, onclose?)
GMap2.showMapBlowup(point, opts?)
イベント GMap.click(overlay, point)
GMap2.click(overlay, point)
イベント GMap.zoom(oldLevel, newLevel)
GMap2.zoomend(oldLevel, newLevel)
コンストラクタ GMarker(point, icon?)
GMarker(point, icon?, inert?)
メソッド GMarker.openInfoWindow(content)
GMarker.openInfoWindow(content, opts?)
メソッド GMarker.openInfoWindowHtml(content)
GMarker.openInfoWindowHtml(content, opts?)
メソッド GMarker.openInfoWindowXslt(xml, xslt)
-
メソッド GMarker.showMapBlowup(zoom?, type?)
GMarker.showMapBlowup(opts?)
コンストラクタ GPolyline(points, color?, weight?, opacity?)
GPolyline(points, color?, weight?, opacity?)
コンストラクタ GIcon(copy?)
GIcon(copy?, image?)
コンストラクタ GBounds(minx, miny, maxx, maxy)
GBounds(points)
定数 G_MAP_TYPE
G_NORMAL_MAP
定数 G_SATELLITE_TYPE
G_SATELLITE_MAP
定数 G_HYBRID_TYPE
G_HYBRID_MAP
静的メソッド GXml.parse(xmltext)
GXml.parse(xmltext)
メソッド GXslt.transformToHtml(xmlnode, htmlnode)
GXslt.transformToHtml(xmlnode, htmlnode)

バージョン 2 の新機能

Maps API のバージョン 2 には、以下のような多数の新機能が導入されています。

  • 小さくなった JavaScript のダウンロード サイズ
    新しい Maps API JavaScript ファイルは従来の JavaScript ファイルの約半分のサイズで、Web サイトでのユーザー エクスペリエンスを向上します。
  • 2 つ追加された航空写真のズーム レベル
    アメリカ合衆国、カナダ、英国、日本、ヨーロッパおよび世界のほとんどすべての主要都市で対象範囲を広げ、画像の解像度を上げました。
  • 概要マップ コントロール
    新しい GOverviewMapControl コントロールは、画面の隅に折りたたみ可能で魅力的な地図を表示します。
  • カスタム マップ コントロール
    GControl のサブクラスを定義して、GSmallMapControl のような組み込みコントロール以外にカスタム マップ コントロールを定義できます。詳細については、またはクラス リファレンスを参照してください。
  • カスタム マップ オーバーレイ
    GOverlay のサブクラスを定義して、組み込みの GMarker クラスや GPolyline クラスのほかにカスタム マップ オーバーレイを定義できます。詳細については、またはクラス リファレンスを参照してください。
  • 少なくなったメモリ リーク
    ページの unload イベントを呼び出せる GUnload() メソッドが API に追加され、ほとんどの循環参照 (イベント登録時に暗黙に形成されたものを含む) を破棄できるようになりました。その結果、Google マップでは実際に IE でのメモリ リークが解消しました。詳細については、ドキュメントを参照してください。
  • デバッグ ログ
    Google マップ エンジニアリング チーム内部で使用しているシンプルなフローティング デバッグ ウィンドウを使用すると、プログラムの実行や UI を妨げることなく簡単にデバッグ情報を印刷できます。その手順は、alert() 呼び出しを GLog.write() に置き換えるだけです。詳細については、クラス リファレンスを参照してください。