我有一张Google地图,当用户在蓝点(myLocation)周围移动时-标准行为。直到用户移动到当前缩放级别的边界之外,并且蓝点从地图的边缘之一消失后,此方法才能正常工作。我不想在用户每次移动时都重新调整地图的位置,并且得到位置更新-不需要myLocation点始终位于屏幕的中心-但是myLocation必须总是可见的,因此,如果用户从地图的一侧移开,我想重新调整地图的焦点,以使他再次变得可见。
如何确定myLocation已移出屏幕的可见区域?
最佳答案
double latitude = location.getLatitude();
double longitude = location.getLongitude();
fromPosition = new LatLng(latitude, longitude);
LatLngBounds bounds = this.map.getProjection().getVisibleRegion().latLngBounds;
if(!bounds.contains(new LatLng(location.getLatitude(), location.getLongitude()))){
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(fromPosition)
.zoom(17)
.bearing(180)
.tilt(80)
.build();
map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
}