我正在开发应用程序,该应用程序使用谷歌地图绘制用户正在移动的路线及其显示实时。所以我想根据用户的移动方向旋转地图。
如果他/她向右移动,那么地图的旋转方式使他正在移动的路线始终显示在前言方向上。像谷歌地图导航。
我想我应该在两个位置之间进行测量,然后计算一些方位并将其应用于地图。
任何建议都将不胜感激。
谢谢
更新
让我澄清我的问题,因为它不是那么容易理解(这就是我的想法)。
我希望我的位置指针始终向前或向上指向,并且当我向一个方向移动时,地图会自动旋转。
我认为这使我的问题更加明确。
答案 0 :(得分:1)
计算两点之间的方位,然后用它来设置相机位置,然后为相机设置动画。
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(targetLatLng)
.bearing(targetBearing)
.zoom(mMap.getCameraPosition().zoom)
.build();
mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition),
2000,
mCancelableCallback);
答案 1 :(得分:0)
import android.location.Location;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
....
protected void animateToLocation(Location position)
{
if (mGoogleMap == null || position == null)
return;
float zoomLevel = mGoogleMap.getCameraPosition().zoom != mGoogleMap.getMinZoomLevel() ? mGoogleMap.getCameraPosition().zoom : 18.0F;
LatLng latLng = new LatLng(position.getLatitude(), position.getLongitude());
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(latLng)
.bearing(position.getBearing())
.zoom(zoomLevel)
.build();
mGoogleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition), null);
}
可以从 FusedApi#onLocationResult 或 LocationManager#OnLocationChanged 提取 position:Location