Kategorien:

Geodatenfunktionen

ST_UNION

Gibt bei zwei GEOGRAPHY-Eingabeobjekten ein GEOGRAPHY-Objekt zurück, das die kombinierte Menge aller Punkte 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> )

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)')
    );
    

    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)
    

    Aber die tatsächliche Ausgabe könnte sein:

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

    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;

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)) |
+-------------------------------------------------------------------------------------------------------------------------------------------+

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
Zurück zum Anfang