谷歌地图API v2:防止滚动超出地图边界

3

使用我标准设置的Google地图API v2,它似乎允许在现有地图数据范围之外滚动。实际上,存在一个滚动限制,但它似乎相当远离实际的地图边界。

有没有简单的方法来解决这个问题?

输入图片说明


有关此事的任何更新,特别是从JS API调用时? - user663031
我已经转向其他项目很久了。我不认为我找到了一个好的解决方案,但是看看AndyH的解决方案,这可能会有帮助。 - Paul
1个回答

0
在我的项目中,我使用了一个从onCameraChange调用的函数。它将相机移动回地图允许的区域内。
// First set the bounds
private static final LatLng NORTHEAST = new LatLng("LAT HERE", "LNG HERE");
private static final LatLng SOUTHWEST = new LatLng("LAT HERE", "LNG HERE");
private static final LatLngBounds BOUNDS = new LatLngBounds(SOUTHWEST, NORTHEAST);

这个方法看起来像这样:

 if (BOUNDS.contains(googleMap.getCameraPosition().target)) {
  return;
}

double x = googleMap.getCameraPosition().target.longitude;
double y = googleMap.getCameraPosition().target.latitude;

double maxX = BOUNDS.northeast.longitude;
double maxY = BOUNDS.northeast.latitude;
double minX = BOUNDS.southwest.longitude;
double minY = BOUNDS.southwest.latitude;

if (x < minX) {
  x = minX;
}
if (x > maxX) {
  x = maxX;
}
if (y < minY) {
  y = minY;
}
if (y > maxY) {
  y = maxY;
}


googleMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(y, x))); 

希望这是你要找的。


这是一个解决方案,没错。如果您将其动画化到新的相机位置,它看起来甚至更好。但实际上,这并不是问题的解决方案,因为您仍然可以滚动到定义边界的边缘。我想要的是与Google Maps应用程序相同的行为:您无法滚动更远。 - Paul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接