VISH,Inc.

Google Maps JavaScript API V3

Google Maps JavaScript API V3

最近、様々な案件で利用する事が多い、Google Maps。
比較的、お堅い組織のサイトでも導入されている事が多いですね。

そんなGoogle Maps APIの次期バージョン「Google Maps JavaScript API V3」が
出ていた事を今ごろ知ったので、調べてみました。

V2→V3への変更点

1.ライセンスキーが不要に。
2.改良されたMVCを採用。
3.モバイル機器(特にAndroid携帯とiPhone)に対応した機能。

現在はGoogleの実験プロジェクトを公開する場であるGoogle Labsでの提供です。

それでは、もっともシンプルな地図を表示するサンプルで、
どのくらい書き方が変わっているのかを見てみましょう。

V3を使ってシンプルな地図を表示
V2を使ってシンプルな地図を表示

ソースの全文は一番最後に掲載していますので、
参照してください。
それぞれ、ディベロッパーガイドにあるサンプルコードを
比較のために少しだけ改変した物です。

以下からは、差分だけ見ていきます。

メタタグの指定

V2にはなかったmetaタグの指定が。
iPhoneでフルスクリーン表示やユーザーによるスケール指定可否などを設定する模様。
 ※iPhone持ってません…

V3

<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 

Javascriptの呼び出し

URLが一部変更になり、「v=2」の様なバージョン指定が無くなりました。
sensor=falseというのは、位置情報を取得できる端末か(位置情報を利用するか)の指定です。
PCなど、位置情報を取得しない機器の場合は、falseを設定する事が推奨されています。
が、なんと言ってもAPIキーが不要になった事でコードがスッキリ!うれしい!

V3

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

V2

<script src="http://maps.google.com/maps?hl=ja&amp;file=api&amp;v=2&amp;key=ABQIAAAAcIfth0ACOFfTEtGgfXPQvhT3EZ6WUiOzmvmfKH_ylmWD3s_VhRSsC-wlehYYcqE5hKuV0fMP0O2nag" type="text/javascript"></script> 

座標を指定するクラス名

google.maps.という書き方はした事なかったんですが、この名前空間はv2でも使えるそうです。
( GMap2 → google.maps.Map2 )

V3

var myLatlng = new google.maps.LatLng(-34.397, 150.644);

V2

var myLatlng = new GLatLng(-34.397, 150.644);

中心地点やズームの指定

オプションを配列にセットしておいて、Mapオブジェクト生成時に引数としてセット。
V2ではmapオブジェクトを生成してから、setCenterしてました。
スケール設定や地図種別選択のコントロールがデフォルトで出るように。
また、V3では地図種別の初期値を示すmapTypeIdは必須です。

V3

var myOptions = {
  zoom: 8,
  center: myLatlng,
  mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

V2

var myZoom   = 8;
var map      = new GMap2(document.getElementById("map_canvas"));
map.setCenter(myLatlng, myZoom);

と言うことで、もっともシンプルな地図表示での比較をお届け致しました。
ただ、最も恩恵が受けられるであるAndroid端末やiPhoneでの実験ができてないのですが、
その辺りは実機を持ってる方にお願い致しましょう!

参考資料

ディベロッパーガイド (Google Maps API Version3 日本語ドキュメント)
The Google Maps API V3 – Google Maps JavaScript API V3 – Google Code

サンプルコード

以下、比較に使用したサンプルコードです。

こちらは見慣れたV2版。
———————————————————————————–

<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google Maps JavaScript API v2 Example: Map Simple</title>
    <script src="http://maps.google.com/maps?hl=ja&amp;file=api&amp;v=2&amp;key=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA" type="text/javascript"></script>
    <script type="text/javascript">
    function initialize() {
        var myLatlng = new GLatLng(-34.397, 150.644);
        var myZoom   = 8;
        var map      = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(myLatlng, myZoom);
    }
    </script>
  </head>
  <body style="margin:0px; padding:0px;" onload="initialize()" onunload="GUnload()">
    <div id="map_canvas" style="width:100%; height:100%"></div>
  </body>
</html>

———————————————————————————–

こちらが新しくなったV3版
———————————————————————————–

<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps JavaScript API v3 Example: Map Simple</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&language=ja"></script>
<script type="text/javascript">
  function initialize() {
    var myLatlng = new google.maps.LatLng(-34.397, 150.644);
    var myOptions = {
      zoom: 8,
      center: myLatlng,
      mapTypeId: google.maps.MapTypeId.SATELLITE
    }
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  }
</script>
</head>
<body style="margin:0px; padding:0px;" onload="initialize()">
  <div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>

———————————————————————————–

blog.vish.co.jp

Leave a Reply


VISH企業サイト
サイトマスター.jp
モバイルサイト制作・構築