|=| — 傳回軌跡 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)