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