cocos creator计算图形面积_PostGIS教程十五:几何图形的有效性

5e923ee88f1c5a8402a258390dfac8d0.png

在90%的情况下,"为什么我的查询给了我一个'TopologyException'错误"的问题的答案是"一个或多个输入的几何图形是无效的",这就引出了这样一个问题:几何图形"无效"是什么意思?我们为什么要关注它?

一、什么是有效性?

对于多边形来说,有效性是最重要的,因为多边形定义了有界区域,需要很好的结构。线串非常简单,不会无效,点也不会无效。

多边形有效性的一些规则很明显,而另一些规则是任意的(事实上,是任意的)。

  • 多边形的环必须闭合
  • 内环必须位于外环的内部
  • 环不能自相交(它们不能相互接触,也不能交叉)
  • 除了在某个点接触,环不能与其他环接触

最后两条规则属于任意类别。定义多边形的其他规则也是自洽合理的,但是上面的规则是PostGIS所遵循的OGC SFSQL标准所定义的多边形有效性的规则。

规则之所以重要,是因为几何图形的计算依赖于输入的几何图形的结构。可以构建没有结构假设的算法,但这些程序往往非常慢,因为任何无结构程序的第一步都是分析输入并在其中构建结构。

这里有一个解释为什么几何图形的结构重要的例子。首先这个多边形是无效的

POLYGON((0 0, 0 1, 2 1, 2 2, 1 2, 1 0, 0 0));

在此图中,你可以更清楚地看到无效的原因:

0bc212b2922e221eddd3f0d1af85c418.png

这个多边形的外环实际上是一个数字8的形状,中间有一个自交点(也就是这个多边形的环自相交了)。图形程序成功地渲染了多边形填充,使其在视觉上看起来是一个"区域":两个一个单位的正方形,因此多边形总面积为两个单位的面积。

让我们看看PostGIS数据库认为多边形的面积是多少:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值