1、百度自带的路径规划
var myP1 = new BMap.Point(116.380967,39.913285); //起点
var myP2 = new BMap.Point(116.424374,39.914668); //终点
var driving2 = new BMap.DrivingRoute(map, {renderOptions:{map: map, autoViewport: true}}); //驾车实例
driving2.search(myP1, myP2); //显示一条公交线路
DrivingRoute:驾车导航,提供驾车出行方案的搜索服务,可以根据起始坐标和途经点规划路径。
TransitRoute:公交导航,提供某一特定地区的公交出行方案的搜索服务。
WalkingRoute:步行导航,提供步行出行方案的搜索服务。
上面的简单实例是百度demo中的例子百度demo
2、为了实现我们可定制化的路径规划,我们就不能用百度api默认的这套规则
可以有以下思路
renderOptions把这个属性去掉不显示默认规划结果
用DrivingRoute划线给它加途经点 driving2.search(myP1, myP2,{waypoints:Points}); 其中waypoints为途经点数组,现在只能途径10个以内有效
调用回调函数 driving.setSearchCompleteCallback(function(){
var pts = driving.getResults().getPlan(0).getRoute(0).getPath(); //通过驾车实例,获得一系列点的数组
获取百度路径规划的所有点 然后可以自己划线
var paths = pts.length; //获得有几个点
var carMk = new BMap.Marker(pts[0]);
var carMk2 = new BMap.Marker(pts[paths-1]);
map.addOverlay(carMk);
map.addOverlay(carMk2)划线
var line = new BMap.Polyline(pts,
{strokeColor:"green", strokeWeight:6, strokeOpacity:0.5});
map.addOverlay(line);
});
完美结束
来源:oschina
链接:https://my.oschina.net/u/2401742/blog/639928