카테고리:

지리 공간 함수

ST_NPOINTS , ST_NUMPOINTS

Returns the number of points in a GEOGRAPHY or GEOGRAPHY object.

구문

ST_NPOINTS( <geography_or_geometry_expression> )

인자

geography_or_geometry_expression

The argument must be an expression of type GEOGRAPHY or GEOMETRY.

반환

INTEGER 형식의 값을 반환합니다.

사용법 노트

  • 각 Polygon 루프는 시작점을 두 번 나열합니다(한 번은 시작점, 한 번은 끝점). ST_NPOINTS는 두 발생을 모두 계산합니다. 예를 들어, 삼각형 Polygon이 주어지면 ST_NPOINTS는 3이 아니라 4를 반환합니다.

  • ST_NUMPOINTS는 ST_NPOINTS의 별칭입니다.

    참고

    일부 다른 시스템에서 ST_NUMPOINTS는 ST_NPOINTS와는 다르게 작동하며 LineString / MultiLineString 오브젝트에 대해서만 점의 개수를 반환합니다.

GEOGRAPHY Examples

이는 단순한 Polygon의 점 개수를 보여줍니다.

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 Examples

The following example demonstrates how to use the ST_NPOINTS function.

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)) |
+---------------+-------------------------------------------------------------------------------------------------+
맨 위로 이동