在PostGIS中,&&的含义是什么?

13
在PostGIS中,两个几何图形之间的&&操作的结果是什么?在我看来,&&返回一个布尔值,但这次返回的是几何图形。在下面的例子中,操作是在一个LineString和一个Polygon之间进行的。
首先,我猜想这是包含和被包含之间的关系。直到我做了下面的例子,我认为这应该是一种"交集"类型的关系。我对吗?
select ST_geomfromtext('linestring(0.1 0.1,1.9 1.9)', 4326) && st_geomfromtext('POLYGON((0 0,0 1,1 1,1 0,0 0))', 4326)

结果是t,表示true

3
请注意,&& 运算符也是 数组范围 的“重叠”运算符,以及 全文搜索AND 运算符。 - user330315
2个回答

14

这是一个交叉运算符 &&

boolean &&( geometry A , geometry B );

boolean &&( geography A , geography B );

如果几何体A的2D边界框与几何体B的2D边界框相交,则&&运算符返回TRUE

通过Google找到它的方法:

  1. 搜索“postgis operators”
  2. 在第一页 https://postgis.net/docs/reference.html 中搜索 &&

他们本应该使用易读的操作符,如INTERSECTS_WITH,而不是选择&&。 - jayarjo
1
@jayarjo 这是一个领域特定的知识:从集合论中我们知道,集合的交集(或并集)用符号 & 表示。 - zerkms
谢谢提供信息。但是 - 我们正在处理的是SQL,他们应该遵循通常的约定。 - jayarjo
1
@jayarjo ST_Intersects ? - zerkms
ST_Intersects是一个PostGIS函数 - 我不确定它是否可以在非几何/地理类型或数组上执行相交操作,而我能够使用&&来评估日期范围的重叠,例如。 - user2274903
显示剩余2条评论

0

&&st_intersect的区别。
https://postgis.net/docs/ST_Intersects.html

如果一个几何图形或地理图形共享任何空间部分,则它们相交。对于地理数据,公差为0.00001米(因此认为任何接近的点都被视为相交)

因此,boolean &&( geometry A , geometry B );可能返回true,但是st_intersects(geometry A, geometry B)返回false。例如:https://postgis.net/workshops/postgis-intro/indexing.html

但是,boolean st_intersects(geometry A, geometry B)将产生与boolean &&( geometry A , geometry B );相同的结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接