我正在使用Google Maps Android API v2,我在地图上将我的设备位置显示为GoogleMap Marker。 我有一个监听器(LocationServices.FusedLocationApi.requestLocationUpdates ...)附加到Map,以处理每个GPS位置的变化。 每当我收到一个新位置时,我都会更新Marker(我的位置)以及地图上的Camera,几乎就像我开车时一样。
然而......我需要一些帮助才能让MAP 旋转和/或显示与我要移动的方向相同。我的意思是,当我开车时,我需要旋转MAP,我可以在地图左侧看到我在现实生活中的左侧,所以右侧也是如此。由于MAP方向是静态的,标记(Me)正在移动,但大多数时候方向与我的汽车实时方向不匹配。
为了达到这种视觉效果,我该如何处理地图?
答案 0 :(得分:19)
我猜测Google Map API无法提供如此常见的视觉效果。我错了......它被称为 BEARING 。
private void updateCameraBearing(GoogleMap googleMap, float bearing) {
if ( googleMap == null) return;
CameraPosition camPos = CameraPosition
.builder(
googleMap.getCameraPosition() // current Camera
)
.bearing(bearing)
.build();
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(camPos));
}
由于我设置了我的位置更改以便每2秒通知一次......
mLocationRequest = LocationRequest.create()
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY)
.setInterval(POLLING_FREQ_2SECONDS)
.setFastestInterval(FASTEST_UPDATE_FREQ_2_SECONDS)
我使用相同的地方来处理新位置以及更新相机(新的BEARING):
public void onLocationChanged(Location location) {
// ... process location
updateCameraBearing(googleMap, location.getBearing());
}
TESTED + WORKING = DONE!