ST_NumPoints

Définition

ST_NumPoints retourne le nombre de points (sommets) contenus dans un objet ST_Geometry.

Pour les polygones, les sommets de début et de fin sont comptés, bien qu'ils occupent le même emplacement.

Notez que ce nombre est différent de l'attribut NUMPTS du type ST_Geometry. L'attribut NUMPTS contient le nombre des sommets présents dans toutes les parties de la géométrie, y compris les séparateurs qui se trouvent entre les parties. Un séparateur se trouve entre chaque partie. Par exemple, un objet multi-parties linestring contenant trois parties a deux séparateurs. Dans l'attribut NUMPTS, chaque séparateur est compté comme un sommet. Inversement, la fonction ST_NumPoints n'inclut pas les séparateurs dans le compte des sommets.

Syntaxe

sde.st_numpoints (g1 sde.st_geometry)

Type de retour

Entier

Exemple

La table numpoints_test est créée avec la colonne Geotype, qui contient le type ST_Geometry stocké dans la colonne geometry g1.

Les instructions INSERT insèrent un point, un objet linestring et un polygone.

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

La requête répertorie le type de géométrie et le nombre de points contenu dans chaque entité.

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