الاسم
|=| — تُعيد المسافة بين المسارين A وB عند نقطة اقترابهما الأقرب.
المختصر
double precision |=|( geometry A , geometry B );
الوصف
يُعيد العامل |=| المسافة ثلاثية الأبعاد بين مسارين (انظر ST_IsValidTrajectory). وهو مماثل لـ ST_DistanceCPA لكن بوصفه عاملًا يمكن استخدامه لإجراء عمليات البحث عن أقرب الجيران باستخدام فهرس N-الأبعاد (يتطلب PostgreSQL 9.5.0 أو أحدث).
|
|
|
يستفيد هذا العامل من فهارس GiST متعددة الأبعاد (ND) التي قد تكون متاحة على الأشكال الهندسية. ويختلف عن العوامل الأخرى التي تستخدم الفهارس المكانية في أن الفهرس المكاني لا يُستخدم إلا عندما يكون العامل في عبارة ORDER BY. |
|
|
|
لا يعمل الفهرس إلا إذا كان أحد الشكلين الهندسيين ثابتًا (ليس في استعلام فرعي/cte). مثلًا 'SRID=3005;LINESTRINGM(0 0 0,0 0 1)'::geometry بدلًا من 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)
انظر أيضًا
ST_DistanceCPA, ST_ClosestPointOfApproach, ST_IsValidTrajectory