Google Api V3 - 使用缩放调整strictBounds

时间:2013-06-18 10:24:37

标签: google-maps limit

我正在尝试使用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边界。有没有办法做到这一点?例如,当缩放级别改变时,代码是否增加/减少这些边界?

希望一切都有意义,

谢谢。

0 个答案:

没有答案