更新记录
1.0.0(2025-09-28)
平台兼容性
uni-app(4.65)
Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
√ |
√ |
× |
× |
√ |
√ |
5.1 |
× |
× |
微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
快应用-华为 |
快应用-联盟 |
× |
× |
× |
× |
× |
× |
× |
× |
× |
× |
× |
uni-app x(4.65)
Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
× |
× |
5.1 |
× |
× |
× |
yt-bdnavi
特别提醒
- 购买本插件前,请先试用、请先试用、请先试用,并充分自测确认满足需求之后再行购买。虚拟物品一旦购买之后无法退款;
- 如有使用上的疑问、bug,可以进交流群联系作者;
- 作者可承接各种插件定制;
- 请在合法范围内使用,若使用本插件做非法开发,本方概不负责;
- 结合文档和示例demo集成使用;
- 不能勾选HBX内置的百度地图模块;
- 摩托导航需要额外权限,需要摩托导航要提前申请好相应权限,不然会算路失败
- Android minSdkVersion = 22
- 导入插件后Android端设置百度地图key,修改路径:uni_modules/yt-bdnavi/utssdk/app-android/AndroidManifest.xml中<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="换成自己的appKey" />
- 测试需要打自定义基座,测试需要打自定义基座,测试需要打自定义基座。
插件说明
基于百度全量导航SDK封装,Android 导航SDK版本:BaiduMapSDK_Map-AllNavi:7.6.4 内置TTS版本:NaviTts:3.2.13,主要功能汽车、摩托、货车导航可使用内置TTS或外部其他TTS。
引入插件
import * as BDNavi from '../../uni_modules/yt-bdnavi'
初始化导航模块
//vue2、非TS、uts项目去掉类型转换as BDNavi.InitNavigationHandler
BDNavi.initNavigationAction({
complete: (res) => {
let status = res.status;
let mgs = res.mgs;
if (status == 0) {//授权回调
} else if (status == 20000) {//初始化成功
} else {//初始化失败
}
console.log(mgs);
}
} as BDNavi.InitNavigationHandler)
初始化TTS模块
内置TTS appId、authSn、appKey、secretKey 申请教程 https://lbsyun.baidu.com/faq/api?title=android-navsdk/guide/TTSvoice
//配置tts vue2、非TS、uts项目去掉类型转换as BDNavi.TTSConfigOptions
BDNavi.ttsConfig({
innerTTS: true,
appId: '换成自己的',
appKey: '换成自己的',
secretKey: '换成自己的',
authSn: '换成自己的',
externalCallback: (res) => {//使用外部TTS可根据该回调播放
let speech = res.speech ?? "" //播报文案
let preempt = res.preempt//是否抢占播报 0不打断,1打断当前播报
console.log(`外部TTS播报内容:${speech}---是否打断当前播报:${preempt}`)
}
} as BDNavi.TTSConfigOptions)
参数 |
参数类型 |
参数说明 |
innerTTS |
bool |
是否使用内置TTS |
appId |
string |
百度语音技术申请的appId -- 不使用内置TTS可传空字符 |
appKey |
string |
百度语音技术申请的appKey -- 不使用内置TTS可传空字符 |
secretKey |
string |
百度语音技术申请的secretKey -- 不使用内置TTS可传空字符 |
authSn |
string |
百度地图开放平台离线tts申请,申请成功成功的audio_key -- 不使用内置TTS可传空字符 |
externalCallback |
function |
使用外部TTS播报内容的回调(内置TTS不走该回调)返回播报内容 |
导航基础配置 需要在导航前设置
//导航基础配置vue2、非TS、uts项目去掉类型转换as BDNavi.ProfessionalNaviOptions
BDNavi.professionalNaviSettingConfig({
CoordType: "BD09LL",//坐标类型 包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标
MultiRoute: true,//显示多路线
Vehicle: 1,//汽车:1 摩托:2 ---默认汽车
guideViewMode: 1,//诱导面板 跟随车头模式:1 正北朝上:2 ---默认车头跟随
voiceMode: 1,//设置语音播报模式 详细模式:1 静音:2 仅播报警告:3 ---默认1
PowerSaveMode: 0,//设置省电模式 自动切换:0 开启:1 关闭:2 ---默认自动
DayNightMode: 1,//设置专业导航日夜模式 自动切换白天黑夜模式:1 日间模式:2 夜间模式:3 ---默认自动切换
AutoScale: true,//设置专业导航比例尺是否智能缩放 ---默认开启
FullViewMode: 1,//显示类型 路况条:1---RoadBar 全览小窗:0----MapMini 不显示:2---NoAll ---默认路况条
RealRoadCondition: true,//设置实时路况
MeasurementEnable: true,//区间测速是否显示
RoadNameEnable: true,//当前路名是否显示
ShowRemindDialog: true,//设置导航中主动提醒卡片是否展示
ShowRoadEnlargeView: true,//设置专业导航是否显示路口放大图
enableReceiveVoiceOnCalling: true,//设置项中是否显示 通话时收听语音播报 单次生效
HighwayEnable: true,//设置高速面板是否显示
IsAutoQuitWhenArrived: true,//到达目的地是否自动退出
LaneLineEnable: true,//设置车道线是否显示
RefreshButtonVisible: true,//设置路线刷新按钮是否显示
IsRealNavi: true,//是否真实导航 true:真实导航 false:模拟导航 ---默认true
ROUTE_PLAN_PREFERENCE_TYPE: 1//算路偏好 -- 默认,智能推荐 =1、少走高速 = 4、少收费 =8、躲避拥堵 =16、距离最短,距离优先 =128、时间最短,时间优先 =256、大路优先,高速优先 =512、省钱路线(货车专用)=1024
PlateType:1,//摩托车车牌类型 0:未知 1:黄 2:蓝3:绿4:黑5:白 --可选参数。默认1
MotorType:1,//摩托车类型 0:油 1:电 2:未知 --可选参数。默认0
displacement:""//摩托车排量 摩托车排量 0~10000CC
} as BDNavi.ProfessionalNaviOptions)
参数 |
参数类型 |
参数说明 |
CoordType |
string |
坐标类型 包括BD09LL和GCJ02两种坐标,默认是BD09LL |
MultiRoute |
bool |
是否显示多路线 可选参数,默认:true |
Vehicle |
number |
载具类型 汽车:1 摩托:2 可选参数, 默认:1 (**摩托导航需要其他权限) |
guideViewMode |
number |
诱导面板 跟随车头模式:1 正北朝上:2 可选参数, 默认:1 |
voiceMode |
number |
设置语音播报模式 详细模式:1 静音:2 仅播报警告:3 可选参数---默认1 |
PowerSaveMode |
number |
设置省电模式 自动切换:0 开启:1 关闭:2 可选参数---默认0 |
DayNightMode |
number |
设置专业导航日夜模式 自动切换白天黑夜模式:1 日间模式:2 夜间模式:3 可选参数---默认1 |
AutoScale |
bool |
设置专业导航比例尺是否智能缩放,可选参数---默认:true |
FullViewMode |
number |
显示类型 路况条:1---RoadBar 全览小窗:0----MapMini 不显示:2---NoAll 3 可选参数---默认1 |
RealRoadCondition |
bool |
设置实时路况,可选参数---默认:true |
MeasurementEnable |
bool |
区间测速是否显示,可选参数---默认:true |
RoadNameEnable |
bool |
当前路名是否显示,可选参数---默认:true |
ShowRemindDialog |
bool |
设置导航中主动提醒卡片是否展示,可选参数---默认:true |
ShowRoadEnlargeView |
bool |
设置专业导航是否显示路口放大图,可选参数---默认:true |
enableReceiveVoiceOnCalling |
bool |
设置项中是否显示 通话时收听语音播报 单次生效,可选参数---默认:true |
HighwayEnable |
bool |
设置高速面板是否显示,可选参数---默认:true |
IsAutoQuitWhenArrived |
bool |
到达目的地是否自动退出,可选参数---默认:true |
LaneLineEnable |
bool |
设置车道线是否显示,可选参数---默认:true |
RefreshButtonVisible |
bool |
设置路线刷新按钮是否显示,可选参数---默认:true |
IsRealNavi |
bool |
是否真实导航 true:真实导航 false:模拟导航,可选参数---默认:true |
ROUTE_PLAN_PREFERENCE_TYPE |
number |
算路偏好 -- 默认,智能推荐 =1、少走高速 = 4、少收费 =8、躲避拥堵 =16、距离最短,距离优先 =128、时间最短,时间优先 =256、大路优先,高速优先 =512、省钱路线(货车专用)=1024 可选参数---默认1 |
PlateType |
number |
摩托车车牌类型 0:未知 1:黄 2:蓝3:绿4:黑5:白 --可选参数。默认1 |
MotorType |
number |
摩托车类型 0:油 1:电 2:未知 --可选参数。默认0 |
displacement |
string |
摩托车排量 摩托车排量 0~10000CC,可选参数,-默认:"" |
开始导航
//开始导航vue2、非TS、uts项目去掉类型转换 as BDNavi.PointNodeInfo、 as BDNavi.StartNaviOptions
BDNavi.drivingNavigation({
isNewEnergy: false,
carNum: "赣F86V10",
startNode: {
longitude: 120.263791,
latitude: 30.446899,
name: "联运公司",
description: "联运公司"
} as BDNavi.PointNodeInfo,
endNode: {
longitude: 120.300832,
latitude: 30.354312,
name: "家里",
description: "乔司南街12号"
} as BDNavi.PointNodeInfo,
naviHandler: (res) => {
let status = res.status
let mgs = res.mgs
if (status == 0) {//开始算路
} else if (status == 1) {//算路成功
} else if (status == 2) {//算路成功准备进入导航页面
} else if (status == -1) {//算路失败
}
uni.showToast({
icon: 'none',
title: `状态码:${status}--${mgs}`
})
}
} as BDNavi.StartNaviOptions);
导航参数说明:
参数 |
参数类型 |
参数说明 |
isNewEnergy |
bool |
是否是新能源,可选参数---仅汽车导航有效 |
carNum |
string |
车牌号,可选参数 |
startNode |
BDNavi.PointNodeInfo(ts/uniapp-x项目,js可看作对象) |
起点信息,必传---详情见下表BDNavi.PointNodeInfo说明 |
endNode |
BDNavi.PointNodeInfo(ts/uniapp-x项目,js可看作对象) |
终点信息,必传---详情见下表BDNavi.PointNodeInfo说明 |
nodes |
BDNavi.PointNodeInfo数组(ts/uniapp-x项目,js可看作对象数组) |
途经点信息,可选参数---最多18个 |
naviHandler |
function |
导航算路回调 |
BDNavi.PointNodeInfo说明:
属性 |
类型 |
说明 |
latitude |
number |
纬度(坐标类型应与导航配置里CoordType一致),必传 |
longitude |
number |
精度(坐标类型应与导航配置里CoordType一致),必传 |
name |
string |
名称,可选 |
description |
string |
描述,可选 |
uid |
string |
百度检测得到的uid,可选 |
定制起点、小车、终点图标
//第一个参数图标路径 第二个参数:0:小车 1:起点 2:终点
BDNavi.setDIYImageToMap("static/car.png", 0);
清除定制图标
//参数:0:小车 1:起点 2:终点
BDNavi.clearDIYImage( 0);