我正在尝试使用Google Maps API构建自定义交互式地图。我已经创建了自定义地图图块并添加了带弹出信息框的自定义标记。然而,由于标记重复,我想限制地图的边界。我使用strictbounds取得了一些成功......
var strictBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(-10, -10),
new google.maps.LatLng(10, 10)
);
google.maps.event.addListener(map, 'drag', 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));
});
然而我遇到的问题是它在默认级别2下的工作方式是有效的,但是当我放大到级别5时,这些值在该级别保持相同的限制平移。我希望能够以较低的缩放级别平移到5级的LatLong边界。有没有办法做到这一点?例如,当缩放级别改变时,代码是否增加/减少这些边界?
希望一切都有意义,
谢谢。