为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
注意:应工信部要求,自本插件1.3.0版本起首次调用本插件前必须先弹出隐私协议,详情参考SDK合规使用方案。之后需先调用 updateNavigationPrivacy,否则导航接口无效。
aMapNavigation 插件封装了高德导航的sdk,iOS支持语音导航功能, android需要自己写接口播报(注:android从1.0.8开始支持高德内置的语音播报)。用户可自行算路策略类型。开发者只需输入起点终点经纬度即可轻松集成高德导航功能,本插件是由第三方插件开发者提供,使用本插件需在线应用打包安装包。
注意:在iOS端最低适配版本为 iOS 8.0
不能同时添加的插件:bMap
在集成此插件之前需先配置 config 文件。在 config 里添加如下字段:
<feature name="aMapNavigation">
<param name="android_api_key" value="f7Is0dWLom2q6rV3ZfFPZ1aa" />
<param name="ios_api_key" value="81qz3dBYB5q2nGji4IYrawr1" />
</feature>
字段描述:
android_api_key:在高德地图开放平台申请的 Android 端 AK
ios_api_key:在高德地图开放平台申请的 iOS 端 AK
注意:使用本插件需配置 config.xml 文件 location 字段,获取后台定位权限。
配置实例:
<preference name="backgroundMode" value="audio | location"/>
用户在使用本插件之前需要获取高德地图API Key,Key 申请的具体流程请参照 申请Key。本插件需要的 key 可以和 aMap、aMapLBS 、aMapLocation 、aMapReportLocation 插件的 key 共用。
从1.2.6版本起,iOS 端 SDK 更新为高德最新版本SDK,最新版本的SDK包含 IDFA 相关功能。所以 iOS 端提交 AppStore 时必须认真阅读 提交AppStore必读,以及如何解决因获取 IDFA 被 AppStore 拒绝的问题?
#插件接口
设置导航隐私权限
updateMapViewPrivacy({params})
privacyAgree:
privacyShow:
containStatus:
var aMap = api.require('aMapNavigation');
aMap.updateNavigationPrivacy({
privacyAgree:'didAgree',
privacyShow:'didShow',
containStatus:'didContain'
});
iOS系统,Android系统
可提供的1.3.0及更高版本
开始导航
start({params}, callback(ret, err))
start:
{
lon: //数字类型;起点经度
lat: //数字类型;起点纬度
}
wayPoint:
[{
lon: //数字类型;起点经度
lat: //数字类型;起点纬度
}]
end:
{
lon: //数字类型;起点经度
lat: //数字类型;起点纬度
}
type:
strategy:
congestion:
avoidspeed:
cost:
hightspeed:
multipleRoute:
mode:
styles:
{
image: { //(可选项)JSON对象;标注图标配置
start: , //(可选项)字符串类型;起点图标路径,要求本地路径(fs://、widget://),若不传则显示公用的图标
end: , //(可选项)字符串类型;终点图标路径,要求本地路径(fs://、widget://),若不传则显示公用的 图标
way: , //(可选项)字符串类型;途经点图标(只适用于驾车导航)路径,要求本地路径(fs://、widget://),若不传则显示公用的图标
camera: //(可选项)字符串类型;摄像头图标(只适用于驾车导航)路径,要求本地路径(fs://、widget://),若不传则显示公用的图标
},
preference: { //(可选项)JSON对象;偏好设置
night: false, //(可选项)布尔类型;是否显示黑夜模式;默认:false
compass: false, //(可选项)布尔类型;是否显示指南针;默认:false
crossImg: false,//(可选项)布尔类型;是否显示路口放大图,只适用于驾车导航;默认:false
degree: 30, //(可选项)数字类型;地图倾角大小,范围[0,60],大于40会显示蓝天;默认:30
yawReCal: false,//(可选项)数字类型;偏航时是否重新计算路径;默认:true;android不支持。已废弃,默认重算
alwaysBright: , //(可选项)数字类型;导航状态下屏幕是否一直开启;默认:false
allowsBackgroundLocationUpdates: '' //(可选项)布尔类型;是否允许后台定位,暂仅支持 iOS 平台且只在iOS 9.0及之后起作用;默认:false,为 true 时必须保证 conifg.xml 文件内把后台定位和后台音频播放打开,否则会异常,具体操作见 config.xml 文件配置文档 }
}
ret:
{
eventType: '', //字符串类型;导航事件,取值范围:
//calculateSuc 路径规划成功
//calculateFai 路径规划失败
//naviFai 导航发生错误
//naviStart 导航页面推出并开始导航
//naviEnd 达到目的地导航结束
//naviClose 用户关闭导航页面
routeInfo: { //JSON对象;导航的路线信息,仅当 eventType 为 calculateSuc 时有值
length: , //数字类型;导航路径总长度(单位:米)
time: , //数字类型;导航路径所需要的时间(单位:秒)
segmentCount: , //数字类型;导航路线上分段的总数
trafficLightCount:,//数字类型;导航路线上红绿灯的总数
tollCost: //数字类型;导航路线的花费金额(单位:元)
}
}
err:
{
code: //数字类型;错误码,取值范围如下:
//2 网络超时或网络失败
//3 起点错误
//4 协议解析错误
//6 终点错误
//10 起点没有找到道路
//11 没有找到通向终点的道路
//12 没有找到通向途经点的道路
//13 路径长度超过限制
//14 其他错误
}
var aMapNavigation = api.require('aMapNavigation');
aMapNavigation.start({
start: {
lon: 112.47723797622677,
lat: 34.556480000000015
},
wayPoint: [{
lon: 109.77539000000002,
lat: 33.43144
}],
end: {
lon: 111.57062599999995,
lat: 33.784214
},
type: 'drive',
strategy: 'fast',
mode: 'GPS',
styles: {
image: {
start: 'fs://nav/start.png',
end: 'fs://nav/end.png',
way: 'fs://nav/way.png',
camera: 'fs://nav/camera.png'
},
preference: {
night: false,
compass: false,
crossImg: false,
degree: 30,
yawReCal: false,
jamReCal: false,
alwaysBright: false
}
}
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
} else {
api.alert({msg: JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
关闭导航
close()
var aMapNavigation = api.require('aMapNavigation');
aMapNavigation.close();
iOS系统,Android系统
可提供的1.0.0及更高版本
监听导航文字提示
android上此接口需要在start之前调用
navigationTextListener({params}, callback(ret))
state:
stopReading:
ret:
{
text: '' //字符串类型;导航文字提示
}
var aMapNavigation = api.require('aMapNavigation');
aMapNavigation.navigationTextListener({
state : true
}, function(ret, err) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
Android 系统 , iOS系统
可提供的1.2.0及更高版本