ルートのポリラインをカスタマイズする

プラットフォームを選択: Android iOS JavaScript

このドキュメントでは、一般ユーザー向けのウェブベースの移動状況追跡アプリで使用する地図のルート ポリラインをカスタマイズする方法について説明します。

Consumer SDK を使用すると、地図上の移動ルートのルート ポリラインの表示を制御したり、ルート ポリラインのスタイルを設定したりできます。SDK は、移動ルートの アクティブなパスまたは残りのパスの座標ペアごとに google.maps.Polylineオブジェクトを作成します。ライブラリは、次の 2 つの状況でこれらのカスタマイズを適用します。

  • オブジェクトを地図に追加する前
  • オブジェクトに使用されるデータが変更されたとき

ルート ポリラインのスタイルを設定する

マーカーのスタイルを設定する場合と同様に、カスタマイズ パラメータ を使用してルート ポリラインのスタイルを設定します。次のいずれかの方法でスタイルを設定します。

  • 最も簡単: PolylineOptions を使用して、一致するすべての Polyline オブジェクトの作成時または更新時に適用します。
  • 高度: カスタマイズ関数 を指定します。カスタマイズ関数を使用すると、Fleet Engine から送信されたデータに基づいてオブジェクトのスタイルを個別に設定できます。この関数は、移動ルートの現在の状態に基づいて各オブジェクトのスタイルを変更できます。たとえば、車両の速度が遅い場合は、Polyline オブジェクトの色を濃くしたり、太くしたりできます。Fleet Engine 以外のソースから結合して、その情報に基づいて Polyline オブジェクトのスタイルを設定することもできます。

カスタマイズ パラメータ

ルート ポリラインのスタイルを設定する場合は、 FleetEngineTripLocationProviderOptionsで提供されるパラメータを使用します。これらのパラメータは、車両の移動ルートのさまざまなパスの状態を提供します。

PolylineOptions を使用する

次の例は、Polyline オブジェクト のスタイルを PolylineOptions を使用して設定する方法を示しています。このパターンに従って、前述のポリラインのカスタマイズを使用して、任意の Polyline オブジェクトのスタイルをカスタマイズします。

JavaScript

activePolylineCustomization = {
  strokeWidth: 5,
  strokeColor: 'black',
};

TypeScript

activePolylineCustomization = {
  strokeWidth: 5,
  strokeColor: 'black',
};

カスタマイズ関数を使用してルート ポリラインのスタイルを設定する

次の例は、アクティブなルート ポリラインのスタイルを設定する方法を示しています。このパターンに従って、前述のルート ポリラインのカスタマイズ パラメータを使用して、任意の Polyline オブジェクトのスタイルをカスタマイズします。

JavaScript

// Color the route polyline objects in green if the vehicle is nearby.
activePolylineCustomization =
  (params) => {
    const distance = params.trip.remainingWaypoints[0].distanceMeters;
    if (distance < 1000) {

      // params.polylines contains an ordered list of Polyline objects for
      // the path.
      for (const polylineObject of params.polylines) {
        polylineObject.setOptions({strokeColor: 'green'});
      }
    }
  };

TypeScript

// Color the route Polyline objects in green if the vehicle is nearby.
activePolylineCustomization =
  (params: TripPolylineCustomizationFunctionParams) => {
    const distance = params.trip.remainingWaypoints[0].distanceMeters;
    if (distance < 1000) {

      // params.polylines contains an ordered list of Polyline objects for
      // the path.
      for (const polylineObject of params.polylines) {
        polylineObject.setOptions({strokeColor: 'green'});
      }
    }
  };

ルート ポリラインの表示を制御する

デフォルトでは、すべての Polyline オブジェクトが表示されます。Polyline オブジェクトを非表示にするには、その visible プロパティを設定します。

JavaScript

remainingPolylineCustomization = {visible: false};

TypeScript

remainingPolylineCustomization = {visible: false};