Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Entwickler im Europäischen Wirtschaftsraum (EWR)
Wie in der Übersicht zur Routenoptimierung kurz beschrieben, besteht eine grundlegende Anfrage aus den erforderlichen Einheiten Modell, Lieferungen und Fahrzeuge:
Model erfasst Einstellungen und Einschränkungen für die gesamte Anfrage, einschließlich Shipments und Vehicles.
Sendungen stellen Aufgaben oder tatsächliche Sendungen dar, die VisitRequests für die Abholung und Zustellung umfassen. Für Sendungen gelten lokale Einstellungen und Einschränkungen.
Fahrzeuge stehen für Fahrzeuge, Fahrer oder Personal. Fahrzeuge haben auch lokale Einstellungen und Einschränkungen.
Die Eigenschaften jeder Einheit beschreiben einen Teil eines Optimierungsproblems auf einer bestimmten Granularitätsebene. Modellweite Einschränkungen werden auf alle Sendungen und Fahrzeuge angewendet, während Einschränkungen und Eigenschaften, die für Sendungen oder Fahrzeuge angegeben sind, nur für eine einzelne Sendung oder ein einzelnes Fahrzeug gelten.
Die vollständige Dokumentation zu den einzelnen Nachrichtentypen finden Sie in der Referenzdokumentation für ShipmentModel- (REST, gRPC), Shipment- (REST, gRPC) und Vehicle-Nachrichten (REST, gRPC).
OptimizeToursRequest Unterkünfte
Zu den häufig verwendeten Eigenschaften der OptimizeToursRequest-Nachricht auf oberster Ebene (REST, gRPC) gehören:
searchMode gibt an, ob die erste Lösung zurückgegeben werden soll, die die angegebenen Einschränkungen erfüllt, oder ob innerhalb einer bestimmten Frist die bestmögliche Lösung gefunden werden soll.
Mit considerRoadTraffic wird festgelegt, ob Live-Traffic für die Routenplanung und die Schätzung der voraussichtlichen Ankunftszeit verwendet wird.
Mit populateTransitionPolylines wird festgelegt, ob Routenpolylinien und Routentokens in der Antwort zurückgegeben werden.
Modellattribute
Einige häufig verwendete Eigenschaften der ShipmentModel-Nachricht (REST, gRPC) sind:
globalStartTime steht für die früheste Startzeit von Routen für alle Fahrzeuge und Sendungen. Vor diesem Zeitpunkt dürfen keine ersten Übergänge und Sendungen für Fahrzeuge erfolgen.
globalEndTime steht für die letzte Endzeit von Routen für alle Fahrzeuge und Sendungen. Alle zugewiesenen Sendungen und Übergänge müssen bis zu diesem Zeitpunkt abgeschlossen sein.
Versandeigenschaften
Einige häufig verwendete Eigenschaften der Shipment-Nachricht (REST, gRPC) sind:
pickups[] und deliveries[] geben an, wo eine Sendung abgeholt oder abgeliefert werden kann. Für die Properties pickups[] und deliveries[] wird die VisitRequest-Nachricht verwendet (REST, gRPC).
loadDemands steht für die Last, die für ein Fahrzeug erforderlich ist, um eine Lieferung abzuschließen. Die entsprechende load_limits-Eigenschaft (REST, gRPC) von Fahrzeugen gibt an, wie viel Ladung ein Fahrzeug gleichzeitig aufnehmen kann.
Weitere Informationen zur Belastung finden Sie unter Load Demands and Limits (Anforderungen und Limits für die Belastung).
penalty_cost steht für die Kosten, die anfallen, wenn eine Sendung übersprungen wird. Weitere Informationen zu den Kosten finden Sie unter Parameter des Kostenmodells.
Fahrzeugeigenschaften
Einige häufig verwendete Eigenschaften der Vehicle-Nachricht (REST, gRPC) sind:
startLocation gibt an, wo ein Fahrzeug seine Route beginnen muss. Dieses Attribut ist optional. Wenn nicht angegeben, beginnt die Route des Fahrzeugs am Standort der ersten zugewiesenen Sendung.
endLocation gibt an, wo ein Fahrzeug seine Route beenden muss. Dieses Attribut ist optional. Wenn nichts angegeben ist, endet die Route des Fahrzeugs am Ort der letzten zugewiesenen Sendung.
startTimeWindows[] gibt an, wann ein Fahrzeug seine Route beginnen kann. Dieses Attribut ist optional.
endTimeWindows[] gibt an, wann ein Fahrzeug seine Route beginnen und beenden kann.
Beide Attribute sind optional.
loadLimits steht für die Kapazität des Fahrzeugs, die zur Erfüllung der Ladeanforderungen von Sendungen zur Verfügung steht. Weitere Informationen zu Lastanforderungen und ‑limits finden Sie unter Load Demands and Limits.
Eine vollständige Beispielanfrage im JSON-Format sieht so aus:
OptimizeTours und BatchOptimizeTours verarbeiten beide Anfragenachrichten wie im Beispiel oben, aber auf unterschiedliche Weise. Bevor Sie eine Anfrage zur Routenoptimierung stellen, sollten Sie den Unterschied zwischen den beiden Methoden kennen:
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-09-04 (UTC)."],[[["\u003cp\u003eRoute Optimization requests require defining a \u003ccode\u003eModel\u003c/code\u003e with \u003ccode\u003eShipments\u003c/code\u003e and \u003ccode\u003eVehicles\u003c/code\u003e to represent the optimization problem.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eModel\u003c/code\u003e sets global parameters, while \u003ccode\u003eShipments\u003c/code\u003e and \u003ccode\u003eVehicles\u003c/code\u003e have individual properties and constraints for pickups, deliveries, loads, and time windows.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eOptimizeToursRequest\u003c/code\u003e allows controlling the search mode, traffic considerations, and response details.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eOptimizeTours\u003c/code\u003e and \u003ccode\u003eBatchOptimizeTours\u003c/code\u003e offer synchronous and asynchronous request processing, respectively, with key differences in handling large or complex scenarios.\u003c/p\u003e\n"],["\u003cp\u003eYou can specify global start and end times for all vehicles and shipments within the \u003ccode\u003eShipmentModel\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Construct a request message\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\nAs briefly described in [Route Optimization Overview](/maps/documentation/route-optimization/overview), a basic request\nconsists of **Model** , **Shipments** , and **Vehicles** as required entities:\n\n- **Model** captures settings and constraints for the entire request, inclusive of both `Shipments` and `Vehicles`.\n- **Shipments** represent tasks or actual shipments that include pickup and delivery `VisitRequest`s. Shipments have local settings and constraints.\n- **Vehicles** represent vehicles, drivers, or personnel. Vehicles also have local settings and constraints.\n\nEach entity's properties describe part of an optimization problem at a\nparticular level of granularity. Model-wide constraints are applied to all\nshipments and vehicles, while constraints and properties specified on shipments\nor vehicles are specific to a single shipment or vehicle.\n\nFor complete documentation on each message type, see the reference documentation\nfor `ShipmentModel` ([REST](/maps/documentation/route-optimization/reference/rest/v1/ShipmentModel), [gRPC](/maps/documentation/route-optimization/reference/rpc/google.maps.routeoptimization.v1#google.maps.routeoptimization.v1.ShipmentModel)), `Shipment` ([REST](/maps/documentation/route-optimization/reference/rest/v1/ShipmentModel#Shipment), [gRPC](/maps/documentation/route-optimization/reference/rpc/google.maps.routeoptimization.v1#google.maps.routeoptimization.v1.Shipment)),\nand `Vehicle` ([REST](/maps/documentation/route-optimization/reference/rest/v1/ShipmentModel#Vehicle), [gRPC](/maps/documentation/route-optimization/reference/rpc/google.maps.routeoptimization.v1#google.maps.routeoptimization.v1.Vehicle)) messages.\n\n`OptimizeToursRequest` properties\n---------------------------------\n\nSome commonly used properties of the top-level `OptimizeToursRequest` message\n([REST](/maps/documentation/route-optimization/reference/rest/v1/projects/optimizeTours), [gRPC](/maps/documentation/route-optimization/reference/rpc/google.maps.routeoptimization.v1#google.maps.routeoptimization.v1.OptimizeToursRequest)) include the following:\n\n- `searchMode` indicates whether to return the first solution that satisfies specified constraints or find the best possible solution within a set deadline.\n- `considerRoadTraffic` determines whether or not live traffic is used for routing and ETA estimation.\n- `populateTransitionPolylines` determines whether or not route polylines and route tokens are returned in the response.\n\nModel properties\n----------------\n\nSome commonly used properties of the `ShipmentModel` message ([REST](/maps/documentation/route-optimization/reference/rest/v1/ShipmentModel),\n[gRPC](/maps/documentation/route-optimization/reference/rpc/google.maps.routeoptimization.v1#google.maps.routeoptimization.v1.ShipmentModel)) include:\n\n- `globalStartTime` represents the earliest start time of routes across all vehicles and shipments. No vehicle may start its first transitions and shipments before this time.\n- `globalEndTime` represents the latest end time of routes across all vehicles and shipments. All assigned shipments and transitions must be complete before this time.\n\nShipment properties\n-------------------\n\nSome commonly used properties of the `Shipment` message ([REST](/maps/documentation/route-optimization/reference/rest/v1/ShipmentModel#Shipment), [gRPC](/maps/documentation/route-optimization/reference/rpc/google.maps.routeoptimization.v1#google.maps.routeoptimization.v1.Shipment))\ninclude:\n\n- `pickups[]` and `deliveries[]` represent where a shipment can be picked up or dropped off. `pickups[]` and `deliveries[]` properties both use the `VisitRequest` message ([REST](/maps/documentation/route-optimization/reference/rest/v1/ShipmentModel#VisitRequest), [gRPC](/maps/documentation/route-optimization/reference/rpc/google.maps.routeoptimization.v1#google.maps.routeoptimization.v1.Shipment.VisitRequest)).\n- `loadDemands` represent the load required for a vehicle to complete a shipment. Vehicles' corresponding `load_limits` ([REST](/maps/documentation/route-optimization/reference/rest/v1/ShipmentModel#Vehicle.FIELDS.load_limits), [gRPC](/maps/documentation/route-optimization/reference/rpc/google.maps.routeoptimization.v1#google.maps.routeoptimization.v1.Vehicle.FIELDS.repeated.google.maps.routeoptimization.v1.Vehicle.LoadLimitsEntry.google.maps.routeoptimization.v1.Vehicle.load_limits)) property represents how much load a vehicle can accommodate at one time. Read more about load in [Load Demands and Limits](/maps/documentation/route-optimization/load-demands-limits).\n- `penalty_cost` represents the cost incurred if a shipment is skipped. Read more on costs in [Cost Model Parameters](/maps/documentation/route-optimization/cost-model).\n\nVehicle properties\n------------------\n\nSome commonly used properties of the `Vehicle` message ([REST](/maps/documentation/route-optimization/reference/rest/v1/ShipmentModel#Vehicle), [gRPC](/maps/documentation/route-optimization/reference/rpc/google.maps.routeoptimization.v1#google.maps.routeoptimization.v1.Vehicle))\ninclude:\n\n- `startLocation` represents where a vehicle must start its route. This property is optional. If not specified, the vehicle's route starts at the location of its first assigned shipment.\n- `endLocation` represents where a vehicle must end its route. This property is optional. If not specified, the vehicle's route ends at the location of its last assigned shipment.\n- `startTimeWindows[]` represents when a vehicle can start its route. This property is optional.\n- `endTimeWindows[]` represents when a vehicle can start and end its route. Both properties are optional.\n- `loadLimits` represent the vehicle's capacity available to meet shipments' load demands. Read more about load demands and limits in [Load Demands and\n Limits](/maps/documentation/route-optimization/load-demands-limits).\n\nA complete example request in JSON format looks like: \n\n {\n \"model\": {\n \"shipments\": [\n {\n \"pickups\": [\n {\n \"arrivalLocation\": {\n \"latitude\": 37.73881799999999,\n \"longitude\": -122.4161\n }\n }\n ],\n \"deliveries\": [\n {\n \"arrivalLocation\": {\n \"latitude\": 37.79581,\n \"longitude\": -122.4218856\n }\n }\n ]\n }\n ],\n \"vehicles\": [\n {\n \"startLocation\": {\n \"latitude\": 37.73881799999999,\n \"longitude\": -122.4161\n },\n \"endLocation\": {\n \"latitude\": 37.73881799999999,\n \"longitude\": -122.4161\n },\n \"costPerKilometer\": 1.0\n }\n ],\n \"globalStartTime\": \"2024-02-13T00:00:00.000Z\",\n \"globalEndTime\": \"2024-02-14T06:00:00.000Z\"\n }\n }\n\n`OptimizeTours` and `BatchOptimizeTours` both consume request messages like the\nexample above, but in different ways. Before making a Route Optimization\nrequest, it's important to understand the difference between the two methods:\n\n[Comparing OptimizeTours and BatchOptimizeTours](/maps/documentation/route-optimization/sync-vs-async)"]]