1 通过驾车实例,小人从起点经过多个途经点行驶到终点
2 :bo坐标标点数组,一变量,动态获取bo。本想通过循环bo长度来实现,但由于本人技术有限,对百度地图API了解不深,没有实现,只能用个笨法子。
3 下面这段代码是通过百度地图导航功能实现,将坐标点连起来得到行车路线轨迹
var driving2 = new BMap.DrivingRoute(map); //驾车实例
driving2.search(bo[0],bo[1]);
driving2.setSearchCompleteCallback(function(){
var pts= driving2.getResults().getPlan(0).getRoute(0).getPath(); //通过驾车实例,获得一系列点的数组
var polyline = new BMap.Polyline(pts);
map.addOverlay(polyline);
})
4 由于百度地图单点运动只支持两个点,是先找到两点间路线在把路线划分成坐标点数组,通过点到点的实现完成小人的移动。 想了很多法子也没有见途经点添加到两点中间
5 最后的实现,举个例子,要得到从a到b,在从b到c的结果,分别得到,从a到b的坐标点数组是s1,从b到c的坐标点数组s2,最后通过concat数组方法,将s2数组添加到s1数组成一个新的数组s3,让小人根据s3数组起点进行移动。实现添加途经点的方法。
6 目前的方法实现是写死的,最好能够通过for循环实现添加途经点,但研究了好久,总是无法实现,如果有能实现的,还望告知下,谢谢!
7 以下代码是动态实现7个节点,都是写死的。
var dri = new BMap.DrivingRoute(map);
if(bo.length==2){
var driving2 = new BMap.DrivingRoute(map); //驾车实例
driving2.search(bo[0],bo[1]);
driving2.setSearchCompleteCallback(function(){
var pts= driving2.getResults().getPlan(0).getRoute(0).getPath(); //通过驾车实例,获得一系列点的数组
var polyline = new BMap.Polyline(pts);
map.addOverlay(polyline);
})
dri.search(bo[0],bo[1]);
dri.setSearchCompleteCallback(function(){
var pts = dri.getResults().getPlan(0).getRoute(0).getPath(); //通过驾车实例,获得一系列点的数组
var paths = pts.length; //获得有几个点
var carMk = new BMap.Marker(pts[0],{icon:myIcon});
map.addOverlay(carMk);
i=0;
function resetMkPoint(i){
carMk.setPosition(pts[i]);