ST_NumPoints

Definition

ST_NumPoints gibt die Anzahl von Punkten (Stützpunkten) in einem ST_Geometry-Objekt zurück.

Bei Polygonen werden sowohl die Anfangs- und Endstützpunkte gezählt, obwohl sie sich an derselben Position befinden.

Beachten Sie, dass sich diese Anzahl vom Attribut NUMPTS des Typs ST_Geometry unterscheidet. Das Attribut NUMPTS enthält die Anzahl der Stützpunkte in allen Teilen der Geometrie, einschließlich der Trennzeichen zwischen Teilen. Es gibt einen Trennzeichen zwischen jedem Teil. Beispielsweise verfügt ein mehrteiliger Linestring mit drei Teilen über zwei Trennzeichen. Im Attribut NUMPTS wird jedes Trennzeichen als Stützpunkt gezählt. Die Funktion ST_NumPoints berücksichtigt dagegen die Trennzeichen nicht in der Anzahl der Stützpunkte.

Syntax

sde.st_numpoints (g1 sde.st_geometry)

Rückgabetyp

Ganzzahl

Beispiel

Die Tabelle "numpoints_test" wird mit der Spalte "geotype" erstellt, in der der ST_Geometry-Typ gespeichert ist, die in der Spalte "g1" enthalten ist.

Mit der INSERT-Anweisung werden ein Punkt, ein Linestrings und ein Polygon in die Tabelle eingefügt.

Oracle

CREATE TABLE numpoints_test (geotype varchar(12), g1 sde.st_geometry);

INSERT INTO NUMPOINTS_TEST VALUES (
'point',
sde.st_pointfromtext ('point (10.02 20.01)', 0)
);

INSERT INTO NUMPOINTS_TEST VALUES (
'linestring',
sde.st_linefromtext ('linestring (10.02 20.01, 23.73 21.92)', 0)
);

INSERT INTO NUMPOINTS_TEST VALUES (
'polygon',
sde.st_polyfromtext ('polygon ((10.02 20.01, 23.73 21.92, 24.51 12.98,
11.64 13.42, 10.02 20.01))', 0)
);

PostgreSQL

CREATE TABLE numpoints_test (geotype varchar(12), g1 sde.st_geometry);

INSERT INTO numpoints_test VALUES (
'point',
sde.st_point ('point (10.02 20.01)', 0)
);

INSERT INTO numpoints_test VALUES (
'linestring',
sde.st_linestring ('linestring (10.02 20.01, 23.73 21.92)', 0)
);

INSERT INTO numpoints_test VALUES (
'polygon',
sde.st_polygon ('polygon ((10.02 20.01, 23.73 21.92, 24.51 12.98,
11.64 13.42, 10.02 20.01))', 0)
);

Mit der Abfrage werden der Geometrietyp und die Anzahl der Punkte jedes Features aufgelistet.

Oracle

SELECT geotype, sde.st_numpoints (g1) Number_of_points
FROM NUMPOINTS_TEST;

GEOTYPE     Number_of_points

point                       1
linestring                  2
polygon                     5

PostgreSQL

SELECT geotype, sde.st_numpoints (g1) AS Number_of_points
FROM numpoints_test;

geotype     number_of_points

point                       1
linestring                  2
polygon                     5

7/10/2012