更新记录

1.0.0(2026-11-05) 下载此版本

1.0.0

  • 首个版本,功能可用

平台兼容性

pk-location-track — 实时轨迹记录纠偏套件

持续定位 + 轨迹抽稀 + 漂移纠偏 + 里程统计 + 坐标转换,一套接口解决「跑出来的轨迹像蜘蛛网」的问题。

  • 双层架构:原生薄壳只负责系统定位(Kotlin FusedLocationProvider / Swift CLLocationManager),协议、纠偏、抽稀、里程全部在 JS 层,算法可在 Node 里单测。
  • 不绑定地图厂商:不依赖高德、腾讯等任何 SDK,坐标由你决定要用哪套。
  • 省电可控:high / balanced / low 三档,定位丢失自动降档探活。

1. 引入

import loc from '@/uni_modules/pk-location-track/js_sdk/index.js'

UTS 插件需打自定义基座(App 端真机运行),H5 / 小程序端不适用。

2. 快速开始

// 1) 自检:把「没打基座 / 没权限」翻译成能看懂的原因
const ready = loc.checkReady()
if (!ready.supported) {
  console.log('不可用原因:', ready.reasons)
}

// 2) 开始追踪
const sess = loc.start({
  mode: 'balanced',      // high | balanced | low
  system: 'wgs84',       // wgs84 | gcj02 | bd09,会话统一坐标
  tolerance: 5,          // 抽稀容差(米)
  maxSpeed: 45,          // 判定漂移的速度上限(m/s)
  simplifyEvery: 20      // 每积累 20 个点触发一次抽稀
})

// 3) 订阅事件
sess.on('point', (p) => {
  // p.point 为统一坐标系下的原始点,p.total 为累计点数
})
sess.on('simplified', (s) => {
  // s.points 抽稀后的轨迹点,s.count 点数,s.pathKm 里程
})
sess.on('lost', (e) => {
  // 定位丢失,已自动降档探活,e.restarts 为累计自愈次数
})
sess.on('state', (e) => { /* idle | running | lost | stopped | error */ })

// 4) 结束
loc.stop()

3. 常用能力

能力 用法
查询状态 loc.getStatus(sess) 返回状态、点数、里程、抽稀点数、自愈次数
手动灌点 loc.ingestPoint({ lat, lng, ts, accuracy, speed }),可接入自采数据源
坐标转换 loc.algorithm.convert(pt, 'wgs84', 'gcj02')
抽稀 loc.algorithm.simplifyDP(points, 5)
漂移过滤 loc.algorithm.removeSpeedOutliers(points, 45, { replace: true })
里程 loc.algorithm.haversine(a, b)

4. 参数说明

参数 默认 说明
mode balanced 定位档位,low 最省电,high 最精细
system wgs84 会话统一坐标系,原始点会自动转换
tolerance 5 抽稀容差,单位米,越大点越少
maxSpeed 45 超过该速度视为漂移点并修正
simplifyEvery 20 累计点数达到该值触发抽稀
simplifyEveryMs 10000 或者距上次抽稀超过该毫秒数也触发
lostTimeoutMs 15000 判定定位丢失的超时

5. 常见问题

Q:checkReady() 返回「未集成 PKLocationTrack 原生模块」? 说明当前跑的是标准基座,需在 HBuilderX 里制作自定义基座并重新运行。

Q:后台一段时间后没有点了? 系统会回收后台定位,套件在检测到超时后触发 lost 事件并降档重启;请在 manifest 里勾选后台定位权限,并引导用户关闭厂商「省电优化」。

Q:轨迹点太密 / 太稀? 调 tolerance(米)。城市步行建议 3–5,驾车建议 8–15。

Q:需要 GCJ02 直接喂给地图? start({ system: 'gcj02' }),套件会把原始 WGS84 点自动转成 GCJ02 再交给 point 事件。

隐私、权限声明

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

无

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

插件不采集任何数据

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

无

许可协议

MIT协议

暂无用户评论。