Name

|=| — AトラジェクトリとBトラジェクトリとの最接近する時の距離を返します。

Synopsis

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

説明

|=|演算子は二つのトラジェクトりー (ST_IsValidTrajectory参照)の間の3次元距離を返します。ST_DistanceCPAと同じですが、この演算子はN次元インデックスを使った最近傍探索を行います。

[Note]

この演算子は、ジオメトリで使用可能なND GiST (n次元GiST)インデックスを使用します。他の空間インデックスを使う演算子と違い、ORDER BY句でのみ空間インデックスを使います。

[Note]

ジオメトリのひとつが定数となる (副問い合わせ/共通テーブル式にない)場合 (a.geomでなく'SRID=3005;LINESTRINGM(0 0 0,0 0 1)'::geometry等となる場合)には、インデックスが有効になるだけです。

Availability: 2.2.0.

This example orders stored trajectories by their distance from a literal query trajectory.

\set qt 'ST_AddMeasure(ST_MakeLine(ST_MakePointM(-350, 300, 0), ST_MakePointM(-410, 490, 0)), 10, 20)'

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)