谷歌地圖事件
單擊標記進行縮放
我們仍然使用上一頁的地圖:以英國倫敦為中心的地圖。
現在,我們希望在用戶單擊標記時進行縮放(我們將一個事件處理程序附加到標記上,以便在單擊時縮放地圖)。
這是添加的代碼:
實例
// 單擊標記時縮放至 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: 'Latitude: ' + location.lat() + '<br>Longitude: ' + location.lng() }); infowindow.open(map,marker); }