ナレッジベース

カスタム マップ接続の作成


発行: 14 Apr 2017
最終修正日: 19 Oct 2023

ご質問

Tableau Desktop を使用したカスタム マップへの接続方法。

環境

Tableau Desktop

回答

Tableau で独自のマップを使用する最も簡単な方法は、WMS サーバーまたは MapBox マップに接続することです。詳細については、「WMS (Web マップ サービス) サーバーの使用」および「Mapbox マップの使用」を参照してください。

マップ サーバーが WMS 標準をサポートしておらず、Mapbox マップでない場合でも、Tableau Map Service (TMS) から接続を作成することでマップ サーバーに接続できる場合があります。TMS に接続するには、.tms ファイルを作成します。

注: .tms ファイルはマップ サーバーへの接続には便利ですが、Tableau では .tms ファイルのテストもサポートも行われず、機能するかどうかは状況によって異なります。

TMS 接続の要件

.tms を使用してマップ サーバーに接続するには、マップ サーバーに次の機能が必要です。

  • マップがタイルの集合として返される
  • タイルは Web メルカトル投影である
  • タイルのアドレスを、通常の Web マッピング サービスと同じ番号体系の URL 文字列で指定できる。詳細については、「TMS ファイルの変数」の <url-format> セクションを参照してください。

簡単な TMS ファイルの作成

.tms ファイルは、テキスト エディターで作成できる簡単なテキスト ファイルです。

  1. テキスト エディターを開きます。

  2. 次の 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>

  3. <boolean><server-url>、および <url-format> 変数をこの記事の「TMS ファイルの必須変数」セクションで説明されているように置換します。

  4. TMS ファイルを Tableau Desktop または Tableau Server の Mapsources フォルダーに拡張子 .tms で保存します。

    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

  5. Tableau Desktop を開きます。

  6. 位置情報を含むワークブックに接続します。

  7. [マップ] > [バックグラウンド マップ] を選択し、TMS ファイルで構成したマップ サーバーからバックグラウンド マップを選択します。

  8. (オプション) 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 は 1 つのマップ タイルに全世界を表示します。TMS はレベル 16 までのマップ タイルを取得します。
    • {X} および {Y}: {X} タグおよび {Y} タグは、マップ タイルの座標を示します。マップ タイルの詳細については、次の Web ページを参照してください。

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 設定

API キーの特殊な処理や、マップ タイルの拡張、縮小、ウォッシュアウトの制御のために、高度な TMS ファイル形式を使用できます。

注: TMS ファイルは、Tableau Desktop や Tableau Server の Mapsources フォルダーにあります。このファイルで構成される設定は、他のマップ サーバーへの接続ではサポートされません。

API キー

サーバー URL に API キーが必要なマップ サーバーの場合は、connection 要素の <url-format> セクションで {K} タグを使用することができます。

文字列内で {K} タグを使用して API キーを username 属性に配置すると、<url-format> 文字列から API キーを分けることができます。

次の例は、API キーを username 属性に入れて {K} タグを使用する方法を示しています。

<?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 はマップ サーバーから受信したマップ タイルを取得し、そのマップ タイルをデータに一致するように拡張します。マップ タイルの表示方法を細かく制御する必要がある場合、connection 要素に最大の拡張を示す 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 の任意の数値に変更できます。

次に、ルート要素を閉じるタグ </mapsource> の前に配置できる XML の例を示します。

<mapsource-defaults version="8.1"> 
<style> 
<style-rule element="map"> 
<format attr="washout" value="0.0"/> 
</style-rule> 
</style> 
</mapsource-defaults>

この記事で問題は解決しましたか?