开发 地图 JS API 1.4 教程 服务 路线规划

路线规划 最后更新时间: 2021年01月22日

路线规划方式有驾车、公交、步行、骑乘和货车等,本章以驾车规划为例向您介绍相关API的使用,包括:

  1. 获取驾车路线规划数据
  2. 使用默认UI显示驾车路线详情
  3. 使用驾车规划拖拽插件编辑路线
  4. 其它路线规划 API

获取驾车路线规划数据

驾车路线规划需要使用AMap.Driving插件,在编码前请确保引入该插件,关于该插件的引入和参考前面的教程:插件的使用

获取驾车路线规划一般有两种方式:经纬度搜索关键字,下面分别介绍这两种方式。


使用经纬度获取驾车规划数据

通过传入起点和终点的经纬度信息,获取对应的驾车路线规划。假如从北京南站驾车到北京站接朋友,一次完整的查询如下:

AMap.plugin('AMap.Driving', function() {
  var driving = new AMap.Driving({
    // 驾车路线规划策略,AMap.DrivingPolicy.LEAST_TIME是最快捷模式
    policy: AMap.DrivingPolicy.LEAST_TIME
  })
  
  var startLngLat = [116.379028, 39.865042]
  var endLngLat = [116.427281, 39.903719]
  
  driving.search(startLngLat, endLngLat, function (status, result) {
    // 未出错时,result即是对应的路线规划方案
  })
})

如果选用其它的路线规划策略,修改创建AMap.Drivingpolicy参数即可。其它policy参数请参考 驾车策略

查看AMap.Driving所有属性和方法


使用关键字获取驾车规划数据

通过传入起点、终点的地址信息,获取对应的驾车路线规划。假如要从北京市地震局(公交站)坐车去亦庄文化园(地铁站),一次完整的查询如下:

AMap.plugin('AMap.Driving', function() {
  var driving = new AMap.Driving({
    // 驾车路线规划策略,AMap.DrivingPolicy.LEAST_TIME是最快捷模式
    policy: AMap.DrivingPolicy.LEAST_TIME
  })
  
  var points = [
    { keyword: '北京市地震局(公交站)',city:'北京' },
    { keyword: '亦庄文化园(地铁站)',city:'北京' }
  ]
  
  driving.search(points, function (status, result) {
    // 未出错时,result即是对应的路线规划方案
  })
})

如果选用其它的路线规划策略,修改创建AMap.Drivingpolicy参数即可。其它policy参数请参考 驾车策略

查看AMap.Driving所有属性和方法


添加途经点参数

前面的两节介绍了通过经纬度、关键字方式获取驾车规划数据,并且都只传入了起点和终点。实际上AMap.Driving还支持发起路线规划时传入途经点数据。使用方式请参考下面的代码示例:

AMap.plugin('AMap.Driving', function() {
  var driving = new AMap.Driving({
    // 驾车路线规划策略,AMap.DrivingPolicy.LEAST_TIME是最快捷模式
    policy: AMap.DrivingPolicy.LEAST_TIME
  })
  
  var points = [
    { keyword: '北京市地震局(公交站)',city:'北京' },
    { keyword: '亦庄文化园(地铁站)',city:'北京' }
  ]

  var opts = {
    // 途经点参数,最多支持传入16个途经点
    waypoints: [
      { keyword: '北京站', city:'北京' }
    ]
  }
  
  driving.search(points, opts, function (status, result) {
    // 未出错时,result即是对应的路线规划方案
  })
})

此外,除了驾车路线规划(AMap.Driving)外,货车路线规划(AMap.TruckDriving)也支持发起路线规划时传入途经点参数。

使用默认UI显示驾车路线规划

通常情况下,使用AMap.Driving获取驾车路线规划发起搜索后,需要开发者根据返回的路线方案数据结构自行显示路线详情并结合AMap.Polyline绘制到地图上。同时高德JS API还提供了默认的UI帮助开发者节省时间、提升效率,自动在地图上显示结构化的路线详情。如果您需要使用此功能,请按照下面代码示例编写即可:

AMap.plugin('AMap.Driving', function() {
  var driving = new AMap.Driving({
    // 驾车路线规划策略,AMap.DrivingPolicy.LEAST_TIME是最快捷模式
    policy: AMap.DrivingPolicy.LEAST_TIME,
    // map 指定将路线规划方案绘制到对应的AMap.Map对象上
    map: map,
    // panel 指定将结构化的路线详情数据显示的对应的DOM上,传入值需是DOM的ID
    panel: 'panel'
  })
  
  var points = [
    { keyword: '北京市地震局(公交站)',city:'北京' },
    { keyword: '亦庄文化园(地铁站)',city:'北京' }
  ]
  
  // 搜索完成后,将自动绘制路线到地图上
  driving.search(points)
})

如果选用其它的路线规划策略,修改创建AMap.Drivingpolicy参数即可。其它policy参数请参考 驾车策略

查看AMap.Driving所有属性和方法

使用驾车规划拖拽插件编辑路线

除了通过经纬度和关键字进行驾车路线规划外,还可以使用拖拽插件辅助做驾车路线规划。下面是结合了拖拽插件的驾车路线规划示例:

map.plugin('AMap.DragRoute', function () {
  // path 是驾车导航的起、途径和终点,最多支持16个途经点
  var path = []

  path.push([116.303843, 39.983412])
  path.push([116.321354, 39.896436])
  path.push([116.407012, 39.992093])

  var route = new AMap.DragRoute(map, path, AMap.DrivingPolicy.LEAST_FEE)
  // 查询导航路径并开启拖拽导航
  route.search()
})

查看AMap.DragRoute所有属性和方法

其它路线规划方式API

除驾车路线规划外,高德JS API还提供了其它几种常用的出行路线规划 API:

说明:货车路径规划为收费服务接口,目前提供免费配额每日调用次数上限100次,QPS上限1。如果您有更高配额要求或合作意向,请通过工单系统 提交商务合作工单 进行沟通。


具体使用方式,请参考对应的参考手册和示例中心。

返回顶部 示例中心 常见问题 智能客服 公众号
二维码