JavaScript フリート トラッキング ライブラリを使用すると、地図に追加するマーカーの外観をカスタマイズできます。これを行うには、マーカーのカスタマイズを指定します。このカスタマイズは、マーカーを地図に追加する前と、マーカーを更新するたびに、フリート トラッキング ライブラリによって適用されます。マーカーの外観は、次のようにカスタマイズできます。
タイプに基づいてマーカーをスタイル設定する: 同じタイプのマーカーをスタイル設定するには、
MarkerOptions
オブジェクトを指定します。指定した変更は、各マーカーの作成後に適用され、デフォルトのオプションが上書きされます。例については、このガイドのタイプに基づくスタイルマーカーをご覧ください。データに基づいてマーカーのスタイルを設定する: データに基づいてカスタマイズ関数を指定し、クリック処理などのインタラクティビティをマーカーに追加します。フリート トラッキングのデータや外部ソースのデータに基づいてスタイルを設定できます。
フリート トラッキングのデータ: フリート トラッキングは、マーカーが表すオブジェクトのタイプ(車両、停留所、タスク)などのデータをカスタマイズ関数に渡します。マーカー要素の現在の状態に基づいて、マーカーのスタイルが変更されます。たとえば、残りの停留所の数やタスクの種類などです。
外部ソース: フリート トラッキング データと、Fleet Engine 以外のソースのデータとを組み合わせて、その情報に基づいてマーカーのスタイルを設定することもできます。
例については、データに基づくスタイルマーカーをご覧ください。
マーカーにクリック処理を追加する: 例については、クリック処理を追加するをご覧ください。
表示するマーカーをフィルタする: JavaScript 位置情報プロバイダで利用可能なフィルタ機能を使用して、表示するマーカーをフィルタします。次に例を示します。
マーカーのカスタマイズを使用して、スケジュール設定されたタスクの配送車両を追跡する: マーカーをカスタマイズして車両を追跡できます。詳細については、マーカーのカスタマイズを使用して配送車両を追跡するをご覧ください。
マーカーのカスタマイズ オプション
フリート トラッキング ライブラリには、次のカスタマイズ パラメータが用意されています。
オンデマンド ルートのカスタマイズ パラメータ
スケジュール設定されたタスクのカスタマイズ パラメータ
タイプに基づくスタイルマーカー
次の例は、MarkerOptions
オブジェクトを使用して車両マーカーのスタイルを設定する方法を示しています。このパターンに沿って、マーカーのカスタマイズ オプションに記載されているオプションを使用して、マーカーのスタイルをカスタマイズします。
オンデマンド ルートの例
JavaScript
vehicleMarkerCustomization = {
cursor: 'grab'
};
TypeScript
vehicleMarkerCustomization = {
cursor: 'grab'
};
スケジュール設定されたタスクの例
JavaScript
deliveryVehicleMarkerCustomization = {
cursor: 'grab'
};
TypeScript
deliveryVehicleMarkerCustomization = {
cursor: 'grab'
};
データに基づくスタイルマーカー
次の例は、カスタマイズ関数を使用して車両マーカーのスタイルを設定する方法を示しています。このパターンに沿って、上記のマーカーのカスタマイズ オプションのいずれかを使用して、データに基づいてマーカーのスタイルをカスタマイズします。
オンデマンド ルートの例
JavaScript
vehicleMarkerCustomization =
(params) => {
const remainingWaypoints = params.vehicle.waypoints.length;
params.marker.setLabel(`${remainingWaypoints}`);
};
TypeScript
vehicleMarkerCustomization =
(params: VehicleMarkerCustomizationFunctionParams) => {
var remainingWaypoints = params.vehicle.waypoints.length;
params.marker.setLabel(`${remainingWaypoints}`);
};
スケジュール設定されたタスクの例
JavaScript
deliveryVehicleMarkerCustomization =
(params) => {
var stopsLeft = params.vehicle.remainingVehicleJourneySegments.length;
params.marker.setLabel(`${stopsLeft}`);
};
TypeScript
deliveryVehicleMarkerCustomization =
(params: DeliveryVehicleMarkerCustomizationFunctionParams) => {
var stopsLeft = params.vehicle.remainingVehicleJourneySegments.length;
params.marker.setLabel(`${stopsLeft}`);
};
マーカーにクリック処理を追加する
次の例は、車両マーカーにクリック処理を追加する方法を示しています。上記のマーカーのカスタマイズ オプションに記載されているオプションを使用して、このパターンに沿って、任意のマーカーにクリック処理を追加します。
オンデマンド ルートの例
JavaScript
vehicleMarkerCustomization =
(params) => {
if (params.isNew) {
params.marker.addListener('click', () => {
// Perform chosen action.
});
}
};
TypeScript
vehicleMarkerCustomization =
(params: VehicleMarkerCustomizationFunctionParams) => {
if (params.isNew) {
params.marker.addListener('click', () => {
// Perform chosen action.
});
}
};
スケジュール設定されたタスクの例
JavaScript
deliveryVehicleMarkerCustomization =
(params) => {
if (params.isNew) {
params.marker.addListener('click', () => {
// Perform chosen action.
});
}
};
TypeScript
deliveryVehicleMarkerCustomization =
(params: DeliveryVehicleMarkerCustomizationFunctionParams) => {
if (params.isNew) {
params.marker.addListener('click', () => {
// Perform chosen action.
});
}
};
表示するマーカーをフィルタする
setVisible
を使用する必要がある場合は、上記のマーカーのカスタマイズ オプションに記載されているいずれかのオプションを使用して、このパターンに沿ってマーカーをフィルタします。
オンデマンド ルートの例
JavaScript
vehicleMarkerCustomization =
(params) => {
var remainingWaypoints = params.vehicle.remainingWaypoints.length;
if (remainingWaypoints > 10) {
params.marker.setVisible(false);
}
};
TypeScript
vehicleMarkerCustomization =
(params: VehicleMarkerCustomizationFunctionParams) => {
var remainingWaypoints = params.vehicle.remainingWaypoints.length;
if (remainingWaypoints > 10) {
params.marker.setVisible(false);
}
};
スケジュール設定されたタスクの例
JavaScript
deliveryVehicleMarkerCustomization =
(params) => {
var stopsLeft = params.vehicle.remainingVehicleJourneySegments.length;
if (stopsLeft > 10) {
params.marker.setVisible(false);
}
};
TypeScript
deliveryVehicleMarkerCustomization =
(params: DeliveryVehicleMarkerCustomizationFunctionParams) => {
var stopsLeft = params.vehicle.remainingVehicleJourneySegments.length;
if (stopsLeft > 10) {
params.marker.setVisible(false);
}
};