更新记录

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

iOS错误码对照表 Android错误码对照表

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,替换完需要重新打基座/包才能生效

插件文档

隐私、权限声明

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

位置权限,后台定位权限

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

插件会采集用户位置信息,插件使用高德地图定位SDK,参考其官方网站https://lbs.amap.com 和个人信息保护声明 https://lbs.amap.com/api/compliance-center/ability/data-security

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