2013-02-19 83 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-听众(对我来说这也解决了这个问题)