Developer toolでわかることの例:
<!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>
<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
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でも使う。
<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ファイルを読み込ませ、地点のマーカーを表示する。
{"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のマーカーをクリックすると吹き出し(インフォウィンドウ)が表示されるようにする。
課題
例:
エクセル(CSV)データ
↓
テキストエディタで開く
↓
変換用Webページにコピー&ペーストして、変換
↓
テキストエディタでJSON形式のファイルに追加