algorithm - 如何智能地降级或平滑 GIS 数据(简化多边形)?

标签 algorithm geometry gis postgis

我有详细的美国县 map ,来自 TIGER LINE数据集。我如何对数据进行采样、平滑或降级,以便获得更直、更四四方方、更少“噪音”的形状来表示地理特征——在本例中只是县界和州界线,但在一般情况下也可能如此?

如果可以高效地完成采样,则可以在渲染时进行采样,或者可以生成并存储并行数据集。我正在使用 PostGIS ,并且这些线是由 shp2pgsql 生成的多折线——但任何采用波浪线并将其简化为与人类解释器意义大致相同的更平滑线的解决方案都将非常有用。

最佳答案

Douglas-Peucker 绝对是正确的方法。有一些简单的方法可以在 PostGIS 和 QGIS 中访问它的实现,我想我会在这里为那些遇到类似问题的人添加这些方法。目标是从这样的事情开始:

alt text

最后得到这样的东西:

alt text

在 PostGIS 中,Douglas-Peucker 被实现为 simplify,语法,详细 here at bostongis.org , 是以下的一些变体:

SELECT transform(simplify(transform(the_geom, 2249), 500),4326) from the_geo_table

即使在完整的国家数据集上,这也能很好地工作,有一些错误似乎是由于基础数据不佳造成的。事实证明,在 QGIS 中,菜单项 Tools > Geometry Tools > Simplify Geometries 将导出任何几何的简化 shapefile,并将其作为图层添加到当前项目。

这是一个非常基础的工具集,我问的问题级别太低,虽然学习基础数学很好,但对此有很好的解释 here: http://www.mappinghacks.com/code/PolyLineReduction/ ,以及事实证明不是太必要的示例代码!

关于algorithm - 如何智能地降级或平滑 GIS 数据(简化多边形)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1849928/

相关文章:

algorithm - 这是某种形式的加密数据吗?

algorithm - 计算半铰接卡车的位移坐标

graphics - 从多边形网格中唯一查找边的算法

c++ - 交线 : error in vector functions

r - 在 R 中将路径/路线图编写为 GeoTiff

r - 使用 gbuffer 缓冲 R 中的(地理)空间点

java - 支持快速第k大元素查找的队列数据结构

java - 快速计算两个算术级数的交点

algorithm - 边成本为 1,顶点成本为 2 的最小成本算法

r - 如何使用 SF 包计算质心和多边形边缘之间的最大距离?