上次修改日期 : 19 Oct 2023
環境
Tableau Desktop答案
在 Tableau 中使用自己的地圖的最簡單方法是連接到 WMS 伺服器或 MapBox 地圖。關於詳細資訊,請參閱使用 WMS(Web 地圖服務)伺服器和使用 Mapbox 地圖。如果地圖伺服器不支援 WMS 標準且地圖不是 Mapbox 地圖,則您仍然可以透過從 Tableau 地圖服務 (TMS) 建立連接,連接到地圖伺服器。要連接到 TMS,請建立 .tms 檔案。
附註:雖然 .tms 檔案可能有助於連接到地圖伺服器,但 Tableau 不會測試或支援 .tms 檔案,且成功可能會不同。
TMS 連接的要求
要使用 .tms 連接到地圖伺服器,地圖伺服器必須具有以下功能:
- 將地圖作為圖塊的集合傳回
- 圖塊位於 Web Mercator 投影中
- 可以使用與常用 Web 地圖服務相同的编號方案透過 URL 對圖塊進行尋址。有關詳情,請參閱 TMS 檔案中的變量的 <url-format> 一節瞭解更多資訊。
建立簡單的 TMS 檔案
.tms 檔案是您可以在文字編輯器中建立的簡單文字檔案。
-
開啟文字編輯器。
-
將以下 XML 複製並貼上到文字編輯中。
<?xml version="1.0" encoding="utf-8"?>
<mapsource inline="<boolean>" version="8.1">
<connection class="OpenStreetMap" port="80" server="<server-url>" url-format="<url-format>" />
<layers>
<layer display-name='Base' name='base' show-ui='false' type='features' request-string='/' />
</layers>
</mapsource> -
取代
<boolean>
、<server-url>
和<url-format>
變量,如本文內的 TMS 檔案中的所需變量一節中所述。 -
將具有 .tms 副檔名的 TMS 檔案儲存到 Tableau Desktop 或 Tableau Server 的 Mapsources 資料夾。
Mapsources 資料夾的預設位置為:
-
對於 Mac 上的 Tableau Desktop - /Users/<user>/Documents/My Tableau Repository/Mapsources
-
對於 Windows 上的 Tableau Desktop - C:\Users\<user>\Documents\My Tableau Repository\Mapsources
-
對於 Tableau Server - C:\Program Files\Tableau\Tableau Server\<version>\vizqlserver\mapsources
-
-
打開 Tableau Desktop。
-
連接到包含位置資訊的工作簿。
-
選擇地圖 > 背景地圖,然後選擇您在 TMS 檔案中配置的地圖伺服器上的背景地圖。
-
(可選)如果您將 TMS 檔案新增到 Tableau Server 中的 Mapsources 資料夾,則將工作簿發布到 Tableau Server 並檢視您在 TMS 檔案中配置的背景地圖。
TMS 檔案中的所需變量
只能在 XML 中變更以下變量:
<boolean>
:將<boolean>
取代為true
或false
值。true
值允許 Tableau Desktop 將在 TMS 檔案中指定的配置與工作簿儲存。如果將工作簿發布到 Tableau Cloud 或 Tableau Public,則使用此值。false
值要求 Tableau Desktop 或 Tableau Server 可存取儲存在 Mapsources 資料夾中的 TMS 檔案,以顯示地圖伺服器中的地圖。
<server-url>
:將<server-url>
取代為地圖伺服器的 URL。<url-format>
:將<url-format>
取代為地圖伺服器所需的額外 URL 片段。這可能包括以下標記:{Z}
:{Z}
標記指示縮放等級。縮放等級為 0 將在一個地圖圖塊中顯示整個世界。TMS 將會取得到等級 16 的地圖圖塊。{X}
和{Y}
:{X}
和{Y}
標記指示地圖圖塊座標。關於地圖圖塊的詳細資訊,請參閱以下網頁:
範例 XML
假設您要連接到由 OpenStreetMaps 提供的範例地圖伺服器。TMS 檔案可能類似以下所示:
<?xml version="1.0" encoding="utf-8"?>
<mapsource inline="true" version="8.1">
<connection class="OpenStreetMap" port="80" server="http://a.tile.openstreetmap.org" url-format="/{Z}/{X}/{Y}.png" />
<layers>
<layer display-name='Base' name='base' show-ui='false' type='features' request-string='/' />
</layers>
</mapsource>
進階 TMS 設定
您可以使用進階 TMS 檔案格式執行 API 按鍵的特殊處理,以及控制地圖圖塊的拉伸、收縮和沖蝕。
附註: 在 Mapsources 資料夾中,您將找到 Tableau Desktop 和 Tableau Server 附帶的 TMS 檔案。不支援利用在這些檔案中配置的設定,連接到其他地圖伺服器。
API 按鍵
如果地圖伺服器要求在伺服器 URL 中包含 API 按鍵,則您可以在連接元素的 <url-format>
部分中使用 {K}
標記。
您也可以在字串中使用 {K}
標記,並將 API 按鍵放在使用者名屬性中,以將 API 按鍵與 <url-format>
字串分開。
下例示範如何將 {K}
標記與使用者名屬性中的 API 按鍵一起使用。
<?xml version="1.0" encoding="utf-8"?>
<mapsource inline="true" version="8.1">
<connection class="OpenStreetMap" port="80" server="http://a.tile.mapbox.com" url-format="/v4/base.mapbox-streets+bg-e8e0d8_landuse_water_buildings_streets/{Z}/{X}/{Y}.png?access_token={K}" username="<your-api-key>"/>
<layers>
<layer display-name='Base' name='base' show-ui='false' type='features' request-string='/' />
</layers>
</mapsource>
最大拉伸和最小收縮
預設情況下,Tableau 將取得從地圖伺服器收到的地圖圖塊,並拉伸這些地圖圖塊以服合您的資料。如果您需要對如何顯示地圖圖塊進行更多控制,則可以在連接元素中設定最大拉伸 (max-stretch
) 和最小收縮 (min-shrink
) 屬性。
如果將最大拉伸和最小收縮均設定為 1,則 Tableau 不會拉伸或收縮地圖圖塊。Tableau 而是會將地圖縮放對齊到圖塊。您也可以將最大拉伸和最小收縮屬性設定為接近 1 的值,以允許一定程度的拉伸或收縮和對齊(取決於具體的縮放)。
下例示範如何使用 max-stretch
和 min-shrink
屬性。
<?xml version="1.0" encoding="utf-8"?>
<mapsource inline="true" version="8.1">
<connection class="OpenStreetMap" port="80" server="http://a.tile.openstreetmap.org" url-format="/{Z}/{X}/{Y}.png" max-stretch="1.2" min-shrink="0.667"/>
<layers>
<layer display-name='Base' name='base' show-ui='false' type='features' request-string='/' />
</layers>
</mapsource>
沖蝕
預設情況下,Tableau 將會輕微沖蝕它從地圖伺服器收到的地圖圖塊,突出顯示資料。要控制地圖圖塊的沖蝕程度,請將以下 XML 部分直接新增到根元素的結束標記 </mapsource>
之前。可以將沖蝕值變更為 0.0 和 1.0 之間的任何數字。
以下 XML 是可以放在根元素的結束標記 </mapsource>
之前的範例。
<mapsource-defaults version="8.1">
<style>
<style-rule element="map">
<format attr="washout" value="0.0"/>
</style-rule>
</style>
</mapsource-defaults>