- Kategorien:
ST_COVERS¶
Gibt TRUE zurück, wenn kein Punkt eines Geodatenobjekts außerhalb eines anderen Geodatenobjekts liegt. Mit anderen Worten:
GEOGRAPHY-Objekt
g2
befindet sich außerhalb von GEOGRAPHY-Objektg1
.GEOMETRY-Objekt
g2
befindet sich außerhalb von GEOMETRY-Objektg1
.
ST_COVERS ist ähnlich, unterscheidet sich aber geringfügig von ST_CONTAINS. Weitere Details zu den Unterschieden zwischen „deckt ab“ und „enthält“ finden Sie unter DE-9IM (Dimensionally Extended 9-Intersection Model).
Auch wenn ST_COVERS und ST_CONTAINS ähnlich zu sein scheinen, gibt es doch feine Unterschiede zwischen den beiden Funktionen. Weitere Informationen zu den Unterschieden zwischen „deckt ab“ und „enthält“ finden Sie unter DE-9IM (Dimensionally Extended 9-Intersection Model).
Bemerkung
Diese Funktion unterstützt nicht die Verwendung einer GeometryCollection oder FeatureCollection als Eingabewert.
Tipp
Sie können den Suchoptimierungsdienst verwenden, um die Leistung von Abfragen zu verbessern, die diese Funktion aufrufen. Weitere Details dazu finden Sie unter Suchoptimierungsdienst.
- Siehe auch:
Syntax¶
ST_COVERS( <geography_expression_1> , <geography_expression_2> )
ST_COVERS( <geometry_expression_1> , <geometry_expression_2> )
Argumente¶
geography_expression_1
Ein GEOGRAPHY-Objekt, das nicht ein GeometryCollection oder FeatureCollection ist.
geography_expression_2
Ein GEOGRAPHY-Objekt, das nicht ein GeometryCollection oder FeatureCollection ist.
geometry_expression_1
Ein GEOMETRY-Objekt, das nicht ein GeometryCollection oder FeatureCollection ist.
geometry_expression_2
Ein GEOMETRY-Objekt, das nicht ein GeometryCollection oder FeatureCollection ist.
Rückgabewerte¶
Ein BOOLEAN-Wert.
Nutzungshinweise¶
Bei GEOMETRY-Objekten meldet die Funktion einen Fehler, wenn die beiden eingegebenen GEOMETRY-Objekte unterschiedliche SRIDs haben.
Beispiele¶
GEOGRAPHY-Beispiele¶
Das folgende Beispiel zeigt eine einfache Verwendung der Funktion ST_COVERS:
create table geospatial_table_01 (g1 GEOGRAPHY, g2 GEOGRAPHY); insert into geospatial_table_01 (g1, g2) values ('POLYGON((0 0, 3 0, 3 3, 0 3, 0 0))', 'POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))');SELECT ST_COVERS(g1, g2) FROM geospatial_table_01; +-------------------+ | ST_COVERS(G1, G2) | |-------------------| | True | +-------------------+
GEOMETRY-Beispiele¶
Die folgende Abfrage zeigt mehrere Beispiele für die Verwendung von ST_COVERS. Beachten Sie, dass das Polygon einen LineString an seinem Rand abdeckt (aber nicht enthält).
SELECT ST_COVERS(poly, poly_inside), ST_COVERS(poly, poly), ST_COVERS(poly, line_on_boundary), ST_COVERS(poly, line_inside) FROM (SELECT TO_GEOMETRY('POLYGON((-2 0, 0 2, 2 0, -2 0))') AS poly, TO_GEOMETRY('POLYGON((-1 0, 0 1, 1 0, -1 0))') AS poly_inside, TO_GEOMETRY('LINESTRING(-1 1, 0 2, 1 1)') AS line_on_boundary, TO_GEOMETRY('LINESTRING(-2 0, 0 0, 0 1)') AS line_inside);+------------------------------+----------------------+----------------------------------+-----------------------------+ | ST_COVERS(POLY, POLY_INSIDE) | ST_COVERS(POLY,POLY) | ST_COVERS(POLY,LINE_ON_BOUNDARY) | ST_COVERS(POLY,LINE_INSIDE) | |------------------------------+----------------------+----------------------------------+-----------------------------| | True | True | True | True | +------------------------------+----------------------+----------------------------------+-----------------------------+