旋转谷歌地图以显示我的实时方向
Posted
技术标签:
【中文标题】旋转谷歌地图以显示我的实时方向【英文标题】:ROTATE Google-Map to display my real-time DIRECTION 【发布时间】:2016-09-23 20:59:10 【问题描述】:我正在使用 Google Maps android API v2,在其中将我的设备位置显示为地图上的 GoogleMap 标记。 我有一个监听器 (LocationServices.FusedLocationApi.requestLocationUpdates...) 附加到地图上,以便处理每个 GPS 位置更改。 每次我收到一个新位置时,我都会更新标记(我的位置)以及地图上的相机,它几乎显示出我在开车时正在移动。
但是...我需要一些帮助才能使地图旋转和/或显示在我移动的方向上。我的意思是,当我开车时,我需要旋转地图,这样我可以在地图左侧看到我在现实生活左侧的内容,右侧也是如此。由于 MAP 方向是静态的,因此标记 (Me) 会在其上移动,但大多数时候该方向与我的汽车实时方向不匹配。
为了实现这种视觉效果,我应该如何处理地图?
【问题讨论】:
所以从技术上讲,您希望实现传感器侦听器,然后让地图根据回调中的数据(如果是左或右)对其做出反应。请查看以下帖子:***.com/questions/6224577、***.com/q/2317428/4625829、***.com/q/14320015/4625829、***.com/q/4308262/4625829、***.com/q/36258490/4625829、***.com/q/18162642/4625829 【参考方案1】:我在猜测 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)
我使用同一个地方来处理新位置以及更新相机(新轴承):
public void onLocationChanged(Location location)
// ... process location
updateCameraBearing(googleMap, location.getBearing());
测试 + 工作 = 完成!
【讨论】:
我们如何在 V3 中做到这一点?请建议。另外,我已经发布了类似的问题,以便通过改变方位 3 次(每次 120 度围绕中心点旋转 1 个周期)来旋转地图 360 度,但是有缓动和抽搐。我怎样才能避免这种情况。 ***.com/questions/48123738/… 在 V2 和 V3 中,您可以在地图活动或片段中实现 GoogleMap.OnCameraIdleListener 后在 onCameraIdle() 方法中使用 @G305 答案以上是关于旋转谷歌地图以显示我的实时方向的主要内容,如果未能解决你的问题,请参考以下文章