owntracks-个人定位数据管理工具-基础介绍

zhyuer

发布于188天前
你相信光吗
之前一直想找一个记录自己定位轨迹的工具,方便查询某一天的某一时间我在哪个位置。在一个偶然的机会接触到 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)。


![snip_1764419927379.png](https://dl.playground.lazycat.cloud/guidelines/964/08050e24-03b7-4098-8099-3d8bc1f9cc8e.png "snip_1764419927379.png")

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

![snip_1764420060030.png](https://dl.playground.lazycat.cloud/guidelines/964/1bffb657-b4fd-438a-bf10-aaabbeaab8f6.png "snip_1764420060030.png")

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

打开调试模式,启用 “Android AAAA workaround”。


![snip_1764420691787.png](https://dl.playground.lazycat.cloud/guidelines/964/b12ae575-e0e5-4da1-86a9-76d9579507f9.png "snip_1764420691787.png")

确定 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 端可以通过浏览器访问,使用浏览器插件的姿势打开魔法。

默认地图不会显示历史数据的点位,需要手动打开


![snip_1764422639740.png](https://dl.playground.lazycat.cloud/guidelines/964/1db1e413-8145-4262-ab6f-77e9ef287e2c.png "snip_1764422639740.png")

好了,现在来看看效果。


![snip_1764422713966.png](https://dl.playground.lazycat.cloud/guidelines/964/ef07c1a9-45dd-4d39-b40b-1e356b757bce.png "snip_1764422713966.png")

这次的分享就到此结束了,希望可以帮到你。

评论

0

暂无评论

说点什么呢~
收藏
2
0
0