> For the complete documentation index, see [llms.txt](https://docs.avonnicomponents.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.avonnicomponents.com/experience-cloud/experience-cloud-ja/experience-components/ax-map/enable-map-routing.md).

# マップルーティングを有効化

Map のルート計画にはルーティングプロバイダーが必要です。ルーティングは bring-your-own-key 方式です。OpenRouteService または Mapbox の API キーを指定してください。Avonni は独自のルーティングバックエンドをホストしません。パッケージごとに一度だけ有効にしてください。そのパッケージ内のルート対応の地図はすべてそれを使用できます。組織で Avonni パッケージを複数使っている場合は、各パッケージの Settings タブでルーティングを有効にしてください。

<figure><img src="https://9391847-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDL6JQuZArjJeQvX2ot4y%2Fuploads%2FZWbTLCY1Rtq0NDPRlPmy%2Frouting-route-panel.png?alt=media" alt="A map of Chicago with five numbered stops joined by a driving route. The Route panel on the right lists the five stops in order with an arrival time for each stop after the first, and shows the departure and arrival times, the total duration, and the Optimize and Clear actions."><figcaption><p>ルーティングを有効にすると、Route パネルは地図上で選択した停車地点を走行ルートに変換します。Mapbox を使うと、各停車地点への到着時刻も表示されます。</p></figcaption></figure>

## 始める前に

必要なもの：

* 次の権限を持つ Salesforce 管理者： **アプリケーションのカスタマイズ** 権限。このようなユーザーだけがルーティング設定を開いたり変更したりできます。
* サポートされている 2 つのプロバイダーのいずれかの API キー。どちらにも無料枠があります — [プロバイダーを選択](#choose-a-provider).
* プロバイダーのホスト用の Remote Site 設定。パッケージには含まれていません — [Remote Site 設定を追加](#add-a-remote-site-setting).

## Settings タブを開く

App Launcher から、次を開きます **Avonni Experiences** アプリを選択し **Settings** タブ。

その **Routing** カードには現在の **ステータス** および利用可能な操作が表示されます。

<figure><img src="https://9391847-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDL6JQuZArjJeQvX2ot4y%2Fuploads%2FciSB1V1VcYQDc43FKtTH%2Frouting-card-not-configured.png?alt=media" alt="The Routing card on the Settings tab, with the status Not configured and an Enable routing button at the top right." width="563"><figcaption><p>ルーティングを有効にする前は、Routing カードには「未設定」と表示されます。</p></figcaption></figure>

## プロバイダーを選択

有効にできるプロバイダーは一度に 1 つだけです。1 つを有効にすると、もう一方は解除されます。

<table><thead><tr><th width="180">プロバイダー</th><th>キーの取得</th><th>備考</th></tr></thead><tbody><tr><td><strong>OpenRouteService</strong></td><td>次の場所で無料キーを作成します： <a href="https://openrouteservice.org">openrouteservice.org</a> HeiGIT アカウントで。</td><td>標準プランの制限が適用されます — 1日あたり約 2,000 件のルート案内です。キーは発行されたとおりに正確に貼り付けてください。追加の <code>Bearer</code> プレフィックスを付けないでください。</td></tr><tr><td><strong>Mapbox</strong></td><td>次の場所でアクセストークンを作成します： <a href="https://console.mapbox.com/account/access-tokens/">console.mapbox.com</a>.</td><td>公開トークン（ <code>pk.</code>で始まるもの）で十分です — Directions API と Optimization API に追加スコープは必要ありません。サーバーサイドのコールアウトでは referrer が送信されないため、URL 制限は空欄のままにしてください。</td></tr></tbody></table>

Mapbox は交通状況をモデル化できる唯一のプロバイダーなので、ルートパネルで出発時刻または到着時刻を指定でき、各停車地点の到着時刻も報告できるのは Mapbox だけです。ルートの停車順を決められるのも Mapbox だけです： **Optimize** は、最大 12 停車地点のルートで最速の走行順を Mapbox に問い合わせ、それ以外では直線距離の近さに基づいて停車地点を並べます。どちらのプロバイダーでも、ルートは最大 25 停車地点までです。

## Remote Site 設定を追加

Salesforce は、Remote Site 設定で許可されていないホストへの呼び出しをすべてブロックします。また、Avonni パッケージはそれを自動で追加しません。組織がどのプロバイダーにアクセスできるかは管理者が決めます。

1. Setup で開きます **Remote Site 設定** を開いて **New Remote Site**.
2. 名前を入力してください。たとえば `Mapbox` または `OpenRouteService`、選択したプロバイダーの URL：
   * **OpenRouteService** — `https://api.heigit.org`
   * **Mapbox** — `https://api.mapbox.com`
3. そのままにし **Active** にチェックを入れて保存します。

<figure><img src="https://9391847-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDL6JQuZArjJeQvX2ot4y%2Fuploads%2FwU89ZITd83VqFEq5Ltms%2Frouting-remote-site-setting.png?alt=media" alt="The Remote Site Setting Edit form in Setup with Remote Site Name mapbox, Remote Site URL https://api.mapbox.com, Disable Protocol Security unchecked, an empty Description and Active checked."><figcaption><p>Mapbox 用の Remote Site 設定：任意の名前、URL https://api.mapbox.com、そして Active にチェックを入れた状態。</p></figcaption></figure>

その **ルーティングを有効化** ダイアログには、選択したプロバイダーの URL と Setup ページへのリンクが表示されます。

## ルーティングを有効化

1. その **Routing** カードでクリック **ルーティングを有効化**.
2. 次を選択します **Routing プロバイダー**.
3. API キーを貼り付けてクリックします **ルーティングを有効化**.

<figure><img src="https://9391847-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDL6JQuZArjJeQvX2ot4y%2Fuploads%2FJeBYGl4rWwowIpqS5p7K%2Frouting-enable-dialog.png?alt=media" alt="The Enable routing dialog with Mapbox selected as the routing provider, a notice to add a Remote Site Setting for https://api.mapbox.com, an empty Mapbox API key field and the help text on creating a Mapbox access token." width="563"><figcaption><p>ダイアログには、選択したプロバイダーに必要な Remote Site 設定名が表示されます。キーが入力されるまで、ルーティングを有効化 ボタンは使用できません。</p></figcaption></figure>

キーは保存される前にプロバイダーで検証されます。プロバイダーに拒否されたキーは保存されません。

Remote Site 設定でプロバイダーのホストが許可されていない場合、Salesforce は検証をブロックし、追加する URL が理由として表示されます。

有効化はサーバー側で実行されます。ステータスは **設定中** から **接続済み**へ移行します。タブは閉じてもかまいません。状態は保存されるので、タブを再度開くとその状態から続きます。

どちらのプロバイダーでも、有効化には数秒かかります。

### ステータス値

<figure><img src="https://9391847-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDL6JQuZArjJeQvX2ot4y%2Fuploads%2FpFf6MrXFCajntiV9zs9o%2Frouting-card-connected.png?alt=media" alt="The Routing card with the status Connected (Mapbox), the Modify Mapbox API key and Disable buttons, and the Route stop optimization toggle switched on." width="563"><figcaption><p>ルーティングが接続されると、ステータスの横にプロバイダー名が表示されます。Mapbox では、カードに Route stop optimization トグルも表示されます。</p></figcaption></figure>

<table><thead><tr><th width="220">ステータス</th><th>意味</th></tr></thead><tbody><tr><td><strong>未設定</strong></td><td>プロバイダーは設定されていません。地図には <strong>Route</strong> ボタンが表示されず、ビルダーの <strong>Route</strong> セクションには、その設定の代わりに有効化手順が表示されます。</td></tr><tr><td><strong>設定中</strong></td><td>キーをプロバイダーで検証しています。一時的な状態です。</td></tr><tr><td><strong>接続済み</strong></td><td>ルーティングは有効です。ステータスの横にプロバイダー名が表示されます。</td></tr><tr><td><strong>新しいキーを検証中</strong></td><td>置き換え用のキーを検証しています。新しいキーが通るまでは以前のキーが有効なままなので、ローテーション中にルーティングが停止することはありません。</td></tr><tr><td><strong>無効化中</strong></td><td>保存されたキーを削除しています。一時的な状態です。</td></tr></tbody></table>

キーが拒否されると、ステータスは **未設定** に戻り、その下にプロバイダーからの理由が表示されます。何も保存されないため、以前の状態は変更されません。

## ルート停車地点の最適化

Mapbox が接続されると、 **Routing** カードには **ルート停車地点の最適化** トグルが表示されます。これは **Optimize** ボタンが地図のルートパネルで行う動作を制御します：

* **オン** （デフォルト）— Optimize は Mapbox に最速の走行順を問い合わせ、ユーザーが押すたびにプロバイダーへのリクエストを 1 回消費します。
* **オフ** — 地図が停車地点の順序を自動で決め、費用はかかりません。順序は道路、橋、交通を考慮しないため、ルートは通常より長くなります。

プロバイダーの使用量が気になる場合はオフにしてください。そうでなければオンのままでかまいません。この設定は組織全体に適用され、次のルートから有効になります。地図自体を変更する必要はありません。

このトグルは、最適化できるプロバイダーでのみ表示されます。OpenRouteService ではできないため、そこで地図は常に自分で停車地点を並べます。

## ルートを計算できるユーザー

ルーティングに権限セットは不要です。ルーティングを有効にすると、Show Route Panel がオンの地図を開けるすべてのユーザーが、組織のキーでルートを計算できます。Experience Cloud サイトのゲストユーザーも含まれます。 **Show Route Panel** をオンにした地図を開けるユーザーは、Experience Cloud サイトのゲストユーザーも含めて、組織のキーでルートを計算できます。

特定のユーザーにルートを計算させないようにするには、 **Show Route Panel** を、それらのユーザーが開ける地図でオフにしてください。ユーザーが計算する各ルートは、プロバイダーのプランに対してカウントされます。

## キーをローテーションする

クリックします **OpenRouteService API キーを変更** （または **Mapbox API キーを変更**、有効な方のプロバイダーの） **Routing** カードで、新しいキーを貼り付けて、 **API キーを保存**。新しいキーは、古いキーを置き換える前に検証されます。失敗した場合は、既存のキーが引き続き使用されます。

<figure><img src="https://9391847-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDL6JQuZArjJeQvX2ot4y%2Fuploads%2F0FPmiaHiwCRnwri91Xow%2Frouting-modify-key-dialog.png?alt=media" alt="The Modify Mapbox API key dialog, showing the provider Mapbox, an empty New Mapbox API key field with help on creating a Mapbox access token, and a Save API key button that stays unavailable while the field is empty." width="563"><figcaption><p>ダイアログには有効なプロバイダー名が表示されます。新しいキーを入力するまで、API キーを保存 は使用できません。</p></figcaption></figure>

プロバイダーがキーを再発行したとき、または以前のキーが漏えいした可能性があるときは、キーをローテーションしてください。

## ルーティングを無効化

クリックします **無効化** して確認します。これにより保存されたキーが削除され、組織内の全員のルーティングが停止します。キーでルーティングを再び有効にするまで、地図はルート案内を計算しなくなります。

## プライバシーと使用

ルーティングが有効な場合、ルートを計算すると、選択したプロバイダーに停車地点の座標が送信されます。認証にはお使いの API キーが使用されます。使用量はそのプロバイダーのプラン制限に対してカウントされ、リクエストはその利用規約に従います。

保存されたキーは書き込み専用です。一度保存すると、このタブからも Setup からも読み戻すことはできません。キーを失った場合は、プロバイダーで新しいキーを発行してローテーションしてください。

## トラブルシューティング

* **アプリに Settings タブがありません** — このタブはパッケージの管理者権限セットを通じて表示されます。その権限セットをユーザーに割り当てるか、プロファイルでタブを表示してください。
* **タブを開くと、ルーティング設定を変更できるのは管理者のみと表示される** — ユーザーには **アプリケーションのカスタマイズ**権限がありません。ルーティング設定を読み書きできるのは管理者のみです。
* **ステータスが Configuring のままになる** — 有効化には数秒かかります。タブを再読み込みしてください。状態はサーバー側に保存されるため、ポーリングが止まってもセットアップが止まっているわけではありません。再読み込み後もそのままなら、プロバイダーのステータスページを確認してもう一度試してください。
* **有効化すると Salesforce が呼び出しをブロックした、または Routing カードにプロバイダーを許可する Remote Site 設定がないという警告が表示される** — プロバイダーの URL の Remote Site 設定を追加するか、無効化されたものを再有効化してください。参照 [Remote Site 設定を追加](#add-a-remote-site-setting)。それが設定されるまでは、すべてのルートは直線にフォールバックします。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.avonnicomponents.com/experience-cloud/experience-cloud-ja/experience-components/ax-map/enable-map-routing.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
