首页 文章

PostGIS:两个地理位置之间的ST_Intersects(),有时会返回false结果

提问于
浏览
2

我在PostGIS中的两个地理位置之间存在交叉问题:我有一个带有地理列的table1,在wgs84中填充多个多边形(每行一个) . 第二个table2也有一个地理列,在wgs84中填充多个多边形(每行一个) . 然后我在两者之间做一个交叉(select(..),其中ST_Intersects()) .

在一些(非常罕见的)情况下,在我看来,它不正确,因为交叉返回false,其中一个true是预期的:我有一个重新投影的tif表示table1中一行的地理位置,它覆盖了一个大的区域坦桑尼亚 . 我在表2中也有一行重新投影的tif,它只覆盖了一些km²的小区域 . 在ArcMap中,两者都相交,小区域位于大边缘,但PostGIS为ST_Intsersects(geog1,geog2)返回false .

当我通过转储器将table1导出为shapefile时,地理的角点与直线连接,而不是与大圆的部分连接 . 然后我得到相同的结果:table2中的区域现在位于table1的区域之外 . 所以我想,PostGis也用这个简化的多边形计算,但据我所知,地理是用大圆的部分而不是直线来计算的?

我已经尝试了所有方法,以确保两个表格都充满了地理位置,而不是几何图形,但即使是对地理位置的明确表达也没有改变结果 .

之前发生过这样的事情,或者你知道我做错了什么? table2还有一个几何和一个栅格列(总共= 3个空间列),这可能是一个问题吗?

1 回答

  • 1

    在没有看到你的实际几何形状的情况下,我无法肯定地说,但几乎可以肯定的是,你错误地解释了大圆线将如何约束你的区域,而PostGIS正在把它弄清楚,特别是如果你正在处理边界附近的关系 . 使用Google地球线条(不是多边形,不使用大圆圈渲染)可视化示例有时可以帮助澄清事物在视觉上的运作方式 .

相关问题