2012-11-30 62 views
1

所以我在玩http://www.gadm.org/数据集;什么是减少几何的复杂性的最好方法

我想从lat & lon去一个国家和州(或同等学历)。因此,为了简化数据,我将它分组并组合起来并合并几何图形;到现在为止还挺好。结果非常好,我可以拉回比利时,这很好。

我拉回澳大利亚,我得到了维多利亚,因为事情太过分了。

现在我真的不在乎细节的程度太多;如果线条是在1公里的地方,他们应该是我没事(只要形状较大,而不是较小)

什么是减少我的地理空间物体的复杂性的最佳方法,所以我最终一个快速和简单的世界观?

所有数据保存为几何数据。

回答

1

我想复杂度只能由一个形状中的顶点数决定。有相当多的shape simplifying algorithms可供选择(也可能是某些来源)。

作为一种简单的方法,如果结果不会导致错误太大(例如,在添加区域方面),您可以迭代顶点并拒绝凹面的顶点,最好是将较小的段连接到较大的顶点。更复杂的方法可能会破坏现有细分以更好地移除小细分。

6

正如你用“tsql”标记了这个问题,我假设你正在使用Sql Server。因此,您已经有了一个称为Reduce的方便功能,您可以将其应用于几何数据类型以简化它。

例如(从上面的链接复制):

DECLARE @g geometry; 
SET @g = geometry::STGeomFromText('LINESTRING(0 0, 0 1, 1 0, 2 1, 3 0, 4 1)', 0); 
SELECT @g.Reduce(.75).ToString(); 

功能接收与简化阈值的容限参数。

+0

我想只去除不使用外边缘精度的孔。 –

+0

好吧,我想你可以使用一个名为“ConvexHull”的函数(也支持Sql Server)。问题是生成的多边形会凸起,可能会扭曲原始多边形。无论如何,试试吧:SELECT @ g.STConvexHull() – psousa

相关问题