Kategorien:

Geodatenfunktionen

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-Objekt g1.

  • GEOMETRY-Objekt g2 befindet sich außerhalb von GEOMETRY-Objekt g1.

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:

ST_CONTAINS, ST_COVEREDBY

Syntax

ST_COVERS( <geography_expression_1> , <geography_expression_2> )

ST_COVERS( <geometry_expression_1> , <geometry_expression_2> )
Copy

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))');
Copy
SELECT ST_COVERS(g1, g2) 
    FROM geospatial_table_01;
+-------------------+
| ST_COVERS(G1, G2) |
|-------------------|
| True              |
+-------------------+
Copy

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);
Copy
+------------------------------+----------------------+----------------------------------+-----------------------------+
| ST_COVERS(POLY, POLY_INSIDE) | ST_COVERS(POLY,POLY) | ST_COVERS(POLY,LINE_ON_BOUNDARY) | ST_COVERS(POLY,LINE_INSIDE) |
|------------------------------+----------------------+----------------------------------+-----------------------------|
| True                         | True                 | True                             | True                        |
+------------------------------+----------------------+----------------------------------+-----------------------------+
Copy