空间数据量大怎么办,三种方式告诉你怎么抽稀,需要的赶紧收藏

661 阅读1分钟

背景

在对轨迹、边界、围栏等数据在地图上展示时,往往需要绘制大量的坐标点,很多时候由于地图缩放等级比较小,我们并不需要绘制全部的点,全量绘制地图也会存在性能问题,面对这样的情况我们需要对数据抽稀、舍弃不重要点,提高性能,同时不影响视觉效果。

抽稀算法介绍

折线抽稀极可以大量减少折线顶点数据,同时保持折线原有形状,减少顶点,能够提高数据处理、数据可视化的性能效率,同时减少了视觉噪音。 算法步骤 **1: **将轨迹的首尾点连成一条线,计算曲线上每一个点到直线的距离,找出最大距离dmax,看距离是否小于给定的阈值 max(轨迹精确度). **2-1: **若dmax < max,则舍弃这条曲线上的所有中间点,将曲线首尾点连成的直线作为这段曲线的近似,这条线段便处理完毕。 **2-2 : **若dmax >= max,则以dmax所在点作为分割点,将原来的曲线分为两段,分出来的两条曲线继续直线步骤1、2,直到所有的dmax < max。

Douglas-Peucker_animated.gif

抽稀算法库

Simplify.js 是基于 JavaScript 高性能的 折线抽稀库。抽稀算法使用了 Ramer-Douglas-Peucker algorithm 道格拉斯-普克法。 github.com/mourner/sim… 抽稀效果实例 004.gif 在线demo:ohbslx.csb.app/

其他语言实现

image.png

QGIS 抽稀

方法1:

打开 QGIS 工具条 Vector->GeometryTool->Simplify

image.png

方法2:

打开 QGIS - ToolBox-> GRass ->v.generalize

image.png

在线抽稀工具

www.mapshaper.org/ 打开网站、上传数据,即可进行数据抽稀了,简单、快捷、好用。 image.png

更多地理可视化技术:github.com/antvis/l7