我在PostGIS中的两个地理位置之间的交集有一个问题:我有一个具有地理位置列的table1,在wgs84中填充了多个多边形(每行一个)。在wgs84中,第二个table2也有一个用多个多边形填充的地理列(每行一个)。然后我做一个交集(select (..)其中在两者之间使用ST_Intersects())。
在某些(非常罕见的)情况下,它似乎不能正确工作,因为在期望true的情况下,intersect返回false :我有一个重新投影的tif,它代表了table1中的一条线的地理位置,它覆盖了坦桑尼亚的一大片区域。我还为table2中的一条线路重新投影了tif,它只覆盖了一些km²的一小部分区域。在ArcMap中,两者相交,小区域位于大区域的边缘,但是对于ST_Intsersects(geog1,geog2),PostGIS返回false。
当我通过转储程序将table1导出为shapefile时,地理位置的角点是通过直线连接的,而不是与大圆的一部分连接。然后,我得到了相同的结果:来自table2的区域现在位于来自table1的区域之外。所以我猜,PostGis也是用这个简化的多边形来计算的,但据我所知,地理学是用大圆的一部分而不是直线来计算的?
我已经尝试了所有方法,以确保两个表都真正填充了地理信息,而不是几何信息,但即使是显式的地理类型转换也不会改变结果。
以前发生过这样的事情吗?或者你知道我做错了什么吗?table2也有一个几何体和一个栅格列(总共=3个空间列),这会是一个问题吗?
发布于 2013-02-22 06:10:27
在没有看到实际几何图形的情况下,我不能确定,但几乎可以肯定的是,您曲解了大圆线如何界定您的区域,而PostGIS是正确的,特别是当您正在处理边界附近的关系时。使用Google Earth线串(不是多边形,那些不是使用大圆圈渲染的线串)来可视化示例有时有助于澄清事物是如何可视化工作的。
https://stackoverflow.com/questions/14999443
复制