空間函數如何運作的範例

資料庫提供對空間資料執行各種作業的函數。 這些功能可以根據它們所執行的作業類型來分類。

表 1 列出這些種類以及範例。 表 1 後面的文字顯示這些範例的編碼。
表 1. 空間函數及作業
函數種類 作業範例
傳回特定幾何形狀的相關資訊。 傳回商店 10 銷售區域的範圍 (以平方英里為單位)。
進行比較。 判斷客戶的住家位置是否位於商店 10 的銷售區域內。
從現有的幾何形狀衍生新的幾何形狀。 從商店的位置衍生商店的銷售區域。
將幾何佈置轉換成資料交換格式,以及從資料交換格式轉換成資料交換格式。 將 GML 格式的客戶資訊轉換成幾何佈置,以便將資訊新增至資料庫。

範例 1: 傳回特定幾何形狀的相關資訊

在此範例中, ST_Area 函數會傳回代表商店 10 銷售區域的數值。 函數會以與用來定義區域位置的座標系統單位相同的單位傳回區域。


SELECT ST_Area(sales_area)
FROM   stores
WHERE  id = 10

範例 2: 進行比較

在此範例中, ST_Within 函數會比較代表客戶居住地的幾何形狀座標與代表商店 10 銷售區域的幾何形狀座標。 此函數的輸出將表示該住宅是否位於銷售區域內。

SELECT c.first_name, c.last_name, ST_Within(c.location, s.sales_area)
FROM   customers as c. stores AS s
WHERE  s.id = 10

範例 3: 從現有幾何形狀衍生新的幾何形狀

在此範例中,函數 ST_Buffer 從代表商店位置的幾何形狀衍生出代表商店銷售區域的幾何形狀。

UPDATE stores
SET    sales_area = ST_Buffer(location, 10, 'KILOMETERS')
WHERE  id = 10

範例 4: 與資料交換格式來回轉換幾何佈置。

在此範例中,以 GML 編碼的客戶資訊會轉換成幾何形狀,以便儲存在資料庫中。

INSERT
INTO   c.name,c.phoneNo,c.address
VALUES ( 123, 'Mary Anne', Smith', ST_Point('
<gml:Point><gml:coord><gml=X>-130.876</gml:X>
<gml:Y>41.120'</gml:Y></gml:coord></gml:Point>, 1) )