aMapNaviPlus 插件封装了高德导航的sdk,支持语音导航功能,支持货车导航信息设置。开发者只需输入起点终点经纬度即可轻松集成高德导航功能,本插件是由第三方插件开发者提供,使用本插件需在线应用打包安装包。
使用插件前,请先注册高德开放平台账号。
提交AppStore必读:本插件的高德导航基础包包含了IDFA,提交苹果审核时请参考高德处理IDFA官方文档。
插件使用攻略
1、key的获取
用户在使用本插件之前需要获取高德地图API Key,Key 申请的具体流程请参照 申请Key。本插件需要的 key 可以和 aMapNavigation 、aMap、aMapLBS 、aMapLocation 、aMapReportLocation 插件的 key 共用。
2、config.xml配置信息如下:
<feature name="aMapNaviPlus">
<param name="android_api_key" value="0477268b22822ea9b245abef9149ee35" />
<param name="ios_api_key" value="81qz3dBYB5q2nGji4IYrawr1" />
</feature>
3、后台定位权限
注意:使用本插件需配置 config.xml 文件 location 字段,获取后台定位权限。
配置实例:
<preference name="backgroundMode" value="audio | location"/>
4、应用打包权限
Android:4.0.0及以上 iOS:8.0及以上
打开导航后的一些事件监听
addEventListener(callback(ret))
ret:
{
eventType: '',//onMapClick 地图单点事件
//onMapLongClick 地图长按事件
//onInitNaviFailure 导航初始化失败时的回调函数
//onInitNaviSuccess 导航初始化成功时的回调函数
//onStartNavi 启动导航后的回调函数
//onTrafficStatusUpdate 当前方路况光柱信息有更新时回调函数。 注意:该接口仅驾车模式有效
//onLocationChange 当位置信息有更新时的回调函数
//onGetNavigationText 导航播报信息回调函数
//onEndEmulatorNavi 模拟导航停止后回调函数
//onArriveDestination 到达目的地后回调函数
//onReCalculateRouteForYaw 偏航后准备重新规划路线前的通知回调
//onReCalculateRouteForTrafficJam 驾车导航时,当前方遇到拥堵时准备重新规划路线前的通知回调。
//onArrivedWayPoint 驾车路径导航到达某个途经点的回调函数。 注意:该接口仅驾车模式有效
//updateTurnIconImage
//onNaviInfoUpdate 导航引导信息回调
//updateCameraInfo 导航过程中的摄像头信息回调函数 注意:该接口仅驾车模式有效
//updateIntervalCameraInfo 导航过程中的区间测速信息回调函数 注意:该接口仅驾车模式有效
//onServiceAreaUpdate 服务区信息回调函数 注意:该接口仅驾车模式有效
//showCross 显示路口放大图回调(实景图)。 注意:该接口仅驾车模式有效
//hideCross 关闭路口放大图回调(实景图)。 注意:该接口仅驾车模式有效
//showLaneInfo 显示道路信息回调。 注意:该接口仅驾车模式有效
//hideLaneInfo 关闭道路信息回调。 注意:该接口仅驾车模式有效
//onPlayRing 回调各种类型的提示音,类似高德导航"叮". 注意:该接口仅驾车模式有效
//onCalculateRouteSuccess 路线规划成功回调,包括算路、导航中偏航、用户改变算路策略、行程点等触发的重算,
//onCalculateRouteFailure 路线规划失败回调,包括算路、导航中偏航、用户改变算路策略、行程点等触发的重算,
//onNaviRouteNotify 导航过程中道路信息通知 注意:该接口仅驾车模式有效
//onGpsSignalWeak 手机卫星定位信号强弱变化的回调
//onNaviSetting 界面右下角设置按钮的点击回调
//onNaviCancel 导航页面左下角"退出"按钮的点击回调
//onNaviMapMode 导航视角变化回调
//onScanViewButtonClick 界面全览按钮的点击回调
//onMapTypeChanged 地图白天黑夜模式切换回调
//onNaviViewShowMode 导航视图展示模式变化回调
//notifyParallelRoad 通知当前可以进行平行道路切换,包括主路、辅路以及高架桥上、高架桥下
naviMode : '',
location : {
...
},
type : '',
text : '',
wayID : '',
naviInfo : {
...
},
turnIconImage : '',
turnIconType : '',
showCross : '',
frontLane : '',
laneCount : '',
backgroundLane : '',
laneTypeIdArray : '',
routeResult : {
...
},
notifyData : {
...
},
isWeak : '',
serviceAreaInfos : [{
...
}],
status : '',
startInfo : {
...
},
endInfo : {
...
},
cameraInfos : [{
...
}],
naviMode : 0,
showStandardNightType : '',
showMode : '',
roadStatus : {
...
},
}
var demo = api.require('aMapNaviPlus');
demo.addEventListener(function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
打开导航界面
openAMapNaviView({params},callback(ret, err))
rect:
{
x:0, //左上角x坐标,默认0
y:0, //左上角y坐标,默认0
w:320, //宽度,默认'auto',页面从x位置开始自动充满父页面宽度
h:480 //高度,默认'auto',页面从y位置开始自动充满父页面高度
marginLeft:0, //相对父页面左外边距的距离,默认0
marginTop:0, //相对父页面上外边距的距离,默认0
marginBottom:0, //相对父页面下外边距的距离,默认0
marginRight:0 //相对父页面右外边距的距离,默认0
}
fixedOn:
fixed:
startPointImage:
endPointImage:
wayPointImage:
carImage:
mapStyle:
dataPath:
onlineCarHailingType:
naviMode:
isLayoutVisible:
showCrossImage:
showTrafficButton:
showTrafficBar:
showBrowseRouteButton:
showMoreButton:
isUseInnerVoice:
isCallBackText:
ret:
{
status: true, //布尔型;true||false
}
var obj = api.require('aMapNaviPlus');
demo.openAMapNaviView({
rect: {
x: 0,
y: 0,
w: api.frameWidth,
h: api.frameHeight-100
},
fixedOn: api.frameName,
fixed: true,
},function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
隐藏导航界面
hideAMapNaviView({params},callback(ret, err))
ret:
{
status: true, //布尔型;true||false
}
err:
{
msg : '' //错误信息
}
var obj = api.require('aMapNaviPlus');
demo.hideAMapNaviView(function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
显示导航界面
showAMapNaviView({params},callback(ret, err))
ret:
{
status: true, //布尔型;true||false
}
err:
{
msg : '' //错误信息
}
var obj = api.require('aMapNaviPlus');
demo.showAMapNaviView(function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
关闭导航界面
closeAMapNaviView({params},callback(ret, err))
ret:
{
status: true, //布尔型;true||false
}
err:
{
msg : '' //错误信息
}
var obj = api.require('aMapNaviPlus');
demo.closeAMapNaviView(function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
重设导航界面的大小和位置
setRect({params},callback(ret, err))
rect:
{
x:0, //左上角x坐标,默认0
y:0, //左上角y坐标,默认0
w:320, //宽度,默认'auto',页面从x位置开始自动充满父页面宽度
h:480 //高度,默认'auto',页面从y位置开始自动充满父页面高度
marginLeft:0, //相对父页面左外边距的距离,默认0
marginTop:0, //相对父页面上外边距的距离,默认0
marginBottom:0, //相对父页面下外边距的距离,默认0
marginRight:0 //相对父页面右外边距的距离,默认0
}
fixedOn:
fixed:
ret:
{
status: true, //布尔型;true||false
}
var obj = api.require('aMapNaviPlus');
demo.setRect({
rect: {
x: 0,
y: 0,
w: api.frameWidth,
h: api.frameHeight-100
},
fixedOn: api.frameName,
fixed: true,
},function(ret, err) {
alert(JSON.stringify(ret));
});
iOS、Android系统
可提供的1.0.0及更高版本
更新地图UI按钮显示逻辑
updateViewOptions({params})
isLayoutVisible:
showCrossImage:
showTrafficButton:
showTrafficBar:
showBrowseRouteButton:
showMoreButton:
##ret:
{
status: true, //布尔型;true||false
msg : '',
}
var obj = api.require('aMapNaviPlus');
var ret = demo.updateViewOptions({
.....
});
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
更新地图样式
updateMapStyle({params})
mapStyle:
dataPath:
##ret:
{
status: true, //布尔型;true||false
msg : '',
}
var obj = api.require('aMapNaviPlus');
var ret = demo.updateMapStyle({
.....
});
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
开始导航
startNavi({params})
strategy:
0 单路径: 默认,速度优先(常规最快)
1 单路径: 避免收费
2 单路径: 距离优先
3 单路径: 不走快速路
4 单路径: 躲避拥堵
5 单路径: 速度优先 & 费用优先 & 距离优先
6 单路径: 不走高速
7 单路径: 不走高速 & 避免收费
8 单路径: 避免收费 & 躲避拥堵
9 单路径: 不走高速 & 避免收费 & 躲避拥堵
start:
{
name : '三元桥', //名称
lat: 34.556480000000015, //经纬度
lng: 112.47723797622677, //经纬度
poiId : '' //高德POIId
}
wayPoint:
[{
name : '三元桥', //名称
lat: 34.556480000000015, //经纬度
lng: 112.47723797622677, //经纬度
poiId : '' //高德POIId
}]
end:
{
name : '三元桥', //名称
lat: 34.556480000000015, //经纬度
lng: 112.47723797622677, //经纬度
poiId : '' //高德POIId
}
isEmulatorNavi:
##ret:
{
status: true, //布尔型;true||false
msg : ''
}
var obj = api.require('aMapNaviPlus');
var ret = demo.startNavi({
.....
});
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
暂停导航,仅支持模拟导航。
pauseNavi()
##ret:
{
status: true, //布尔型;true||false
msg : ''
}
var obj = api.require('aMapNaviPlus');
var ret = demo.pauseNavi();
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
停止导航,包含实时导航和模拟导航。
stopNavi()
##ret:
{
status: true, //布尔型;true||false
msg : ''
}
var obj = api.require('aMapNaviPlus');
var ret = demo.stopNavi();
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
继续导航,仅支持模拟导航。
resumeNavi()
##ret:
{
status: true, //布尔型;true||false
msg : ''
}
var obj = api.require('aMapNaviPlus');
var ret = demo.resumeNavi();
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
触发一次导航播报提示。 注意:该接口仅驾车和步行模式有效
readNaviInfo()
##ret:
{
status: true, //布尔型;true||false
msg : ''
}
var obj = api.require('aMapNaviPlus');
var ret = demo.readNaviInfo();
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
设置车辆信息(包括车型,车牌,车高,车重等),路径规划时会躲避车辆限行区域和路线。
setCarInfo({params})
carType:
carNumber:
vehicleSize:
vehicleWidth:
vehicleHeight:
vehicleLength:
vehicleWeight:
vehicleWeight:
vehicleAxis:
vehicleLoadSwitch:
restriction:
##ret:
{
status: true, //布尔型;true||false
msg : ''
}
var obj = api.require('aMapNaviPlus');
var ret = demo.setCarInfo({
.....
});
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
导航过程中重新规划路线(起点为当前位置,途经点、终点位置不变)
reCalculateRoute({params})
strategy:
0 单路径: 默认,速度优先(常规最快)
1 单路径: 避免收费
2 单路径: 距离优先
3 单路径: 不走快速路
4 单路径: 躲避拥堵
5 单路径: 速度优先 & 费用优先 & 距离优先
6 单路径: 不走高速
7 单路径: 不走高速 & 避免收费
8 单路径: 避免收费 & 躲避拥堵
9 单路径: 不走高速 & 避免收费 & 躲避拥堵
##ret:
{
status: true, //布尔型;true||false
msg : ''
}
var obj = api.require('aMapNaviPlus');
var ret = demo.reCalculateRoute({
.....
});
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
设置模拟导航的速度。
setEmulatorNaviSpeed({params})
speed:
##ret:
{
status: true, //布尔型;true||false
msg : ''
}
var obj = api.require('aMapNaviPlus');
var ret = demo.setEmulatorNaviSpeed({
.....
});
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
获取导航模式
getNaviMode()
##ret:
{
status: true, //布尔型;true||false
msg : '',
mode : 0//导航模式 0-车头朝上模式 1-正北朝上模式
}
var obj = api.require('aMapNaviPlus');
var ret = demo.getNaviMode();
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
设置车头朝向导航模式
setNaviMode({params})
mode:
##ret:
{
status: true, //布尔型;true||false
msg : ''
}
var obj = api.require('aMapNaviPlus');
var ret = demo.setNaviMode({
.....
});
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
设置导航页面显示模式
setShowMode({params})
mode:
##ret:
{
status: true, //布尔型;true||false
msg : ''
}
var obj = api.require('aMapNaviPlus');
var ret = demo.setShowMode({
.....
});
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
扩大一级当前地图缩放级别
zoomIn()
##ret:
{
status: true, //布尔型;true||false
msg : ''
}
var obj = api.require('aMapNaviPlus');
var ret = demo.zoomIn();
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
缩小一级当前地图缩放级别
zoomOut()
##ret:
{
status: true, //布尔型;true||false
msg : ''
}
var obj = api.require('aMapNaviPlus');
var ret = demo.zoomOut();
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
是否是路线全览模式
isRouteOverviewNow()
##ret:
{
status: true, //布尔型;true||false
msg : '',
isRoute : true
}
var obj = api.require('aMapNaviPlus');
var ret = demo.isRouteOverviewNow();
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
设置是否显示路线上的交通信号灯
setTrafficLightsVisible({params})
isVisible:
##ret:
{
status: true, //布尔型;true||false
msg : ''
}
var obj = api.require('aMapNaviPlus');
var ret = demo.setTrafficLightsVisible({
.....
});
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
是否显示 起终途点\步行轮渡扎点\禁行限行封路icon
setRouteMarkerVisible({params})
showStartEndVia:
showFootFerry:
showForbidden:
##ret:
{
status: true, //布尔型;true||false
msg : ''
}
var obj = api.require('aMapNaviPlus');
var ret = demo.setRouteMarkerVisible({
.....
});
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
是否是横屏
isLandscape()
##ret:
{
status: true, //布尔型;true||false
msg : '',
isLandscape : true
}
var obj = api.require('aMapNaviPlus');
var ret = demo.isLandscape();
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本
是否正在语音播放 如果您使用自己合成的方式来进行播报,需要在每句播报前和播报完成后设置一下setSpeaking接口,保证不出现语音打断和延迟问题。
setSpeaking({params})
isSpeaking:
##ret:
{
status: true, //布尔型;true||false
msg : '',
isSpeaking : true //仅安卓有效
}
var obj = api.require('aMapNaviPlus');
var ret = demo.setSpeaking({...});
alert(JSON.stringify(ret));
iOS、Android系统
可提供的1.0.0及更高版本