在我的应用程序中,我试图让用户能够“自由”滚动地图活动,我希望将显示内容锁定在某些特定的坐标中,但是困难的部分是将其与功能关联相机地理定位(GPS)可以跟随用户。
例如,我可以尝试将移动摄像头添加到onLocationChanged上,这会将摄像头锁定在我希望每当用户移动一次的区域中,但这不是我想要的,我只想重置摄像头,如果用户滚动到我不希望他看到的区域,如果您正在浏览华盛顿地图,则希望用户在例如巴尔蒂莫拉(Baltimora)上时重置摄像机。
LatLng Washington = new LatLng(38.9150303, -77.1655794);
public void onLocationChanged(Location location) {
LatLng me = new LatLng(location.getLatitude(),location.getLongitude());
//LOCK CAMERA
mMap.moveCamera(CameraUpdateFactory.newLatLng(Washington));
//Marker Position
if (null != currentMarker) {
currentMarker.remove();
}
currentMarker = mMap.addMarker(new MarkerOptions().position(me).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
答案 0 :(得分:2)
如果您希望用户能够移动地图但限制在给定区域,则地图会为您提供该选项。
如此处所述:Restricting the user's panning to a given area
private GoogleMap mMap;
// Create a LatLngBounds that includes the city of Adelaide in Australia.
private LatLngBounds ADELAIDE = new LatLngBounds(
new LatLng(-35.0, 138.58), new LatLng(-34.9, 138.61));
// Constrain the camera target to the Adelaide bounds.
mMap.setLatLngBoundsForCameraTarget(ADELAIDE);