Javascript 谷歌地图v3-放大/缩小是否可以重复(和重新居中)?
我有一张谷歌地图,上面有多个多边形区域。我已经知道了如何通过单击多边形放大,然后使用“dblclick”侦听器缩小,并删除它们的侦听器 一旦你点击放大,然后双击缩小,我就不能再重复这个功能了。有没有办法放大和缩小多次 以下是我的代码:Javascript 谷歌地图v3-放大/缩小是否可以重复(和重新居中)?,javascript,google-maps-api-3,dom-events,Javascript,Google Maps Api 3,Dom Events,我有一张谷歌地图,上面有多个多边形区域。我已经知道了如何通过单击多边形放大,然后使用“dblclick”侦听器缩小,并删除它们的侦听器 一旦你点击放大,然后双击缩小,我就不能再重复这个功能了。有没有办法放大和缩小多次 以下是我的代码: //POLYGON ZONE 1 ================================ var zone1; var triangleCoords = [ new google.maps.LatLng(29.738692,
//POLYGON ZONE 1 ================================
var zone1;
var triangleCoords = [
new google.maps.LatLng(29.738692, -95.399331),
new google.maps.LatLng(29.738688, -95.394781),
new google.maps.LatLng(29.737048, -95.394781),
new google.maps.LatLng(29.737048, -95.399331)
];
// Construct the polygon
// Note that we don't specify an array or arrays, but instead just
// a simple array of LatLngs in the paths property
zone1 = new google.maps.Polygon({
paths: triangleCoords,
strokeColor: "#00AEEF",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#00AEEF",
fillOpacity: 0.05,
});
zone1.setMap(map);
zone1._myBounds = new google.maps.LatLngBounds();
for (var i=0; i<triangleCoords.length; i++)
{
zone1._myBounds.extend(triangleCoords[i]);
}
var listener = google.maps.event.addListener(zone1, 'click', function () {
map.fitBounds(zone1._myBounds);
google.maps.event.removeListener(listener);
});
var listener2 = google.maps.event.addListener(zone1, 'dblclick', function() {
if (map.getZoom() > 16) map.setZoom(13);
//map.setZoom(map.getZoom() -1);
//map.setCenter(map.getCenter());
google.maps.event.removeListener(listener2);
google.maps.event.addListener(zone1, 'click', function (){
map.fitBounds(zone1._myBounds);});
});
//多边形区域1=============================================================================================================================================================================================================================================================
变异区1;
var triangleCoords=[
新google.maps.LatLng(29.738692,-95.399331),
新google.maps.LatLng(29.738688,-95.394781),
新google.maps.LatLng(29.737048,-95.394781),
新google.maps.LatLng(29.737048,-95.399331)
];
//构造多边形
//请注意,我们没有指定一个或多个数组,而只是
//paths属性中的一个简单latlng数组
zone1=新建google.maps.Polygon({
路径:三角形门,
strokeColor:#00AEEF“,
笔划不透明度:0.8,
冲程重量:2,
fillColor:#00AEEF“,
不透明度:0.05,
});
第1区:设置地图(地图);
zone1._myBounds=新的google.maps.LatLngBounds();
对于(var i=0;i 16)map.setZoom(13);
//map.setZoom(map.getZoom()-1);
//map.setCenter(map.getCenter());
google.maps.event.removeListener(listener2);
google.maps.event.addListener(zone1,'click',函数(){
map.fitBounds(zone1._myBounds);});
});
对于我的其他多边形区域,我是否也必须更改变量名称才能使其工作
此外,返回中心似乎工作不正常。如果我需要在单独的问题中问这个问题,我会问。直接的问题是,在dblclick上添加的单击侦听器中,您没有执行相同的操作:
google.maps.event.addListener(zone1, 'click', function (){
map.fitBounds(zone1._myBounds);});
与原件相比:
var listener = google.maps.event.addListener(zone1, 'click', function () {
map.fitBounds(zone1._myBounds);
google.maps.event.removeListener(listener);
});
如果要再次执行此操作,为什么要删除侦听器?因此,对polygon1使用此代码不会影响polygon2:<代码>google.maps.event.addListener(zone1,'click',函数(){map.fitBounds(zone1.\u myBounds);});google.maps.event.addListener(zone1,'dblclick',函数(){if(map.getZoom()>16)map.setZoom(13);})代码>