百度地图(12)-路径规划

1. 百度地图的路径规划分为四类:驾驶、交通工具、骑行、步行。每个调用不同的函数,虽说是不同的函数,但是使用方法

    基本相同。

 DrivingRoute、TransitRoute、WalkingRoute、RidingRoute。

 

2. 驾驶模式

1         routing = new BMap.DrivingRoute(map,{
2           renderOptions :{
3             map:map,
4             autoViewport: true
5           }
6         });

 

3. 交通工具模式

交通工具还牵涉到跨省时,以飞机优先还是动车优先,具体可以参考具体类。https://mapopen-pub-jsapi.bj.bcebos.com/jsapi/reference/jsapi_reference_3_0.html#a7b9

 1   routing = new BMap.TransitRoute(map,{
 2           renderOptions :{
 3             map:map,
 4             autoViewport: true
 5           },
 6           intercityPolicy:BMAP_INTERCITY_POLICY_EARLY_START,
 7 
 8           transitTypePolicy:BMAP_TRANSIT_TYPE_POLICY_AIRPLANE
 9 
10         });
TransitPolicy
此常量表示市内公交方案换乘策略。
常量 描述
BMAP_TRANSIT_POLICY_RECOMMEND 推荐方案
BMAP_TRANSIT_POLICY_LEAST_TIME 最少时间
BMAP_TRANSIT_POLICY_LEAST_TRANSFER 最少换乘
BMAP_TRANSIT_POLICY_LEAST_WALKING 最少步行
BMAP_TRANSIT_POLICY_AVOID_SUBWAYS 不乘地铁
BMAP_TRANSIT_POLICY_FIRST_SUBWAYS 优先地铁
IntercityPolicy
此常量表示跨城公交换乘策略。
常量 描述
BMAP_INTERCITY_POLICY_LEAST_TIME 时间短
BMAP_INTERCITY_POLICY_EARLY_START 出发早
BMAP_INTERCITY_POLICY_CHEAP_PRICE 价格低
TransitTypePolicy
此常量表示跨城交通方式策略。
常量 描述
BMAP_TRANSIT_TYPE_POLICY_TRAIN 火车优先
BMAP_TRANSIT_TYPE_POLICY_AIRPLANE 飞机优先
BMAP_TRANSIT_TYPE_POLICY_COACH 大巴优先
 
4. 骑行模式
1   routing = new BMap.RidingRoute(map,{
2           renderOptions :{
3             map:map,
4             autoViewport: true
5           }
6         });

 

5. 步行模式

1    routing = new BMap.WalkingRoute(map,{
2           renderOptions :{
3             map:map,
4             autoViewport: true
5           }
6         });

 

6. 路径规划

1  routing.search(startPt,endPt);

调用search函数后,地图默认会将规划路径显示出来。

 

7. 自定义起点和终点图标,修改路线颜色。

startPt 和 endPt 是在地图上点击获取的 Point 对象。startMarker 和 endMarker 为自定义图标的两个点,单独添加到地图上。

setPolylinesSetCallback 中执行的代码,先获取到已产生的路线并删除,然后根据路线的点集合,重新画线 Polyline ,并给颜色赋值。

 1  var startIcon = new BMap.Icon('/bdMap/img/start.png', new BMap.Size(60,60));
 2 
 3     var endIcon = new BMap.Icon('/bdMap/img/end.png', new BMap.Size(48,48));
 4 
 5     var startMarker = new BMap.Marker(startPt,{icon:startIcon});
 6 
 7 
 8     var endMarker = new BMap.Marker(endPt,{icon:endIcon});
 9 
10 
11     routing.search(startPt,endPt);
12 
13     let routeResult = routing.getResults();
14 
15     console.log(routeResult);
16 
17     routing.setPolylinesSetCallback(function (result) {
18       routing.clearResults();
19       map.clearOverlays();
20 
21       map.addOverlay(startMarker);
22       map.addOverlay(endMarker);
23 
24       var points = [];
25       result[0].Ar.map(function (item) {
26         points.push(new BMap.Point(item.lng,item.lat));
27       });
28       var polyline = new BMap.Polyline(points,{strokeColor:"#ff5943",strokeWeight:5,strokeOpacity:0.5});
29       map.addOverlay(polyline);
30     });

 

8. 页面显示

 

 

9. 代码参考

https://github.com/WhatGIS/bdMap

posted @ 2021-04-21 14:37  googlegis  阅读(2738)  评论(0编辑  收藏  举报

坐标合肥,非典型GIS开发人员 GitHub