Name

|=| — Renvoie la distance entre les trajectoires A et B à leur point d'approche le plus proche.

Synopsis

double precision |=|( geometry A , geometry B );

Description

L'opérateur |=| renvoie la distance 3D entre deux trajectoires (Voir ST_IsValidTrajectory). C'est la même chose que ST_DistanceCPA mais en tant qu'opérateur, il peut être utilisé pour effectuer des recherches du plus proche voisin en utilisant un index à N dimensions (nécessite PostgreSQL 9.5.0 ou plus).

[Note]

Cet opérande utilisera les index ND GiST qui peuvent être disponibles sur les géométries. Il est différent des autres opérateurs qui utilisent des index spatiaux en ce sens que l'index spatial n'est utilisé que lorsque l'opérateur est dans la clause ORDER BY.

[Note]

L'index n'intervient que si l'une des géométries est une constante (pas dans une sous-requête/cte). Par exemple, 'SRID=3005;LINESTRINGM(0 0 0,0 0 1)'::geometry au lieu de a.geom

Disponibilité : 2.2.0. La prise en charge des index est disponible uniquement pour PostgreSQL 9.5+

Exemples

-- 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)