【问题标题】:what is the best way to reduce complexity of geometries降低几何复杂性的最佳方法是什么
【发布时间】:2012-11-30 06:02:10
【问题描述】:

所以我在玩http://www.gadm.org/ 数据集;

我想从 lat & lon 到一个国家和州(或同等国家)。

因此,为了简化数据,我将其分组并合并几何;到目前为止,一切都很好。结果很好,我可以拉回比利时也很好。

我撤回澳大利亚,我得到了维多利亚,因为这东西太大了。

老实说,我现在不太在乎细节水平;如果线条在它们应该在 1 公里的范围内,我没问题(只要形状更大,而不是更小)

什么是降低地理空间对象复杂性的最佳方法,以便我最终获得快速而简单的世界视图?

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

【问题讨论】:

    标签: tsql geometry geography


    【解决方案1】:

    当您使用“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();
    

    函数接收带有简化阈值的容差参数。

    【讨论】:

    • 我只想去除孔而不使用外边缘的精度。
    • 好吧,我猜你可以使用一个名为“ConvexHull”的函数(Sql Server 也支持)。问题是生成的多边形会是凸的,可能会扭曲您的原始多边形。不管怎样,试试吧:SELECT @g.STConvexHull()
    【解决方案2】:

    我认为复杂性仅由形状中的顶点数决定。有很多 shape simplifying algorithms 可供选择(也许还有一些来源)。

    作为一种简单的方法,如果结果不会引起太大的错误(例如,就增加的面积而言),您可以迭代顶点并拒绝凹面的顶点,最好将较小的段相邻为较大的段。更复杂的方法可能会破坏现有细分以更好地移除较小的细分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-24
      • 2021-06-29
      • 1970-01-01
      • 2018-10-16
      • 1970-01-01
      • 2013-03-11
      相关资源
      最近更新 更多