1

在给定的谷歌地图实例中......

有没有办法关闭地图的其他实例,这些实例平铺在初始中央地图的右侧和左侧?

我已经看到了限制地图平移能力的方法......但它使用 lat + lng 来确定何时重新居中地图......因此使用在不同的缩放级别上分崩离析。

例如:https ://google-developers.appspot.com/maps/documentation/javascript/examples/map-simple

如果一直放大,您可以看到地球地图是如何沿 x 轴平铺的。

我想要地图的单个实例。

4

1 回答 1

0

您可以将观察者添加到zoom_changed事件,并在显示超过 90 度的地图时设置minZoom 。第二条语句在已知限制之前递归地将缩放减少到可接受的限制。

var zoomObserver = function () {
    width = Math.abs(map.getBounds().getNorthEast().lat() - 
        map.getBounds().getSouthWest().lat());
    if (width > 90){
            var opt = { minZoom: map.getZoom()};
            map.setOptions(opt);
    }
    if (width > 179){
        map.setZoom(map.getZoom() + 1);
    }
};
google.maps.event.addListener(map,'zoom_changed', zoomObserver );

这个简单的解决方案适用于大多数用例,不考虑通过调整浏览器窗口大小将地图宽度加倍,因此在这种情况下您可能需要将观察者添加到另一个事件。

于 2013-01-03T09:08:57.727 回答