Skip to content

GPX 转换为 GeoJSON

将 GPX(GPS 交换格式)文件转换为 GeoJSON,以便在网络地图中使用。非常适合 GPS 轨迹、徒步路线、骑行路径以及来自 GPS 设备和健身应用的航点。

什么是 GPX?

GPX(GPS 交换格式)是一种基于 XML 的格式,用于在设备和应用之间交换 GPS 数据。它是以下设备和应用的标准格式:

  • GPS 设备:Garmin、TomTom、Magellan
  • 健身应用:Strava、Komoot、AllTrails、Ride with GPS
  • 移动应用:GPS 追踪应用、徒步应用
  • 无人机:飞行路径日志
  • 地图软件:QGIS、ArcGIS、Google Earth

GPX 数据类型

GPX 文件可以包含三种类型的数据:

  • 航点 (<wpt>):具有坐标、名称、描述和海拔的单个兴趣点(POI)
  • 路线 (<rte>):通常用于导航的有序航点规划路径
  • 轨迹 (<trk>):带有时间戳的记录路径,显示随时间的实际移动

如何转换

  1. 上传您的 .gpx 文件(拖放或浏览)
  2. 预览地图上的转换后的 GeoJSON
    • 航点显示为点
    • 路线显示为线串(LineString)
    • 轨迹显示为线串(每段一个)
  3. 下载GeoJSON 文件

转换详情

转换内容

航点 → 点

  • 坐标:纬度、经度
  • 海拔:存储在属性中
  • 名称和描述:保留
  • 时间:ISO 8601 时间戳
  • 符号:图标/标记类型
  • 扩展:自定义 GPX 数据

路线 → 线串

  • 路线点:有序坐标
  • 路线名称:要素属性
  • 海拔剖面:每点海拔数据
  • 描述:路线元数据

轨迹 → 线串

  • 轨迹段:每段变为一个线串
  • 时间戳:每个坐标点的时间
  • 海拔剖面:海拔数据
  • 轨迹名称:要素属性
  • 速度/心率:如果扩展中存在

坐标格式

  • GPX 使用:纬度、经度(WGS84)
  • GeoJSON 使用:[经度、纬度](WGS84)
  • 转换会自动处理坐标顺序交换

海拔数据

GPX <ele> 标签中的海拔(高度)会保存在要素属性中:

  • 航点:properties.elevation
  • 路线/轨迹:与坐标点匹配的海拔数组

常见用途

  • 健身数据:转换 Strava、Garmin 或 Fitbit 导出的数据以分析路线
  • 徒步路线:与非 GPS 用户共享步道地图
  • 自行车路径:在网络地图上显示骑行路线
  • 无人机飞行:分析飞行路径和航点
  • 地理寻宝:转换地理寻宝坐标以进行地图绘制
  • 实地研究:将 GPS 调查数据转换为 GeoJSON
  • 旅行日志:可视化旅行和行程

输出结构

航点示例

json
{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [-74.0060, 40.7128]
  },
  "properties": {
    "name": "纽约市",
    "desc": "大苹果城",
    "elevation": 10,
    "time": "2025-10-28T10:00:00Z",
    "sym": "city"
  }
}

轨迹示例

json
{
  "type": "Feature",
  "geometry": {
    "type": "LineString",
    "coordinates": [
      [-110.0000, 45.0000],
      [-110.0010, 45.0010],
      [-110.0020, 45.0020]
    ]
  },
  "properties": {
    "name": "徒步小径",
    "desc": "山地徒步路线",
    "elevations": [1500, 1520, 1550],
    "times": ["2025-10-28T08:00:00Z", "2025-10-28T08:15:00Z", "2025-10-28T08:30:00Z"],
    "coordinateProperties": {
      "times": ["2025-10-28T08:00:00Z", "2025-10-28T08:15:00Z", "2025-10-28T08:30:00Z"]
    }
  }
}

为什么转换为 GeoJSON?

  • 网络标准:适用于 Leaflet、Mapbox、OpenLayers
  • 更简单的格式:JSON 比 XML 更易解析
  • 更高性能:解析和渲染速度更快
  • 开发者友好:易于检查、编辑和操作
  • 更广泛的兼容性:更多工具支持 GeoJSON

提示

多个轨迹:包含多个轨迹的 GPX 文件会为每个轨迹段生成单独的线串要素。

时间戳:通过保留时间数据,启用速度、步伐和持续时间分析。

海拔剖面:使用海拔数组创建高度图表。

大文件:对于非常长的轨迹(超过 10,000 个点),建议在转换后简化几何结构。

常见问题

哪些应用可以导出 GPX 文件? Strava、Garmin Connect、Komoot、AllTrails、Ride with GPS、MapMyRun、Runkeeper,以及大多数 GPS 设备。

海拔数据会丢失吗? 不会——海拔数据会保存在 properties.elevations 数组(轨迹/路线)或 properties.elevation(航点)中。

可以一次转换多个 GPX 文件吗? 可以!上传多个文件并将它们全部下载为 ZIP 压缩包。

我的 GPS 数据会被上传吗? 不会——所有转换都在您的浏览器中完成。您的文件不会离开您的设备。

GPX 使用什么坐标系统? GPX 始终使用 WGS84(EPSG:4326),与 GeoJSON 相同,因此无需进行投影转换。

如何从 Strava 获取 GPX 文件?

  1. 打开 Strava 上的活动页面
  2. 点击扳手图标(或三个点)
  3. 选择“导出 GPX”

另见