- 首页
- KML 转 GeoJSON 转换器
100% 私密——文件永不离开你的浏览器
KML 转 GeoJSON 转换器
把 .kml 文件转成 .geojson,直接载入 Leaflet、Mapbox、QGIS 和所有原生吃 JSON 的工具。线条与 gx:Track 连同海拔、时间戳一起转换,每个地标配一个要素——全部在你的浏览器本地处理。
如何转换为 GeoJSON
- 1
拖入文件
把 FIT、GPX、TCX、KML、KMZ 或 GeoJSON 文件拖到上面的虚线框里,也可以点击选择文件。源格式会根据文件内容自动识别。
- 2
稍等片刻
转换在你设备上的后台 Worker 中进行。一般活动转瞬即完成;即使 50 MB 的大文件也不会卡住页面。
- 3
检查预览
下载前可以先核对距离、时长、爬升、平均心率,以及转换后轨迹的地图预览,确认数据没有丢失。
- 4
下载
点击下载按钮,.geojson 文件直接从内存保存到本地。全程没有上传,所以也不存在需要清理的服务器副本。
什么是 KML 文件?
KML(Keyhole Markup Language)是诞生于 Keyhole——后来成为 Google Earth 的软件——的 XML 方言,后由 OGC 标准化。它面向地理要素的「展示」:地标、线、多边形和图片,各自带有样式与文件夹组织,让一个 KML 文件读起来像一张精心编排的地图,而不是原始数据堆。Google Earth、Google My Maps 和多数桌面 GIS 软件都能原生打开它。
KML 是地图格式,不是训练格式。它的几何能很好地承载位置与海拔——Google 的 gx:Track 扩展甚至能携带逐点时间戳用于时间轴回放——但它没有心率、踏频、功率的概念。当目的是「把路线展示给人看」时,把活动转成 KML 是正确选择;当目的是分析训练,健身格式才是数据的家。
什么是 GeoJSON 文件?
GeoJSON(RFC 7946)是地理领域的 JSON 方言——现代 Web 的母语。地图库(Leaflet、Mapbox GL、D3、Deck.gl)、数据新闻工具(Datawrapper、Flourish)、GIS 套件(QGIS、PostGIS)以及数据科学 Python 栈的半壁江山,都能毫无仪式感地消费它。一个文件就是一个 FeatureCollection,坐标以 [经度, 纬度] 对书写,属性就是普通 JSON。
与 KML 一样,GeoJSON 关心地理而非训练。它没有心率或功率的原生槽位,但工具可以自由附加自定义属性——广为使用的 togeojson 约定把逐点时间戳存在 coordinateProperties.times 里,本转换器既读取也写入该约定。如果目的地是网页地图、仪表盘或数据管线,GeoJSON 几乎总是最短的路径。
为什么从 KML 跳到 GeoJSON?
这是 Web 制图的两大通用语,而它们几乎没有交集:KML 来自 Google Earth 世界——手绘路线、分享地图、公园数据;GeoJSON 是 Leaflet、Mapbox GL、D3、Deck.gl 和大多数数据工具原生消费的东西。把一条 KML 路线搬上网页地图、放进仪表盘、或纳入数据分析,通常就是这一次转换,之后下游的一切直接可用。
它也是对付「号称支持 KML 但实现糟糕」的工具的可靠路径。许多 GIS 和 BI 工具导入 GeoJSON 毫无瑕疵,它们的 KML 导入却会丢 gx:Track 时间戳或弄乱 MultiGeometry。先用一个正确处理两者的转换器转换一次,整类导入 bug 就被绕开了。
转换产出什么
每个地标内的线几何变成一个 Feature:LineString 直接转换,gx:Track 转为 LineString 并把时间戳写入 coordinateProperties.times(togeojson 约定)。MultiGeometry 的多条线按文档顺序一线一个要素,海拔作为第三个坐标带过去。地标名落入要素 properties,Web 地图用它做标签。
诚实的范围:KML 里的点和多边形不是线几何,跳过;样式(图标、颜色、气泡)是 KML 的展示装饰,GeoJSON 没有对应物,丢弃。输出是纯净、符合 RFC 7946 的几何 + 海拔 + 时间 + 名称——正是数据工具想要的。
你的文件永远不会离开这个浏览器
这个工具——与本站所有工具一样——完全以客户端 JavaScript 运行。你拖入的文件在自己设备的 Web Worker 里解析、在内存中转换,然后直接作为下载交还给你。没有上传端点,没有服务器端转换服务,也没有临时存储:你可以打开浏览器开发者工具的网络面板,亲眼确认没有任何文件字节被发送到任何地方。
对健身数据而言,这一点比大多数文件更重要。一条 GPS 轨迹是一份精确的日志:你在哪里、什么时间、心跳多快——家庭住址、训练习惯、常跑路线和比赛日程全在一个文件里。让转换留在设备上,意味着第三方转换器永远拿不到这份日志的副本;而且这个工具在飞机上、地下室里或任何没信号的地方,都照常工作。
KML 与 GeoJSON 一览
| 维度 | KML | GeoJSON |
|---|---|---|
| 格式类型 | 展示 XML(Google Earth) | JSON(RFC 7946) |
| 典型用途 | Earth 可视化、My Maps | Web 地图、GIS、数据管线 |
| 线几何 | LineString / gx:Track | LineString 要素 |
| 时间戳 | gx:Track <when> | coordinateProperties.times |
| 样式 | 丰富(图标、气泡) | 无——只有数据 |
| 最适合 | Google 生态展示 | 一切原生 JSON 的场景 |
常见问题
能。每个点的时间变成 coordinateProperties.times 里的 ISO 字符串——与 Mapbox togeojson 确立的约定相同——Web 地图和脚本因此能按时间动画或分析轨迹,而不只是画出来。