

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 查詢地理空間資料
<a name="querying-geospatial-data"></a>

地理空間資料包含識別符來指定物體的地理位置。這類資料的例子包括天氣報告、地圖方向、含地理位置的推文、商店位置，以及飛機航線。地理空間資料在商業分析、報告和預測方面扮演重要角色。

地理空間識別符 (例如經緯度) 可讓您將任何郵寄地址轉換為一組地理座標。

## 什麼是地理空間查詢？
<a name="geospatial-query-what-is"></a>

地理空間查詢為 Athena 中支援的特殊 SQL 查詢類型。它們與非空間 SQL 查詢的差別在於下列各方面：
+ 使用以下特殊化幾何資料類型：`point`、`line`、`multiline`、`polygon` 和 `multipolygon`。
+ 表示幾何資料類型之間的關係，例如 `distance`、`equals`、`crosses`、`touches`、`overlaps`、`disjoint` 等等。

您可以在 Athena 中使用地理空間查詢，執行這些和其他類似操作：
+ 尋找兩點之間的距離。
+ 檢查是否一個區域 (多邊形) 包含其他區域。
+ 檢查一個線條是否與其他線條或多邊形交錯或碰觸。

例如，若要在 Athena 中從瑞尼爾山之地理座標的類型 `double` 值中取得 `point` 幾何資料類型，請如下列範例所示，使用 `ST_Point (longitude, latitude)` 地理空間函數。

```
ST_Point(-121.7602, 46.8527)
```

## 輸入資料格式和幾何資料類型
<a name="geospatial-input-data-formats-supported-geometry-types"></a>

若要在 Athena 中使用地理空間函數，請以 WKT 格式輸入資料，或使用 Hive JSON SerDe。您也可以使用 Athena 中支援的幾何資料類型。

### 輸入資料格式
<a name="input-data-formats"></a>

為處理地理空間查詢，Athena 支援以下資料格式的輸入資料：
+  **WKT (已知文字)**。在 Athena 中，WKT 會以 `varchar(x)` 或 `string` 資料類型表示。
+  **JSON 編碼的地理空間資料**。為剖析具有地理空間資料的 JSON 檔案並為它們建立資料表，Athena 會使用 [Hive SerDe JSON](https://github.com/Esri/spatial-framework-for-hadoop/wiki/Hive-JSON-SerDe)。如需有關在 Athena 中使用此 SerDe 的詳細資訊，請參閱 [JSON SerDe 程式庫](json-serde.md)。

### 幾何資料類型
<a name="geometry-data-types"></a>

為處理地理空間查詢，Athena 支援以下特殊幾何資料類型：
+  `point` 
+  `line` 
+  `polygon` 
+  `multiline` 
+  `multipolygon` 

## 支援的地理空間函數
<a name="geospatial-functions-list"></a>

如需有關 Athena 引擎版本 3 中地理空間函數的資訊，請參閱 Trino 文件中的 [Geospatial functions](https://trino.io/docs/current/functions/geospatial.html) (地理空間函數)。