Android 谷歌地图跟我来

Android 谷歌地图跟我来,android,google-maps,Android,Google Maps,我想为飞行员创建一个谷歌地图应用程序,以便地图以我的位置为中心。为了显示至少5海里的缓冲区,应用程序必须以特定的缩放级别将地图置于飞机位置的中心。应用程序还必须提供以下两种方法: 轨迹应用程序(它是要旋转的标记) North应用程序(它是要旋转的地图) 对于轨迹应用程序,我计算边界框 protected LatLngBounds calcultateBoundBoxFollowMe(LatLng position, float distanceMiles){ double

我想为飞行员创建一个谷歌地图应用程序,以便地图以我的位置为中心。为了显示至少5海里的缓冲区,应用程序必须以特定的缩放级别将地图置于飞机位置的中心。应用程序还必须提供以下两种方法:

  • 轨迹应用程序(它是要旋转的标记)
  • North应用程序(它是要旋转的地图)
对于轨迹应用程序,我计算边界框

  protected LatLngBounds calcultateBoundBoxFollowMe(LatLng position, float distanceMiles){
        double distanceMeters = UnitConverter.convert(distanceMiles, UnitConverter.EConversionScalingFactor.NM_TO_MT, false);
        LatLngBounds.Builder l_0 = new LatLngBounds.Builder(  );
        l_0.include(CoordinateUtil.findLatLngtAtDistanceFrom(position, Math.toRadians(0), distanceMeters/1000)  );
        l_0.include(CoordinateUtil.findLatLngtAtDistanceFrom(position, Math.toRadians(90), distanceMeters/1000)  );
        l_0.include(CoordinateUtil.findLatLngtAtDistanceFrom(position, Math.toRadians(180), distanceMeters/1000)  );
        l_0.include(CoordinateUtil.findLatLngtAtDistanceFrom(position, Math.toRadians(270), distanceMeters/1000)  );
        return l_0.build();
    }
和使用

googleMap.animateCamera( CameraUpdateFactory.newLatLngBounds(calcultateBoundBoxFollowMe(new LatLng(currentLocation.getLatitude(), currentLocation.getLongitude()), DISTANCE_NAUTICAL_MILES),30));
对于North应用程序,我不能使用相同的功能,因为我不能旋转地图,但我可以使用它

CameraPosition.Builder currentPlaceBuilder = new CameraPosition.Builder().target(new LatLng(currentLocation.getPosition().getCoordinate().y, currentLocation.getPosition().getCoordinate().x)).zoom(googleMap.getCameraPosition().zoom).bearing(orientationVals[0]);
但我不知道变焦


在我必须看到自己位置周围至少5海里的区域的情况下,如何计算缩放?

为什么不接受类似于“轨迹应用”的BoundBox?因为无法旋转地图。