如何使用geodjango和postgis检查两个面是否具有共同的内部点

hts6caw3  于 2023-03-04  发布在  Go
关注(0)|答案(1)|浏览(199)

我正在使用postgis后台的geodjango。给定两个多边形,我想检查它们是否重叠。我的意思是,它们有共同的内部点。如果我们检查

A.function(B)

在下图中,“示例1”为False,“示例2”为False(因为它们只有共同的边),“示例3”为True,因为它们有共同的内部点。如果两个多边形相等,则函数也将返回True。

9njqaruj

9njqaruj1#

方法是使用geodjango函数"touches"和"intersects",这两个函数在后台使用postgis函数"ST_Touches"和"ST_Intersects

if A.intersects(B) and not A.touches(B):
    print("Geometries have interior points in common")
  1. ST_触摸:如果A和B相交,但它们的内部不相交,则返回TRUE。
  2. ST_相交:比较两个几何图形,如果相交则返回true。如果几何图形有任何公共点,则它们相交。

相关问题