Kategorien:

Geodatenfunktionen

ST_NPOINTS , ST_NUMPOINTS

Gibt die Anzahl der Punkte in einem GEOGRAPHY- oder GEOGRAPHY-Objekt zurück.

Syntax

ST_NPOINTS( <geography_or_geometry_expression> )
Copy

Argumente

geography_or_geometry_expression

Das Argument muss ein Ausdruck vom Typ GEOGRAPHY oder GEOMETRY sein.

Rückgabewerte

Gibt einen Wert vom Typ INTEGER zurück.

Nutzungshinweise

  • Jede Polygonschleife listet den Startpunkt zweimal auf (einmal als Start, einmal als Ende). ST_NPOINTS zählt beide Vorkommen. Bei einem dreieckigen Polygon gibt ST_NPOINTS beispielsweise 4 zurück, nicht 3.

  • ST_NUMPOINTS ist ein Alias für ST_NPOINTS.

    Bemerkung

    In einigen anderen Systemen verhält sich ST_NUMPOINTS anders als ST_NPOINTS und gibt nur die Anzahl der Punkte für LineString/MultiLineString-Objekte zurück.

Beispiele

GEOGRAPHY-Beispiele

Dieses Beispiel zeigt die Anzahl der Punkte in einem einfachen Polygon an.

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_NPOINTS(g1) 
    FROM geospatial_table_01;
+----------------+
| ST_NPOINTS(G1) |
|----------------|
|              5 |
+----------------+
Copy

GEOMETRY-Beispiele

Im folgenden Beispiel wird die Verwendung der ST_NPOINTS-Funktion gezeigt.

CREATE OR REPLACE TABLE geometry_shapes (g GEOMETRY);
INSERT INTO geometry_shapes VALUES
    ('POINT(66 12)'),
    ('MULTIPOINT((45 21), (12 54))'),
    ('LINESTRING(40 60, 50 50, 60 40)'),
    ('MULTILINESTRING((1 1, 32 17), (33 12, 73 49, 87.1 6.1))'),
    ('POLYGON((17 17, 17 30, 30 30, 30 17, 17 17))'),
    ('MULTIPOLYGON(((-10 0,0 10,10 0,-10 0)),((-10 40,10 40,0 20,-10 40)))'),
    ('GEOMETRYCOLLECTION(POLYGON((-10 0,0 10,10 0,-10 0)),LINESTRING(40 60, 50 50, 60 40), POINT(99 11))')
    ;

SELECT ST_NPOINTS(g), ST_ASWKT(g) FROM geometry_shapes;
Copy
+---------------+-------------------------------------------------------------------------------------------------+
| ST_NPOINTS(G) | ST_ASWKT(G)                                                                                     |
|---------------+-------------------------------------------------------------------------------------------------|
|             1 | POINT(66 12)                                                                                    |
|             2 | MULTIPOINT((45 21),(12 54))                                                                     |
|             3 | LINESTRING(40 60,50 50,60 40)                                                                   |
|             5 | MULTILINESTRING((1 1,32 17),(33 12,73 49,87.1 6.1))                                             |
|             5 | POLYGON((17 17,17 30,30 30,30 17,17 17))                                                        |
|             8 | MULTIPOLYGON(((-10 0,0 10,10 0,-10 0)),((-10 40,10 40,0 20,-10 40)))                            |
|             8 | GEOMETRYCOLLECTION(POLYGON((-10 0,0 10,10 0,-10 0)),LINESTRING(40 60,50 50,60 40),POINT(99 11)) |
+---------------+-------------------------------------------------------------------------------------------------+
Copy