如何从 SafeTrx 应用记录的行程中获取标准化轨迹文件(GPX/KML/...)?

如何从 SafeTrx 应用记录的行程中获取标准化轨迹文件(GPX/KML/...)?

德国 DGzRS 提供该应用程序安全Trx可用于在进行水上运动时记录轨迹。虽然该应用主要用于协助搜索和救援行动,但它也会存储记录的轨迹并允许稍后查看。我想以某种标准格式(GPX、KML 或 GPSbabel 可以理解的任何其他格式)下载这些轨迹,以便对记录的轨迹进行更多分析。我该怎么做?

答案1

在应用程序中,转到“菜单->我的个人资料->旅行历史”。选择所需的旅行,然后使用左下角的“分享”按钮。复制它生成的链接。链接的格式如下:

https://safetrx.seenotretter.de/sharetrip.html?id=SOME_ID&token=SOME_TOKEN

记下 URL 参数SOME_IDSOME_TOKEN,然后下载轨迹数据,例如使用wget

wget 'https://safetrx.seenotretter.de/api/admin/trips/share/SOME_ID?token=SOME_TOKEN' -O trip.json

这将使原始数据安全为trip.json

然而,这是专有文件格式。它可以转换为 GPSbabel 可以读取的 CSV 文件,方法如下杰奇-脚本:

(
  [["utc_d", "utc_t", "lat", "lon", "hdop", "head", "speed"]]
  +
  ([.pings[].tripPoints[] | [
    .dateTime[6:10] + "/" + .dateTime[3:5] + "/" + .dateTime[:2],
    .dateTime[11:19],
    .latitude,
    .longitude,
    .horizontalAccuracy,
    .heading,
    .speed
  ]] | sorted)
)[] | @csv

请注意,您需要该--raw-output / -r选项,这样jq就不会转义 CSV。要使用 gpsbabel 读取结果,请使用gpsbabel -t -i unicsv

要将所有内容放在一个命令中,例如要获取 KML 文件,trip.kml您可以使用:

wget 'https://safetrx.seenotretter.de/api/admin/trips/share/SOME_ID?token=SOME_TOKEN' -O - \
  | jq -r '([["utc_d", "utc_t", "lat", "lon", "hdop", "head", "speed"]] + ([.pings[].tripPoints[] | [.dateTime[6:10] + "/" + .dateTime[3:5] + "/" + .dateTime[:2], .dateTime[11:19], .latitude, .longitude, .horizontalAccuracy, .heading, .speed]] | sort))[] | @csv' \
  | gpsbabel -t -i unicsv -f - -o kml -F trip.kml

相关内容