如何为Google Maps小部件设置界限?例如,我只需要[SW corner:40.5,-25.5] - [NE corner 79.5,178.5]矩形。现在我正在使用另一个问题的代码:
var strictBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(40.5, -25.5),
new google.maps.LatLng(79.5, 178.5)
);
// Listen for the dragend event
google.maps.event.addListener(map, 'dragend', function() {
if (strictBounds.contains(map.getCenter())) return;
// We're out of bounds - Move the map back within the bounds
var c = map.getCenter(),
x = c.lng(),
y = c.lat(),
maxX = strictBounds.getNorthEast().lng(),
maxY = strictBounds.getNorthEast().lat(),
minX = strictBounds.getSouthWest().lng(),
minY = strictBounds.getSouthWest().lat();
if (x < minX) x = minX;
if (x > maxX) x = maxX;
if (y < minY) y = minY;
if (y > maxY) y = maxY;
map.setCenter(new google.maps.LatLng(y, x));
});
但它没有产生必要的效果 - 无论如何,这段代码允许缩放地图,用户可以看到跨越严格边界的碎片。
所以,我想知道,API v3中是否有任何方法可以从完整的世界地图中裁剪出部分内容?
答案 0 :(得分:1)
我认为在您的情况下,您可以通过设置相应的minZoom属性来另外禁止用户缩小界限
您可以在初始化地图时执行此操作,或者在初始化地图之后执行此操作:
map.setOptions({minZoom:5});
答案 1 :(得分:1)
最后,我决定以geocodezip建议来解决这个问题。 有关详细信息,请参阅源代码 this page