- 类别:
ST_NPOINTS、ST_NUMPOINTS¶
返回 GEOGRAPHY 或 GEOGRAPHY 对象中的点数。
语法¶
ST_NPOINTS( <geography_or_geometry_expression> )
实参¶
geography_or_geometry_expression
实参必须是 GEOGRAPHY 或 GEOMETRY 类型的表达式。
返回¶
返回类型 INTEGER 的值。
使用说明¶
每个多边形循环列出两次起点(一次作为起点,一次作为终点)。ST_NPOINTS 记为两次出现次数。例如,给定一个三角形多边形,ST_NPOINTS 会返回 4,而不是 3。
ST_NUMPOINTS 是 ST_NPOINTS 的别名。
备注
在其他一些系统中,ST_NUMPOINTS 与 ST_NPOINTS 的行为不同,并且只会返回 LineString / MultiLineString 对象的点数。
示例¶
GEOGRAPHY 示例¶
这显示了简单多边形中的点数。
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 | +----------------+
GEOMETRY 示例¶
下面的示例演示如何使用 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)) | +---------------+-------------------------------------------------------------------------------------------------+