|=| — Returnerar avståndet mellan A- och B-banorna vid deras närmaste inflygningspunkt.
double precision |=|(
geometry A , geometry B )
;
Operatorn |=|
returnerar 3D-avståndet mellan två banor (se ST_IsValidTrajectory). Detta är detsamma som ST_DistanceCPA men som en operator kan den användas för att göra närmaste grannsökningar med ett N-dimensionellt index (kräver PostgreSQL 9.5.0 eller högre).
![]() |
|
Denna operand använder ND GiST-index som kan finnas tillgängliga på geometrierna. Den skiljer sig från andra operatorer som använder spatiala index genom att det spatiala indexet endast används när operatorn är i ORDER BY-satsen. |
![]() |
|
Index startar bara om en av geometrierna är en konstant (inte i en underfråga/cte). t.ex. 'SRID=3005;LINESTRINGM(0 0 0,0 0 1)'::geometry istället för a.geom |
Tillgänglighet: 2.2.0. Index-stöd endast tillgängligt för 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)