aMapNavigation

来自于:开发者立即使用

start close navigationTextListener

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。

概述

aMapNavigation 模块封装了高德导航的sdk,iOS支持语音导航功能, android需要自己写接口播报(注:android从1.0.8开始支持高德内置的语音播报)。用户可自行算路策略类型。开发者只需输入起点终点经纬度即可轻松集成高德导航功能,本模块是由第三方模块开发者提供,使用本模块需在线云编译安装包。

注意:在iOS端最低适配版本为 iOS 8.0

不能同时添加的模块:bMap

在集成此模块之前需先配置 config 文件。在 config 里添加如下字段:

  • 名称:aMap
  • 参数:android_api_key、ios_api_key
  • 备注:同一个 App 需要同时支持 iOS 和 Android 平台,必须单独申请各自的 apiKey,并同时配置在 config 文件中
  • 配置示例:
  1. <feature name="aMapNavigation">
  2. <param name="android_api_key" value="f7Is0dWLom2q6rV3ZfFPZ1aa" />
  3. <param name="ios_api_key" value="81qz3dBYB5q2nGji4IYrawr1" />
  4. </feature>
  • 字段描述:

    android_api_key:在高德地图开放平台申请的 Android 端 AK

    ios_api_key:在高德地图开放平台申请的 iOS 端 AK

注意:使用本模块需配置 config.xml 文件 location 字段,获取后台定位权限。

配置实例:

  1. <preference name="backgroundMode" value="audio | location"/>

用户在使用本模块之前需要获取高德地图API Key,Key 申请的具体流程请参照 申请Key。本模块需要的 key 可以和 aMapaMapLBSaMapLocationaMapReportLocation 模块的 key 共用。

aMapNavigation - 图1

模块接口

start

开始导航

start({params}, callback(ret, err))

params

start:

  • 类型:JSON 对象
  • 描述:起点信息
  • 内部字段:
  1. {
  2. lon //数字类型;起点经度
  3. lat //数字类型;起点纬度
  4. }

wayPoint:

  • 类型:数组
  • 描述:(可选项)途经点位置信息,当 type 为 walk 时本参数无效
  • 内部字段:
  1. [{
  2. lon //数字类型;起点经度
  3. lat //数字类型;起点纬度
  4. }]

end:

  • 类型:JSON 对象
  • 描述:终点信息
  • 内部字段:
  1. {
  2. lon //数字类型;起点经度
  3. lat //数字类型;起点纬度
  4. }

type:

  • 类型:字符串
  • 描述:(可选项)导航路线类型
  • 默认值:drive
  • 取值范围:
    • drive:驾驶
    • walk:步行
    • ride:骑行

strategy:

  • 类型:字符串
  • 描述:(可选项)算路策略,仅当 type 为 drive 时有效 (android不支持)
  • 默认值:fast
  • 取值范围:
    • fast:速度优先
    • fee:费用优先
    • distance:距离优先
    • highway:普通路优先(不走快速路、高速路)
    • jam:时间优先,躲避拥堵
    • feeJam:躲避拥堵且不走收费道路

congestion:

  • 类型:布尔类型
  • 描述:是否躲避拥堵 (ios不支持)
  • 默认值:true

avoidspeed:

  • 类型:布尔类型
  • 描述:不走高速 (ios不支持)
  • 默认值:false

cost:

  • 类型:布尔类型
  • 描述:避免收费 (ios不支持)
  • 默认值:false

hightspeed:

  • 类型:布尔类型
  • 描述:高速优先 (ios不支持)
  • 默认值:false

multipleRoute:

  • 类型:布尔类型
  • 描述:单路径or多路径 (ios不支持)
  • 默认值:false

mode:

  • 类型:字符串
  • 描述:(可选项)导航模式
  • 默认值:GPS
  • 取值范围:
    • GPS:GPS实时导航
    • emulator:模拟导航

styles:

  • 类型:JSON 对象
  • 描述:(可选项)模块各部分的样式
  • 内部字段:
  1. {
  2. image: { //(可选项)JSON对象;标注图标配置
  3. start: , //(可选项)字符串类型;起点图标路径,要求本地路径(fs://、widget://),若不传则显示公用的图标
  4. end: , //(可选项)字符串类型;终点图标路径,要求本地路径(fs://、widget://),若不传则显示公用的 图标
  5. way: , //(可选项)字符串类型;途经点图标(只适用于驾车导航)路径,要求本地路径(fs://、widget://),若不传则显示公用的图标
  6. camera: //(可选项)字符串类型;摄像头图标(只适用于驾车导航)路径,要求本地路径(fs://、widget://),若不传则显示公用的图标
  7. },
  8. preference: { //(可选项)JSON对象;偏好设置
  9. night: false, //(可选项)布尔类型;是否显示黑夜模式;默认:false
  10. compass: false, //(可选项)布尔类型;是否显示指南针;默认:false
  11. crossImg: false,//(可选项)布尔类型;是否显示路口放大图,只适用于驾车导航;默认:false
  12. degree: 30, //(可选项)数字类型;地图倾角大小,范围[0,60],大于40会显示蓝天;默认:30
  13. yawReCal: false,//(可选项)数字类型;偏航时是否重新计算路径;默认:true;android不支持。已废弃,默认重算
  14. alwaysBright: , //(可选项)数字类型;导航状态下屏幕是否一直开启;默认:false
  15. allowsBackgroundLocationUpdates: '' //(可选项)布尔类型;是否允许后台定位,暂仅支持 iOS 平台且只在iOS 9.0及之后起作用;默认:false,为 true 时必须保证 conifg.xml 文件内把后台定位和后台音频播放打开,否则会异常,具体操作见 config.xml 文件配置文档 }
  16. }

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. eventType: '', //字符串类型;导航事件,取值范围:
  3. //calculateSuc 路径规划成功
  4. //calculateFai 路径规划失败
  5. //naviFai 导航发生错误
  6. //naviStart 导航页面推出并开始导航
  7. //naviEnd 达到目的地导航结束
  8. //naviClose 用户关闭导航页面
  9. routeInfo: { //JSON对象;导航的路线信息,仅当 eventType 为 calculateSuc 时有值
  10. length: , //数字类型;导航路径总长度(单位:米)
  11. time: , //数字类型;导航路径所需要的时间(单位:秒)
  12. segmentCount: , //数字类型;导航路线上分段的总数
  13. trafficLightCount:,//数字类型;导航路线上红绿灯的总数
  14. tollCost: //数字类型;导航路线的花费金额(单位:元)
  15. }
  16. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码,取值范围如下:
  3. //2 网络超时或网络失败
  4. //3 起点错误
  5. //4 协议解析错误
  6. //6 终点错误
  7. //10 起点没有找到道路
  8. //11 没有找到通向终点的道路
  9. //12 没有找到通向途经点的道路
  10. //13 路径长度超过限制
  11. //14 其他错误
  12. }

示例代码

  1. var aMapNavigation = api.require('aMapNavigation');
  2. aMapNavigation.start({
  3. start: {
  4. lon: 112.47723797622677,
  5. lat: 34.556480000000015
  6. },
  7. wayPoint: [{
  8. lon: 109.77539000000002,
  9. lat: 33.43144
  10. }],
  11. end: {
  12. lon: 111.57062599999995,
  13. lat: 33.784214
  14. },
  15. type: 'drive',
  16. strategy: 'fast',
  17. mode: 'GPS',
  18. styles: {
  19. image: {
  20. start: 'fs://nav/start.png',
  21. end: 'fs://nav/end.png',
  22. way: 'fs://nav/way.png',
  23. camera: 'fs://nav/camera.png'
  24. },
  25. preference: {
  26. night: false,
  27. compass: false,
  28. crossImg: false,
  29. degree: 30,
  30. yawReCal: false,
  31. jamReCal: false,
  32. alwaysBright: false
  33. }
  34. }
  35. }, function(ret, err) {
  36. if (ret) {
  37. alert(JSON.stringify(ret));
  38. } else {
  39. alert(JSON.stringify(err));
  40. }
  41. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

close

关闭导航

close()

示例代码

  1. var aMapNavigation = api.require('aMapNavigation');
  2. aMapNavigation.close();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

navigationTextListener

监听导航文字提示

android上此接口需要在start之前调用

navigationTextListener({params}, callback(ret))

params

state:

  • 类型:布尔类型
  • 描述:是否监听导航文字提示(注:android上如果此参数为true,内置语音无法播报,需要开发者根据回调自行用其他SDK播报)
  • 默认值: true

stopReading:

  • 类型:布尔类型
  • 描述:是否关闭模块自带的导航语音,仅支持 iOS 端
  • 默认值: true

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. text: '' //字符串类型;导航文字提示
  3. }

示例代码

  1. var aMapNavigation = api.require('aMapNavigation');
  2. aMapNavigation.navigationTextListener({
  3. state : true
  4. }, function(ret, err) {
  5. if (ret) {
  6. alert(JSON.stringify(ret));
  7. }
  8. });

可用性

Android 系统 , iOS系统

可提供的1.2.0及更高版本