Kategorien:

Geodatenfunktionen

ST_UNION

Gibt bei zwei GEOGRAPHY-Eingabeobjekten ein GEOGRAPHY-Objekt zurück, das die kombinierte Menge der Formen aus beiden Objekten darstellt (d. h. die Vereinigung der beiden Objekte).

Siehe auch:

ST_INTERSECTION, ST_DIFFERENCE, ST_SYMDIFFERENCE

Syntax

ST_UNION( <geography_expression_1> , <geography_expression_2> )
Copy

Argumente

geography_expression_1

Ein GEOGRAPHY-Objekt.

geography_expression_2

Ein GEOGRAPHY-Objekt.

Rückgabewerte

Gibt einen Wert vom Typ GEOGRAPHY zurück.

Nutzungshinweise

  • Befindet sich ein beliebiger Punkt eines Eingabeobjekts auf der Grenze des anderen Eingabeobjekts (ohne Punkte), sind einige Punkte der Vereinigung in der Ausgabe möglicherweise mehrfach dargestellt.

    Zum Beispiel in der folgenden Anweisung:

    SELECT ST_UNION(
      TO_GEOGRAPHY('POINT(1 1)'),
      TO_GEOGRAPHY('LINESTRING(1 0, 1 2)')
    );
    
    Copy

    POINT(1 1) liegt auf der Grenze von LINESTRING(1 0, 1 2), ist aber kein Punkt davon.

    In diesem Beispiel ist nicht garantiert, dass ST_UNION eine minimale Ausgabe erzeugt. Die erwartete Ausgabe sollte der Eingabe-LineString sein:

    LINESTRING(1 0, 1 2)
    
    Copy

    Aber die tatsächliche Ausgabe könnte sein:

    GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(1 0,1 1,1 2))
    
    Copy

    wobei POINT (1,1) in der Ausgabe zweimal dargestellt wird: einmal als der Punkt selbst und einmal als ein Punkt innerhalb von LineString.

Beispiele

Im folgende Beispiel wird ein GEOGRAPHY-Objekt zurückgegeben, das die Vereinigung der beiden GEOGRAPHY-Eingabeobjekte darstellt:

ALTER SESSION SET GEOGRAPHY_OUTPUT_FORMAT = 'WKT';

SELECT ST_UNION(
  TO_GEOGRAPHY('POLYGON((0 0, 1 0, 2 1, 1 2, 2 3, 1 4, 0 4, 0 0))'),
  TO_GEOGRAPHY('POLYGON((3 0, 3 4, 2 4, 1 3, 2 2, 1 1, 2 0, 3 0))')
) AS union_of_objects;
Copy

Dieses Beispiel ergibt die folgende Ausgabe:

+-------------------------------------------------------------------------------------------------------------------------------------------+
| UNION_OF_OBJECTS                                                                                                                          |
|-------------------------------------------------------------------------------------------------------------------------------------------|
| POLYGON((3 0,3 4,2 4,1.5 3.500399839,1 4,0 4,0 0,1 0,1.5 0.5000571198,2 0,3 0),(1.5 1.500171359,1 2,1.5 2.500285599,2 2,1.5 1.500171359)) |
+-------------------------------------------------------------------------------------------------------------------------------------------+
Copy

Die folgenden Bilder veranschaulichen die Unterschiede in den Flächen, die die Eingabe- und Ausgabeobjekte darstellen:

Eingabe

Ausgabe

Areas of input objects passed to ST_UNION Areas of output objects returned by ST_UNION