ST_NPOINTS, ST_NUMPOINTS

ST_NPOINTS, ST_NUMPOINTS

ST_NPOINTS 함수는 GEOGRAPHY 또는 GEOMETRY 객체의 점(point)의 수를 반환해요.

출처: ST_NPOINTS, ST_NUMPOINTS

본문

ST_NPOINTS 함수는 GEOGRAPHY 또는 GEOMETRY 객체의 점의 수를 반환해요.

구문 (Syntax)

ST_NPOINTS( <geography_or_geometry_expression> )

인자 (Arguments)

  • geography_or_geometry_expression — 인자는 GEOGRAPHY 또는 GEOMETRY 타입의 표현식이어야 해요.

반환 (Returns)

INTEGER 타입의 값을 반환해요.

사용 메모 (Usage notes)

  • 각 Polygon 루프는 시작점을 두 번 나열해요(시작으로 한 번, 끝으로 한 번). ST_NPOINTS는 두 번 모두 계산해요. 예를 들어 삼각형 Polygon이 주어지면 ST_NPOINTS는 3이 아닌 4를 반환해요.
  • ST_NUMPOINTS는 ST_NPOINTS의 별칭이에요. 참고: 일부 다른 시스템에서는 ST_NUMPOINTS가 ST_NPOINTS와 다르게 동작하며 LineString/MultiLineString 객체에 대해서만 점의 수를 반환해요.

예제 (Examples)

GEOGRAPHY 예제

단순한 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 예제

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)) |
+---------------+-------------------------------------------------------------------------------------------------+

더 알아보기 (Learn more)

  • ST_ASWKT
  • 지리공간 함수 (Geospatial functions)