根据驾驶方向旋转标记

我在Google地图地图中有一个标记,如下所示:

PIC

当用户开车时,我想根据他的驾驶方向旋转它。 我怎样才能做到这一点? 我可能应该使用以前的位置和当前的位置coords来计算,但我不知道如何。

Solutions Collecting From Web of "根据驾驶方向旋转标记"

如果您使用GPS定位用户,则您在onLocationChanged中获得的Location对象包含方位 。

如果只有两个坐标(例如,只有networking位置提供者的坐标),则可以使用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)); 

您必须将锚定点设置为您要旋转的点,而且这也是您希望位于标记点的位置。 (0.5,0.5)是图像的中心。