- 카테고리:
ST_SIMPLIFY¶
선 또는 다각형을 나타내는 입력 GEOGRAPHY 또는 GEOMETRY 오브젝트가 주어지면 이 오브젝트의 더 단순한 근삿값을 반환합니다. 이 함수는 선택한 꼭짓점을 식별하고 제거하여 꼭짓점이 더 적은 유사한 오브젝트를 만듭니다.
예를 들어, 입력 오브젝트가 꼭짓점이 50개인 다각형인 경우, ST_SIMPLIFY는 꼭짓점이 20개인 더 단순한 다각형을 반환할 수 있습니다.
오브젝트를 단순화할 때 이 함수는 꼭짓점 제거 결과에 따라 해당 꼭짓점과 가장자리 사이의 거리가 지정 허용 범위 내에 있는 경우에만 꼭짓점을 제거합니다.
구문¶
ST_SIMPLIFY( <geography_expression>, <tolerance> [ , <preserve_collapsed> ] )
ST_SIMPLIFY( <geometry_expression>, <tolerance> )
인자¶
필수:
geography_expression
. OR .geometry_expression
단순화할 GEOGRAPHY 또는 GEOMETRY 오브젝트입니다.
GEOGRAPHY 또는 GEOMETRY 오브젝트 유형에 따라 ST_SIMPLIFY는 다음과 같은 효과가 있습니다.
오브젝트 유형
ST_SIMPLIFY의 효과
LineString, MultiLineString, 다각형 또는 MultiPolygon
ST_SIMPLIFY가 단순화 알고리즘을 적용합니다
점 또는 MultiPoint
ST_SIMPLIFY가 효과가 없습니다.
GeometryCollection 또는 FeatureCollection
GEOGRAPHY 오브젝트의 경우 ST_SIMPLIFY는 컬렉션의 각 오브젝트에 단순화 알고리즘을 적용합니다. . . GEOMETRY 오브젝트의 경우 ST_SIMPLIFY는 이러한 유형을 지원하지 않습니다.
tolerance
꼭짓점 제거로 인한 꼭짓점과 가장자리 사이의 최대 거리(미터)입니다. 거리가 꼭짓점에 대한 이 허용 범위를 초과하는 경우, ST_SIMPLIFY는 해당 꼭짓점을 단순화된 오브젝트에 유지합니다.
선택 사항:
preserve_collapsed
(GEOGRAPHY 오브젝트만 해당)
TRUE
인 경우, 오브젝트를 유지하지 않을 경우에는 허용 범위 감안 시 너무 작을 때 해당 오브젝트를 그대로 유지합니다.예를 들어,
preserve_collapsed
가FALSE
이고tolerance
가10
(미터)인 경우, 1m 길이의 선은 단순화된 오브젝트의 한 점으로 축소됩니다.preserve_collapsed
가TRUE
인 경우, 이 선은 단순화된 오브젝트에서 유지됩니다.기본값:
FALSE
.
반환¶
함수는 GEOGRAPHY 또는 GEOMETRY 형식의 값을 반환합니다.
예¶
GEOGRAPHY 예¶
이 섹션의 예는 WKT 형식으로 출력을 표시합니다.
alter session set GEOGRAPHY_OUTPUT_FORMAT='WKT';
다음 예는 원래 LineString보다 꼭짓점이 적은 단순화된 LineString을 반환합니다. 단순화된 오브젝트에서, 꼭짓점과 꼭짓점을 대체하는 가장자리 사이의 거리가 1000미터 미만이면 꼭짓점이 생략됩니다.
SELECT ST_SIMPLIFY( TO_GEOGRAPHY('LINESTRING(-122.306067 37.55412, -122.32328 37.561801, -122.325879 37.586852)'), 1000); +----------------------------------------------------------------------------------------------------+ | ST_SIMPLIFY( | | TO_GEOGRAPHY('LINESTRING(-122.306067 37.55412, -122.32328 37.561801, -122.325879 37.586852)'), | | 1000) | |----------------------------------------------------------------------------------------------------| | LINESTRING(-122.306067 37.55412,-122.325879 37.586852) | +----------------------------------------------------------------------------------------------------+
GEOMETRY 예¶
이 섹션의 예는 WKT 형식으로 출력을 표시합니다.
ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='WKT';
다음 예는 원래 LineString보다 꼭짓점이 적은 단순화된 LineString을 반환합니다. 단순화된 오브젝트에서, 꼭짓점과 꼭짓점을 대체하는 가장자리 사이의 거리가 500미터 미만이면 꼭짓점이 생략됩니다.
SELECT ST_SIMPIFY(
TO_GEOMETRY('LINESTRING(1100 1100, 2500 2100, 3100 3100, 4900 1100, 3100 1900)'),
500);
+----------------------------------------------------------------------------------------------------+
| ST_SIMPLIFY(TO_GEOMETRY('LINESTRING(1100 1100, 2500 2100, 3100 3100, 4900 1100, 3100 1900)'), 500) |
|----------------------------------------------------------------------------------------------------|
| LINESTRING(1100 1100,3100 3100,4900 1100,3100 1900) |
+----------------------------------------------------------------------------------------------------+
다음 예에서는 tolerance
인자에 따라 초기 꼭짓점이 36개인 타원을 16개 또는 10개의 꼭짓점이 있는 도형으로 단순화합니다.
SELECT ST_NUMPOINTS(geom) AS numpoints_before,
ST_NUMPOINTS(ST_Simplify(geom, 0.5)) AS numpoints_simplified_05,
ST_NUMPOINTS(ST_Simplify(geom, 1)) AS numpoints_simplified_1
FROM
(SELECT ST_BUFFER(to_geometry('LINESTRING(0 0, 1 1)'), 10) As geom);
+------------------+-------------------------+------------------------+
| NUMPOINTS_BEFORE | NUMPOINTS_SIMPLIFIED_05 | NUMPOINTS_SIMPLIFIED_1 |
|------------------+-------------------------+------------------------|
| 36 | 16 | 10 |
+------------------+-------------------------+------------------------+