Google マップのイベント
マーカーをクリックして拡大
前のページの地図を使用しています:イギリスのロンドンを中心にした地図。
今、ユーザーがマーカーをクリックしたときに拡大を行いたいです(マーカーにイベントハンドラを追加して、クリック時に地図を拡大します)。
これは追加されたコードです:
インスタンス
// マーカーをクリックすると拡大を9に google.maps.event.addListener(marker,'click',function() { map.setZoom(9); map.setCenter(marker.getPosition()); });
addListener() イベントハンドラを使用してイベント通知を登録します。このメソッドが受け取る引数は:
- オブジェクト
- 監視するイベント
- 指定されたイベントが発生したときに呼び出される関数
マーカーに戻る
ここでは、拡大変更を保存し、3秒後に地図をスライドさせる:
インスタンス
google.maps.event.addListener(marker,'click',function() { var pos = map.getZoom(); map.setZoom(9); map.setCenter(marker.getPosition()); window.setTimeout(function() {map.setZoom(pos);},3000); });
マーカーをクリックすると情報ウィンドウが開きます
マーカーをクリックすると、テキストを含む情報ウィンドウが表示されます:
インスタンス
var infowindow = new google.maps.InfoWindow({ content: "Hello World!" }); google.maps.event.addListener(marker, 'click', function() { infowindow.open(map,marker); });
マーカーを設定し、各マーカーに情報ウィンドウを開く
ユーザーが地図をクリックしたときに実行される関数。
placeMarker() 関数は、ユーザーがクリックした場所にマーカーを配置し、そのマーカーの緯度と経度を含む情報ウィンドウを表示します:
インスタンス
google.maps.event.addListener(map, 'click', function(event) { placeMarker(map, event.latLng); }); function placeMarker(map, location) { var marker = new google.maps.Marker({ position: location, map: map }); var infowindow = new google.maps.InfoWindow({ content: '緯度: ' + location.lat() + 経度: ' + location.lng() }); infowindow.open(map,marker); }