无法使用谷歌地图v.2旋转标记

时间:2016-01-16 11:13:46

标签: android google-maps

目标是使标记朝下一个坐标点旋转。以下是获取角度的方法:

private double computeAngleBetween(LatLng from, LatLng to) {
    double fromLat = from.latitude;
    double fromLng = from.longitude;
    double toLat = to.latitude;
    double toLng = to.longitude;
    double dLat = fromLat - toLat;
    double dLng = fromLng - toLng;
    return 2 * asin(sqrt(pow(sin(dLat / 2), 2) +
            cos(fromLat) * cos(toLat) * pow(sin(dLng / 2), 2)));
}

以下是我创建标记的代码:

@Override
public void onMapReady(GoogleMap googleMap) {
    //Unnecessary code is deleted
    float bearing = (float)computeAngleBetween(theRoute.get(0),theRoute.get(1));

    Marker theAirplane = gMap.addMarker(new MarkerOptions()
            .position(start)
            .icon(BitmapDescriptorFactory.fromResource(R.drawable.airplane))
            .flat(true)
            .anchor(0.5f, 0.5f)
            .rotation(bearing)
            .draggable(true));
    theAirplane.setRotation(bearing);

    movePlane(theAirplane, theRoute.size()-1);

}

所以,我无法弄清楚问题是什么。一切似乎都没问题,但没有任何作用,你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

您可以使用' setRotation(浮动旋转)'设置标记的旋转。旋转轴垂直于标记。旋转0对应于标记的默认位置。

确保您的项目附带了最新的Play Services SDK。您需要从SDK Manager下载r12,然后将该库项目附加到您的项目中。

以下示例项目演示如何使用' setRotation':https://github.com/commonsguy/cw-omnibus/tree/master/MapsV2/FlatMarkers

我在这里找到了答案:Maps V2 how to rotate Marker - where is rotation option?