🖥️ IT, 컴퓨터/🏁 SQL・빅쿼리

[GIS] ST_TOUCHES 함수 :: 접하는지 여부 확인

김 홍시 2024. 7. 4.
반응형

ST_TOUCHES는 Google BigQuery에서 사용되는 함수로, 두 GEOGRAPHY 객체가 서로 접촉하는지 여부를 판단합니다. 이 함수는 두 객체가 공통 경계를 공유하지만, 내부적으로 겹치지 않는 경우 TRUE를 반환합니다. 이는 지리적 객체 간의 접촉 여부를 평가하는 데 유용합니다.

사용법

ST_TOUCHES(geography1, geography2)
  • geography1: 첫 번째 GEOGRAPHY 객체입니다.
  • geography2: 두 번째 GEOGRAPHY 객체입니다.

반환값

  • ST_TOUCHES 함수는 두 GEOGRAPHY 객체가 공통 경계를 공유하지만 내부적으로 겹치지 않으면 TRUE, 그렇지 않으면 FALSE를 반환합니다.

예시

  1. 두 다각형이 서로 접촉하는지 확인이 쿼리는 두 다각형이 서로 접촉하는지 여부를 반환합니다. 결과는 TRUE입니다.
  2. SELECT ST_TOUCHES( ST_GEOGFROMTEXT('POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))'), ST_GEOGFROMTEXT('POLYGON((2 0, 4 0, 4 2, 2 2, 2 0))') ) AS touches_polygons;
  3. 다각형과 선이 서로 접촉하는지 확인이 쿼리는 다각형과 선이 서로 접촉하는지 여부를 반환합니다. 결과는 TRUE입니다.
  4. SELECT ST_TOUCHES( ST_GEOGFROMTEXT('POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))'), ST_GEOGFROMTEXT('LINESTRING(2 0, 2 2)') ) AS touches_polygon_line;
  5. 두 점이 서로 접촉하는지 확인이 쿼리는 두 점이 서로 접촉하는지 여부를 반환합니다. 결과는 FALSE입니다. (점은 경계를 가지지 않기 때문입니다.)
  6. SELECT ST_TOUCHES( ST_GEOGFROMTEXT('POINT(1 1)'), ST_GEOGFROMTEXT('POINT(2 2)') ) AS touches_points;
  7. 겹치는 다각형이 서로 접촉하는지 확인이 쿼리는 두 다각형이 서로 접촉하는지 여부를 반환합니다. 결과는 FALSE입니다. (두 다각형이 내부적으로 겹치기 때문입니다.)

 

  1. SELECT ST_TOUCHES( ST_GEOGFROMTEXT('POLYGON((0 0, 2 0, 2 2, 0 2, 0 0))'), ST_GEOGFROMTEXT('POLYGON((1 1, 3 1, 3 3, 1 3, 1 1))') ) AS touches_overlapping_polygons;

주요 사항

  • GEOGRAPHY 객체: ST_TOUCHES 함수는 GEOGRAPHY 타입의 객체에 대해 작동합니다.
  • 접촉 여부 판단: 이 함수는 두 객체가 공통 경계를 공유하지만 내부적으로 겹치지 않는지 여부를 확인합니다. 경계를 가지지 않는 점(Point)끼리는 접촉 여부를 판단할 수 없습니다.
  • 응용 분야: ST_TOUCHES는 지리적 데이터 분석에서 객체 간의 접촉 여부를 확인하는 데 유용합니다. 예를 들어, 인접한 지리적 경계를 분석하거나, 특정 영역과 다른 객체 간의 접촉 여부를 평가하는 데 사용할 수 있습니다.

ST_TOUCHES 함수를 통해 GEOGRAPHY 객체 간의 접촉 여부를 쉽게 확인할 수 있으며, 이를 통해 다양한 지리적 문제를 효율적으로 해결할 수 있습니다.

반응형

댓글