- 谷歌地圖教程
- 谷歌地圖 - 主頁
- 谷歌地圖 - 入門
- 谷歌地圖 - 型別
- 谷歌地圖 - 縮放
- 谷歌地圖 - 本地化
- 谷歌地圖 - 使用者介面控制元件
- 谷歌地圖 - 標記
- 谷歌地圖 - 形狀
- 谷歌地圖 - 資訊視窗
- 谷歌地圖 - 符號
- 谷歌地圖 - 事件
- 谷歌地圖資源
- 谷歌地圖 - 快速指南
- 谷歌地圖 - 有用資源
- 谷歌地圖 - 討論
谷歌地圖 - 事件
谷歌地圖 JavaScript 程式可以響應使用者觸發的各種事件。本章提供示例,展示如何在地圖使用 Google 地圖時執行事件處理。
新增事件偵聽器
可以使用 addListener() 方法新增事件偵聽器。它接受引數,如我們要新增偵聽器的物件名稱、事件名稱和處理程式事件。
示例
以下示例展示如何將事件偵聽器新增到標記物件。程式每次雙擊標記時,都會將地圖的縮放值增加 5。
<!DOCTYPE html>
<html>
<head>
<script src = "https://maps.googleapis.com/maps/api/js"></script>
<script>
var myCenter = new google.maps.LatLng(17.433053, 78.412172);
function loadMap(){
var mapProp = {
center: myCenter,
zoom:5,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
var marker = new google.maps.Marker({
position: myCenter,
title:'Click to zoom'
});
marker.setMap(map);
//Zoom to 7 when clicked on marker
google.maps.event.addListener(marker,'click',function() {
map.setZoom(9);
map.setCenter(marker.getPosition());
});
}
</script>
</head>
<body onload = "loadMap()">
<div id = "googleMap" style = "width:580px; height:400px;"></div>
</body>
</html>
它生成如下輸出 −
單擊開啟資訊視窗
單擊標記後,以下程式碼將開啟一個資訊視窗 −
<!DOCTYPE html>
<html>
<head>
<script src = "https://maps.googleapis.com/maps/api/js"></script>
<script>
var myCenter = new google.maps.LatLng(17.433053, 78.412172);
function loadMap(){
var mapProp = {
center:myCenter,
zoom:4,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
var marker = new google.maps.Marker({
position:myCenter,
});
marker.setMap(map);
var infowindow = new google.maps.InfoWindow({
content:"Hi"
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
}
</script>
</head>
<body onload = "loadMap()">
<div id = "googleMap" style = "width:580px; height:400px;"></div>
</body>
</html>
它生成如下輸出 −
刪除偵聽器
可以使用 removeListener() 方法刪除已有的偵聽器。此方法接受偵聽器物件,因此我們需要將偵聽器分配給一個變數並將其傳遞給此方法。
示例
以下程式碼展示如何刪除偵聽器 −
<!DOCTYPE html>
<html>
<head>
<script src = "https://maps.googleapis.com/maps/api/js"></script>
<script>
var myCenter = new google.maps.LatLng(17.433053, 78.412172);
function loadMap(){
var mapProp = {
center:myCenter,
zoom:4,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("googleMap"),mapProp);
var marker = new google.maps.Marker({
position:myCenter,
});
marker.setMap(map);
var infowindow = new google.maps.InfoWindow({
content:"Hi"
});
var myListener = google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
google.maps.event.removeListener(myListener);
}
</script>
</head>
<body onload = "loadMap()">
<div id = "googleMap" style = "width:580px; height:400px;"></div>
</body>
</html>
它生成如下輸出 −
廣告