0

如何为 Google 地图小部件设置边界?例如,我只需要 [SW 角:40.5, -25.5] - [NE 角 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 中是否有任何方法可以从完整的世界地图中裁剪出必要的部分?

4

2 回答 2

1

最后,我决定按照geocodezip 的建议解决这个问题。有关详细信息,请参阅 此页面的源代码。

于 2013-06-05T15:33:45.370 回答
1

我认为在您的情况下,您还可以通过设置相应的 minZoom 属性来禁止用户缩小范围

您可以在初始化地图时执行此操作,或者在它已经初始化之后执行此操作:

 map.setOptions({minZoom:5});
于 2013-06-03T07:50:43.037 回答