Google Map Api入門

○本日の目標

○必要なもの

Developer toolでわかることの例:

○HTMLでWebページの構造を作る

        <!DOCTYPE html>
        <meta charset="utf-8"/>
        <html>
          <head>
          
            <script></script>
            <script></script>   →次へ
          
            <style>
              #map {width:500px; height:380px; border:1px solid #666; float:left;}
            </style>
          </head>
          <body>
            <div id="map"></div>
          </body>
        </html>
      

○Javascriptで地図を表示する

        <head>
          <script type="text/javascript"
          src="http://maps.google.com/maps/api/js?sensor=false&language=ja"></script>
          
          <script>
                次へ
          </script>
          
          <style>
            #map {width:500px; height:380px; border:1px solid #666; float:left;}
            </style>
        </head>

        ↓
        <script>
          var c_lat,c_lng;
            var map;

            c_lat = 35.1814;
            c_lng = 136.9064;
            window.onload = function() {
              draw_map(c_lat,c_lng);
            }
            function draw_map(lat,lng) {
              var op = {
                zoom:13,
                center:new google.maps.LatLng(lat,lng),
                mapTypeId:google.maps.MapTypeId.ROADMAP
              };
              map = new google.maps.Map(document.getElementById("map"),op);
            }
          </script>
      

◯次のリンク先のページのソースをよく読み、不必要なコードを消去して、次の課題をおこないなさい。

サンプルページ

課題1 地図だけ表示する。さらに、地図の中心を変えて表示してみる。

○地図上にマーカーを置く

        <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&language=ja"></script>
        <script>
          var c_lat,c_lng,t_lat,t_lng;
          var map;
          var marker;

          c_lat = 35.1814;
          c_lng = 136.9064;

          t_lat = 35.1584;
          t_lng = 136.9217;
          
          window.onload = function() {
            draw_map(c_lat,c_lng);
            placeMarker(map,t_lat,t_lng);
          }

          function draw_map(lat,lng) {…}
          function placeMarker(map,lat,lng) {…}
        </script>

        function placeMarker(map,lat,lng) {
          var latLng = new google.maps.LatLng(lat,lng);
          var label = "Nagoya University Hospital";
          marker = new google.maps.Marker({
            position:latLng, map:map, title:label
          });
        }
      

課題2 地図上のどこかにマーカーを表示する。中心とマーカーの場所を変えてみる。

○マーカーのその他のプロパティの例

・icon

  1. マーカーアイコンを変更するために用いる
  2. ・URL(または相対パス)を指定すれば、画像がそのまま出る
    ・google.maps.Icon()を用いると、マーカーのサイズや伸縮性を指定できる
  3. マーカーアイコンの種類を変更するためにさらにiconのプロパティを用いる
  4. ・例えば、path:google.maps.SymbolPath.CIRCLE, scale:数式で、マーカーの数値に応じた直径の円盤を表示できる

○Javascriptを構成するもの

○Javascriptプログラムを書くために

まとめ

Google Map APIを使うには①

マーカー情報をJSONで表現

      JSON: Javascript Object Notation

      {"hospital":[
        {"name":"Nagoya University Hospital",
         "lat":35.1584,"lng":136.9217},
        {"name":"Chukyo Hospital",
         "lat":35.1100,"lng":136.9020},
        {"name":"Nagoyadaiichi Red Cross Hospital",
         "lat":35.1718,"lng":136.8624}
      ]}
      これをUTF-8形式で保存
      ファイル名「hosp.json」

      ひとつのオブジェクトは、
      {"プロパティ1":"値1","プロパティ2":"値2",…,"プロパティN":"値N"}
      オブジェクトの配置は、
      [オブジェクト1,オブジェクト2,…,オブジェクトM]
    

課題3 JSONファイルの形式を確認する(ここ)。別の地域に変えて、いくつかの地点の名称、緯度、経度、URLを含むJSONファイルを作る。これは課題4と5でも使う。

JSON形式のファイルを読み込む

      <script type = 'text/javascript' src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
      </script>
      <script>
        var c_lat,c_lng,t_lat; … ;t_lng = 136.9217;
        var hosp_data;
        $.getJSON("hosp.json",function(data) {
          hosp_data = data;
        });
        window.onload = function() {
          draw_map(c_lat,c_lng);
          plot_sites(hosp_data);
        }

        function draw_map(lat,lng){…}
        function plot_sites {…} → 次へ
      </script>

    ↓複数のマーカーを表示する

      function plot_sites(data) {
        var len = data.hospital.length;
        for(var i=0; i<len; i=(i+1)) {
          var site = data.hospital[i];
          var lat = site.lat;
          var lng = site.lng;
          var name = site.name;
          var pos = new google.maps.LatLng(lat,lng);
          var marker_prop = {position:pos, map:map, title:name};
          var marker = new google.maps.Marker(marker_prop);
        }
      }
    

課題4 課題3で作ったJSONファイルを読み込ませ、地点のマーカーを表示する。

○JSONの目的


○JSONの特徴

○JSON形式で構造をもつデータを表現できる

      {"pets":[
        {"id":"01","name":"pochi","species":"dog",
        "favorites":{"food":"meat","place":"garden"}},
        {"id":"02","name":"tama","species":"cat",
        "favorites":{"food":"tsuna","place":"kitchen"}},
      ]}
    

○マーカーに吹き出しをつける

・JSONファイル

        {"hospital":[
          {"name":"Nagoya University Hospital",
          "lat":35.1584,"lng":136.9217,"ward":"Showa",
          "url":"http://www.med.nagoya-u.ac.jp/hospital/"},
          {"name":"Chukyo Hospital",
          "lat":35.1100,"lng":136.9020,"ward":"Minami",
          "url":"http://chukyo.jcho.go.jp"},
          {"name":"Nagoyadaiichi Red Cross Hospital",
          "lat":35.1718,"lng":136.8624,"ward":"Nakamura",
          "url":"http://www.nagoya-1st.jrc.or.jp/"}
        ]}
      
・Javascript
        function plot_sites(data) {
          var len = data.hospital.length;
          for(var i=0; i<len; i=(i+1)) {
            var site = data.hospital[i];
            var lat = site.lat;
            var lng = site.lng;
            var name = site.name;
            var url = site.url;
            var pos = new google.maps.LatLng(lat,lng);
            var marker_prop = {position:pos, map:map, title:name};
            var marker = new google.maps.Marker(marker_prop);
            marker = add_InfoWindow(marker,url);
          }
        }
      

○吹き出しのイベントドリブンな動作を定義する

        function add_InfoWindow(marker,url) {
          var infowindow = new google.maps.InfoWindow();
          google.maps.event.addListener(marker,'click',function() {
            infowindow.setContent(url);
            infowindow.open(map,marker);
          });
          google.maps.event.addListener(map,'click',function() {
            infowindow.close();
          });
          return marker;
        }
      

課題5 課題4のマーカーをクリックすると吹き出し(インフォウィンドウ)が表示されるようにする。

まとめ

Google Map APIを使うには②

○地理データの取得

課題


ツールを開発した
URL: http://hishikilab.sakura.ne.jp/project2013/adrs2pos_02.html

○JSONデータの作成

例:
エクセル(CSV)データ

テキストエディタで開く

変換用Webページにコピー&ペーストして、変換

テキストエディタでJSON形式のファイルに追加