Name

ST_3DDWithin — Prüft, ob zwei 3D-Geometrien innerhalb eines bestimmten 3D-Abstands liegen

Übersicht

boolean ST_3DDWithin(geometry g1, geometry g2, double precision distance_of_srid);

Beschreibung

Gibt true zurück, wenn der 3D-Abstand zwischen zwei Geometriewerten nicht größer ist als distance distance_of_srid. Der Abstand wird in Einheiten angegeben, die durch das räumliche Bezugssystem der Geometrien definiert sind. Damit diese Funktion sinnvoll ist, müssen sich die Ausgangsgeometrien im selben Koordinatensystem befinden (denselben SRID haben).

[Anmerkung]

Diese Funktion beinhaltet automatisch einen Bounding-Box-Vergleich, der alle räumlichen Indizes verwendet, die für die Geometrien verfügbar sind.

Diese Funktion unterstützt 3d und lässt den Z-Index nicht fallen.

Diese Funktion unterstützt polyedrische Flächen.

Diese Methode setzt die SQL/MM-Spezifikation um. SQL-MM ?

Verfügbarkeit: 2.0.0

Beispiele

Compare the same transformed point and line in both 3D and 2D. The 3D test fails because the Z difference matters even though the 2D footprints are close enough.

Code
WITH sample AS (
  SELECT ST_Transform('SRID=4326;POINT(-72.1235 42.3521 4)'::geometry, 2163) AS input_point,
         ST_Transform(
           'SRID=4326;LINESTRING(-72.1260 42.45 15,-72.123 42.1546 20)'::geometry,
           2163
         ) AS input_line
)
SELECT ST_3DDWithin(input_point, input_line, 126.8) AS within_dist_3d,
       ST_DWithin(input_point, input_line, 126.8) AS within_dist_2d,
       input_point AS input_point,
       input_line AS input_line
FROM sample;
Ausgabe von Rastern
-[ RECORD 1 ]--+----------------------------------------------------------------------------------------------------------------------------------
within_dist_3d | f
within_dist_2d | t
input_point    | POINT Z (-11774128.9 5237160.2 4)
input_line     | LINESTRING Z (-11774339.5 5243556.8 15,-11773706.7 5215256.3 20)