[英]Google Maps v3 - zoom in/zoom out able to repeat (and recenter)?
我有一個包含多個 POLYGON 區域的 Google 地圖。 我已經想出了如何通過單擊多邊形來放大,並使用“dblclick”偵聽器縮小並為它們刪除偵聽器...
一旦您單擊放大,然后雙擊縮小,就不允許我再次重復該功能。 有沒有辦法多次放大和縮小?
這是我的代碼:
//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);});
});
對於我的其他 POLYGON 區域,我是否還必須更改變量名稱才能使其工作?
此外,返回中心似乎無法正常工作。 如果我需要在一個單獨的問題中提出這個問題,我會的。
直接的問題是您在 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);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.