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