← 返回工具指南
工具指南KML 转 GeoJSONGPX 转 KMLGeoJSON 转 GPXGPS 轨迹转换地理数据格式

KML、GPX 和 GeoJSON 怎么互转?坐标、轨迹与多边形的区别

KML、GPX、GeoJSON 都能保存地理数据,但表达能力不同。本文说明坐标顺序、轨迹与区域边界、样式和属性损失,以及可靠的本地转换流程。

打开配套工具 →

KML、GPX 和 GeoJSON 经常出现在地图标注、户外轨迹、无人机航线、门店点位和 GIS 数据交换中。三者都能保存经纬度,但用途并不相同。把文件扩展名改掉没有意义,盲目转换也可能丢掉区域、样式、时间或设备扩展字段。

KML / GPX / GeoJSON 转换器可以在浏览器本地读取三种格式,显示要素数量、坐标范围、路线长度和简化几何预览,再导出目标文件。它不调用在线地图 API,也不会为了转换上传轨迹。

三种格式分别擅长什么

KML 是 XML 格式,和 Google Earth 关系密切。它适合地点、路线、区域、文件夹层级、说明、图标和样式,也可能包含 NetworkLink、相机视角、时间轴等扩展能力。

GPX 同样基于 XML,但目标是 GPS 数据交换。核心对象是航点 wpt、路线 rte 和轨迹 trk,可以附带海拔、时间和部分设备信息。徒步、骑行、跑步和导航设备更常使用 GPX。

GeoJSON 使用 JSON 表达 Feature、Geometry 和 properties,适合网页地图、数据接口、JavaScript 与 GIS 程序。它对 Point、LineString、Polygon 及其 Multi 版本有明确结构,但不负责统一地图样式。

简单选择可以这样理解:

目的优先格式
Google Earth 查看地点和区域KML
GPS 设备、运动轨迹、路线GPX
网页地图、接口、程序处理GeoJSON

坐标顺序最容易出错

GeoJSON 坐标使用 [经度, 纬度],例如上海人民广场附近可以写成 [121.4737, 31.2304]。KML 的坐标同样是经度在前,通常写成 121.4737,31.2304,0。GPX 则把纬度和经度放在命名属性里:

xml已剪下 ✓
<wpt lat="31.2304" lon="121.4737" />

GPX 看起来像“纬度在前”,只是因为 XML 属性顺序;转换为坐标数组时仍要明确经纬度。把二者颠倒,点位可能落到海上或另一个国家。

工具默认把输入视为 WGS84 经纬度,不执行投影转换。Web Mercator 米制坐标、地方工程坐标和其他测绘坐标,必须先用专业 GIS 软件重投影。仅凭数字范围猜测坐标系并不可靠。

为什么 GeoJSON 多边形不能可靠转成 GPX

GeoJSON 和 KML 可以表达 Polygon 与 MultiPolygon,例如配送区域、地块或行政边界。GPX 标准主要保存点、路线和轨迹,没有通用的面要素。

有些转换器会把多边形外环强行写成闭合轨迹,看起来似乎“成功”,但语义已经从区域变成一条路线,洞、多面和属性也容易丢失。当前工具会跳过无法可靠表达的多边形并给出提示。需要保留区域时,应输出 KML 或 GeoJSON,而不是追求一个没有错误提示的 GPX。

反过来,GPX 的轨迹点可以带时间和海拔。转换为普通 GeoJSON LineString 时,坐标通常能保留,但时间、心率、踏频或厂商扩展不一定有统一位置。涉及运动分析时,应保留原 GPX。

样式和属性为什么会变化

KML 可以定义线色、填充、图标、气球模板和文件夹层级;GeoJSON 通常把业务信息放在 properties,样式由使用它的地图程序决定;GPX 的元数据模型又不同。

格式转换的第一目标是保住几何和常见名称、说明,而不是完整复制每个软件的显示效果。导出后应在目标软件中检查:

如果一份 KML 依赖 NetworkLink 在线加载其他文件,单独上传主文件不会自动把远程数据带进结果。KMZ 也是 ZIP 容器,不等于普通 KML,当前转换器不会假装把二者当成同一种文件。

距离与边界统计怎样理解

转换前看到的边界框可以快速发现经纬度颠倒、异常离群点和空数据。路线长度使用经纬度进行球面近似,适合检查“几十米、几十公里还是几千公里”这类量级,不是工程测量报告。

跨日期变更线、接近极区、沿复杂地形或超长距离时,简单边界和 SVG 预览可能看起来压缩或跨越整个画面。预览没有地图底图,也不会判断路线是否沿道路。它的作用是确认几何存在、顺序大致正确,而不是替代 GIS 或导航软件。

一套可靠的转换流程

先上传文件并让工具自动识别格式;如果来源扩展名错误,再手动指定。转换前核对要素数、点数、几何类型、经纬度范围和距离。看到纬度超过 90、经度超过 180 或坐标全部接近整数米制数值时,不要继续导出,应先确认坐标系。

选择目标格式后,阅读页面给出的丢失提示。导出文件,再用真正接收它的软件打开:KML 用 Google Earth 或 GIS,GPX 用目标运动/导航应用,GeoJSON 用项目中的地图组件或 GIS。至少抽查一个点、一条线和一个区域。

需要手工检查 JSON 结构时,可以继续使用 JSON 格式化工具。如果要把经纬度列表整理成表格,则可以先导出 GeoJSON,再用 JSON 转 Excel 工具做进一步整理。

总结

KML、GPX 和 GeoJSON 不是三个只差后缀的容器。KML 擅长地图展示与区域,GPX 擅长 GPS 点线和轨迹,GeoJSON 适合程序与网页地图。转换时先确认 WGS84 与经纬度顺序,再接受格式本身的能力边界;几何、属性、样式和时间信息分别抽查,结果才适合进入下一步工作。