- Categorias:
ST_NPOINTS , ST_NUMPOINTS¶
Retorna o número de pontos em um objeto GEOGRAPHY ou GEOGRAPHY.
Sintaxe¶
ST_NPOINTS( <geography_or_geometry_expression> )
Argumentos¶
geography_or_geometry_expression
O argumento deve ser uma expressão do tipo GEOGRAPHY ou GEOMETRY.
Retornos¶
Retorna um valor do tipo INTEGER.
Notas de uso¶
Cada loop do polígono lista o ponto de partida duas vezes (uma como início, outra como fim). ST_NPOINTS conta as duas ocorrências. Por exemplo, dado um polígono triangular, ST_NPOINTS retornará 4, e não 3.
ST_NUMPOINTS é um alias para ST_NPOINTS.
Nota
Em alguns outros sistemas, ST_NUMPOINTS comporta-se de maneira diferente de ST_NPOINTS e retorna o número de pontos para objetos LineString / MultiLineString somente.
Exemplos¶
Exemplos GEOGRAPHY¶
Isto mostra o número de pontos em um polígono simples.
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 | +----------------+
Exemplos GEOMETRY¶
Os exemplos a seguir demonstram como utilizar a função ST_NPOINTS.
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)) | +---------------+-------------------------------------------------------------------------------------------------+