
owntracks-个人定位数据管理工具-基础介绍
之前一直想找一个记录自己定位轨迹的工具,方便查询某一天的某一时间我在哪个位置。在一个偶然的机会接触到 owntracks ,非常契合我的需求,但是在中文互联网上关于它的教程非常少,前期走了不少弯路,乘着懒猫的车写篇攻略供大家参考,本篇主要以 Android 客户端的视角来讲。
https://appstore.lazycat.cloud/#/shop/detail/cloud.lazycat.app.owntracks
## 监控模式
Move(建议)
最推荐的模式,也是绝大多数用户的最佳选择。它会智能检测你是否在移动:一旦走路、骑车、开车,加速度传感器检测到运动 → 自动进入高频上报(默认 5\~15 秒一次,由 moveModeLocatorInterval 控制);静止约 3\~5 分钟后自动降为低频(由 locatorInterval 控制,通常设为 3\~10 分钟一次)。
Significant Changes
完全依赖安卓系统自带的“显著位置变化”API。系统通常要你移动几百米到 1\~2 公里才会触发一次,静止后可能 15\~40 分钟才上报一次,该模式较省电,但是更新极慢。
Manual
完全不自动上报位置,只有以下两种情况才会发数据:①手动点界面上传按钮;②进入或离开你手动设置的地理围栏(Regions),适合只用 OwnTracks 做“到家/离家”触发自动化,完全不在乎路上位置的人,耗电几乎为零。
Quiet
什么都不自动发,连地理围栏的进入/离开事件都不会上报。除非手动点上报,否则服务器永远收不到任何数据。基本没人使用,除非你只是把 OwnTracks 当离线地图看。
## 连接模式
懒猫应用的配置参照应用商店的应用描述和移动端配图即可完成。
HTTP
不需要搭 MQTT,完全零门槛,只要你的服务器能收到 POST 请求就行,适合极简玩家或只想做位置打个卡测试或临时使用、不需要实时。
MQTT(建议)
最省电、最实时、官方最推荐的方式,配合 Home Assistant 最完美,配置最简单(Mosquitto 几分钟搞定)。
MQTT - Use WebSockets
其实就是把 MQTT 协议套在 WebSocket 里跑,本质还是 MQTT。IOS 用户推荐使用此模式(WSS 协议后台保活好),大量时间都是使用移动网络的用户推荐,避免使用原生 MQTT 网络运营商作妖。
## 配置文件
Android 配置路径:首选项-配置管理
```conf
{
"_type" : "configuration", // 这是一个配置文件,不用改
"_id" : "4fd7097a", // 这份配置的身份证号,系统自动生成的
"waypoints" : [ ], // 地理围栏(你设置的“家”、“公司”等区域)列表,现在是空的
"_build" : 420503003, // App 的版本号
// --- 启动与连接基础 ---
"autostartOnBoot" : true, // 手机开机后,App 是否自动启动(True=是,不用每次手动点开)
"cleanSession" : false, // 断线重连时是否“失忆”。False=服务器会帮你保留断线期间错过的消息(推荐)
"clientId" : "op4e8c", // 你的“身份证号”。连接服务器时,告诉服务器你是谁(必须唯一,不能和别人重复)
"deviceId" : "op4e8c", // 设备ID,通常跟上面那个一样就行
"host" : "owntracks.zycat.heiyu.space", // 服务器地址(你的 MQTT 服务器域名)
"port" : 9001, // 服务器端口号
"ws" : true, // 是否用 WebSocket 连接。True=是(通常配合 Web 服务器用),False=用普通 TCP
"tls" : false, // 是否加密连接(SSL/HTTPS)。False=不加密(因为你用的可能是内网或者反向代理处理了加密)
"username" : "", // 登录服务器的用户名(空着说明你的服务器没设密码验证,或者这是公开服)
"password" : "", // 登录服务器的密码
"mode" : 0, // 核心模式:0=MQTT模式(推荐,实时性好),1=HTTP模式
"mqttProtocolLevel" : 3, // MQTT 协议版本,3 代表 v3.1,不用动它
// --- 核心功能与体验 ---
"tid" : "8c", // 昵称缩写。在地图上显示的两个字母,别人看你就显示这个(比如“8c”)
"cmd" : true, // 是否听从指挥。True=允许服务器发指令让你立即汇报位置
"sub" : true, // 是否开启“朋友圈”。True=订阅并接收其他人的位置,能在地图上看到朋友
"remoteConfiguration" : false,// 是否允许远程修改配置。False=必须要在手机上改,服务器不能改你的设置
// --- 省电与定位精度(关键!) ---
"monitoring" : 2, // 监控模式。2=智能/灵活模式(推荐),动的时候更新快,静止的时候更新慢,省电。
"locatorInterval" : 60, // 【静止时】多久汇报一次位置(秒)。现在是 60秒(可能有点费电,建议改大点,比如 300)
"moveModeLocatorInterval" : 10,// 【移动时】多久汇报一次位置(秒)。现在是 10秒(轨迹会很平滑,但稍费电)
"locatorDisplacement" : 100, // 【静止时】如果你移动距离没超过 100米,就不汇报新位置(防止 GPS 漂移导致乱跳)
"ignoreInaccurateLocations" : 60, // 过滤烂数据。如果定位精度误差超过 60米,这个点就扔掉不要了
"ignoreStaleLocations" : -1.0, // 过滤旧数据。-1.0 代表不过滤,所有收到的位置都算数
"fusedRegionDetection" : true, // 是否用 Google 的融合定位来判断进出区域(比纯 GPS 省电)
// --- 心跳与超时 ---
"keepalive" : 3600, // 心跳包。告诉服务器“我还活着”的间隔。3600秒(1小时)太长了,容易掉线,建议改成 60-300
"connectionTimeoutSeconds" : 30, // 连接超时时间。30秒连不上就算失败
"ping" : 15, // 每 15分钟发一次 Ping 消息测试网络
// --- 消息发布与接收设置 ---
"pubTopicBase" : "owntracks/%u/%d", // 发朋友圈的“频道”。你的位置会发到这个话题里(%u=用户名, %d=设备ID)
"subTopic" : "owntracks/+/+", // 看朋友圈的“频道”。+ 是通配符,代表接收所有人的位置
"pubQos" : 1, // 发送质量。1=确保至少发出去一次(消息不丢)
"subQos" : 2, // 接收质量。2=最严格的接收标准
"pubRetain" : true, // 保留最后位置。True=你掉线了,新来的朋友也能看到你最后出现的位置(推荐)
"publishLocationOnConnect" : true, // 一连上服务器,马上汇报一次位置
// --- 信息内容 ---
"extendedData" : true, // 发送扩展数据。True=汇报位置时顺便把海拔、速度等详细信息也发出去
"info" : true, // 发送设备信息。True=顺便把手机电量百分比也发出去
// --- 地图与显示 ---
"mapLayerStyle" : "OpenStreetMapNormal", // 地图样式。现在用的是 OpenStreetMap 标准版
"osmTileScaleFactor" : 1.0, // 地图文字/图标的缩放比例
"showRegionsOnMap" : true, // 在地图上画圈圈(显示你设置的地理围栏)
"enableMapRotation" : false, // 地图是否跟着手机方向转。False=地图永远“上北下南”
"reverseGeocodeProvider" : "None", // 反向解析。None=不把经纬度转换成“某某路某某号”(省流量)
"opencageApiKey" : "", // 如果上面开了反向解析,这里要填 Key,没开就不用填
// --- 通知与日志 ---
"notificationEvents" : true, // 进出围栏(比如到家了)弹窗通知
"notificationGeocoderErrors" : true,// 地址解析失败了弹窗报错
"notificationHigherPriority" : false,// 是否使用高优先级通知(更吵闹)。False=普通通知
"notificationLocation" : true, // 每次汇报位置都弹个窗。True=手机会一直响(建议关掉,除非你在调试)
"debugLog" : false, // 调试日志。False=平时不记录啰嗦的运行日志(省空间)
// --- 其他杂项 ---
"encryptionKey" : "", // 加密密钥。如果填了,发出去的数据包会被加密,别人截获也看不懂(对应 app 内的 Secret 加密)
"experimentalFeatures" : [ ], // 实验性功能列表,空的
"theme" : 2, // App 界面主题。2=暗色模式/黑色主题
"tlsClientCrt" : "", // 客户端证书路径(通常企业级安全才用,普通人用不到)
"pegLocatorFastestIntervalToInterval" : false // 一个复杂的安卓定位间隔参数,通常不用管,选 False 即可
}
```
## 操作实践
IOS 客户端直接在 App Store 下载即可,Andorid 客户端下载链接:
https://github.com/owntracks/android/releases/tag/v2.5.4
如果您的设备是标准的 Android 手机,拥有 Google 服务(大多数国际版或国内安装了 Google 框架的手机),请选择 GMS 版本。
如果您的设备是缺少 Google 服务的设备(例如某些国内手机、或通过 F-Droid 获取应用的用户),请选择 OSS (Open Source Software) 版本。
基础配置
安装好 App 后需要先进行基础配置,左上角菜单项-首选项-连接:
选择模式为 MQTT,配置主机为应用域名( zycat 是我的设备名称,需要更改为你自己的名称),端口配置为 9001,打开“使用 WebSockets”选项(如果不启用则端口应配置为1883)。

查看通知栏,如果 OwnTracks 显示“已连接”即配置成功,***注意:懒猫微服 App 的网络模式必须为 VPN 模式,Proxy 模式无法在懒猫微服 App 外访问微服。***

如果一直显示“正在连接”或“错误”可尝试以下操作(原因:很多安卓手机,在没有 IPv6 地址的情况下,会不处理 IPv6 的请求,导致访问不到)。
打开调试模式,启用 “Android AAAA workaround”。

确定 Owntracks 客户端能成功连接微服后将 App 锁定,避免杀后台。
“首选项-配置管理”有些参数需要注意,更改默认值后可以得到更好的体验,完整字段解释参考前面章节(如果有冲突以前面章节内容为准)。
- `locatorInterval` 静止状态下的位置更新间隔(秒),影响待机状态下的电量消耗和位置实时性。推荐:30 到 600,取决于对实时性的要求。
- `moveModeLocatorInterval` 移动状态下的位置更新间隔(秒),决定运动中的位置更新频率。推荐:10 到 30,以确保平滑的追踪轨迹。
- `locatorDisplacement` 静止状态下,报告位置前必须移动的最小距离(米),避免频繁发送微小位移的位置报告,节省电量。推荐:100 到 1000。
- `ignoreInaccurateLocations`,忽略精度低于此值(米)的位置报告,过滤不准确的 GPS 漂移点,提高位置质量。推荐:50 到 100。
- `pubRetain` MQTT 消息的保留(Retain)标志,非常重要。 确保新连接的接收者(如地图应用)能立即获得设备的最后已知位置。推荐:true。
- `keepalive` MQTT 心跳包间隔(秒),影响连接的健康检查。太长(如 3600s)可能导致连接被防火墙或路由切断。推荐:300 到 600。
- `ignoreStaleLocations` 配置为 “-1” 可实现联网自动上传离线数据,例如外出一天都没有连接微服的 VPN ,晚上连接时会将白天的离线数据上传到微服。
## 查看定位数据
需要先打开魔法否则地图图层无法加载,最方便的就是路由器具备魔法,这样可以直接查看。
否则在手机端查看的话需要将懒猫微服 App 网络模式更改为 Proxy,然后运行魔法访问微服应用即可。
PC 端可以通过浏览器访问,使用浏览器插件的姿势打开魔法。
默认地图不会显示历史数据的点位,需要手动打开

好了,现在来看看效果。

这次的分享就到此结束了,希望可以帮到你。
此 App 尚未收到足够的评分或评论,无法显示评论列表。