メインコンテンツまでスキップ

オンデマンドルート最適化とカスタム乗客アプリケーション (On-demand route optimization and a custom passenger application)

SWAT API は、予約と乗客データを管理するためのオペレーター向け Web アプリケーションに加えて、モバイルデバイス用のカスタム乗客またはドライバーアプリケーションの構築をサポートします。SWAT API とコンポーネントですぐに利用できる一般的なシナリオは2つあります。

  • オンデマンド車両共有(車両はリアルタイムでエリア内を移動し、乗客はリアルタイムで、つまりオンデマンドでピックアップされる必要があります。カーシェアリングやバスの相乗りの一般的なユースケース)
  • ジャストインタイム乗客配達(乗客は事前に予約され、特定の時間までにプールされ、単一の場所に移動されます。一般的なユースケースには従業員の輸送が含まれます)

さらに、SWAT API はオプションで、以下を含むより複雑なワークフロー機能を包含しています。

  • 車両の到着予定時刻と乗客の運賃を組み込んだ、リクエストされた予約の見積もり
  • 乗客が乗車のオファーを受け入れるか拒否できるオファーベースのワークフロー

前提条件 (Prerequisites)

SWAT チーム(詳細は 参照)は通常、クライアントのために高品質で実用的なワークフローを確保するために、初期プロジェクト構成を実行します。通常のセットアップに加えて、インテグレーターは SWAT にプロジェクトのウェイポイントベースのセットアップを有効にするように要求できます。これにより、乗客が任意の場所でピックアップされるのを制限し、代わりにバス停やその他の場所などの事前定義された場所のセットでのみピックアップとドロップオフを行うことができます。これは、API を使用して取得できる transit stop オブジェクトを使用して実現されます。

乗客のエクスペリエンスを向上させるために、SWAT API は、有効になっている場合にトランジットストップへの歩行指示の提供をサポートします。指定された近接範囲内で複数の停留所が利用可能な場合、SWAT API は最適化基準を使用して、乗客にとって歩行時間が最も短い停留所を選択します。

運用と最適化エンジンの構成は テンプレート レベルで実行され、通常は SWAT チームによって構成されます。

アプリケーション間のリアルタイム通信を促進し、オンデマンドサービスをサポートするために、ウェブソケットまたはウェブフックを利用できます。

SWAT API は、システムへの動的なドライバーと乗客の登録もサポートしています。

さらに、インテグレーターが SWAT 提供の支払いモデルを選択した場合、統合は乗客への請求と課金をサポートできます。

このワークフローが正しく機能するには、次の前提条件を満たす必要があります。

  • 適切な資格情報でプロジェクトが構成されていること。
  • (オプション) トランジットストップのセットがそのプロジェクトに割り当てられていること。
  • シミュレーションテンプレートとサービスエリアのジオフェンスが構成されていること。

原則と認証 (Principles and authentication)

SWAT API は、エンドカスタマーアプリケーションを構築するための2つのアプローチ(仲介バックエンドあり、またはなし)をサポートしています。各アプローチには長所と短所があります。ワークフローをより細かく制御でき、機密データがインテグレーターのシステム内にとどまるため、インテグレーターが独自のバックエンドを持つことをお勧めします。

インテグレーターが独自のバックエンドを持つアプローチ (Approach with the integrators having their own backend)

インテグレーターが専用バックエンドを使用しないアプローチ (Approach with the integrators using no dedicated backend)

ドライバーアプリケーションと組み合わせ (Driver application and combinations)

SWAT API は、インテグレーターが独自の Web アプリケーション、ドライバー、および乗客アプリケーションを構築することを選択したり、SWAT が提供するドライバー、乗客、または Web アプリケーションと組み合わせて使用したりするなど、API を操作する際の混合モードをサポートします。例:

あるいは、独自のオペレーター管理アプリケーションを構築したいインテグレーターの場合:

ワークフロー定義 (Workflow definition)

望ましい結果に応じて、ワークフローは異なる場合があります。次の図は、SWAT API で可能な包括的なワークフローの例を示しています。

Comprehensive PA flow

さらに、簡素化されたワークフローは次のようになります。

Simplified PA flow

(オプション) トランジットストップの管理 ((Optional) Managing transit stops)

トランジットストップは、乗客のピックアップとドロップオフのウェイポイントとして機能します。SWAT チームは通常、これらの停留所を構成します。ただし、インテグレーターは次の方法を使用して情報を取得または更新できます。

POST {{base_url}}/api/v2/transitstop api

消費アプリケーションは、近くで利用可能な停留所をリクエストすることもできます。

GET {{base_url}}/api/v2/transitstop/nearest api

(オプション) シミュレーションテンプレート(サービステンプレート)の設定 ((Optional) Setting up simulation template (Service template))

シミュレーションテンプレート(サービステンプレート)は、オンデマンド運用のすべての設定を保存するために使用されます。通常は SWAT によって構成されます が、構成する必要がある場合や現在の設定を取得する必要がある場合は、シミュレーション api を使用できます。

(オプション) 車両の作成、変更、削除 ((Optional) Creating, modifying and deleting vehicles)

警告

車両は、シミュレーション(サービス)テンプレートレベルと、日レベルのシミュレーション(サービス)インスタンスで作成できます。シミュレーション(サービス)が終了または削除されると、シミュレーションで直接作成された車両は保存されず、次のサービスでは利用できなくなります。さらに、車両がシミュレーションインスタンスで更新(有効化、無効化、変更)された場合、変更はシミュレーションテンプレートに自動的に伝播されないため、他のシミュレーションインスタンスには適用されません。

車両テンプレート(サービス)には、毎日の運用で利用可能な車両を含めることができます。車両を作成するには、POST vehicle API を使用できます。api この API リクエストは、新しい車両が属すべき適切な simulation_id を設定することにより、テンプレートレベルまたはサービスレベルのいずれかで車両を作成するために使用できます。

車両を有効または無効にするには(最適化および予約割り当ての目的で)、in_use フィールドを 車両モデル で使用できます。

車両は、is_invalidated フラグを使用した論理削除もサポートしています。

(オプション) ドライバーの作成 ((Optional) Creating drivers)

ドライバーは、オプションで API リクエスト を介して作成および管理できます。作成されたドライバーは、車両モデル API の driver フィールドを使用して、対応する車両にリンクできます。この手順はオプションであり、SWAT Driver Application がプロジェクトで使用されている場合にのみ必要です。それ以外の場合、サービスは割り当てられたドライバーを使用せずに実装できます。