次のページには、Route Optimization API の optimizeTours メソッドの次のコンポーネントのパラメータ テーブルがアルファベット順で記載されています。
これらのパラメータ テーブルには、見つけやすいように、最上位オブジェクトとメイン パラメータのみが記載され、簡単に説明されています。完全な説明とすべてのネストされたパラメータを含む完全なリストについては、API リファレンス ドキュメントをご覧ください。
リクエストの本文
リクエスト本文には、次の要素が含まれます。これらの要素は、右側の図に示され、下の表に記載されています。
OptimizeToursRequest: モデルと解決パラメータを含む最上位のリクエスト オブジェクト。ShipmentModel: 配送、車両、グローバル制約を含むコアデータ構造。Shipment: 集荷と配達を含むタスク。VisitRequest: 集荷または配達の場所と制約。
Vehicle: 配送を実行できる車両。
| 親 | パラメータ | プロパティのタイプ | 説明 |
|---|---|---|---|
OptimizeToursRequest |
allowLargeDeadlineDespiteInterruptionRisk |
boolean(true/false) |
true の場合、タイムアウトがサーバーの中断のリスクがある大きな値(30 分超)に設定されていても、リクエストは処理されます。 |
considerRoadTraffic |
boolean(true/false) |
true の場合、ルーティングにトラフィック データを使用します。false の場合、道路ネットワークの速度のみを使用します。 |
|
geodesicMetersPerSecond |
数値 | useGeodesicDistances が true の場合、この速度は移動時間の計算に使用されます。 |
|
injectedFirstSolutionRoutes[] |
オブジェクトの配列(ShipmentRoute) |
最適化の開始元となる以前のソリューションのルート。 | |
injectedSolutionConstraint |
object(InjectedSolutionConstraint) |
既存のルートと類似したソリューションに制約し、どのプロパティを保持する必要があるか、どのプロパティを緩和できるかを指定します。 | |
interpretInjectedSolutionsUsingLabels |
boolean(true/false) |
true の場合、配列インデックスではなく label で挿入されたルートの配送/車両を照合します。 |
|
label |
文字列 | リクエストを識別するための任意のラベル。レスポンスで返されます。 | |
maxValidationErrors |
integer | 返される検証エラーの最大数を指定します。指定しない場合は、デフォルトの上限が適用されます。 | |
model |
object(ShipmentModel) |
必須。最適化する車両と配送のセット。 | |
populatePolylines |
boolean(true/false) |
true の場合、ルートのエンコードされたポリラインを返します。 |
|
populateTransitionPolylines |
boolean(true/false) |
true の場合、訪問間の個々の遷移のエンコードされたポリラインを返します。 |
|
refreshDetailsRoutes[] |
オブジェクトの配列(ShipmentRoute) |
更新するルートのリスト。これにより、訪問順序を変更せずに、既存のルートのポリライン、所要時間、距離が再計算されます。 | |
searchMode |
enum(SearchMode) |
RETURN_FAST(高速結果)または CONSUME_ALL_AVAILABLE_TIME(タイムアウト内の最高品質)。 |
|
solvingMode |
enum(SolvingMode) |
DEFAULT_SOLVE(デフォルト)または VALIDATE_ONLY を使用して、解決せずにモデルを検証します。 |
|
timeout |
期間 | ソルバーの最大実行時間(例: "30s"、"300s")。 | |
useGeodesicDistances |
boolean(true/false) |
true の場合、移動距離と時間は、測地線(直線)距離と geodesicMetersPerSecond 速度を使用して計算されます。 |
|
ShipmentModel( OptimizeToursRequest の一部) |
durationDistanceMatrices[] |
オブジェクトの配列(DurationDistanceMatrix) |
場所間のルーティングに使用されるカスタムの所要時間と距離の行列を指定します。 |
durationDistanceMatrixDstTags[] |
array of strings | カスタムの所要時間と距離のマトリックスの目的地(列)を定義するタグ。 | |
durationDistanceMatrixSrcTags[] |
array of strings | カスタムの所要時間と距離のマトリックスのソース(行)を定義するタグ。 | |
globalDurationCostPerHour |
数値 | ルートのグローバルな時間範囲(最も早い車両の出発から最も遅い車両の到着まで)の 1 時間あたりの費用。 | |
globalEndTime |
タイムスタンプ | モデル内のイベントの最新の終了時間。 | |
globalStartTime |
タイムスタンプ | モデル内のイベントの最も早い開始時刻。 | |
maxActiveVehicles |
integer | ソリューションでアクティブにできる車両の最大数。 | |
precedenceRules[] |
オブジェクトの配列(PrecedenceRule) |
特定の配送間の順序制約を定義するルール。 | |
shipments[] |
オブジェクトの配列(Shipment) |
サービス対象の配送のリスト。 | |
shipmentTypeIncompatibilities[] |
オブジェクトの配列(ShipmentTypeIncompatibility) |
特定の種類の荷物の配送を同じ車両で行うことを禁止するルール。 | |
shipmentTypeRequirements[] |
オブジェクトの配列(ShipmentTypeRequirement) |
特定の種類の荷物の配送に同じ車両を使用することを義務付けるルール。 | |
transitionAttributes[] |
オブジェクトの配列(TransitionAttributes) |
特定のタグが付いた訪問間の移行の追加費用、遅延、距離の制限を指定します。 | |
vehicles[] |
オブジェクトの配列(Vehicle) |
配送に使用できる車両のリスト。 | |
Shipment( ShipmentModel の一部) |
allowedVehicleIndices[] |
整数の配列 | この配送を実行できる車両のインデックス。 |
costsPerVehicle[] |
マップ(キー: 整数、値: 数値) | 特定の車両がこの配送を行う場合に発生する追加費用。 | |
costsPerVehicleIndices[] |
整数の配列 | costsPerVehicle 値が適用される車両のインデックス。 |
|
deliveries[] |
オブジェクトの配列(VisitRequest) |
荷物の配送方法の代替案。 | |
ignore |
boolean(true/false) |
true の場合、配送は無視され、最適化に使用されません。 |
|
label |
文字列 | 配送を識別するためのユーザー定義ラベル。レスポンスで返されます。 | |
loadDemands |
map(キー: 文字列、値: Load) |
この配送に必要な容量(重量、体積など)。 | |
penaltyCost |
数値 | 配送サービスが提供されない場合の費用。設定されていない場合、配送は必須です。 | |
pickups[] |
オブジェクトの配列(VisitRequest) |
荷物の受け取り方法の代替手段。 | |
pickupToDeliveryAbsoluteDetourLimit |
期間 | 直接経路と比較して、集荷から配達までの間に許容される最大絶対迂回時間。 | |
pickupToDeliveryRelativeDetourLimit |
数値 | 配送で許容される最大相対迂回(値が 2.0 の場合、合計時間は直接移動時間の最大 2 倍になります)。 | |
pickupToDeliveryTimeLimit |
期間 | 集荷の開始から配達の開始までの最大許容時間。 | |
shipmentType |
文字列 | 非互換性と要件のルールに使用されるタイプの分類。 | |
VisitRequest( Shipment の pickups と deliveries のコンポーネント) |
arrivalLocation |
object(LatLng) |
緯度と経度の座標で表した地理上の到着地点。 |
arrivalWaypoint |
object(Waypoint) |
車両が訪問を行うために到着する場所。座標またはプレイス ID で定義されます。 | |
cost |
数値 | この特定の訪問リクエストがソルバーによって選択された場合に発生する費用。 | |
departureLocation |
object(LatLng) |
緯度と経度の座標で表した出発地の地理的位置。 | |
departureWaypoint |
object(Waypoint) |
車両が訪問を完了した後に出発する場所。省略すると、arrivalWaypoint と同じであると見なされます。 |
|
duration |
期間 | 訪問時間(サービス時間)。たとえば、積み込み/荷降ろしにかかる時間。 | |
label |
文字列 | この特定の訪問リクエストのユーザー定義ラベル。レスポンスで返されます。 | |
loadDemands |
map(キー: 文字列、値: Load) |
この訪問での負荷の変更を指定する要求(例: -1(荷物を配達する場合)。 | |
tags[] |
array of strings | この訪問リクエストに付加されたタグ。これらは、transitionAttributes を使用して、この訪問と他の訪問の間の移動時間を計算するために使用されます。 |
|
timeWindows[] |
オブジェクトの配列(TimeWindow) |
この訪問の到着が許可されている時間枠。 | |
visitTypes[] |
array of strings | 訪問のタイプを表す文字列(例: 「delivery」、「installation」)。車両モデルから extraVisitDurationForVisitType を適用するために使用されます。 |
|
Vehicle( ShipmentModel の一部) |
breakRule |
object(BreakRule) |
休憩のルール(必須の昼休みなど)を定義します。 |
costPerHour |
数値 | ルートの合計所要時間 1 時間あたりの費用。 | |
costPerKilometer |
数値 | 走行距離 1 キロメートルあたりの費用。 | |
costPerTraveledHour |
数値 | 車両の移動中の 1 時間あたりの費用。 | |
endLocation |
object(LatLng) |
緯度と経度の座標で表した地理的な終点。 | |
endTags[] |
array of strings | 遷移属性に使用される、車両の最終状態を定義するタグ。 | |
endTimeWindows[] |
オブジェクトの配列(TimeWindow) |
車両がルートを終了できる時間帯。 | |
endWaypoint |
object(Waypoint) |
ウェイポイント(座標またはプレイス ID)を使用した地理的な最終地点。 | |
extraVisitDurationForVisitType |
map(キー: 文字列、値: Duration) | visitType に基づいて、サイト訪問の期間を延長します。 |
|
fixedCost |
数値 | ルートの距離や所要時間に関係なく、車両が使用された場合に適用される固定費用。 | |
ignore |
boolean(true/false) |
true の場合、車両は無視され、最適化に使用されません。 |
|
label |
文字列 | 車両のユーザー定義ラベル。レスポンスで返されます。 | |
loadLimits |
map(キー: 文字列、値: LoadLimit) |
車両の容量(最大重量、最大容量など)。 | |
routeDistanceLimit |
object(DistanceLimit) |
車両のルートの合計距離に対するハード制限またはソフト制限。 | |
routeDurationLimit |
object(DurationLimit) |
車両のルートの合計時間のハード制限またはソフト制限。 | |
routeModifiers |
object(RouteModifiers) |
有料道路、高速道路、フェリーを使わないなどの制約が 1 つ以上。 | |
startLocation |
object(LatLng) |
緯度と経度の座標で表した地理的な開始位置。 | |
startTags[] |
array of strings | 遷移属性に使用される、車両の開始状態を定義するタグ。 | |
startTimeWindows[] |
オブジェクトの配列(TimeWindow) |
車両がルートを開始できる時間帯。 | |
startWaypoint |
object(Waypoint) |
Waypoint を使用した地理的な開始位置(座標またはプレイス ID)。 | |
travelDurationLimit |
object(DurationLimit) |
車両の合計移動時間(待機時間/サービス時間を除く)の上限(ハードまたはソフト)。 | |
travelDurationMultiple |
数値 | 移動時間に適用される乗数(例: 1.5 にすると、移動速度が 50% 遅くなります)。 | |
travelMode |
enum(TravelMode) |
移動手段(例: DRIVING、WALKING)。移動時間と距離に影響します。 |
|
unloadingPolicy |
enum(UnloadingPolicy) |
荷降ろし順序を定義します(例: LIFO または LAST_IN_FIRST_OUT)。 |
|
usedIfRouteIsEmpty |
boolean(true/false) |
true の場合、出荷がなくても車両は使用済みと見なされます。固定費が発生し、開始地点と終了地点の間を移動します。 |
レスポンスの本文
レスポンスの本文には、次の要素が含まれます。これらの要素は、右の図に示され、下の表に記載されています。
OptimizeToursResponse: 最適化されたルートと指標を含む最上位のレスポンス オブジェクト。Metrics: ソリューションの全体的な費用と実行の統計情報。ShipmentRoute: 1 台の車両に割り当てられた訪問と移動経路のシーケンス。Visit: 集荷または配達を行うルート上の停車地。Transition: 2 つのルートの停車場所間の移動経路と所要時間。AggregatedMetrics: 時間、距離、その他の指標の合計値。この要素は、MetricsとShipmentRouteの両方に存在できます。
| 親 | パラメータ | プロパティのタイプ | 説明 |
|---|---|---|---|
OptimizeToursResponse |
metrics |
object(Metrics) |
ソリューションの集計指標(合計費用、合計距離、合計時間、車両の使用回数など)。 |
requestLabel |
文字列 | リクエストの label フィールドからコピーされたラベル。レスポンスを元のリクエストに関連付けるために使用されます。 |
|
routes[] |
オブジェクトの配列(ShipmentRoute) |
各車両について計算されたルートのリスト。使用状況に関係なく、すべての車両のエントリが含まれます。 | |
skippedShipments[] |
オブジェクトの配列(SkippedShipment) |
スキップされた(サービス対象外の)配送のリストと、スキップされた理由。 | |
validationErrors[] |
オブジェクトの配列(OptimizeToursValidationError) |
入力モデルで見つかった検証エラーのリスト。solvingMode が VALIDATE_ONLY に設定されている場合、または解決中にエラーが発生した場合に入力されます。 |
|
Metrics( OptimizeToursResponse の一部) |
aggregatedRouteMetrics |
object(AggregatedMetrics) |
すべてのルートの集計統計情報(合計移動距離、合計所要時間、待ち時間など)。 |
costs |
map(キー: 文字列、値: 数値) | タイプ別の費用の内訳(例: "model.vehicles.cost_per_kilometer"、"model.shipments.penalty_cost")。 | |
earliestVehicleStartTime |
タイムスタンプ | 使用されたすべての車両の中で最も早い開始時間。 | |
latestVehicleEndTime |
タイムスタンプ | すべての使用済み車両の中で最も遅い終了時間。 | |
skippedMandatoryShipmentCount |
integer | スキップされた必須の配送の数。 | |
totalCost |
数値 | ソリューションの合計費用。すべてのルート費用とスキップされた配送のペナルティを合計したものです。 | |
usedVehicleCount |
integer | ソリューションで使用される車両の数。 | |
AggregatedMetrics( Metrics と ShipmentRoute の一部) |
breakDuration |
期間 | すべてのルートで取得した休憩時間の合計。 |
costs |
map(キー: 文字列、値: 数値) | タイプ別の費用の内訳(例: "model.vehicles.cost_per_kilometer"、"model.shipments.penalty_cost")。 | |
delayDuration |
期間 | すべてのルートの合計遅延時間。 | |
earliestVehicleStartTime |
タイムスタンプ | 使用されたすべての車両の中で最も早い開始時間。 | |
latestVehicleEndTime |
タイムスタンプ | すべての使用済み車両の中で最も遅い終了時間。 | |
maxLoads |
map(キー: 文字列、値: VehicleLoad) |
ソリューション内の任意の時点で任意の車両が運ぶ最大積載量。積載量のタイプでキー設定されます。 | |
performedShipmentCount |
integer | すべての車両で行われた配送の合計数。 | |
skippedMandatoryShipmentCount |
integer | スキップされた必須の配送の数。 | |
totalCost |
数値 | ソリューションの合計費用。すべてのルート費用とスキップされた配送のペナルティを合計したものです。 | |
totalDuration |
期間 | すべてのルートの合計時間(移動 + 待ち時間 + 遅延 + 休憩 + 訪問)。 | |
travelDistanceMeters |
数値 | すべてのルートの合計移動距離(メートル単位)。 | |
travelDuration |
期間 | すべてのルートの合計移動時間。 | |
usedVehicleCount |
integer | ソリューションで使用される車両の数。 | |
visitDuration |
期間 | すべてのルートで訪問(積み込み/荷降ろし)に費やされた合計時間。 | |
waitDuration |
期間 | すべてのルートの合計待機時間。 | |
ShipmentRoute( OptimizeToursResponse の一部) |
breaks[] |
オブジェクトの配列(Break) |
ルート中に車両が休憩したリスト。 |
hasTrafficInfeasibilities |
boolean(true/false) |
ルートに交通状況に関連する実行不可能性があるかどうかを示します。 | |
metrics |
object(AggregatedMetrics) |
このルートに固有の指標(総移動距離や所要時間など)。 | |
routeCosts |
map(キー: 文字列、値: 数値) | このルートの費用の内訳。キーは費用タイプ(cost_per_hour など)で、値は金額です。 | |
routePolyline |
object(EncodedPolyline) |
ルートの全パスを地理的に表すエンコードされたポリライン。 | |
routeTotalCost |
数値 | ルートの合計費用。routeCosts マップ内のすべての費用の合計。 |
|
transitions[] |
オブジェクトの配列(Transition) |
訪問をつなぐ遷移(旅行区間)の順序付きリスト。 | |
vehicleEndTime |
タイムスタンプ | 車両がルートを完了する時刻。 | |
vehicleIndex |
integer | このルートを実行するソース ShipmentModel 内の車両のインデックス。 |
|
vehicleLabel |
文字列 | リクエスト モデルからコピーされた、車両のユーザー定義ラベル。 | |
vehicleStartTime |
タイムスタンプ | 車両がルートを開始する時刻。 | |
visits[] |
オブジェクトの配列(Visit) |
このルートで車両が実行する訪問(集荷と配達)の順序。 | |
Visit( ShipmentRoute の一部) |
detour |
期間 | この訪問によって発生した、前の訪問と次の訪問の間の直接経路と比較した余分な迂回時間。 |
isPickup |
boolean(true/false) |
true の場合、この訪問は集荷です。false の場合、配達です。 |
|
loadDemands |
map(キー: 文字列、値: Load) |
この訪問で満たされる負荷の需要(配達の場合は -1 など)。これは、対応する VisitRequest ロード需要のコピーです。 |
|
shipmentIndex |
integer | このアクセスがサービスを提供するソースモデルの Shipment フィールドのインデックス。 |
|
shipmentLabel |
文字列 | ShipmentModel からコピーされた配送のラベル。 |
|
startTime |
タイムスタンプ | 訪問が開始される予定の時刻。 | |
visitLabel |
文字列 | モデルの VisitRequest からコピーされた、訪問リクエストのラベル。 |
|
visitRequestIndex |
integer | この訪問に対応する配送の集荷または配達リスト内の VisitRequest のインデックス。 |
|
Transition( ShipmentRoute の一部) |
breakDuration |
期間 | この移行中に取得した休憩時間。 |
delayDuration |
期間 | この切り替え中に発生した遅延時間(早く到着して時間枠を待つなど)。 | |
routePolyline |
object(EncodedPolyline) |
この特定のトランジションのパスを表すエンコードされたポリライン。 | |
routeToken |
文字列 | ナビゲーション中にルートを再構築するために Google Navigation SDK に渡すことができる不透明なトークン。 | |
startTime |
タイムスタンプ | この遷移の開始時間。 | |
totalDuration |
期間 | 移動、待機、休憩、遅延などを含む、移行の合計時間。 | |
trafficInfoUnavailable |
boolean(true/false) |
true の場合、この遷移のトラフィック データが利用できなかったことを示します。 |
|
travelDistanceMeters |
数値 | この遷移中に移動した距離(メートル単位)。 | |
travelDuration |
期間 | この移行期間中の移動時間。 | |
vehicleLoads |
map(キー: 文字列、値: VehicleLoad) |
この移行中に車両が運ぶ荷物。荷物の種類(乗客、貨物など)でキー設定されます。「weight」)。 | |
waitDuration |
期間 | 次の訪問を開始するまでの待機時間。 |