Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Deweloperzy z Europejskiego Obszaru Gospodarczego (EOG)
Jak krótko opisano w omówieniu optymalizacji trasy, podstawowe żądanie składa się z modelu, przesyłek i pojazdów jako wymaganych elementów:
Model zawiera ustawienia i ograniczenia dotyczące całego żądania, w tym Shipments i Vehicles.
Przesyłki to zadania lub rzeczywiste przesyłki, które obejmują odbiór i dostawę VisitRequest. Przesyłki mają lokalne ustawienia i ograniczenia.
Pojazdy reprezentują pojazdy, kierowców lub personel. Pojazdy mają też lokalne ustawienia i ograniczenia.
Właściwości każdej encji opisują część problemu optymalizacji na określonym poziomie szczegółowości. Ograniczenia dotyczące całego modelu są stosowane do wszystkich przesyłek i pojazdów, natomiast ograniczenia i właściwości określone w przypadku przesyłek lub pojazdów dotyczą tylko jednej przesyłki lub jednego pojazdu.
Pełną dokumentację każdego typu wiadomości znajdziesz w dokumentacji referencyjnej dotyczącej wiadomości ShipmentModel (REST, gRPC), Shipment (REST, gRPC) i Vehicle (REST, gRPC).
OptimizeToursRequest miejsca zakwaterowania
Niektóre powszechnie używane właściwości wiadomości najwyższego poziomu OptimizeToursRequest (REST, gRPC) to:
searchMode określa, czy zwrócić pierwsze rozwiązanie, które spełnia określone ograniczenia, czy znaleźć najlepsze możliwe rozwiązanie w określonym terminie.
considerRoadTraffic określa, czy do wyznaczania trasy i szacowania czasu dotarcia na miejsce mają być używane aktualne dane o natężeniu ruchu.
populateTransitionPolylines określa, czy w odpowiedzi mają być zwracane polilinie trasy i tokeny trasy.
Właściwości modelu
Niektóre z najczęściej używanych właściwości wiadomości ShipmentModel (REST, gRPC) to:
globalStartTime to najwcześniejsza godzina rozpoczęcia tras dla wszystkich pojazdów i przesyłek. Żaden pojazd nie może rozpocząć pierwszych przejazdów i dostaw przed tym czasem.
globalEndTime – najnowsza godzina zakończenia tras wszystkich pojazdów i przesyłek. Wszystkie przypisane przesyłki i przeniesienia muszą zostać ukończone przed tym czasem.
Właściwości przesyłki
Oto niektóre z najczęściej używanych właściwości komunikatu Shipment (REST, gRPC):
pickups[] i deliveries[] oznaczają miejsca, w których można odebrać lub nadać przesyłkę. Właściwości pickups[] i deliveries[] korzystają z komunikatu VisitRequest (REST, gRPC).
loadDemands reprezentują ładunek wymagany do zrealizowania przesyłki przez pojazd. Odpowiednia właściwość load_limits (REST, gRPC)
pojazdów określa, ile ładunku może pomieścić pojazd w danym momencie.
Więcej informacji o obciążeniu znajdziesz w artykule Wymagania i limity dotyczące obciążenia.
penalty_cost – koszt poniesiony w przypadku pominięcia przesyłki. Więcej informacji o kosztach znajdziesz w sekcji Parametry modelu kosztów.
Właściwości pojazdu
Oto niektóre z najczęściej używanych właściwości komunikatu Vehicle (REST, gRPC):
startLocation oznacza miejsce, w którym pojazd musi rozpocząć trasę. Ta właściwość jest opcjonalna. Jeśli nie podasz tego parametru, trasa pojazdu rozpocznie się w miejscu pierwszego przypisanego do niego transportu.
endLocation oznacza miejsce, w którym pojazd musi zakończyć trasę. Ta właściwość jest opcjonalna. Jeśli nie zostanie określony, trasa pojazdu kończy się w lokalizacji ostatniej przypisanej przesyłki.
startTimeWindows[] oznacza, kiedy pojazd może rozpocząć trasę. Ta właściwość jest opcjonalna.
endTimeWindows[] oznacza, kiedy pojazd może rozpocząć i zakończyć trasę.
Obie właściwości są opcjonalne.
loadLimits reprezentuje pojemność pojazdu dostępną do realizacji dostaw. Więcej informacji o zapotrzebowaniu na obciążenie i limitach znajdziesz w artykule Zapotrzebowanie na obciążenie i limity.
Pełne przykładowe żądanie w formacie JSON wygląda tak:
OptimizeTours i BatchOptimizeTours przetwarzają wiadomości z żądaniami, takie jak w przykładzie powyżej, ale na różne sposoby. Zanim wyślesz prośbę o optymalizację trasy, musisz poznać różnicę między tymi 2 metodami:
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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)"]]