GeoJSON简化工具

使用Douglas–Peucker算法和以米为单位的容差,为密集的GeoJSON线条和多边形瘦身——通常能减少80%到95%,且视觉上没有变化。

GeoJSON简化工具完全在你的浏览器中运行。你的地理数据在你的设备上处理,绝不会上传。

由 Udit Agarwal 开发和维护

打开GeoJSON查看器

关于 GeoJSON简化工具

GeoJSON简化工具会对数据中的每一条LineString、MultiLineString、Polygon和MultiPolygon运行Ramer–Douglas–Peucker算法。这个算法只在移除某个顶点会让图形偏移超出你设定的容差时,才会保留该顶点——这里的容差以米为单位,经度会根据纬度正确缩放,因此同样的容差值在奥斯陆和新加坡代表的实际距离是一致的。每秒记录一次的GPS轨迹,以及以测量级精度数字化的边界线,在地图显示比例下通常能在肉眼看不出变化的情况下缩小80%到95%。结构会完整保留:环保持闭合,多边形至少保留四个位置点,点和属性原样通过不受影响,原始对象也绝不会被修改。

功能特性

  • 使用以米为单位的容差滑块控制Douglas–Peucker算法
  • 按纬度进行缩放:任何地方的“米”都是真正的米
  • 支持LineString、Polygon及其Multi*变体
  • 递归遍历FeatureCollection和GeometryCollection
  • 环状结构保持闭合,永远不会跌破有效多边形的下限
  • 显示点数统计、缩减百分比和字节大小

如何使用 GeoJSON简化工具

  1. 粘贴GeoJSON数据,或加载示例数据
  2. 设置容差:街道级细节用5–20米,国家轮廓用100米以上
  3. 查看缩减统计数据
  4. 复制简化后的GeoJSON

示例

输入

GPS running track, 4,812 points, 512 KB

输出

10 m tolerance → 214 points, 24 KB — 95.6% fewer points

在地图上完全看不出区别;加载速度快了二十倍。

常见错误与故障排除

  • 简化后的图形明显切掉了拐角。 — 相对于你的缩放级别,容差设置得太大了。逐步减半,直到失真消失——最佳容差是结果仍然看起来完全一致的最大值。
  • 一个点都没有被删除。 — 相对于设定的容差,数据可能本来就已经比较粗略了。请调大容差;另外要注意Point永远不会被处理——只有线和环才有可以节省的顶点。
  • 两个相邻多边形不再共享完全一致的边界。 — 每个环都是独立简化的,因此共享边界可能会出现细微偏差。如果需要严格的拓扑关系,请使用具备拓扑感知能力的处理流程;对于展示用途的图层,这种缝隙只有亚像素级别,可以忽略。

常见问题

Douglas–Peucker算法是怎么决定保留哪些点的?
它在一段线的两个端点之间连一条弦,找出离这条弦最远的顶点,只有当这个距离超过容差时才保留该顶点——然后对两段子线递归执行同样的操作。最终保留下来的,正是那些在你设定的比例下真正决定线条形状的顶点。
GPS轨迹应该用什么容差?
普通消费级GPS本身就有3到10米的漂移,因此10米的容差主要是在去除噪声。街道级别的展示可以承受大约20米的容差;区域级概览则可以容忍100米甚至更多。
简化会破坏我的多边形吗?
内置的保护机制能避免常见的失败情况:闭合点会被保留,可能跌破四个位置点下限的环会保持原样不动。不过在容差设置比较激进、图形本身又非常曲折的情况下,仍有可能出现自相交——请对大幅度简化的结果进行目视检查。
为什么用米而不是度作为容差单位?
经度对应的实际距离会随纬度变化而缩小——赤道处1度是111公里,北纬60度处只有55公里。如果用度作为容差,对斯堪的纳维亚地区数据的简化力度会是赤道地区的两倍;按cos(纬度)进行缩放能保持容差在物理意义上的一致性。

相关工具

  • GeoJSON 查看器 — 校验 GeoJSON、在地图上预览,并查看要素与边界框摘要。
  • GeoJSON外接框 — 任意GeoJSON的bbox、中心、面积与长度,双坐标顺序。
  • GPX 转 GeoJSON — 在你的浏览器中双向转换 GPX 与 GeoJSON——GPS 轨迹、路线和航点始终留在你的设备上。
  • GeoJSON 转 CSV — 将 GeoJSON 转为 CSV,或将 CSV 转回 GeoJSON——Point 要素变成纬度和经度列,全部在你的浏览器本地完成。
  • polyline 编码器 — 编码或解码 Google polyline,往返于 lat/lng 与 GeoJSON。
  • KML 转 GeoJSON — 将 Google Earth 的 KML 转为 GeoJSON,或反向转换——完全在你的浏览器中,你的地图数据不会离开你的设备。

更多地理 / 地图工具

  • 地图瓦片计算器 — 坐标、XYZ、TMS 与 quadkey,附瓦片数量。
  • NMEA 解析器 — 把 GPS 语句解读成坐标和 GeoJSON。
  • Maidenhead 网格定位换算 — 坐标与 Maidenhead 定位符互换,附距离和天线方位。
  • 地理中点计算器 — 求两个或多个坐标的真正中点,可设权重。
  • 点在多边形内判定 — 看看哪些坐标落在GeoJSON里面。
  • Web墨卡托转换工具 — WGS84度与EPSG:3857米互转。
  • 国家代码查询 — ISO 3166-1二字母、三字母、数字、区号和ccTLD。
  • 经纬度地图 — 在 OpenStreetMap 地图上标注纬度和经度,拖动图钉或点击反读坐标,并复制 Google Maps 与 geo: 链接。
  • GPX 转 GeoJSON — 在你的浏览器中双向转换 GPX 与 GeoJSON——GPS 轨迹、路线和航点始终留在你的设备上。
  • KML 转 GeoJSON — 将 Google Earth 的 KML 转为 GeoJSON,或反向转换——完全在你的浏览器中,你的地图数据不会离开你的设备。
  • WKT 转 GeoJSON — 在你的浏览器中双向转换 WKT(Well-Known Text)与 GeoJSON——粘贴 POINT、LINESTRING 或 POLYGON,你的几何数据始终在本地。
  • GeoJSON 转 CSV — 将 GeoJSON 转为 CSV,或将 CSV 转回 GeoJSON——Point 要素变成纬度和经度列,全部在你的浏览器本地完成。

查看全部地理 / 地图工具 (23) · 全部工具