通过高德API提供的List<LatLng> points=AMapServicesUtil.convertArrList(lineItems.get(0).getDirectionsCoordinates())可以获取一条公交线路的所有坐标点,这些个坐标点可以连成一条完整的线路。下图绿色的点就是
从自己的服务端可以获取车辆的位置坐标,可以显示再地图上,问题是List<LatLng> points如何去添加这个坐标点,而且要在正确的下标位置添加。我试过用计算距离判断下标,但是遇到下图掉头的情况就不对了。如下图,假如车辆的位置是A点,根据距离计算,最近点是B点,但按照实际路线,最近点应该是C点。请问各位,就下图来说,如何获取C点再List<LatLng> points中的下标。

解决方案 »

  1.   

    已经获得车辆的位置坐标了,干嘛还要塞到list中,直接显示到地图上就行了啊。List只是用来画线路的,而你的车辆是一直在移动的,只需要更新车辆的er位置就行了啊。
      

  2.   

    直接更新车辆的er是可以实现的,但是需求是车辆要有一个移动的动画,后台只提供开始点和结束点,移动动画需要多个点来完成,这些点要从List中取,而且是开始点和结束点之间的那部分点。不知道这么表述是否清晰。
      

  3.   

    那就比较麻烦了,如果线路是弯的对比经纬度也不好对比,那么就只能不停请求接口获取当前车辆的位置来组成线路了。第一次获取到当前位置坐标显示,然后获取下一次组成list进行移动。如果后台给了上一个站点,当前位置,下一个站点三个坐标就比较好做了,当然有拐角的坐标要给。