我有一张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));
 }

08-06 07:41