ルート上の停車地の順序を最適化する
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
デフォルトでは、Routes API の Compute Routes
メソッドは、指定した順序で、ストップオーバー地点と呼ばれる複数の経由地を通るルートを計算します。
Routes API では、より効率的な順序に経由地を並べ替えて、指定されたルートを最適化できます。ウェイポイントの最適化では、移動時間が最適化されますが、最も効率的なルートを判断する際は、距離や進路変更の回数などの他の要素も考慮されます。
地点を最適化するには
ルート内のどの経由地でも via
が true
に設定されていないことを確認します(例: {"address": "Clare,SA", "via": true}
)。中間地点の詳細については、中間地点を指定するをご覧ください。
routing_preference
が TRAFFIC_AWARE_OPTIMAL
に設定されていないことを確認します。
optimize_waypoint_order
を true
に設定します。次に例を示します。
"optimizeWaypointOrder": "true",
フィールド マスクで routes.optimizedIntermediateWaypointIndex
フィールドを指定します。
REST
-H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex
RPC
const (fieldMask = "routes.optimizedIntermediateWaypointIndex")
経由地の順序が最適化される仕組みを理解する
Routes API でルート内の経由地の順序を最適化する方法は次のとおりです。
リクエストで指定した順序に基づいて、ウェイポイントに自動的にインデックスを付けます(0 から開始)。
リクエストでウェイポイントに割り当てられたインデックス番号を使用して、ウェイポイントの順序を最適化します。
最適化された地点の順序を routes.optimizedIntermediateWaypointIndex
の waypoint_order
フィールドの routes
オブジェクトで返します。
例
このリクエストは、南オーストラリア州アデレードから南オーストラリア州の主要なワイン産地までのルートを最適化し、アデレードに戻るようにリクエストしています。
curl -X POST -H 'content-type: application/json' -d ' {
"origin": {
"address": "Adelaide,SA"
},
"destination": {
"address": "Adelaide,SA"
},
"intermediates": [
{"address": "Barossa+Valley,SA"},
{"address": "Clare,SA"},
{"address": "Coonawarra,SA"},
{"address": "McLaren+Vale,SA"}
],
"travelMode": "DRIVE",
"optimizeWaypointOrder": "true"
}' \
-H 'Content-Type: application/json' \
-H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes,geocodingResults.intermediates.intermediateWaypointRequestIndex' \
'https://routes.googleapis.com/directions/v2:computeRoutes'
Routes API は、リクエストで指定された中間地点に 0 から始まるインデックスを付けます。次に例を示します。
0 {"address": "Barossa+Valley,SA"},
1 {"address": "Clare,SA"},
2 {"address": "Coonawarrav,SA"},
3 {"address": "McLaren+Vale,SA"}
リクエストで指定された 4 つの経由地のインデックス番号を使用して、サービスは最適化された順序を返します。
"optimizedIntermediateWaypointIndex": [
3,
2,
0,
1
]
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-07-22 UTC。
[null,null,["最終更新日 2025-07-22 UTC。"],[[["\u003cp\u003eThe Routes API's \u003ccode\u003eCompute Routes\u003c/code\u003e method can optimize the order of stops (waypoints) for greater efficiency by considering factors like travel time, distance, and turns.\u003c/p\u003e\n"],["\u003cp\u003eTo enable waypoint optimization, ensure no waypoints are marked as \u003ccode\u003evia\u003c/code\u003e, avoid using \u003ccode\u003eTRAFFIC_AWARE_OPTIMAL\u003c/code\u003e routing preference, and set \u003ccode\u003eoptimizeWaypointOrder\u003c/code\u003e to \u003ccode\u003etrue\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe API indexes waypoints based on their order in the request, optimizes the order, and returns the optimized sequence in the \u003ccode\u003eoptimizedIntermediateWaypointIndex\u003c/code\u003e field.\u003c/p\u003e\n"],["\u003cp\u003eRequests with waypoint optimization are billed at a higher rate on the ComputeRoutes-Advanced SKU.\u003c/p\u003e\n"]]],["The Routes API can optimize the order of stopover waypoints to create a more efficient route. To enable this, set `optimize_waypoint_order` to `true`, ensure no waypoints have `via: true` and the `routing_preference` is not `TRAFFIC_AWARE_OPTIMAL`. The API indexes waypoints, optimizes their order based on factors like travel time and distance, and returns the optimized order in `routes.optimizedIntermediateWaypointIndex`. This optimization is billed at a higher rate.\n"],null,["# Optimize the order of stops on your route\n\n**European Economic Area (EEA) developers** If your billing address is in the European Economic Area, effective on 8 July 2025, the [Google Maps Platform EEA Terms of Service](https://cloud.google.com/terms/maps-platform/eea) will apply to your use of the Services. Functionality varies by region. [Learn more](/maps/comms/eea/faq).\n\nBy default, the Routes API `Compute Routes`\nmethod calculates a route through multiple stops, called stopover waypoints, in\nthe order that you provide them.\n\nYou can have the Routes API optimize the provided route by rearranging\nstops in a more efficient order. Waypoint optimization optimizes for travel\ntime but also considers other factors such as distance and number of turns when\ndeciding which route is the most efficient.\n\nTo optimize waypoints\n---------------------\n\n1. Make sure none of the waypoints in the route have `via` set to `true`, for\n example: `{\"address\": \"Clare,SA\", \"via\": true}`. For more information about\n intermediate waypoints, see\n [Specify intermediate waypoints](/maps/documentation/routes/intermed_waypoints).\n\n2. Make sure the `routing_preference` is not set to `TRAFFIC_AWARE_OPTIMAL`.\n\n3. Set `optimize_waypoint_order` to `true`. For example:\n\n ```json\n \"optimizeWaypointOrder\": \"true\",\n ```\n4. Specify the `routes.optimizedIntermediateWaypointIndex` field in the field\n mask:\n\n **REST** \n\n ```json\n -H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex\n ```\n\n **RPC** \n\n ```gdscript\n const (fieldMask = \"routes.optimizedIntermediateWaypointIndex\")\n ```\n\n### Understand how waypoint order is optimized\n\nHere's how the Routes API optimizes the order of waypoints in a route:\n\n1. Automatically indexes the waypoints based on the order you provide\n them in the request, starting with 0.\n\n2. Optimizes the order of the waypoints using the index numbers it\n assigned to the waypoints in the request.\n\n3. Returns the optimized waypoint order in the `routes` object, in the\n `waypoint_order` field, under `routes.optimizedIntermediateWaypointIndex`.\n\n### Example\n\nThis request asks for optimization for a route from Adelaide, South Australia,\nto each of South Australia's main wine regions, and then returning to Adelaide. \n\n```json\ncurl -X POST -H 'content-type: application/json' -d ' {\n \"origin\": {\n \"address\": \"Adelaide,SA\"\n },\n \"destination\": {\n \"address\": \"Adelaide,SA\"\n },\n \"intermediates\": [\n {\"address\": \"Barossa+Valley,SA\"},\n {\"address\": \"Clare,SA\"},\n {\"address\": \"Coonawarra,SA\"},\n {\"address\": \"McLaren+Vale,SA\"}\n ],\n \"travelMode\": \"DRIVE\",\n \"optimizeWaypointOrder\": \"true\"\n }' \\\n-H 'Content-Type: application/json' \\\n-H 'X-Goog-Api-Key: YOUR_API_KEY' \\\n-H 'X-Goog-FieldMask: routes,geocodingResults.intermediates.intermediateWaypointRequestIndex' \\\n'https://routes.googleapis.com/directions/v2:computeRoutes'\n```\n\nThe Routes API indexes the intermediate waypoints provided in the\nrequest, starting at 0. For example: \n\n```json\n0 {\"address\": \"Barossa+Valley,SA\"},\n1 {\"address\": \"Clare,SA\"},\n2 {\"address\": \"Coonawarrav,SA\"},\n3 {\"address\": \"McLaren+Vale,SA\"}\n```\n\nUsing the index numbers for the four waypoints provided in the request, the\nservice then returns the optimized order: \n\n```json\n\"optimizedIntermediateWaypointIndex\": [\n 3,\n 2,\n 0,\n 1\n ]\n```\n| **Caution:** Requests using waypoint optimization are billed at a higher rate on the SKU for Compute Routes Pro. For more details, see [SKU: Routes: Compute Routes Pro](/maps/documentation/routes/usage-and-billing#compute-routes-pro-sku)."]]