GeoJSON简化工具
使用Douglas–Peucker算法和以米为单位的容差,为密集的GeoJSON线条和多边形瘦身——通常能减少80%到95%,且视觉上没有变化。
GeoJSON简化工具完全在你的浏览器中运行。你的地理数据在你的设备上处理,绝不会上传。
打开GeoJSON查看器
关于 GeoJSON简化工具
GeoJSON简化工具会对数据中的每一条LineString、MultiLineString、Polygon和MultiPolygon运行Ramer–Douglas–Peucker算法。这个算法只在移除某个顶点会让图形偏移超出你设定的容差时,才会保留该顶点——这里的容差以米为单位,经度会根据纬度正确缩放,因此同样的容差值在奥斯陆和新加坡代表的实际距离是一致的。每秒记录一次的GPS轨迹,以及以测量级精度数字化的边界线,在地图显示比例下通常能在肉眼看不出变化的情况下缩小80%到95%。结构会完整保留:环保持闭合,多边形至少保留四个位置点,点和属性原样通过不受影响,原始对象也绝不会被修改。
功能特性
- 使用以米为单位的容差滑块控制Douglas–Peucker算法
- 按纬度进行缩放:任何地方的“米”都是真正的米
- 支持LineString、Polygon及其Multi*变体
- 递归遍历FeatureCollection和GeometryCollection
- 环状结构保持闭合,永远不会跌破有效多边形的下限
- 显示点数统计、缩减百分比和字节大小
如何使用 GeoJSON简化工具
- 粘贴GeoJSON数据,或加载示例数据
- 设置容差:街道级细节用5–20米,国家轮廓用100米以上
- 查看缩减统计数据
- 复制简化后的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,或反向转换——完全在你的浏览器中,你的地图数据不会离开你的设备。
全部 ArrayKit 工具