지리 공간 함수
지리 공간 함수 (Geospatial functions)
이 문서는 Trino의 지리 공간 함수를 설명합니다. 지리 좌표 기반의 공간 객체 생성, 관계 테스트, 연산, 접근자 등을 배울 수 있어요.
출처: 문서
본문
ST_ 접두어로 시작하는 Trino 지리 공간 함수는 SQL/MM 사양을 지원하며 Open Geospatial Consortium(OGC)의 OpenGIS 사양을 따릅니다. 따라서 많은 Trino 지리 공간 함수는 연산되는 기하 객체가 단순(simple)하고 유효(valid)하다고 요구하거나, 더 정확히는 가정합니다. 예를 들어 폴리곤 바깥에 정의된 구멍이 있는 폴리곤의 면적을 계산하거나, 단순하지 않은 경계선에서 폴리곤을 구성하는 것은 의미가 없습니다.
Trino 지리 공간 함수는 Well-Known Text(WKT), Extended Well-Known Text(EWKT), Well-Known Binary(WKB), Extended Well-Known Binary(EWKB) 형태의 공간 객체를 지원합니다:
POINT (0 0)LINESTRING (0 0, 1 1, 1 2)POLYGON ((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1))MULTIPOINT (0 0, 1 2)MULTILINESTRING ((0 0, 1 1, 1 2), (2 3, 3 2, 5 4))MULTIPOLYGON (((0 0, 4 0, 4 4, 0 4, 0 0), (1 1, 2 1, 2 2, 1 2, 1 1)), ((-1 -1, -1 -2, -2 -2, -2 -1, -1 -1)))GEOMETRYCOLLECTION (POINT(2 3), LINESTRING (2 3, 3 4))
WKT 또는 WKB에서 기하 객체를 만들려면 ST_GeometryFromText()와 ST_GeomFromBinary() 함수를 사용하세요.
SphericalGeography 유형은 지리적 좌표(때때로 측지(geodetic) 좌표, lat/lon, 또는 lon/lat라고도 함)로 표현된 공간 특성에 대한 네이티브 지원을 제공합니다. 지리적 좌표는 각도 단위(도)로 표현된 구면 좌표입니다.
Geometry 유형의 기반은 평면입니다. 평면에서 두 점 사이의 최단 경로는 직선입니다. 이는 기하 객체의 계산(면적, 거리, 길이, 교차 등)이 데카르트 수학과 직선 벡터로 계산될 수 있다는 뜻입니다. Geometry 값은 Z 좌표와 SRID 메타데이터를 포함할 수 있습니다. Trino는 기하 값과 지원 형식 왕복에서 Z 좌표와 SRID를 보존하지만, 기하 계산은 평면이며 X와 Y 좌표를 사용합니다. 두 Geometry 값을 비교하는 함수는 두 값 모두 0이 아닌 SRID를 가질 때 일치하는 SRID가 필요합니다. SRID 0은 SRID가 지정되지 않음을 의미합니다.
SphericalGeography 유형의 기반은 구입니다. 구에서 두 점 사이의 최단 경로는 대원(great circle) 호입니다. 이는 지리 객체의 계산(면적, 거리, 길이, 교차 등)은 구 위에서 더 복잡한 수학으로 계산되어야 한다는 뜻입니다. 지구의 실제 회전 타원체 모양을 고려한 더 정확한 측정은 지원되지 않습니다.
Geometry의 경우 ST_Distance(), ST_Length(), ST_Area() 같은 측정 함수가 반환하는 값은 입력 좌표의 단위입니다. SphericalGeography의 경우 거리와 길이는 미터, 면적은 제곱미터입니다.
to_spherical_geography() 함수로 기하 객체를 지리 객체로 변환하세요.
예를 들어 ST_Distance(ST_Point(-71.0882, 42.3607), ST_Point(-74.1197, 40.6976))은 유클리드 평면에서 전달된 값의 단위로 3.4577을 반환하는 반면, ST_Distance(to_spherical_geography(ST_Point(-71.0882, 42.3607)), to_spherical_geography(ST_Point(-74.1197, 40.6976)))은 미터로 312822.179를 반환합니다.
생성자 (Constructors)
ST_AsBinary(Geometry) → varbinary
기하의 ISO WKB 표현을 반환합니다. WKB 출력은 SRID 메타데이터를 담지 않으므로 ST_GeomFromBinary()로 이 값을 다시 읽으면 SRID 0인 기하가 생성됩니다. Z 좌표는 존재할 때 보존됩니다. SRID 메타데이터를 보존해야 하면 ST_AsEWKB()를 사용하세요.
ST_AsEWKB(Geometry) → varbinary
0이 아닐 때 SRID를 포함한 기하의 EWKB 표현을 반환합니다.
ST_AsText(Geometry) → varchar
기하의 WKT 표현을 반환합니다. 빈 기하의 경우 ST_AsText(ST_LineFromText('LINESTRING EMPTY'))는 'MULTILINESTRING EMPTY'를, ST_AsText(ST_Polygon('POLYGON EMPTY'))는 'MULTIPOLYGON EMPTY'를 생성합니다.
ST_AsEWKT(Geometry) → varchar
0이 아닐 때 SRID를 포함한 기하의 EWKT 표현을 반환합니다.
ST_GeometryFromText(varchar) → Geometry
WKT 표현에서 기하 유형 객체를 반환합니다.
ST_GeomFromBinary(varbinary) → Geometry
WKB 또는 EWKB 표현에서 기하 유형 객체를 반환합니다. WKB 입력은 SRID 0인 기하를 생성하고, EWKB 입력은 인코딩된 SRID를 보존합니다.
ST_GeomFromEWKT(varchar) → Geometry
EWKT 표현에서 기하 유형 객체를 반환합니다. EWKT는 선택적 SRID=; 접두어가 있는 WKT를 허용합니다.
ST_GeomFromKML(varchar) → Geometry
KML 표현에서 기하 유형 객체를 반환합니다.
geometry_from_hadoop_shape(varbinary) → Geometry
Hadoop용 Spatial Framework 표현에서 기하 유형 객체를 반환합니다.
ST_LineFromText(varchar) → LineString
WKT 표현에서 기하 유형 linestring 객체를 반환합니다.
ST_LineString(array(Point)) → LineString
점 배열로 만든 LineString을 반환합니다. 입력 배열에 비어 있지 않은 점이 두 개 미만이면 빈 LineString이 반환됩니다. 배열 요소는 NULL이거나 이전 요소와 같은 X, Y, Z 좌표를 가져서는 안 됩니다. 반환된 기하는 단순하지 않을 수 있습니다. 예를 들어 입력에 따라 자기 교차하거나 중복 꼭짓점을 포함할 수 있습니다. 반환 기하는 입력 Z 좌표를 보존하고 입력 점들의 0이 아닌 SRID를 사용합니다. 다른 0이 아닌 SRID 입력은 실패합니다.
ST_Collect(array(Geometry)) → Geometry
입력 기하를 담은 멀티 기하 또는 기하 컬렉션을 반환합니다. NULL 배열 요소는 무시됩니다. 반환 기하는 입력 Z 좌표를 보존하고 입력 기하들의 0이 아닌 SRID를 사용합니다. 다른 0이 아닌 SRID 입력은 실패합니다.
ST_MakeLine(array(Geometry)) → LineString
점 또는 linestring 배열로 만든 LineString을 반환합니다. 빈 기하는 무시되고, 두 입력의 경계에서 X, Y, Z 값이 같은 좌표는 한 번만 포함됩니다. 배열 요소는 NULL이어서는 안 됩니다. 반환 기하는 입력 Z 좌표를 보존하고 입력 기하들의 0이 아닌 SRID를 사용합니다. 다른 0이 아닌 SRID 입력은 실패합니다.
ST_MakePolygon(LineString) → Polygon
닫힌 LineString 셸로 만든 폴리곤을 반환합니다. 반환 기하는 입력 Z 좌표와 SRID를 보존합니다.
ST_MakePolygon(LineString, array(LineString)) → Polygon
닫힌 LineString 셸과 닫힌 LineString 구멍 배열로 만든 폴리곤을 반환합니다. 빈 구멍은 무시됩니다. 반환 기하는 입력 Z 좌표를 보존하고 셸과 구멍의 0이 아닌 SRID를 사용합니다. 다른 0이 아닌 SRID 입력은 실패합니다.
ST_MultiPoint(array(Point)) → MultiPoint
지정된 점들로 만든 MultiPoint 기하 객체를 반환합니다. 입력 배열이 비어 있으면 NULL을 반환합니다. 배열 요소는 NULL이거나 비어 있으면 안 됩니다. 반환 기하는 단순하지 않을 수 있고 입력 배열에 중복이 있으면 중복 점을 포함할 수 있습니다. 반환 기하는 입력 Z 좌표를 보존하고 입력 점들의 0이 아닌 SRID를 사용합니다. 다른 0이 아닌 SRID 입력은 실패합니다.
ST_Multi(Geometry) → Geometry
Point, LineString, Polygon 입력에 대한 멀티 기하를 반환합니다. 멀티 기하와 기하 컬렉션 입력은 변경 없이 반환됩니다. 반환 기하는 입력 Z 좌표와 SRID를 보존합니다. 빈 Point, LineString, Polygon 입력은 해당 유형의 빈 멀티 기하를 생성합니다.
ST_Point(x: double, y: double) → Point
주어진 좌표 값의 기하 유형 point 객체를 반환합니다.
ST_Point(x: double, y: double, srid: integer) → Point
주어진 X, Y 좌표 값과 SRID를 가진 2차원 점을 반환합니다.
ST_Point(x: double, y: double, z: double) → Point
주어진 X, Y, Z 좌표 값의 기하 유형 point 객체를 반환합니다. Z 좌표는 유한해야 합니다.
세 번째 인수의 SQL 유형이 세 인수 오버로드 사이를 선택합니다. INTEGER 세 번째 인수는 SRID로, DOUBLE 세 번째 인수는 Z 좌표로 해석됩니다. 필요할 때 인수를 명시적으로 캐스팅하세요. 예를 들어 Z 좌표가 3인 점을 구성하려면 ST_Point(1, 2, DOUBLE '3')을 사용하세요.
ST_Point(x: double, y: double, z: double, srid: integer) → Point
주어진 X, Y, Z 좌표 값과 SRID를 가진 기하 유형 point 객체를 반환합니다. Z 좌표는 유한해야 합니다.
ST_Polygon(varchar) → Polygon
WKT 표현에서 기하 유형 polygon 객체를 반환합니다.
to_spherical_geography(Geometry) → SphericalGeography
Geometry 객체를 지구 반지름의 구 위 SphericalGeography 객체로 변환합니다. 이 함수는 2D 공간에 정의된 POINT, MULTIPOINT, LINESTRING, MULTILINESTRING, POLYGON, MULTIPOLYGON 기하 또는 그러한 기하들의 GEOMETRYCOLLECTION에만 적용됩니다. 입력 기하의 각 점에 대해 point.x가 [-180.0, 180.0] 안에, point.y가 [-90.0, 90.0] 안에 있음을 검증하고 이를 (경도, 위도) 도로 사용해 SphericalGeography 결과의 형태를 구성합니다. SRID와 Z 메타데이터는 SphericalGeography 값의 일부가 아닙니다.
to_geometry(SphericalGeography) → Geometry
SphericalGeography 객체를 Geometry 객체로 변환합니다.
관계 테스트 (Relationship tests)
ST_Contains(geometryA: Geometry, geometryB: Geometry) → boolean
두 번째 기하의 어떤 점도 첫 번째 기하의 외부에 있지 않고, 첫 번째 기하의 내부의 어떤 점이 두 번째 기하의 내부에 있을 때만 true를 반환합니다.
ST_Crosses(first: Geometry, second: Geometry) → boolean
주어진 기하들이 공통 내부 점을 일부(전부는 아닌) 가지면 true를 반환합니다.
ST_Disjoint(first: Geometry, second: Geometry) → boolean
주어진 기하들이 공간적으로 교차하지 않으면, 즉 공간을 전혀 공유하지 않으면 true를 반환합니다.
ST_Equals(first: Geometry, second: Geometry) → boolean
주어진 기하들이 같은 기하를 나타내면 true를 반환합니다.
ST_Intersects(first: Geometry, second: Geometry) → boolean
주어진 기하들이 2차원으로 공간 교차하면(공간의 어떤 부분을 공유하면) true, 그렇지 않으면(분리) false를 반환합니다.
ST_Overlaps(first: Geometry, second: Geometry) → boolean
주어진 기하들이 공간을 공유하고, 같은 차원이며, 서로에게 완전히 포함되지 않으면 true를 반환합니다.
ST_Relate(first: Geometry, second: Geometry) → boolean
첫 번째 기하가 두 번째 기하와 공간적으로 연관되어 있으면 true를 반환합니다.
ST_Touches(first: Geometry, second: Geometry) → boolean
주어진 기하들이 공통 점을 하나 이상 가지지만 내부는 교차하지 않으면 true를 반환합니다.
ST_Within(first: Geometry, second: Geometry) → boolean
첫 번째 기하가 두 번째 기하 안에 완전히 있으면 true를 반환합니다.
연산 (Operations)
geometry_nearest_points(first: Geometry, second: Geometry)
각 기하에서 다른 기하에 가장 가까운 점을 반환합니다. 두 기하 중 하나가 비어 있으면 NULL을 반환합니다. 그렇지 않으면 두 기하에서 임의의 두 점의 최소 거리를 가진 두 Points의 행을 반환합니다. 첫 번째 Point는 첫 번째 Geometry 인수에서, 두 번째는 두 번째 Geometry 인수에서 옵니다. 최소 거리를 가진 쌍이 여러 개면 하나가 임의로 선택됩니다. 계산은 평면이며 X와 Y 좌표를 사용합니다.
geometry_union(array(Geometry)) → Geometry
입력 기하들의 점 집합 합집합을 나타내는 기하를 반환합니다. 이 함수의 성능은 입력 기하를 먼저 집계하기 위해 array_agg()와 함께 사용하면 geometry_union_agg()보다 나을 수 있지만, 더 높은 메모리 사용을 대가로 합니다.
ST_Boundary(Geometry) → Geometry
이 기하의 조합 경계의 폐포를 반환합니다.
ST_Buffer(Geometry, distance) → Geometry
지정된 기하로부터의 거리가 지정된 거리보다 작거나 같은 모든 점을 나타내는 기하를 반환합니다.
ST_Force2D(Geometry) → Geometry
Z 좌표가 제거된 입력 기하를 반환합니다. 반환 기하는 입력 SRID를 보존합니다.
ST_Force3D(Geometry) → Geometry
없는 Z 좌표가 0.0으로 설정된 입력 기하를 반환합니다. 기존 Z 좌표는 보존되고 반환 기하는 입력 SRID를 보존합니다.
ST_Force3D(Geometry, z) → Geometry
없는 Z 좌표가 지정된 값으로 설정된 입력 기하를 반환합니다. 기존 Z 좌표는 보존되고 반환 기하는 입력 SRID를 보존합니다. 지정된 Z 값은 유한해야 합니다.
ST_Difference(first: Geometry, second: Geometry) → Geometry
주어진 기하들의 점 집합 차집합을 나타내는 기하 값을 반환합니다.
ST_Envelope(Geometry) → Geometry
기하의 경계 직사각형 폴리곤을 반환합니다. 엔벨로프는 X와 Y 좌표로 계산되고 입력 SRID를 보존하며 2차원 기하를 반환합니다.
ST_EnvelopeAsPts(Geometry)
기하의 경계 직사각형 폴리곤의 왼쪽 아래와 오른쪽 위 모서리인 두 점의 배열을 반환합니다. 점은 X와 Y 좌표로 계산되고 입력 SRID를 보존하지만 Z 값을 포함하지 않습니다. 입력 기하가 비어 있으면 NULL을 반환합니다.
ST_ExteriorRing(Geometry) → Geometry
입력 폴리곤의 외부 링을 나타내는 line string을 반환합니다.
ST_Intersection(first: Geometry, second: Geometry) → Geometry
두 기하의 점 집합 교집합을 나타내는 기하 값을 반환합니다.
ST_LineMerge(Geometry) → Geometry
연결된 선 작업을 병합해 만든 LineString 또는 MultiLineString을 반환합니다. 반환 기하는 입력 SRID와 JTS가 유지된 꼭짓점에 대해 제공한 모든 Z 좌표를 보존합니다. LineString 또는 MultiLineString이 아닌 입력은 빈 GeometryCollection을 생성합니다.
ST_Normalize(Geometry) → Geometry
입력 기하의 정규화된 표준 표현을 반환합니다. 반환 기하는 입력 SRID와 Z 좌표를 보존합니다.
ST_Polygonize(array(Geometry)) → Geometry
입력 선 작업으로 만든 폴리곤을 반환합니다. NULL 배열 요소는 무시됩니다. 반환 기하는 입력 기하들의 0이 아닌 SRID를 사용합니다. 다른 0이 아닌 SRID 입력은 실패합니다.
ST_ReducePrecision(Geometry, gridSize) → Geometry
좌표가 지정된 그리드 크기로 반올림된 입력 기하를 반환합니다. 그리드 크기는 유한하고 양수여야 합니다. 반환 기하는 입력 SRID와 JTS가 유지된 꼭짓점에 대해 제공한 모든 Z 좌표를 보존합니다.
ST_SymDifference(first: Geometry, second: Geometry) → Geometry
두 기하의 점 집합 대칭 차집합을 나타내는 기하 값을 반환합니다.
ST_Union(first: Geometry, second: Geometry) → Geometry
입력 기하들의 점 집합 합집합을 나타내는 기하를 반환합니다. geometry_union(), geometry_union_agg()도 참고하세요.
ST_VoronoiPolygons(Geometry) → Geometry
입력 기하의 꼭짓점에서 보로노이 폴리곤을 반환합니다. 반환 기하는 입력 SRID를 보존합니다.
ST_VoronoiPolygons(Geometry, tolerance) → Geometry
지정된 공차를 사용해 입력 기하의 꼭짓점에서 보로노이 폴리곤을 반환합니다. 공차는 유한하고 음이 아니어야 합니다. 반환 기하는 입력 SRID를 보존합니다.
접근자 (Accessors)
ST_Area(Geometry) → double
기하의 2D 유클리드 면적을 반환합니다. Point와 LineString 유형은 0.0을 반환합니다. GeometryCollection 유형은 개별 기하 면적의 합을 반환합니다.
ST_Area(SphericalGeography) → double
지구의 구면 모델을 사용해 폴리곤 또는 멀티 폴리곤의 면적을 제곱미터로 반환합니다.
ST_Centroid(Geometry) → Geometry
기하의 수학적 중심인 point 값을 반환합니다.
ST_ConvexHull(Geometry) → Geometry
모든 입력 기하를 둘러싸는 최소 볼록 기하를 반환합니다.
ST_MinimumBoundingCircle(Geometry) → Geometry
기하를 둘러싸는 최소 경계 원을 반환합니다. 반환 기하는 입력 SRID를 보존합니다.
ST_OrientedEnvelope(Geometry) → Geometry
기하를 둘러싸는 최소 면적 회전 직사각형을 반환합니다. 반환 기하는 입력 SRID를 보존합니다.
ST_CoordDim(Geometry) → tinyint
기하의 좌표 차원을 반환합니다.
ST_Dimension(Geometry) → tinyint
이 기하 객체의 고유 차원을 반환합니다. 기하의 고유 차원은 좌표 차원보다 작거나 같아야 합니다.
ST_Distance(first: Geometry, second: Geometry) → double
두 기하 사이의 투영 단위 2차원 데카르트 최소 거리(공간 참조 기반)를 반환합니다.
ST_Distance(first: SphericalGeography, second: SphericalGeography) → double
두 SphericalGeography 점 사이의 대원 거리를 미터로 반환합니다.
ST_GeometryN(Geometry, index) → Geometry
주어진 인덱스(1부터 시작)의 기하 요소를 반환합니다. 기하가 기하 컬렉션(예: GEOMETRYCOLLECTION 또는 MULTI*)이면 주어진 인덱스의 기하를 반환합니다. 주어진 인덱스가 1보다 작거나 컬렉션의 총 요소 수보다 크면 NULL을 반환합니다. ST_NumGeometries()로 총 요소 수를 알아보세요. 단일 기하(예: POINT, LINESTRING, POLYGON)는 한 요소의 컬렉션으로 취급됩니다. 빈 기하는 빈 컬렉션으로 취급됩니다.
ST_InteriorRingN(Geometry, index) → Geometry
지정된 인덱스(1부터 시작)의 내부 링 요소를 반환합니다. 주어진 인덱스가 1보다 작거나 입력 기하의 총 내부 링 수보다 크면 NULL을 반환합니다. 입력 기하는 폴리곤이어야 합니다. ST_NumInteriorRing()로 총 요소 수를 알아보세요.
ST_GeometryType(Geometry) → varchar
기하의 유형을 반환합니다.
ST_IsClosed(Geometry) → boolean
linestring의 시작과 끝 점이 X와 Y 좌표에서 일치하면 true를 반환합니다.
ST_IsEmpty(Geometry) → boolean
이 Geometry가 빈 geometrycollection, polygon, point 등이면 true를 반환합니다.
ST_IsSimple(Geometry) → boolean
이 Geometry에 자기 교차나 자기 접선 같은 이상한 기하 점이 없으면 true를 반환합니다. 단순성 검사는 평면이며 X와 Y 좌표를 사용합니다.
ST_IsRing(Geometry) → boolean
선이 X와 Y 좌표에서 닫히고 단순할 때만 true를 반환합니다.
ST_IsValid(Geometry) → boolean
입력 기하가 잘 형성되었을 때만 true를 반환합니다. 기하가 잘 형성되지 않은 이유를 확인하려면 geometry_invalid_reason()을 사용하세요. 유효성 검사는 평면이며 X와 Y 좌표를 사용합니다.
ST_Length(Geometry) → double
투영 단위 2차원 평면에서 유클리드 측정(공간 참조 기반)으로 linestring 또는 멀티 linestring의 길이를 반환합니다.
ST_Length(SphericalGeography) → double
지구의 구면 모델에서 linestring 또는 멀티 linestring의 길이를 반환합니다. 이는 linestring의 인접한 점 사이 대원 거리의 합과 동일합니다.
ST_PointN(LineString, index) → Point
주어진 인덱스(1부터 시작)의 linestring 꼭짓점을 반환합니다. 주어진 인덱스가 1보다 작거나 컬렉션의 총 요소 수보다 크면 NULL을 반환합니다. ST_NumPoints()로 총 요소 수를 알아보세요.
ST_Points(Geometry)
linestring의 점 배열을 반환합니다.
ST_PointOnSurface(Geometry) → Geometry
입력 기하의 표면에 놓임이 보장되는 점, 또는 입력 기하가 비어 있으면 NULL을 반환합니다. 반환된 점은 입력 SRID를 보존합니다.
ST_XMax(Geometry) → double
기하의 경계 상자 최대 X 좌표를 반환합니다. 경계 상자는 X와 Y 좌표로 계산됩니다. SRID와 Z 메타데이터는 결과에 영향을 주지 않습니다.
ST_YMax(Geometry) → double
기하의 경계 상자 최대 Y 좌표를 반환합니다. 경계 상자는 X와 Y 좌표로 계산됩니다.
ST_XMin(Geometry) → double
기하의 경계 상자 최소 X 좌표를 반환합니다. 경계 상자는 X와 Y 좌표로 계산됩니다.
ST_YMin(Geometry) → double
기하의 경계 상자 최소 Y 좌표를 반환합니다. 경계 상자는 X와 Y 좌표로 계산됩니다.
ST_StartPoint(Geometry) → point
LineString 기하의 첫 번째 점을 Point로 반환합니다. ST_PointN(geometry, 1)의 단축어입니다.
ST_SRID(Geometry) → integer
기하의 공간 참조 식별자를 반환합니다. SRID 0은 SRID가 지정되지 않음을 의미합니다.
ST_SetSRID(Geometry, srid) → Geometry
SRID 메타데이터가 갱신된 입력 기하를 반환합니다. 이 함수는 좌표를 변환하지 않습니다.
ST_Transform(Geometry, srid) → Geometry
입력 기하의 좌표를 소스 SRID에서 대상 EPSG SRID로 변환합니다. 입력 기하는 0이 아닌 SRID를 가져야 합니다. 기하의 소스 SRID가 알려져 있지만 값에 지정되지 않았다면 먼저 ST_SetSRID를 사용하세요.
대상 SRID는 0이 아니어야 하며 현재 2차원 CRS 정의만 지원됩니다. Z 좌표가 있는 비어 있지 않은 기하는 서로 다른 SRID 사이에서 변환할 수 없으며 오류를 일으킵니다. X와 Y만 변환하고 Z는 그대로 두려면 ST_TransformXY()를 사용하세요. 반환 기하는 대상 SRID를 가집니다.
ST_TransformXY(Geometry, srid) → Geometry
입력 기하의 X와 Y 좌표를 소스 SRID에서 대상 EPSG SRID로 변환하면서 Z 좌표는 그대로 유지합니다. 소스와 대상 SRID는 0이 아니어야 하고 지원되는 2차원 CRS 정의를 식별해야 합니다. 반환 기하는 대상 SRID를 가집니다.
simplify_geometry(Geometry, double) → Geometry
Douglas-Peucker 알고리즘을 사용해 입력 기하의 "단순화된" 버전을 반환합니다. 유효하지 않은 파생 기하(특히 폴리곤) 생성을 피합니다.
ST_EndPoint(Geometry) → point
LineString 기하의 마지막 점을 Point로 반환합니다. ST_PointN(geometry, ST_NumPoints(geometry))의 단축어입니다.
ST_X(Point) → double
점의 X 좌표를 반환하거나, 점이 비어 있으면 NULL을 반환합니다.
ST_Y(Point) → double
점의 Y 좌표를 반환하거나, 점이 비어 있으면 NULL을 반환합니다.
ST_Z(Point) → double
점의 Z 좌표를 반환하거나, 점이 비어 있거나 Z 좌표가 없으면 NULL을 반환합니다.
ST_InteriorRings(Geometry)
입력 기하에서 찾은 모든 내부 링의 배열, 또는 폴리곤에 내부 링이 없으면 빈 배열을 반환합니다. 입력 기하가 비어 있으면 NULL을 반환합니다. 입력 기하는 폴리곤이어야 합니다. 반환된 링은 입력 기하의 SRID와 Z 좌표를 보존합니다.
ST_NumGeometries(Geometry) → bigint
컬렉션의 기하 수를 반환합니다. 기하가 기하 컬렉션(예: GEOMETRYCOLLECTION 또는 MULTI*)이면 기하 수를 반환하고, 단일 기하는 1, 빈 기하는 0을 반환합니다.
ST_Geometries(Geometry)
지정된 컬렉션의 기하 배열을 반환합니다. 입력 기하가 멀티 기하가 아니면 한 요소 배열을 반환합니다. 입력 기하가 비어 있으면 NULL을 반환합니다. 반환된 기하는 입력 기하의 SRID와 Z 좌표를 보존합니다.
ST_NumPoints(Geometry) → bigint
기하의 점 수를 반환합니다. 이것은 point와 linestring에만 적용되는 SQL/MM ST_NumPoints 함수의 확장입니다.
ST_NumInteriorRing(Geometry) → bigint
폴리곤의 내부 링 컬렉션의 카디널리티를 반환합니다.
line_interpolate_point(LineString, double) → Geometry
주어진 분수에서 LineString을 따라 보간된 Point를 반환합니다. 분수는 0과 1 사이(포함)여야 합니다. 반환된 점은 입력 기하의 SRID를 보존하고 가능할 때 JTS가 제공하는 Z 좌표를 사용합니다.
line_interpolate_points(LineString, double, repeated)
LineString을 따라 보간된 Points의 배열을 반환합니다. 분수는 0과 1 사이(포함)여야 합니다. 반환된 점은 입력 기하의 SRID를 보존하고 가능할 때 JTS가 제공하는 Z 좌표를 사용합니다.
line_locate_point(LineString, Point) → double
주어진 Point에 가장 가까운 LineString 위 점의 위치를 전체 2d 선 길이의 분수로 나타낸 0과 1 사이의 부동 소수점을 반환합니다. 다른 0이 아닌 SRID 입력은 실패합니다. LineString이나 Point가 비어 있거나 NULL이면 NULL을 반환합니다.
geometry_invalid_reason(Geometry) → varchar
입력 기하가 유효하지 않은 이유를 반환합니다. 입력이 유효하면 NULL을 반환합니다.
great_circle_distance(latitude1, longitude1, latitude2, longitude2) → double
지구 표면의 두 점 사이 대원 거리를 킬로미터로 반환합니다.
to_geojson_geometry(SphericalGeography) → varchar
입력 구면 지리가 정의하는 GeoJSON 인코딩을 반환합니다.
to_geojson_geometry(Geometry) → varchar
입력 기하가 정의하는 GeoJSON 인코딩을 반환합니다. GeoJSON 출력은 Z 좌표를 포함한 좌표를 보존하지만 Trino SRID 메타데이터는 포함하지 않습니다.
from_geojson_geometry(varchar) → SphericalGeography
비기하 키/값을 제거한 GeoJSON 표현에서 구면 지리 유형 객체를 반환합니다. Feature와 FeatureCollection은 지원되지 않습니다.
집계 (Aggregations)
convex_hull_agg(Geometry) → Geometry
모든 입력 기하를 둘러싸는 최소 볼록 기하를 반환합니다.
geometry_collect_agg(Geometry) → Geometry
모든 입력 기하를 담은 멀티 기하 또는 기하 컬렉션을 반환합니다. 반환 기하는 입력 Z 좌표를 보존하고 입력 기하들의 0이 아닌 SRID를 사용합니다. 다른 0이 아닌 SRID 입력은 실패합니다.
geometry_union_agg(Geometry) → Geometry
모든 입력 기하의 점 집합 합집합을 나타내는 기하를 반환합니다.
공간 파티셔닝 (Spatial partitioning)
이 함수들은 공간 조인용 KDB 트리를 만들고 적용합니다. 각 기하의 X와 Y 좌표 기반 2차원 엔벨로프를 사용합니다. SRID와 Z 메타데이터는 파티셔닝에 영향을 주지 않습니다.
최적화된 공간 조인은 공간 사전 가지치기 전에 같은 SRID 호환 규칙을 적용합니다. 인덱스 측에 0이 아닌 SRID가 없으면 모든 프로브 SRID가 허용됩니다. 0이 아닌 SRID가 하나 있으면 프로브는 SRID 0 또는 그 SRID를 가져야 합니다. 0이 아닌 SRID가 여러 개 있으면 SRID 0인 프로브만 허용됩니다.
spatial_partitioning(Geometry) → varchar
입력 기하들에 대한 직렬화된 KDB 트리 파티셔닝을 반환합니다. 하나의 인수 형태는 내부적으로 spatial_partitioning(geometry, 100)으로 다시 쓰입니다.
spatial_partitioning(Geometry, partition_count) → varchar
지정된 파티션 수를 사용해 입력 기하들에 대한 직렬화된 KDB 트리 파티셔닝을 반환합니다.
spatial_partitions(KdbTree, Geometry)
입력 기하의 2차원 엔벨로프와 교차하는 범위를 가진 공간 파티션의 ID를 반환합니다. 입력 기하가 비어 있으면 NULL을 반환합니다.
spatial_partitions(KdbTree, Geometry, distance)
distance만큼 확장된 입력 기하의 2차원 엔벨로프와 교차하는 범위를 가진 공간 파티션의 ID를 반환합니다. 입력 기하가 비어 있으면 NULL을 반환합니다.
Bing 타일 (Bing tiles)
이 함수들은 기하와 Bing 타일 사이를 변환합니다.
bing_tile(x, y, zoom_level) → BingTile
XY 좌표와 줌 레벨에서 Bing 타일 객체를 만듭니다. 1부터 23까지의 줌 레벨이 지원됩니다.
bing_tile(quadKey) → BingTile
쿼드키에서 Bing 타일 객체를 만듭니다.
bing_tile_at(latitude, longitude, zoom_level) → BingTile
주어진 위도와 경도의 점을 포함하는 주어진 줌 레벨의 Bing 타일을 반환합니다. 위도는 [-85.05112878, 85.05112878] 범위 안에 있어야 합니다. 경도는 [-180, 180] 범위 안에 있어야 합니다. 1부터 23까지의 줌 레벨이 지원됩니다.
bing_tiles_around(latitude, longitude, zoom_level)
주어진 줌 레벨에서 위도와 경도 인수가 지정한 점을 둘러싸는 Bing 타일 컬렉션을 반환합니다.
bing_tiles_around(latitude, longitude, zoom_level, radius_in_km)
주어진 (위도, 경도) 점 주위의 지정된 반경(km) 원을 덮는 지정된 줌 레벨의 최소 Bing 타일 집합을 반환합니다.
bing_tile_coordinates(tile) → row<x, y>
주어진 Bing 타일의 XY 좌표를 반환합니다.
bing_tile_polygon(tile) → Geometry
주어진 Bing 타일의 폴리곤 표현을 SRID 0의 2D 기하로 반환합니다.
bing_tile_quadkey(tile) → varchar
주어진 Bing 타일의 쿼드키를 반환합니다.
bing_tile_zoom_level(tile) → tinyint
주어진 Bing 타일의 줌 레벨을 반환합니다.
geometry_to_bing_tiles(geometry, zoom_level)
주어진 줌 레벨에서 주어진 기하를 완전히 덮는 최소 Bing 타일 집합을 반환합니다. 1부터 23까지의 줌 레벨이 지원됩니다. 계산은 X와 Y 좌표를 경도와 위도로 사용합니다.
인코딩된 폴리라인 (Encoded polylines)
이 함수들은 기하와 인코딩된 폴리라인 사이를 변환합니다.
to_encoded_polyline(Geometry) → varchar
linestring 또는 multipoint를 폴리라인으로 인코딩합니다. 인코딩된 폴리라인은 2D 형식이며 X와 Y 좌표만 사용합니다.
from_encoded_polyline(varchar) → Geometry
폴리라인을 SRID 0의 2D linestring으로 디코딩합니다.
더 알아보기 (Learn more)
지리 공간 데이터를 다룰 때 공간 조인과 파티셔닝 기법을 함께 익혀두면 유용해요. 지리 공간 집계와 Bing 타일 활용법을 결합하면 위치 기반 분석을 효율적으로 할 수 있습니다.