Testet, ob sich zwei Geometrien innerhalb eines angegebenen Abstands voneinander befinden.
geometry-expression.ST_WithinDistance(geo2,distance[, unit-name])
Name | Typ | Beschreibung |
---|---|---|
geo2 |
ST_Geometry |
Der andere Geometriewert, dessen Entfernung vom geometry-expression gemessen werden soll. |
distance |
DOUBLE |
Der maximale Abstand zwischen den beiden Geometrien. |
unit-name |
VARCHAR(128) |
Die Maßeinheit, in der der distance-Parameter angegeben wird. Ist standardmäßig die Einheit des räumlichen Bezugssystems. Der unit-name-Parameter muss mit der UNIT_NAME-Spalte einer Zeile in der ST_UNITS_OF_MEASURE-Ansicht übereinstimmen, wo UNIT_TYPE auf 'LINEAR' eingestellt ist. |
BIT Gibt 1 zurück, wenn geometry-expression und geo2 innerhalb des angegebenen Abstands voneinander liegen, sonst 0.
Die ST_WithinDistance-Methode testet, ob der kleinste Abstand zwischen zwei Geometrien eine angegebene Entfernung nicht überschreitet, wobei eine Toleranz berücksichtigt wird.
Genauer gesagt: d gibt den kleinsten Abstand zwischen geometry-expression und geo2 an. Der Ausdruck geometry-expression.ST_WithinDistance( geo2, distance[, unit_name])
wird mit 1 berechnet, wenn d <= distance oder d größer als distance, aber noch innerhalb der Toleranz des zugeordneten räumlichen Bezugssystem ist.
Für räumliche Bezugssysteme mit planer Erddarstellung wird die Entfernung als kartesische Entfernung in der Ebene gemessen und in den linearen Maßeinheiten des damit verbundenen räumlichen Bezugssystems berechnet. Für räumliche Bezugssysteme mit gewölbter Erddarstellung wird die Entfernung berechnet, indem die Krümmung der Erdoberfläche mithilfe von Ellipsoidparametern in der Definition des räumlichen Bezugssystems berücksichtigt wird.
Wenn geometry-expression Kreisbogenfolgen enthält, werden diese in Linienfolgen interpoliert.
Für räumliche Bezugssysteme mit gewölbter Erddarstellung wird die ST_WithinDistance-Methode nur unterstützt, wenn geometry-expression und geo2 nur Punkte enthalten.
SQL/MM (ISO/IEC 13249-3: 2006) Erweiterung des Herstellers
Im folgenden Beispiel wird eine geordnete Ergebnismenge mit einer Zeile für jede Form zurückgegeben, die innerhalb des Abstands 1.4 des Punkts (2,3) liegt.
SELECT ShapeID, ROUND( Shape.ST_Distance( NEW ST_Point( 2, 3 ) ), 2 ) AS dist FROM SpatialShapes WHERE ShapeID < 17 AND Shape.ST_WithinDistance( NEW ST_Point( 2, 3 ), 1.4 ) = 1 ORDER BY dist |
Die Abfrage erzeugt die folgende Ergebnismenge:
ShapeID | DIST |
---|---|
2 |
0.0 |
3 |
0.0 |
5 |
1.0 |
6 |
1.21 |
Im folgenden Beispiel werden Punkte erstellt, die Halifax, NS und Waterloo, ON, in Kanada darstellen. ST_WithinDistance wird verwendet, um zu zeigen, dass der Abstand zwischen zwei Punkten geringer als 850 Meilen, aber nicht geringer als 840 Meilen ist. In diesem Beispiel wird vorausgesetzt, dass die 'st_geometry_predefined_uom'-Funktion von sa_install_feature-Systemprozedur installiert wurde.
SELECT NEW ST_Point( -63.573566, 44.646244, 4326 ) .ST_WithinDistance( NEW ST_Point( -80.522372, 43.465187, 4326 ) , 850, 'Statute mile' ) within850, NEW ST_Point( -63.573566, 44.646244, 4326 ) .ST_WithinDistance( NEW ST_Point( -80.522372, 43.465187, 4326 ) , 840, 'Statute mile' ) within840 |
Die Abfrage erzeugt die folgende Ergebnismenge:
within850 | within840 |
---|---|
1 |
0 |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |