Android:如何检查 myLocation 在当前缩放级别的地图上是否可见?

Jon*_*Jon 3 java android google-maps mylocationoverlay android-mapview

我有一个谷歌地图,当用户围绕蓝点(myLocation)移动时 - 标准行为。这很有效,直到用户移动到当前缩放级别的边界之外 - 并且蓝点从地图的边缘之一消失。我不想在用户每次移动并获得位置更新时重新聚焦地图 - myLocation 点没有必要始终位于屏幕的中心 - 但 myLocation 有必要始终可见,因此如果用户离开地图的一侧,我想重新调整地图的焦点,以便他再次可见。

如何判断 myLocation 已移出屏幕的可见区域?

小智 6

 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));
 }
Run Code Online (Sandbox Code Playgroud)