GeoJSON简化工具

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

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

打开GeoJSON查看器

关于 GeoJSON简化工具

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

功能特性

如何使用 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

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

常见错误与故障排除

常见问题

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

相关工具

全部 ArrayKit 工具