根据路线上的方向转动(旋转)标记位置

Posted

技术标签:

【中文标题】根据路线上的方向转动(旋转)标记位置【英文标题】:Turn (rotate)marker position based on direction over the route 【发布时间】:2014-06-16 09:36:55 【问题描述】:

我在 google maps api v2 (android) 上创建了一条路线以及一条折线。我的自定义标记沿着我通过创建线程实现的路线移动。我也得到了机动(左转,右转等)。

现在,随着我的标记开始移动(汽车图标),我希望它转动并在路线中导航。我确实设法旋转了它,但是我想要一个准确的解决方案来解决这个查询。现在我对角度进行了硬编码,因此我的标记与“setRoation() 方法”一起旋转。但是旋转不是应有的,我无法获得它的动态角度。

请帮忙! 提前致谢

【问题讨论】:

你有什么解决办法吗?你能和我分享一个代码吗? 【参考方案1】:

请参阅以下代码以根据位置旋转标记

 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? 你在哪里调用了这个方法? @Ashish Patil 我使用了你提供的代码,但每次我得到轴承值=0.0。你能帮忙吗? @N.Droid 调用位置更新

以上是关于根据路线上的方向转动(旋转)标记位置的主要内容,如果未能解决你的问题,请参考以下文章

根据行驶方向旋转标记

旋转谷歌地图以显示我的实时方向

在方向更改时恢复列表视图中的项目和滚动位置

Google从当前位置到已知位置的方向路线

在OpenGL中沿对象后面的方向旋转相机

matlab画图的时候,如何改变坐标轴的方向?