更新记录
1.0.0(2025-11-17)
- 新版发布
平台兼容性
uni-app(4.66)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | × | × | √ | √ | 5.0 | 12 | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | - | × | × |
uni-app x(4.66)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | 5.0 | 12 | × | × |
高德猎鹰轨迹、高德定位、后台定位、保活定位SDK
开发文档
UTS 语法 UTS API插件 UTS uni-app兼容模式组件 UTS 标准模式组件 Hello UTS
特别提醒
- 购买本插件前,请先试用、并充分自测后再购买,购买后无法退款;
- 如有使用上的疑问、bug,可以进交流群联系作者;
- 结合文档和示例代码集成使用;
- 试用必须先打基座、试用必须先打基座、试用必须先打基座重要事情说三遍;
- 本插件支持uniapp/uniapp-x项目,支持vue2/vue3,支持iOS、Android
- Android手机型号太多,各品牌对手机的限制不尽相同,需要保活而进行的设置也不一样。随着Android系统的更新迭代,保活的难度也在不断加大。最有效的保活方式还是联系厂家添加白名单以实现进程保活。
- uniapp使用本插件保活、后台定位功能iOS需在manifest.json/其他设置中后台运行能力配置location
- android uniapp使用需设置targetSdkVersion >=29(在manifest.json->安卓/iOS常用其他设置)
- iOS/Android需更换appKey,更换位置见下面集成步骤
插件功能
- 猎鹰轨迹
- 定位、连续定位、后台定位、保活定位
- 坐标转换
特别提醒:
1 、猎鹰sdk不提供创建服务方法,服务(service id)的创建请参考猎鹰rest api接口,是Web服务类型的key,不是Web端(JS API),高德地图官网申请Web服务API类型KEY
2、引入插件import * as GDTrackUtil from '@/uni_modules/yt-gdtrack'
3、配置高德key,导入插件,在项目根目录下找到uni_modules/yt_gdtra文件夹证明导入成功。
Android配置key步骤:uni_modules/yt-gdtrack/utssdk/app-android/AndroidManifest.xml文件中<meta-data android:name="com.amap.api.v2.apikey" android:value="换成自己的高德key" />
iOS配置key步骤:uni_modules/yt-gdtrack/utssdk/app-ios/info.plist中
<key>GDAPIKey</key>
<string>换成自己的高德key</string>
*4、替换完在需要的页面引入(import as GDTrackUtil from '@/uni_modules/yt-gdtrack' 这点很重要)插件再打自定义基座调试。**
1、引入插件
import * as GDTrackUtil from '@/uni_modules/yt-gdtrack'
示例代码:
<script>
//猎鹰轨迹插件对象
import * as GDTrackUtil from '@/uni_modules/yt-gdtrack'
export default {
data() {
}
}
</script>
2、初始化
GDTrackUtil.initTrack(serviceID, res => {})
| 参数 | 类型 | 说明 |
|---|---|---|
| serviceID | Number | 服务(service id),服务(service id)的创建请参考猎鹰rest api接口,猎鹰sdk不提供创建服务方法 |
| res => {} | function | 猎鹰轨迹回调,详情见下示例代码,res是Map<string,any>类型,不同回调返回的内容不同,以打印为主 |
示例代码:
GDTrackUtil.initTrack(this.serviceID, res => {
//回调类型
let callbackType = res["callbackType"]
//是否成功isSuccess == false会有错误码 let errorCode = res["errorCode"]
let isSuccess = res["isSuccess"]
if (callbackType == "onStartTrackCallback") { //开启服务回调
console.log(callbackType + "开启服务回调")
} else if (callbackType == "onStopTrackCallback") { //停止服务回调
console.log(callbackType + "停止服务回调")
} else if (callbackType == "onStartGatherCallback") { //开始采集回调
console.log(callbackType + "开始采集回调")
} else if (callbackType == "onStopGatherCallback") { //停止采集回调
console.log(callbackType + "停止采集回调")
} else if (callbackType == "onCreateTerminalCallback") { //新增终端回调
console.log(callbackType + "新增终端回调")
} else if (callbackType == "onAddTrackCallback") { //新增轨迹回调
console.log(callbackType + "新增轨迹回调")
} else if (callbackType == "onDeleteTrackCallback") { //删除轨迹回调
console.log(callbackType + "删除轨迹回调")
} else if (callbackType == "onQueryTerminalCallback") { //查询终端回调
console.log(callbackType + "查询终端回调")
} else if (callbackType == "onLatestPointCallback") { //查询最新位置回调
console.log(callbackType + "查询最新位置回调")
} else if (callbackType == "onQueryTrackCallback") { //查询历史轨迹回调
console.log(callbackType + "查询历史轨迹回调")
} else if (callbackType == "onDistanceCallback") { //查询轨迹距离回调
console.log(callbackType + "查询轨迹距离回调")
} else if (callbackType == "onHistoryTrackCallback") { //查询轨迹历史数据和行驶距离回调
console.log(callbackType + "查询轨迹历史数据和行驶距离回调")
}
})
3、添加终端
GDTrackUtil.addTerminal(terminal : string, serviceID : number) 需先初始化,添加结果通过初始化回调返回:"onCreateTerminalCallback"
| 参数 | 类型 | 说明 |
|---|---|---|
| serviceID | number | 服务(service id)的创建请参考猎鹰rest api接口,是Web服务类型的key,不是Web端(JS API) |
| terminal | string | 终端名称 |
示例代码:GDTrackUtil.addTerminal("新设备", 1053869)
4、开启轨迹服务
GDTrackUtil.startTrack(serviceID : number, tid : number, trid : number) 需先初始化,添加结果通过初始化回调返回:"onStartTrackCallback"
| 参数 | 类型 | 说明 |
|---|---|---|
| serviceID | number | 服务(service id)的创建请参考猎鹰rest api接口,是Web服务类型的key,不是Web端(JS API) |
| tid | number | 终端ID(通过addTerminal或终端查询获得) |
| trid | number | 轨迹ID(可通过addTrack或查询终端获得) |
5、开始采集
GDTrackUtil.startGather() 需先初始化,添加结果通过初始化回调返回:"onStartGatherCallback"
6、停止采集
GDTrackUtil.stopGather() 需先初始化,添加结果通过初始化回调返回:"onStopGatherCallback"
7、停止服务
GDTrackUtil.stopTrack() 需先初始化,添加结果通过初始化回调返回:"onStopTrackCallback"
8、添加轨迹
addTrack(serviceID : number, tid : number) 添加结果通过初始化回调返回:"onAddTrackCallback"
| 参数 | 类型 | 说明 |
|---|---|---|
| serviceID | number | 服务(service id)的创建请参考猎鹰rest api接口,是Web服务类型的key,不是Web端(JS API) |
| tid | number | 终端ID(通过addTerminal或终端查询获得) |
GDTrackUtil.addTrack(1053869, 1568147832)
9、设置采集和上报位置数据的时间间隔
GDTrackUtil.setInterval(gatherTimeInterval:number, packTimeInterval:number) 注意:上传周期必须为采集周期的整数倍
| 参数 | 类型 | 说明 |
|---|---|---|
| gatherTimeInterval | number | 定位信息的采集周期,单位秒,有效值范围[1, 60] |
| packTimeInterval | number | 定位信息的上传周期,单位秒,有效值范围[5, 3000] |
GDTrackUtil.setInterval(2, 20)
10、查询最新定位
GDTrackUtil.queryLatestPoint(serviceID : number, tid : number, trid : number) 添加结果通过初始化回调返回:"onLatestPointCallback"
| 参数 | 类型 | 说明 |
|---|---|---|
| serviceID | number | 服务(service id)的创建请参考猎鹰rest api接口,是Web服务类型的key,不是Web端(JS API) |
| tid | number | 终端ID(通过addTerminal或终端查询获得) |
| trid | number | 轨迹ID(可通过addTrack或查询终端获得),查询某终端的最后一个定位点可传-1 |
GDTrackUtil.queryLatestPoint(1053869, 1568147832, 19)
11、查询里程
GDTrackUtil.queryDistance(serviceID : number, tid : number, startTime : number, endTime : number, trid : number, correction : number, recoup : number, gap : number) 添加结果通过初始化回调返回:"onDistanceCallback"
| 参数 | 类型 | 说明 |
|---|---|---|
| serviceID | number | 服务(service id)的创建请参考猎鹰rest api接口,是Web服务类型的key,不是Web端(JS API) |
| tid | number | 终端ID(通过addTerminal或终端查询获得) |
| startTime | number | 开始时间,unix时间戳,精确到毫秒 |
| endTime | number | 结束时间,unix时间戳,精确到毫秒,注意,结束时间不能大于当前时间,且距离开始时间不能超过24小时 |
| trid | number | 轨迹ID(可通过addTrack或查询终端获得) |
| correction | number | 是否纠偏,可取值参考CorrectMode 1:采用驾车模式纠偏 0:不纠偏 |
| recoup | number | 是否进行距离补偿,1:驾车 0:不补偿 |
| gap | number | 距离补偿生效的点间距,单位为米,范围必须在50m~10km,当两点间距离超过该值时,将启用距离补偿计算两点 间距离 |
GDTrackUtil.queryDistance(1053869, 1568147832, 1761580800000, 1761620086000, 19, 0, 1, 50)
12、查询历史轨迹
GDTrackUtil.queryHistoryTrack(serviceID : number, tid : number, startTime : number, endTime : number) 添加结果通过初始化回调返回:"onQueryTrackCallback"
| 参数 | 类型 | 说明 |
|---|---|---|
| serviceID | number | 服务(service id)的创建请参考猎鹰rest api接口,是Web服务类型的key,不是Web端(JS API) |
| tid | number | 终端ID(通过addTerminal或终端查询获得) |
| startTime | number | 开始时间,unix时间戳,精确到毫秒 |
| endTime | number | 结束时间,unix时间戳,精确到毫秒,注意,结束时间不能大于当前时间,且距离开始时间不能超过24小时 |
GDTrackUtil.queryHistoryTrack(1053869, 1568147832, 1761580800000, 1761620086000)
13、查询终端下某轨迹的轨迹点
GDTrackUtil.queryTerminalTrack(serviceID : number, tid : number, trid : number, startTime : number, endTime : number) 添加结果通过初始化回调返回:"onHistoryTrackCallback"
| 参数 | 类型 | 说明 |
|---|---|---|
| serviceID | number | 服务(service id)的创建请参考猎鹰rest api接口,是Web服务类型的key,不是Web端(JS API) |
| tid | number | 终端ID(通过addTerminal或终端查询获得) |
| trid | number | 轨迹ID |
| startTime | number | 开始时间,unix时间戳,精确到毫秒 |
| endTime | number | 结束时间,unix时间戳,精确到毫秒,注意,结束时间不能大于当前时间,且距离开始时间不能超过24小时 |
GDTrackUtil.queryTerminalTrack(1053869, 1568147832,19, 1761580800000, 1761620086000)
14、查询终端
GDTrackUtil.queryTerminal(serviceID : number, terminal : string) 查询结果通过初始化回调返回:"onQueryTerminalCallback"
| 参数 | 类型 | 说明 |
|---|---|---|
| serviceID | number | 服务(service id)的创建请参考猎鹰rest api接口,是Web服务类型的key,不是Web端(JS API) |
| terminal | string | 终端名称 |
GDTrackUtil.queryTerminal(1053869, "小米手机")
15、设置轨迹(上报到指定轨迹)
GDTrackUtil.setTrackId(trid : number) 该方法只有在已经启动轨迹服务后才会生效
GDTrackUtil.setTrackId(19)
16、配置本地缓存大小
GDTrackUtil.setLocalCacheMaxSize(maxSize : number) 本地缓存最大值,单位MB,默认+∞,有效值范围[50,+∞)。
GDTrackUtil.setLocalCacheMaxSize(60)
高德定位/连续定位/坐标转换文档
特别提醒:
1、选择项目导入插件(试用/购买),在项目根目录下找到uni_modules/yt_gdtra文件夹证明导入成功。
2、配置高德key,导入插件,在项目根目录下找到uni_modules/yt_gdtra文件夹证明导入成功。
3、Android配置key步骤:uni_modules/yt-gdtrack/utssdk/app-android/AndroidManifest.xml文件中<meta-data android:name="com.amap.api.v2.apikey" android:value="换成自己的高德key" />
4、iOS配置key步骤:uni_modules/yt-gdtrack/utssdk/app-ios/info.plist中
<key>GDAPIKey</key>
<string>换成自己的高德key</string>
*4、替换完在需要的页面引入(import as GDTrackUtil from '@/uni_modules/yt-gdtrack' 这点很重要)插件再打自定义基座调试。**
1、引入插件
import * as GDLocation from '@/uni_modules/yt-gdtrack'
2、单次定位
GDLocation.onceLocation(options : LocationOptions) LocationOptions见下表说明
GDLocation.onceLocation({
locationMode: 'HundredMeters',
reGeocode: true,
anLocationMode: "Hight_Accuracy",
locationHandler: (location) => {
if (location.code == 200) {
console.log(location)
}
}
})
3、连续定位
GDLocation.updateLocation(options : LocationOptions) LocationOptions见下表说明
GDLocation.updateLocation({
locationMode: 'HundredMeters',
anLocationMode: "Hight_Accuracy",
reGeocode: true,
isAllow: false,
locationInterval: 10000,
locationHandler: (location) => {
if (location.code == 200) {
console.log(location)
}
}
})
4、停止连续定位
GDLocation.stopUpdateLocation()
5、保活定位
GDLocation.keepLive(options : LocationOptions) LocationOptions见下表说明
GDLocation.keepLive({
locationMode: 'HundredMeters',
reGeocode: true,
isAllow: true,
locationInterval: 5000,
anLocationMode: "Battery_Saving",
locationHandler: (location) => {
if (location.code == 200) {
console.log(location)
}
}
})
6、停止保活
GDLocation.stopKeepLive()
7、LocationOptions说明:
| 参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
| locationMode | string | 否 | iOS定位精度 --- 默认NearestTenMeters(可传:BestForNavigation 导航级精度,±1米内,AccuracyBest 设备支持的最佳精度,±10米内,NearestTenMeters ±10米 默认,HundredMeters ±100米,Kilometer ±1公里)。仅iOS有效 |
| anLocationMode | string | 否 | android定位精度---默认Hight_Accuracy(可传:Hight_Accuracy 高精度,Battery_Saving 低精度,Device_Sensors 设备)仅Android有效 |
| reGeocode | bool | 否 | 是否需要逆地理编码-----默认true |
| locationInterval | number | 否 | 连续定位间隔 (单位毫秒)--- 默认10000毫秒 单次定位无效 |
| distanceFilter | number | 否 | 设定定位的最小更新距离。单位米,默认为 kCLDistanceFilterNone,表示只要检测到设备位置发生变化就会更新位置信息。---仅iOS有效,设置了该属性则locationInterval无效 |
| isAllow | bool | 否 | 是否后台定位 |
| notificationTitle | String | 否 | 保活前台通知栏 标题---仅Android有效 |
| notificationContentText | string | 否 | 保活前台通知栏 内容--仅Android有效 |
| locationHandler | function | 否 | 定位信息回调返回LocationInfo类型数据 |
8、LocationInfo:说明
| 属性 | 类型 | 说明 |
|---|---|---|
| code | number | 状态码(200成功其他错误码请参照官网Android错误码对照表,iOS错误码对照表) |
| mes | string | 描述 |
| latitude | number | 纬度 |
| longitude | number | 经度 |
| speed | number | 速度 |
| altitude | number | 海拔高度 |
| course | number | 方向 |
| address | AddressInfo(详情见下表AddressInfo说明) | 地址信息 |
9、AddressInfo说明
| 属性 | 类型 | 说明 |
|---|---|---|
| country | string | 国家 |
| province | string | 省 |
| city | string | 城市 |
| citycode | string | 城市编码 |
| district | string | 区 |
| adcode | string | 获取区域编码 |
| street | string | 街道名称 |
| number | string | 街道门牌号 |
| poiName | string | 兴趣点名称 |
| aoiName | string | 兴趣面名称 |
| formattedAddress | string | 格式化地址 |
10、打开设置页面
GDLocation.openAppSettings()
11、是否有定位权限
let value = GDLocation.hasLocationPermission() 返回值value == true ? "有定位权限" : "没有定位权限"
12、是否有后台定位能力
let value = GDLocation.hasBackgroundLocationPermission() value == true ? "有后台定位权限" : "没有后台定位权限"
13、坐标转换
//gcj02转wgs84
let result = GDLocation.gcj02ToWgs84(30.34524, 120.154624);
console.log(result)
//bd09转wgs84
let result = GDLocation.bd09ToWgs84(30.34524, 120.154624);
console.log(result)
//bd09转gcj02
let result = GDLocation.bd09ToGcj02(30.34524, 120.154624);
console.log(result)
//gcj02转bd09
let result = GDLocation.gcj02ToBd09(30.34524, 120.154624);
console.log(result)
//wgs84转gcj02
let result = GDLocation.wgs84_gcj02(30.34524, 120.154624);
console.log(result)
//wgs84转bd09
let result = GDLocation.wgs84ToBd09(30.34524, 120.154624);
console.log(result)
14、Android端修改通知图标
android修改通知栏的图标只需替换uni_modules/yt_gdtra/utssdk/app-android/res/drawable/logo.png图标,替换的图标名称不能修改必须是logo.png,替换完需要重新打基座/包才能生效

收藏人数:
购买源码授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 490
赞赏 11
下载 12375632
赞赏 1927
赞赏
京公网安备:11010802035340号