例−10:JSON形式のデータを読み込んで、マッピングする

フォームのボタンを押すと、マーカーが追加されます。
マーカーをクリックすると、フォームで入力した文字が表示されます。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Google Maps JavaScript API Example</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>

    <script src="http://maps.google.co.jp/maps?file=api&v=2&key=[あなたのAPIキー]&sensor=false"
            type="text/javascript"></script>

    <script type="text/javascript">
    //<![CDATA[
    function load(){ 
      prettyPrint();

      var map = new GMap2(document.getElementById("map")); 
      map.setCenter(new GLatLng(35.676148, 139.74479), 15); 
      map.addControl(new GSmallMapControl()); 
      map.addControl(new GMapTypeControl()); 

      // JSON形式のファイルをダウンロードする
      GDownloadUrl("./example_12.json", function(doc, stat){
        
        //JSON形式はそのままJavaScriptオブジェクトとして扱える
        eval("loaddata=" + doc); 
        
        //ループで地図上にマーカーを配置する
        for (var i = 0; i < loaddata.data.length; i++) { 
          var marker = makeMarker(
                         loaddata.data[i].lat,
                         loaddata.data[i].lng,
                         loaddata.data[i].name
                       );
          map.addOverlay(marker);
        }
      });
    }
    
    //マーカーを作成して返す
    function makeMarker(lat, lng, name) {
      var point = new GLatLng(lat, lng);
      var marker = new GMarker(point); 

      // クリックしたマーカーに該当する情報を表示 
      GEvent.addListener(marker, "click", function(){ 
        //マーカーにデータを保持させる方法
        marker.openInfoWindowHtml(
            "<b>"+name+"</b><br>" +
            "lat:" + lat + "<br>" +
            "lng:" + lng
        );
      }); 
      return marker;
    }
    
    //ページがロードされたら、load 関数を実行して、地図を表示する
    window.onload = load;
    
    //ページを抜けるとき、メモリ開放
    window.onunload = GUnload;
    //]]>
    </script>
  </head>
  <body >
    <div id="map" style="width: 600px; height: 600px"></div>
  </body>
</html>

取得するJSONファイル (example_12.json) (注)ファイルはUTF-8で保存してください

{
	data: [
		{lat:35.676148,lng:139.74479,name:"国会議事堂"},
		{lat:35.678494,lng:139.744205,name:"国立図書館"}
	]
}

サイト内検索
Maps APIの本を書きました
Google Maps APIプログラミング入門
全480ページ。Google Maps API ver.2, ver.3, for Flash, Static Maps API v2, Google Maps API Primery, ライセンス…など、Google Maps APIに関連する幅広い内容の本を書きました。
このサイトで公開しているサンプルはもちろん、本のために作ったサンプルも満載です。
詳しくはこちら

Google Maps Designer
Google Maps Designer