---
schema_version: "1"
id: 0e6af1dd96892e5ae8ac0a71e72d75e0ce4a33c58c703a7a2015e16a55f2a9f8
title: 空間函數
collection: tableau
version: next
locale: zh-tw
portal_url: https://docs.salesforce.com/tableau/next/zh-tw/pro/desktop/functions_functions_spatial.md
canonical_url: https://help.tableau.com/v0.0/pro/desktop/zh-tw/functions_functions_spatial.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 3c45efa1bece3e4167c741d9ede53bdf3e3db0e0b33200b6d99eb2855056e2c3
description: Reference for spatial functions such as BUFFER, DISTANCE, and INTERSECTS.
---
[跳至主要內容](#main-content)

# 空間函數

空間函數允許您執行進階空間分析並將空間檔案與其他格式的資料（如文字檔案或試算表）相結合。例如，您可能擁有市議會區的空間檔案，以及包含所報告坑洞的緯度和經度坐標的文字檔案。您可以在建立資料來源時使用空間計算來聯結這些檔案，並分析哪個區域需要最長時間來修復坑洞。

還可以建立一條線，該線連線起點-終點地圖上的兩個資料點。例如，您可能有個公共交通資料的試算表，該試算表會指示通勤者開始和結束行程的位置。可以使用空間計算來查看通勤者所走的路徑。

## Tableau 提供的空間函數

### AREA

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>語法</td><td><code>AREA(Spatial Polygon, 'units')</code></td></tr><tr><td>輸出</td><td>數字</td></tr><tr><td>定義</td><td>傳回 <code>&lt;spatial polygon&gt;</code> 的總表面積。</td></tr><tr><td>範例</td><td><pre xml:space="preserve">AREA([Geometry], 'feet')</pre></td></tr><tr><td>說明</td><td><p>支援的單位名稱（計算時必須用引號括起來，例如 <code>'miles'</code>）：</p><ul><li><i>公尺</i>：meters、metres、m</li><li><i>公里</i>：kilometers、kilometres、km</li><li><i>英里</i>：miles、mi</li><li><i>英尺</i>：feet、ft</li></ul><p></p></td></tr></tbody></table>

### BUFFER

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>語法</td><td><code>BUFFER(Spatial point, distance, 'units')</code><p><code>BUFFER(Spatial linestring, distance, 'units')</code></p><p><code>BUFFER(Spatial polygon, distance, 'units')</code></p><ul><li><i>公尺</i>：meters、metres、m</li><li><i>公里</i>：kilometers、kilometres、km</li><li><i>英里</i>：miles、mi</li><li><i>英尺</i>：feet、ft</li></ul></td></tr><tr><td>輸出</td><td>幾何圖形</td></tr><tr><td>定義</td><td><p>對於空間點，傳回以 <code>&lt;spatial point&gt;</code> 為中心的多邊形圖形，半徑由 <code>&lt;distance&gt;</code> 和 <code>&lt;unit&gt;</code> 值決定。</p><p>對於 Linestring，計算透過包含距 Linestring 的半徑距離內的所有點而形成的多邊形。</p><p>對於多邊形，計算的多邊形是每個給定多邊形的內嵌（負距離）或開始（正距離）。</p></td></tr><tr><td>範例</td><td><pre xml:space="preserve">BUFFER([Spatial Point Geometry], 25, 'mi')</pre><pre xml:space="preserve">BUFFER(MAKEPOINT(47.59, -122.32), 3, 'km')</pre><pre xml:space="preserve">BUFFER(MAKELINE(MAKEPOINT(0, 20),MAKEPOINT (30, 30)),20,'km'))</pre></td></tr><tr><td>說明</td><td><p>支援的單位名稱（計算時必須用引號括起來，例如 <code>'miles'</code>）：</p><ul><li><i>公尺</i>：meters、metres、m</li><li><i>公里</i>：kilometers、kilometres、km</li><li><i>英里</i>：miles、mi</li><li><i>英尺</i>：feet、ft</li></ul></td></tr></tbody></table>

### DIFFERENCE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>語法</td><td><code>DIFFERENCE(Spatial, Spatial)</code></td></tr><tr><td>輸出</td><td>空間多邊形</td></tr><tr><td>定義</td><td>計算當第二個參數中的所有區域從重疊區域中的第一個參數中劃分出來時剩餘的區域部分。捨棄第二個參數中不重疊的區域。</td></tr><tr><td>範例</td><td><pre xml:space="preserve">DIFFERENCE(Spatial Polygon1, Spatial Polygon2)</pre></td></tr><tr><td>說明</td><td><p>支援空間多邊形與多邊形，不支援空間點或線。</p></td></tr></tbody></table>

### DISTANCE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>語法</td><td><code>DISTANCE(SpatialPoint1, SpatialPoint2, 'units')</code></td></tr><tr><td>輸出</td><td>數字</td></tr><tr><td>定義</td><td>傳回指定 <code>&lt;unit&gt;</code> 中兩點之間的距離度量。</td></tr><tr><td>範例</td><td><pre>DISTANCE([Origin Point],[Destination Point], 'km')</pre></td></tr><tr><td>說明</td><td><p>支援的單位名稱（計算時必須用引號括起來，例如 <code>'miles'</code>）：</p><ul><li><i>公尺</i>：meters、metres、m</li><li><i>公里</i>：kilometers、kilometres、km</li><li><i>英里</i>：miles、mi</li><li><i>英尺</i>：feet、ft</li></ul></td></tr><tr><td>資料庫限制</td><td>此函數只能透過即時連線建立，但若資料來源轉換為擷取，則此函數將繼續工作。</td></tr></tbody></table>

### INTERSECTION

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>語法</td><td><code>INTERSECTION (spatial, spatial)</code></td></tr><tr><td>輸出</td><td>多邊形</td></tr><tr><td>定義</td><td>計算並傳回第二個參數中與第一個參數中的區域重疊的區域部分。</td></tr><tr><td>範例</td><td><tt>INTERSECTION (Spatial Polygon1, Spatial Polygon2)</tt></td></tr><tr><td>說明</td><td>支援空間多邊形與多邊形，不支援空間點或線。</td></tr></tbody></table>

### INTERSECTS

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>語法</td><td><code>INTERSECTS (geometry1, geometry2)</code></td></tr><tr><td>輸出</td><td>布林值</td></tr><tr><td>定義</td><td>傳回 TRUE 或 FALSE，指示兩個幾何圖形在空間中是否重疊。</td></tr><tr><td>說明</td><td>支援的組合：點/多邊形、線/多邊形和多邊形/多邊形。</td></tr></tbody></table>

### LENGTH

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>語法</td><td><code>LENGTH(geometry, 'units')</code></td></tr><tr><td>輸出</td><td>數字</td></tr><tr><td>定義</td><td>使用指定的 <code>&lt;units&gt;</code> 傳回 <code>&lt;geometry&gt;</code> 中的一個或多個線串的大地測量路徑長度。</td></tr><tr><td>範例</td><td><pre xml:space="preserve">LENGTH([Spatial], 'metres')</pre></td></tr><tr><td>說明</td><td>若幾何圖形引數沒有線串，則結果為 <code>&lt;NaN&gt;</code>，但允許使用其他元素。</td></tr></tbody></table>

### MAKELINE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>語法</td><td><code>MAKELINE(SpatialPoint1, SpatialPoint2)</code></td></tr><tr><td>輸出</td><td>幾何圖形（線）</td></tr><tr><td>定義</td><td>在兩點之間產生線標記</td></tr><tr><td>範例</td><td><pre>MAKELINE(MAKEPOINT(47.59, -122.32), MAKEPOINT(48.5, -123.1))</pre></td></tr><tr><td>說明</td><td>對於建立出發地-目的地地圖很有用。</td></tr></tbody></table>

### MAKEPOINT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>語法</td><td><code>MAKEPOINT(latitude, longitude, [SRID])</code></td></tr><tr><td>輸出</td><td>幾何圖形（點）</td></tr><tr><td>定義</td><td><p>將 <code>&lt;latitude&gt;</code> 和 <code>&lt;longitude&gt;</code> 欄的資料轉換為空間物件。</p><p>若新增可選的 <code>&lt;SRID&gt;</code> 引數，則輸入可以是其他投影地理座標。</p></td></tr><tr><td>範例</td><td><pre>MAKEPOINT(48.5, -123.1)</pre><pre xml:space="preserve">MAKEPOINT([AirportLatitude], [AirportLongitude])</pre><pre xml:space="preserve">MAKEPOINT([Xcoord],[Ycoord], 3493)</pre></td></tr><tr><td>說明</td><td><p><code>MAKEPOINT</code> 無法使用自動產生的緯度和經度欄位。資料來源必須以原生方式包含座標。</p><p><code>SRID</code> 是一種空間參考識別碼，使用 <a href="https://epsg.io/" target="_blank">ESPG 參考系統代碼</a>來指定座標系統。若未指定 <code>SRID</code>，則假定為 WGS84，且參數被視為以度為單位的緯度/經度。</p><p>可以使用 <code>MAKEPOINT</code> 在空間上啟用資料來源，以便可以使用空間聯結將其與空間檔案聯結。有關詳情，請參閱<a href="https://help.tableau.com/v0.0/pro/desktop/zh-tw/maps_spatial_join.htm" class="xref">在 Tableau 中聯接空間檔案</a>。</p></td></tr></tbody></table>

### NO\_CUTOUTS

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>語法</td><td><code>NO_CUTOUTS (spatial)</code></td></tr><tr><td>輸出</td><td>已更正的空間多邊形</td></tr><tr><td>定義</td><td>如果平面地球解譯需要多邊形反演，則傳回更正的空間多邊形；否則，傳回原始值。</td></tr><tr><td>說明</td><td><p>Keyhole 標記語言 (.kml) 等空間檔案格式要求多邊形邊界遵循特定的座標方向。如果資料集反向繪製邊界，Tableau 會將外部空間解讀為形狀。<code>NO_CUTOUTS</code> 會對這些座標重新排序以還原正確的版面配置。</p></td></tr></tbody></table>

### OUTLINE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>語法</td><td><code>OUTLINE(spatial polygon)</code></td></tr><tr><td>輸出</td><td>幾何圖形</td></tr><tr><td>定義</td><td>將多邊形幾何圖形轉換為線串。</td></tr><tr><td>說明</td><td><p>對於為輪廓建立單獨的圖層很有用，該圖層的樣式可以與填充不同。</p><p>支援複多邊形內的多邊形。</p></td></tr></tbody></table>

### PARSE\_WKT

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>語法</td><td><code>PARSE_WKT (String)</code></td></tr><tr><td>輸出</td><td>空間（地理）</td></tr><tr><td>定義</td><td>將包含地理實體（例如點、linestring 或多邊形）的已知文字 (WKT) 表示形式的文字字串欄位轉換為空間值。</td></tr><tr><td>說明</td><td><p>座標假設使用 WGS-84 緯度和經度。有關 WKT 的詳情，請參閱<a href="https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry">幾何圖形的已知文字表示</a>。</p></td></tr></tbody></table>

### SHAPETYPE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>語法</td><td><code>SHAPETYPE(geometry)</code></td></tr><tr><td>輸出</td><td>字串</td></tr><tr><td>定義</td><td>傳回描述空間 <code>&lt;geometry&gt;</code> 結構的字串，例如 Empty（空白）、Point（點）、MultiPoint（多點）、LineString（線串）、MultiLinestring（多線串）、Polygon（多邊形）、MultiPolygon（複多邊形）、Mixed（混合）與 Unsupported（不支援）。</td></tr><tr><td>範例</td><td><pre xml:space="preserve">SHAPETYPE(MAKEPOINT(48.5, -123.1)) = "Point"</pre></td></tr></tbody></table>

### SYMDIFFERENCE

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>語法</td><td><code>SYMDIFFERENCE(spatial, spatial)</code></td></tr><tr><td>輸出</td><td>幾何圖形</td></tr><tr><td>定義</td><td>計算第二個參數中與第一個參數中的區域重疊的區域的任何部分，並從兩者中捨棄。從兩個參數傳回區域的剩餘部分。</td></tr><tr><td>範例</td><td><p><code>SYMDIFFERENCE(Spatial Polygon1, Spatial Polygon2)</code></p></td></tr></tbody></table>

### UNION

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>語法</td><td><code>UNION(spatial 1, [spatial 2])</code></td></tr><tr><td>輸出</td><td>幾何圖形</td></tr><tr><td>定義</td><td>透過融合相鄰或重疊的邊界，將空間幾何圖形合併為單一空間幾何圖形。</td></tr><tr><td>說明</td><td><p>與一個引數 (<code>UNION(spatial)</code>) 搭配使用時，<code>UNION </code>可作為彙總函數，跨列合併欄位中的所有空間物件。</p><p>與兩個引數 (<code>UNION(spatial1, spatial2)</code>) 搭配使用時，<code>UNION </code>會合併兩個不同的空間欄位或幾何圖形。</p><p>對於點和串線，<code>UNION </code>會將所有元素合併為單一集合。對於多邊形，重疊或接觸的圖形會融合為單一多邊形或複多邊形。</p></td></tr></tbody></table>

### 驗證

<table class="table--plain" style="width: 100%;"><colgroup><col style="width: 20%;"><col></colgroup><tbody><tr><td>語法</td><td><code>VALIDATE(spatial geometry)</code></td></tr><tr><td>輸出</td><td>幾何圖形</td></tr><tr><td>定義</td><td>確認空間值中幾何圖形的拓樸是否正確。如果由於多邊形週長自相交等問題導致該值無法用於分析，則結果將為空。如果幾何圖形正確，結果將是原始幾何圖形。</td></tr><tr><td>範例</td><td><p><code>UNION(VALIDATE([Geometry]))</code></p></td></tr></tbody></table>

## 使用空間計算

### 使用 MAKEPOINT 建立空間資料來源

您可以使用 MAKEPOINT 在空間上啟用資料來源，以便使用空間聯結將其與空間檔案相聯結。若要使用 MAKEPOINT，您的資料必須包含經緯度座標。

1. 開啟 Tableau 並連線到空間資料來源。
2. 在 \[連線\] 下，按一下新增以新增第二、非空間資料來源。
    
    這兩個資料來源將新增到畫布。
    
    > [!TIP]
    > 
    > 提示：要顯示「聯結」對話方塊，請點兩下（在 Mac 上按住 Control 點一下）畫布上的資料來源。
3. 將非空間資料來源拖放到「聯結」對話方塊上。
4. 按一下 \[聯結\] 圖示。
5. 在出現的 \[聯結\] 對話方塊中，執行以下操作：
    - 選取一種聯結類型。
    - 在 \[資料來源\] 下，從空間檔案中選取要作為聯結依據的空間欄位。空間欄位的旁邊有一個地球圖示。
6. 對於非空間資料來源，選取建立聯結計算作為聯結子句。  
    ![具有「建立聯結計算」選項的聯結對話方塊。](/tableau/next/zh-tw/pro/desktop/zh-tw/Img/maps_spatialcalcs_csvspatial.png)
    
    計算應該如下所示：
    
    `MAKEPOINT(Latitude,Longitude)`
7. 選取確定。
8. 選取 Intersects 聯結子句運算子以建立用於空間分析的資料來源。
9. 完成後，關閉 \[聯結\] 對話方塊。

如需有關空間聯結的更多資訊，請參閱 [在 Tableau 中聯接空間檔案](https://help.tableau.com/v0.0/pro/desktop/zh-tw/maps_spatial_join.htm)

### 使用 MAKELINE 建立視覺效果

在 Tableau Desktop 中，請從[此處提供](https://public.tableau.com/views/UseSpatialFunctionsMakeLineExampleWorkbook/FinishedFlightpaths?:embed=y&:display_count=yes&publish=yes&:origin=viz_share_link)的 Tableau Public 下載 Flight Path 工作簿。

1. 巡覽到新工作表。
2. 選取 \[分析\] > \[建立導出欄位\]。
3. 在開啟的計算中，執行以下動作：

- 將導出欄位命名為 Flight Paths。
- 輸入以下公式

`MAKELINE(MAKEPOINT([Lat],[Lng]),MAKEPOINT([Dest Lat],[Dest Lng]))`

此公式使用起點和終點城市的緯度和經度座標，並將其轉換為地理點以進行空間分析。這些座標是用來建立起點和終點之間的兩點連線。

7. 完成後，按一下 \[確定\]。

新的導出欄位會顯示在 \[資料\] 窗格中的 \[維度\] 下。就像其他欄位一樣，您可以在一個或多個視覺效果中使用該欄位。

9. 按兩下 \[資料\] 窗格的 \[Flight Paths\]，將其新增至您的視覺效果，視覺效果應該會自動以地圖的型態呈現。

![說明美國和墨西哥境內飛行路線的地圖。](/tableau/next/zh-tw/pro/desktop/zh-tw/Img/maps_spatialcalcs_flight.png)

當線跨越地球的較長區域時，計算自動生成彎曲的測地線。

### 使用 BUFFER 視覺化某個區域

在 Tableau Desktop 中，請從[此處提供](https://public.tableau.com/views/UseSpatialFunctionsMakeLineExampleWorkbook/FinishedFlightpaths?:embed=y&:display_count=yes&publish=yes&:origin=viz_share_link)的 Tableau Public 下載 Flight Path 工作簿。

1. 巡覽到新工作表。
2. 右鍵點一下「資料」窗格，並選取「建立參數」。
3. 在開啟的「參數」對話方塊中，設定下列選項：
    
    - 將參數命名為「Buffer Distance」（緩衝區距離）
    - 將「資料類型」設為「整數」。
    - 將允許的值設為「範圍」
    - 將「最小範圍」設為 100，將「最大範圍」設為 1000，並將級距設為 100。
    
    ![建立參數對話方塊，其中名稱設定為緩衝區距離，資料類型設定為整數，允許值設定為範圍，最小範圍設定為 100，最大範圍設定為 1000，級距設定為 100。](/tableau/next/zh-tw/pro/desktop/zh-tw/Img/map_buffer_2.png)
4. 完成後，按一下「確定」。

此參數可讓我們自訂緩衝區的半徑，範圍從 100 到 1000 英里。右鍵點一下參數，並選取「顯示參數」。

6. 選取 \[分析\] \> \[建立計算欄位\] 。
7. 在開啟的計算中，執行以下動作：

- 將導出欄位命名為「Buffer」（緩衝區）。
- 輸入以下公式

`BUFFER(MAKEPOINT([Dest Lat],[Dest Lng]),[Buffer Distance],"miles")`

BUFFER 計算採用點空間資料，並使用「緩衝距離」將其轉換為以英里為半徑的形狀。

附註：由於 BUFFER 只能與點空間資料一起使用，因此，我們透過 Makepoint 將經緯度資料轉換為點，如以上範例所示。

12. 完成後，按一下 \[確定\]。

新的計算欄位會顯示在「資料」窗格中。就像其他欄位一樣，您可以在一個或多個視覺效果中使用該欄位。

14. 按兩下「資料」窗格的「緩衝區」，將其新增至您的視覺效果，視覺效果應該會自動以地圖的型態呈現。
15. 將「目的地」拖放到「標記」卡片上的「色彩」窗格，以完成視覺效果。

![具有地圖類型標記的緩衝區地圖。](/tableau/next/zh-tw/pro/desktop/zh-tw/Img/map_buffer_1.png)

**請注意：**如果檢視看起來與上圖不像，請確定「標記」類型設為「地圖」，而不是「圓形」。有關標記類型的詳情，請參閱[變更檢視中標記的類型](https://help.tableau.com/v0.0/pro/desktop/zh-tw/viewparts_marks_marktypes.htm)。