- Kategorien:
ST_NPOINTS , ST_NUMPOINTS¶
Gibt die Anzahl der Punkte in einem GEOGRAPHY- oder GEOGRAPHY-Objekt zurück.
Syntax¶
ST_NPOINTS( <geography_or_geometry_expression> )
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))');SELECT ST_NPOINTS(g1) FROM geospatial_table_01; +----------------+ | ST_NPOINTS(G1) | |----------------| | 5 | +----------------+
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;+---------------+-------------------------------------------------------------------------------------------------+ | 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)) | +---------------+-------------------------------------------------------------------------------------------------+