

 Amazon Redshift는 패치 198부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. 기존 Python UDF는 2026년 6월 30일까지 계속 작동합니다. 자세한 내용은 [블로그 게시물](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)을 참조하세요.

# ST\$1DistanceSphere
<a name="ST_DistanceSphere-function"></a>

ST\$1DistanceSphere는 구에 있는 두 점 지오메트리 사이의 거리를 반환합니다.

## 구문
<a name="ST_DistanceSphere-function-syntax"></a>

```
ST_DistanceSphere(geom1, geom2)
```

```
ST_DistanceSphere(geom1, geom2, radius)
```

## 인수
<a name="ST_DistanceSphere-function-arguments"></a>

 *geom1*   
구에 놓인 `GEOMETRY` 데이터 형식의 점 값(도)입니다. 점의 첫 번째 좌표는 경도 값입니다. 점의 두 번째 좌표는 위도 값입니다. 3DZ, 3DM 또는 4D 지오메트리의 경우 처음 두 좌표만 사용됩니다.

 *geom2*   
구에 놓인 `GEOMETRY` 데이터 형식의 점 값(도)입니다. 점의 첫 번째 좌표는 경도 값입니다. 점의 두 번째 좌표는 위도 값입니다. 3DZ, 3DM 또는 4D 지오메트리의 경우 처음 두 좌표만 사용됩니다.

 *radius*   
데이터 형식이 `DOUBLE PRECISION`인 구의 반경입니다. *radius*가 제공되지 않으면 구의 기본값은 Earth로 설정되며 타원체의 WGS(World Geodetic System) 84 표현에서 반경이 계산됩니다.

## 반환 타입
<a name="ST_DistanceSphere-function-return"></a>

`DOUBLE PRECISION`반경과 같은 단위의 입니다. 반경이 제공되지 않은 경우 거리는 미터 단위입니다.

*geom1* 또는 *geom2*가 null이거나 비어 있으면 null이 반환됩니다.

*radius*가 제공되지 않으면 결과는 지표면을 따라 측정된 미터 단위가 반환됩니다.

*radius*가 음수이면 오류가 반환됩니다.

*geom1*과 *geom2*의 SRID(공간 참조 시스템 식별자) 값이 같지 않으면 오류가 반환됩니다.

*geom1* 또는 *geom2*가 점이 아니면 오류가 반환됩니다.

## 예제
<a name="ST_DistanceSphere-function-examples"></a>

다음 예시 SQL은 지구상의 두 지점 사이의 거리를 킬로미터 단위로 계산합니다.

```
SELECT ROUND(ST_DistanceSphere(ST_Point(-122, 47), ST_Point(-122.1, 47.1))/ 1000, 0);
```

```
  round
-----------
 13
```

다음 예제 SQL은 독일의 세 공항 위치 Berlin Tegel(TXL), Munich International(MUC) 및 Frankfurt International(FRA) 사이의 거리를 킬로미터 단위로 계산합니다.

```
WITH airports_raw(code,lon,lat) AS (
(SELECT 'MUC', 11.786111, 48.353889) UNION
(SELECT 'FRA', 8.570556, 50.033333) UNION
(SELECT 'TXL', 13.287778, 52.559722)),
airports1(code,location) AS (SELECT code, ST_Point(lon, lat) FROM airports_raw),
airports2(code,location) AS (SELECT * from airports1)
SELECT (airports1.code || ' <-> ' || airports2.code) AS airports,
round(ST_DistanceSphere(airports1.location, airports2.location) / 1000, 0) AS distance_in_km
FROM airports1, airports2 WHERE airports1.code < airports2.code ORDER BY 1;
```

```
  airports   | distance_in_km 
-------------+----------------
 FRA <-> MUC |            299
 FRA <-> TXL |            432
 MUC <-> TXL |            480
```