我试图阻止用户移动到谷歌地图中的某个区域之外。但是,似乎没有一种简单的方法可以做到这一点。第一次在这里问所以请原谅。
我尝试了以下方法以在用户滚动时进行轮询,但问题是 OnCameraChange 触发的频率不够高,因此它的工作不稳定且不准确。我知道必须有某种方法可以做到这一点,因为这似乎是一个简单而重要的功能。
private static final LatLng NEBOUND = new LatLng(47.670606, -117.393344);
private static final LatLng SWBOUND = new LatLng(47.661283, -117.411052);
private static final LatLngBounds MAPBOUNDARY = new LatLngBounds(SWBOUND, NEBOUND);
private LatLng lastCenter = new LatLng(47.667454, -117.402309);
private final OnCameraChangeListener mOnCameraChangeListener =
new OnCameraChangeListener() {
@Override
public void onCameraChange(CameraPosition cameraPosition) {
LatLngBounds visibleBounds = guMap.getProjection().getVisibleRegion().latLngBounds;
if(!MAPBOUNDARY.contains(visibleBounds.northeast) || !MAPBOUNDARY.contains(visibleBounds.southwest)){
guMap.moveCamera(CameraUpdateFactory.newLatLng(lastCenter));
}
else
lastCenter = guMap.getCameraPosition().target;
centerLoc.setText(lastCenter.toString());
}
};