Kategorien:

Geodatenfunktionen

ST_DIMENSION

Geben Sie bei einem Wert vom Typ GEOGRAPHY die „Dimension“ des Werts zurück. Die Dimension eines GEOGRAPHY-Werts ist:

  • Punkt/MultiPoint: 0

  • Zeile/MultiLine: 1

  • Polygon/MultiPolygon: 2

  • GeometryCollection: Die Dimension der Collection entspricht der maximalen Dimension aller Werte in der Collection. Wenn beispielsweise eine GeometryCollection einen Punkt (Dimension 0) und eine Linie (Dimension 1) enthält, ist die Dimension der Collection 1.

  • Feature: Die Dimension des Features entspricht der Dimension des Geodatenobjekts in Feature.

  • FeatureCollection: Die Regel ist dieselbe wie für GeometryCollection.

Die zurückgegebenen Werte (0, 1, 2) entsprechen der allgemeinen Bedeutung des Wortes „Dimension“: Ein Polygon ist ein zweidimensionales Objekt, eine Linie ist ein eindimensionales Objekt und ein Punkt ist ein nulldimensionales Objekt.

Syntax

ST_DIMENSION( <geography_expression> )

Argumente

Geografischer_Ausdruck

Das Argument muss ein Ausdruck vom Typ GEOGRAPHY sein.

Rückgabewerte

Gibt einen Wert vom Typ INTEGER zurück.

Nutzungshinweise

  • Wenn der Funktion NULL übergeben wird, gibt die Funktion NULL zurück. Wenn der Funktion eine GeometryCollection übergeben wird, die mindestens ein NULL-Element und keine Nicht-NULL-Elemente enthält, gibt die Funktion 0 zurück.

    Beachten Sie, dass einige andere Systeme andere Werte für NULL-Eingaben zurückgeben.

Beispiele

Das folgende Beispiel veranschaulicht die Funktion ST_DIMENSION:

create table geospatial_table_02 (g GEOGRAPHY);
insert into geospatial_table_02 values
    ('POINT(-122.35 37.55)'),
    ('MULTIPOINT((-122.35 37.55), (0.00 -90.0))'),
    ('LINESTRING(-124.20 42.00, -120.01 41.99)'),
    ('LINESTRING(-124.20 42.00, -120.01 41.99, -122.5 42.01)'),
    ('MULTILINESTRING((-124.20 42.00, -120.01 41.99, -122.5 42.01), (10.0 0.0, 20.0 10.0, 30.0 0.0))'),
    ('POLYGON((-124.20 42.00, -120.01 41.99, -121.1 42.01, -124.20 42.00))'),
    ('MULTIPOLYGON(((-124.20 42.00, -120.01 41.99, -121.1 42.01, -124.20 42.0)),   ((20.0 20.0, 40.0 20.0, 40.0 40.0, 20.0 40.0, 20.0 20.0)))')
    ;    ;
select st_dimension(g) as dimension, st_aswkt(g)
    from geospatial_table_02;
+-----------+----------------------------------------------------------------------------------------------------+
| DIMENSION | ST_ASWKT(G)                                                                                        |
|-----------+----------------------------------------------------------------------------------------------------|
|         0 | POINT(-122.35 37.55)                                                                               |
|         0 | MULTIPOINT((-122.35 37.55),(0 -90))                                                                |
|         1 | LINESTRING(-124.2 42,-120.01 41.99)                                                                |
|         1 | LINESTRING(-124.2 42,-120.01 41.99,-122.5 42.01)                                                   |
|         1 | MULTILINESTRING((-124.2 42,-120.01 41.99,-122.5 42.01),(10 0,20 10,30 0))                          |
|         2 | POLYGON((-124.2 42,-120.01 41.99,-121.1 42.01,-124.2 42))                                          |
|         2 | MULTIPOLYGON(((-124.2 42,-120.01 41.99,-121.1 42.01,-124.2 42)),((20 20,40 20,40 40,20 40,20 20))) |
+-----------+----------------------------------------------------------------------------------------------------+