|=| — 返回 A 和 B 轨迹在最近接近点之间的距离。
double precision |=|(
geometry A , geometry B )
;
|=|
运算符返回两个轨迹之间的 3D 距离(参见 ST_IsValidTrajectory)。这与 ST_DistanceCPA 相同,但作为运算符,它可用于使用 N 维索引进行最近邻搜索(需要 PostgreSQL 9.5.0 或更高版本)。
此操作数将使用可能在几何体上可用的 ND GiST 索引。它与使用空间索引的其他运算符不同,因为空间索引仅在运算符位于 ORDER BY 子句中时才使用。 |
索引仅在几何体之一为常量(不在子查询/CTE 中)时才生效。例如,'SRID=3005;LINESTRINGM(0 0 0,0 0 1)'::geometry 而不是 a.geom |
可用性:2.2.0。仅支持索引的版本适用于 PostgreSQL 9.5+
-- Save a literal query trajectory in a psql variable... \set qt 'ST_AddMeasure(ST_MakeLine(ST_MakePointM(-350,300,0),ST_MakePointM(-410,490,0)),10,20)' -- Run the query ! SELECT track_id, dist FROM ( SELECT track_id, ST_DistanceCPA(tr,:qt) dist FROM trajectories ORDER BY tr |=| :qt LIMIT 5 ) foo; track_id dist ----------+------------------- 395 | 0.576496831518066 380 | 5.06797130410151 390 | 7.72262293958322 385 | 9.8004461358071 405 | 10.9534397988433 (5 rows)