|=| — 返回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)’::几何图形而不是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)