我的 Google map 中有一个如下所示的标记:
当用户开车时,我想根据他的驾驶方向旋转它。我怎样才能做到这一点?我可能应该使用以前的位置和当前位置坐标进行计算,但我不知道如何计算。
最佳答案
如果您使用 GPS 定位用户,那么您在 onLocationChanged
中获得的 Location
对象包含 bearing .
如果您只有两个坐标(例如,您只有来自网络位置提供商的坐标),您可以使用 Location.bearingTo()
来计算两个坐标的方位:
Location prevLoc = ... ;
Location newLoc = ... ;
float bearing = prevLoc.bearingTo(newLoc) ;
如果您有方位角,您可以使用 MarkerOptions.rotation()
设置标记的旋转:
mMap.addMarker(new MarkerOptions()
.position(markerLatLng)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.map_marker))
.anchor(0.5f, 0.5f)
.rotation(bearing)
.flat(true));
您必须设置 anchor到你想要旋转的点,它也是你想要在你设置为标记的位置的点。 (0.5, 0.5) 是图像的中心。
关于android - 根据行驶方向旋转标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27092113/