الاسم
ST_3DDWithin — تختبر ما إذا كان شكلان هندسيان ثلاثيا الأبعاد ضمن مسافة ثلاثية الأبعاد معيّنة
المختصر
boolean ST_3DDWithin(geometry g1, geometry g2, double precision distance_of_srid);
الوصف
تُعيد true إذا كانت المسافة الثلاثية الأبعاد بين قيمتي geometry لا تزيد على المسافة distance_of_srid. تُحدَّد المسافة بالوحدات المعرّفة في النظام المرجعي المكاني للأشكال الهندسية. لكي يكون لهذه الدالة معنى يجب أن تكون الأشكال المصدرية في نفس نظام الإحداثيات (لها نفس SRID).
|
|
|
تتضمن هذه الدالة تلقائيًا مقارنةً للمستطيل المحيط تستفيد من أي فهارس مكانية متاحة على الأشكال الهندسية. |
تدعم هذه الدالة الأبعاد الثلاثية ولا تُسقط قيمة Z.
تدعم هذه الدالة الأسطح متعددة الوجوه (Polyhedral surfaces).
تطبّق هذه الدالة مواصفة SQL/MM. SQL-MM ?
متاحة منذ: 2.0.0
أمثلة
-- Geometry example - units in meters (SRID: 2163 US National Atlas Equal area) (3D point and line compared 2D point and line)
-- Note: currently no vertical datum support so Z is not transformed and assumed to be same units as final.
SELECT ST_3DDWithin(
ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT(-72.1235 42.3521 4)'),2163),
ST_Transform(ST_GeomFromEWKT('SRID=4326;LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163),
126.8
) As within_dist_3d,
ST_DWithin(
ST_Transform(ST_GeomFromEWKT('SRID=4326;POINT(-72.1235 42.3521 4)'),2163),
ST_Transform(ST_GeomFromEWKT('SRID=4326;LINESTRING(-72.1260 42.45 15, -72.123 42.1546 20)'),2163),
126.8
) As within_dist_2d;
within_dist_3d | within_dist_2d
----------------+----------------
f | t