根据路线方向旋转标记位置

8
我已经在Google Maps API v2(Android)上创建了一条路线和折线。我创建了一个线程来使我的自定义标记沿着这条路线移动。我还能够获得转向操作(向左转,向右转等)。
现在当我的标记开始移动时(一个汽车图标),我希望它能够沿着路线旋转并导航。我设法将其旋转,但是我想要一个更准确的解决方案。目前,我通过硬编码角度以及使用“setRotation()”方法来旋转我的标记。然而,旋转不是像它应该的那样,并且我无法获得其动态角度。
请帮忙!万分感谢!

你有解决方案吗?你能和我分享一下代码吗? - Nishant Rajput
1个回答

4
嘿,看下面的代码可以根据位置旋转标记。
 double oldlat = 19.180237, oldlong = 72.855415;
    double newlat = 19.180237, newlong = 72.855415;

    public void rotatemarker() {
        Location prevLoc = new Location("service Provider");
        prevLoc.setLatitude(oldlat);
        prevLoc.setLongitude(oldlong);
        Location newLoc = new Location("service Provider");
        newLoc.setLatitude(newlat);
        newLoc.setLongitude(newlong);
        bearing = prevLoc.bearingTo(newLoc);
        map.clear();
        map.addMarker(new MarkerOptions()
                .position(new LatLng(newlat, newlong))
                .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher))
                .anchor(0.5f, 0.5f)
                .rotation(bearing)
                .flat(true));


        oldlong = newlong;

    }

我正在从事一个类似的项目。为什么oldlong被赋值给newlong? - The_Martian
1
你在哪里调用了这个方法? - Nishant Rajput
@Ashish Patil,我使用了您提供的代码,但每次都得到方位角值=0.0。您能帮忙吗? - Neha
@N.Droid 呼叫位置更新 - Ashish Patil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接