吹き出しにボタンを表示する|Google Maps API v3
Google Maps API(v3) を利用してピン表示と共によく利用されるものが、
情報ウィンドウと呼ばれる吹き出し表示です。
吹き出し表示にはテキストだけでなくコントロール(ボタン等)も
配置し表示することができます。
以下では簡易的にボタンを押すと、テキストの表示に切り替わる動作をします。
地図の表示
指定したGPS座標を中心に情報ウィンドウを表示します。
サンプルコード
HTML
HTMLではGoogle Mapを表示するエリア(<div id=”gmap_canvas”></div>)を配置しています。
エリアを囲んでいる「<div class=”aspect”></div>」部分は、
ページ表示用の高さ制御用のタグです。
1 |
<div class="aspect"><div id="gmap_canvas" class="g_canvas"></div><span id="ver" style="font-size: 0.8em; color: gray;"></span></div> |
CSS
CSSではclass=”aspect”に対して、 幅100%を指定し、 高さをビューポートの50%としています。 GoogleMapを表示するエリア(id=”gmap_canvas”)のサイズを、 class=”aspect”に対しての幅・高さを100%として指定しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<style type="text/css"> .aspect{ width:100%; height:50vw; } .aspect_normal, .aspect_dot, .aspect_key, .aspect_dotkey{ width:100%; height:25vw; } #gmap_canvas, #gmap_canvas_normal, #gmap_canvas_dot, #gmap_canvas_key, #gmap_canvas_dotkey, div.g_canvas{ width:100%; height:100%; } </style> |
JavaScript
Markerオブジェクト(def_marker)を作成し対象に
gmap_canvas を指定しています。
情報ウィンドウインスタンスの生成時にDOM要素(ボタン)の生成を行って、
情報ウィンドウに表示しています。
生成したボタンにはイベントリスナーをセットし、
クリックイベントで情報ウィンドウのコンテンツの更新を行うようにしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<script type="text/javascript"> function init(){ var map_div = document.getElementById("gmap_canvas"); var gmap_canvas = new google.maps.Map(map_div,{ center: new google.maps.LatLng(34.839450, 134.693903), zoom : 14, mapTypeId : google.maps.MapTypeId.ROADMAP }); var iw = new google.maps.InfoWindow({ position: new google.maps.LatLng(34.839450, 134.693903), content: "Himeji-Castle" }); //get form var btn = document.createElement("button"); btn.innerText = "himeji-castle"; google.maps.event.addDomListener(btn,"click", function(){ iw.setContent("Welcome Himeji Castle !"); }); iw.setContent(btn); iw.open(gmap_canvas); } google.maps.event.addDomListener(window,"load",init); $('#ver').text(google.maps.version); </script> |
別途、GoogleMapsAPIのライブラリを読み込む記述が必要です。 ご自分が取得されたAPIキーを以下のコードの(YourAPIkey)部分に置き換えて設定してください。
1 |
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=(YourAPIkey)&v=3"></script> |
関連
JavaScriptからのDOM操作「document.createElement(“”)」には、
以下のドキュメントがとても役に立ちます。
document.createElement – Web API インターフェイス | MDN
公開日:
最終更新日:2017/01/12