以下是一个完整的、简单的示例,演示了如何实现此功能。为了简化起见,它只显示一个以纬度/经度(0,0)为中心的正方形作为示例。
<html>
<head>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY_HERE&sensor=false"></script>
<script type="text/javascript">
function init() {
var mapDiv = document.getElementById('map');
var map = new google.maps.Map(mapDiv, {
center: new google.maps.LatLng(0.0, 0.0),
zoom: 5
});
var polygon = new google.maps.Polygon({
map: map,
paths: [
new google.maps.LatLng(-1.0, -1.0),
new google.maps.LatLng(-1.0, +1.0),
new google.maps.LatLng(+1.0, +1.0),
new google.maps.LatLng(+1.0, -1.0)
],
strokeColor: '#ff0000',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#ff0000',
fillOpacity: 0.5
});
google.maps.event.addListener(polygon, 'click', function (event) {
alert('clicked polygon!');
});
google.maps.event.addListener(polygon, 'mouseover', function (event) {
this.setOptions({
strokeColor: '#00ff00',
fillColor: '#00ff00'
});
});
google.maps.event.addListener(polygon, 'mouseout', function (event) {
this.setOptions({
strokeColor: '#ff0000',
fillColor: '#ff0000'
});
});
};
</script>
<style>
#map {
width: 300px;
height: 200px;
}
</style>
</head>
<body onload="init();">
<div id="map"></div>
</body>
</html>
基本上,您需要执行以下操作(每个项目符号对应JavaScript代码中的一个编号注释):
- 创建一个地图。
- 在地图上为每个邻里绘制多边形。
- 为每个多边形添加“click”事件的监听器。当单击多边形时,将调用监听器函数。这里,我只显示一个警报-您可以做任何其他您喜欢的事情。
- 为每个多边形添加“mouseover”事件的监听器。当鼠标悬停在多边形上时,将调用监听器函数。在处理程序中,将多边形的描边和填充颜色更改为其他颜色。
- 为每个多边形添加“mouseout”事件的监听器。当鼠标停止悬停在多边形上时,将调用监听器函数。在处理程序中,将多边形的描边和填充颜色更改回其原始值。
希望这一切都讲得很清楚。如果您需要更多信息,请查看
Google Maps JavaScript API参考,这是找到所有相关详细信息的地方。还值得花点时间查看一些
示例,特别是
simple-polygon和
simple-event示例。