更新记录
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 事件。

收藏人数:
下载插件并导入HBuilderX
下载示例项目ZIP
赞赏(0)
下载 3
赞赏 0
下载 12744412
赞赏 1959
赞赏
京公网安备:11010802035340号