百度地图-驾车路线规划及轨迹回放

一、前置条件

1、使用地图
2、引入路书-轨迹回放

html引入

<script type="text/javascript" src="https://api.map.baidu.com/library/LuShu/1.2/src/LuShu_min.js"> </script>

其他方式引入

二、代码实现

// 路线规划 -  轨迹回放
var myP1 = new BMap.Point(114.03, 22.611); //起点-深圳北
var myP3 = new BMap.Point(116.404449, 39.920423); //终点-北京

//
var pts = [];
// track();
function track() {
  addMarker(); //  marker

  // 路线规划方式	类名	简介
  // 驾车 DrivingRoute	提供驾车路线规划服务
  // 公交	TransitRoute	提供市内公交和跨城交通方式(飞机、火车、大巴)的路线规划服务
  // 步行	WalkingRoute	提供步行路线规划服务
  // 骑行 RidingRoute  提供骑行线路规划服务
  var driving = new BMap.DrivingRoute(map); //创建驾车实例
  driving.search(myP1, myP3); //驾车搜索
  // 回调
  driving.setSearchCompleteCallback(() => {
    // 获取结果第一条方案  results.getPlan(0);
    // 获取方案的驾车线路   plan.getRoute(0);
    // getPath 路线点集合
    pts = driving.getResults().getPlan(0).getRoute(0).getPath(); //通过驾车实例,获得一系列点的数组

    // 获取每个关键步骤,
    getSteps(driving);

    //  添加路线
    var polyline = new BMap.Polyline(pts);
    map.addOverlay(polyline);

    LuShu(); // 轨迹播放
  });
}
function getSteps(driving) {
  // 关键步骤:每个步骤包含经纬度和提示信息
  var route = driving.getResults().getPlan(0).getRoute(0);
  var s = [];
  for (var i = 0; i < route.getNumSteps(); i++) {
    s.push(route.getStep(i));
  }
  // console.log(s);
  // 关键步骤 做其他使用...  例如提示等
}
function LuShu() {
  //  百度路书,加个小车的icon,让图动起来
  // 参数:url,size,配置
  var icon = new BMap.Icon(
    'http://developer.baidu.com/map/jsdemo/img/car.png',
    new BMap.Size(32, 32),
    { anchor: new BMap.Size(15, 15) }
  );
  // 参数: 地图 点集合 配置
  new BMapLib.LuShu(map, pts, {
    defaultContent: '深圳到北京', //覆盖物的内容
    speed: 5000, //路书速度
    icon: icon, //覆盖物图标,默认是百度的红色地点标注
    autoView: false, //自动调整路线视野
    enableRotation: true, //覆盖物随路线走向
    // landmarkPois :必要参数  可以为空数组 否则报错
    landmarkPois: [{ lng: 114.03, lat: 22.611, html: 'tips', pauseTime: 2 }],
  }).start(); //启动路书函数
}

function addMarker() {
  var m1 = new BMap.Marker(myP1); //创建 marker
  var m3 = new BMap.Marker(myP3);

  map.addOverlay(m1);
  map.addOverlay(m3);

  var lab1 = new BMap.Label('起点-深圳', { position: myP1 }); //创建 label
  var lab3 = new BMap.Label('终点-北京', { position: myP3 });
  map.addOverlay(lab1);
  map.addOverlay(lab3);
}

三、效果

四、参考

1、路书-轨迹回放---new BMapLib.LuShu

基于百度地图和百度路书的行车轨迹回放(含途经点的多次导航)_百度地图js轨迹回放-CSDN博客

2、驾车模式-轨迹规划---new BMap.DrivingRoute

【百度地图API】怎样制作多途经点的线路导航——驾车篇

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值