0

我正在尝试使用 Google Maps API 构建自定义交互式地图。我已经创建了自定义地图图块并添加了带有弹出信息框的自定义标记。然而,由于标记重复,我想限制地图的边界。我使用严格界限取得了一些成功......

  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 边界。有没有办法做到这一点?例如,当缩放级别发生变化时,代码是否会增加/减少这些边界?

希望一切都有意义

谢谢你。

4

0 回答 0