gmaps.v3.js - 概要
動作確認: ○IE6SP2,IE8(WinXP) ○Firefox19(WinXP)
Last Update: Mar.29,2014

■ V2 のソースのまま、V3 化する

Google Maps API が、V2 から V3 にバージョンアップされました。しかし仕様が大きく変更されたために、ソースに互換性がありません。V2 は2013年11月19日までは使えるようですが、既に「Deprecated(非推奨)」と表示されています。そこで、需要があるかどうかは分かりませんが、V2 で書かれたグーグルマップのプログラムを出来るだけソースを変更しないで V3 化するライブラリを書いてみようと考えました。JavaScript の継承を利用して、V3 のクラスから、V2 と同名のクラスを派生させたりなど、色々な方法を試しましたが、結局、素直に V3 のオブジェクトを V2 と同名のクラスでラッピングする方法に落ち着きました。たとえば、

var GMap2 = function(node) {
  this.v3 = new google.maps.Map(node);
};

とします。これにより、以下のようなソースが書かれていれば、

var map = new GMap2(document.getElementById("map_canvas"));

内部では、V3 の google.maps.Map オブジェクトが生成されるわけです。この方法の欠点は、丸々コーディングしなければならず、面倒な上にファイルサイズも大きくなってしまうことです。

■ うまく行かない部分について

正直、動けばいいや的な実装で、かなり逃げているところがあります。

実は、V2 と V3 では、機能面でも互換性がない部分があり、また、現在の V3 では、V2 で出来たことのいくつかが出来なくなっています。たとえば、

  1. GMapType クラスに相当するものがなくなり、デフォルトの4つのマップについては文字列型の MapTypeId で管理するようになっています。
  2. GMap2.getBounds() と異なり、Map.getBounds() は、マップが完全に初期化されないと値を取得できなくなりました。
  3. GNavLabelControl, GGoogleBar など、V3 では未実装のものがかなりあります。今後、どうなるかはわかりませんが、とりあえず、GNavLabelControl については中途半端な出来ながら、独自に実装してみました。

具体的にテストした結果については、「サンプル対応表」に簡単にまとめてあります。

■ 使い方

使い方は簡単です。V2 の API を呼び出している部分

<script type="text/javascript"
src="http://maps.google.com/maps?file=api&v=2&key=XXXXXXXX"></script>

を、V3 の API の呼び出しコード

<script type="text/javascript"
src="http://maps.google.com/maps/api/js?sensor=false"></script>

に置き換え、その下に gmaps.v3.js(または、gmaps.v3.min.js)を呼び出すコードを入れるだけです。

<script type="text/javascript" src="gmaps.v3.js" charset="utf-8"></script>

■ ダウンロード ver.0.6


戻る Copyright (c) 2010, 2011, 2013, 2014 AOK. All Rights Reserved.