2

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

在某些(非常罕见的)情况下,在我看来,它不能正常工作,因为相交在预期为真的地方返回 false:我有一个重新投影的 tif,它代表 table1 中的一条线的地理,它覆盖了很大的区域坦桑尼亚。我还为表 2 中的一条线重新投影了 tif,它只覆盖了几平方公里的小区域。在 ArcMap 中,两者相交,小区域位于大区域的边缘,但 PostGIS 对 ST_Intsersects(geog1, geog2) 返回 false。

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

我已经尝试了一切以确保两个表都真正填充了地理而不是几何,但即使是明确地转换为地理也不会改变结果。

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

4

1 回答 1

1

在没有看到您的实际几何形状的情况下,我不能肯定地说,但几乎可以肯定的是,您误解了大圆线将如何限制您的区域,而 PostGIS 做得对,尤其是在您处理边界附近的关系时。使用 Google 地球线串(不是多边形,这些不是使用大圆圈渲染的)来可视化示例有时有助于阐明事物的视觉工作方式。

于 2013-02-22T06:10:27.437 回答