我试图找出位于矩形区域(信封)内的点。我在使用了一点点难度的理解性能影响&&运营商相比ST_Intersect。
但是,我想我在尝试提出我的问题时解释了我自己的问题。我无论如何都会提交它,以防它对某人有用。
&&的手册说(具有讽刺意味的是,页面名称是 geometry_overlaps.html):
&& — 如果 A 的 2D 边界框与 B 的 2D 边界框相交,则返回 TRUE。`
ST_Intersects的手册说:
如果几何/地理“在二维空间上相交”-(共享空间的任何部分),则返回 TRUE,如果不相交(它们不相交),则返回 FALSE。对于地理 - 容差为 0.00001 米(因此任何靠近的点都被视为相交)
ST_Intersects在这种情况下将返回 true。因为我&&在任何一种情况下都使用矩形边界框,所以我的目标运算符几乎做同样的事情。我想知道是否&&是我的目的最快的运营商?感觉&&必须做更少的检查,所以它必须更有效率。
这是一个直接复制自&&,ST_Intersects改编的示例:
SELECT
t1.id AS t1,
t2.id AS t2,
t1.ln && t2.ln AS "&&",
ST_Intersects(t1.ln,t2.ln)
FROM ( VALUES
(1, 'LINESTRING(0 0, 3 3)'::geometry),
(2, 'LINESTRING(0 1, 0 5)'::geometry)
) AS t1(id,ln)
CROSS JOIN (VALUES
(3, 'LINESTRING(1 2, 4 …Run Code Online (Sandbox Code Playgroud)