2013-02-19 85 views
1

通常可以從地圖上垂直滾動/縮放。會有一個灰色的背景。我「禁用/阻止」了。谷歌地圖鼠標滾輪錯誤

這工作正常,如果我使用Google地圖的控件。但是,如果我用鼠標滾輪放大它有點兒車,我可以縮小地圖,所以灰色區域是可見的。

這是一個活生生的例子:Example

我怎麼能解決這個問題,而不禁用鼠標滾輪縮放?

圖片: Grey area visible, zoomed out

THEME.gmap.position = function() { 
var allowedBounds; 
var lastCenter; 
var lastZoom; 
var initCenter; 
var initZoom; 

function checkBounds() { 
    if (THEME.base.isUndefined(allowedBounds)) { 
     return false; 
    } 
    if (allowedBounds.getNorthEast().lat() > THEME.gmap.google_map.getBounds().getNorthEast().lat()) { 
     if (allowedBounds.getSouthWest().lat() < THEME.gmap.google_map.getBounds().getSouthWest().lat()) { 
      lastCenter = THEME.gmap.google_map.getCenter(); 
      lastZoom = THEME.gmap.google_map.getZoom(); 
      return true; 
     } 
    } 
    THEME.gmap.google_map.panTo(lastCenter); 
    THEME.gmap.google_map.setZoom(lastZoom); 
    return false; 
} 

return { 
    createLatLng:function (lat, lng) { 
     return new google.maps.LatLng(lat, lng); 
    }, 
    centerMap:function (latLng) { 
     THEME.gmap.google_map.setCenter(latLng); 
    }, 
    setLimit:function() { 
     allowedBounds = new google.maps.LatLngBounds(
      this.createLatLng(-85.0511, -122.591), 
      this.createLatLng(85.0511, -122.333) 
     ); 
     initCenter, lastCenter = THEME.gmap.google_map.getCenter(); 
     initZoom, lastZoom = THEME.gmap.google_map.getZoom(); 
     google.maps.event.addListener(THEME.gmap.google_map, 'bounds_changed', function() { 
      checkBounds(); 
     }); 
     google.maps.event.addListener(THEME.gmap.google_map, 'center_changed', function() { 
      checkBounds(); 
     }); 
    } 
}; 
}(); 
+0

哦,我真的很愚蠢!謝謝您的幫助!你可以張貼這個答案,以便我可以接受它嗎? – Lizzaran 2013-02-19 11:55:15

回答

1

我想這是由2個競爭事件被迫的,通常這兩個事件將每次開火。由於center_changed事件是多餘的(當中心改變時邊界也會改變),你可以刪除center_changed-聽衆(對我來說這也解決了這個問題)