- 谷歌地图教程
- 谷歌地图 - 主页
- 谷歌地图 - 入门
- 谷歌地图 - 类型
- 谷歌地图 - 缩放
- 谷歌地图 - 本地化
- 谷歌地图 - 用户界面控件
- 谷歌地图 - 标记
- 谷歌地图 - 形状
- 谷歌地图 - 信息窗口
- 谷歌地图 - 符号
- 谷歌地图 - 事件
- 谷歌地图资源
- 谷歌地图 - 快速指南
- 谷歌地图 - 有用资源
- 谷歌地图 - 讨论
谷歌地图 - 事件
谷歌地图 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>
它生成如下输出 −
广告