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



我有一个谷歌地图,当用户在蓝点(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));
 }

通过获取映射的当前边界,然后在最后一个已知的latlng:上检查"contains"来解决

if (!map.getProjection().getVisibleRegion().latLngBounds.contains(locationToLatLng(lastKnownLocation))) {
                map.moveCamera(CameraUpdateFactory.newCameraPosition(getCameraPositionFromLocationWithZoom(lastKnown, getCurrentZoom())));
            }

相关内容

  • 没有找到相关文章

最新更新