更新记录

1.0.0(2025-09-28)

  • 新版Android发布,后续会集成iOS与鸿蒙

平台兼容性

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);

隐私、权限声明

1. 本插件需要申请的系统权限列表:

Android:<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 获取运营商信息,用于支持提供运营商信息相关的接口 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 --> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 用于读取手机当前的状态 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 用于写入缓存数据到扩展存储卡 --> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <!-- 用于申请调用A-GPS模块 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 如果设置了target >= 28 如果需要启动后台定位则必须声明这个权限 --> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <!-- 如果您的应用需要后台定位权限,且有可能运行在Android Q设备上,并且设置了target>28,必须增加这个权限声明 --> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件本身不会采集信息百度导航SDK可能会获取用户位置信息,插件使用百度地图定位SDK,参考其官方网站https://lbsyun.baidu.com/ 和隐私政策 https://lbsyun.baidu.com/index.php?title=openprivacy

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率: