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.

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