|=|
Name
|=| — Returns the distance between A and B trajectories at their closest point of approach.
Synopsis
    
     double precision
     
      |=|
     
     (
    
    geometry
    
     A
    
    , 
				  geometry
    
     B
    
    
     )
    
    ;
   
Description
   The
   
    |=|
   
   operator returns the 3D distance between
two trajectories (See
   
    ST_IsValidTrajectory
   
   ).
This is the same as
   
    ST_DistanceCPA
   
   but as an operator
it can be used for doing nearest neightbor searches using an N-dimensional
index (requires PostgreSQL 9.5.0 or higher).
  
       
      | 
     |
| 
       This operand will make use of ND GiST indexes that may be available on the geometries. It is different from other operators that use spatial indexes in that the spatial index is only used when the operator is in the ORDER BY clause.  | 
    
       
      | 
     |
| 
       Index only kicks in if one of the geometries is a constant (not in a subquery/cte). e.g. 'SRID=3005;LINESTRINGM(0 0 0,0 0 1)'::geometry instead of a.geom  | 
    
Availability: 2.2.0. Index-supported only available for PostgreSQL 9.5+
Examples
-- 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)