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