Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Avrupa Ekonomik Alanı (AEA) geliştiricileri
Rota Optimizasyonuna Genel Bakış bölümünde kısaca açıklandığı gibi, temel bir istek Model, Shipments ve Vehicles'dan oluşur. Bu öğeler gerekli öğelerdir:
Model, Shipments ve Vehicles dahil olmak üzere tüm isteğin ayarlarını ve kısıtlamalarını yakalar.
Gönderimler, teslim alma ve teslimat VisitRequest işlemlerini içeren görevleri veya gerçek gönderimleri ifade eder. Gönderilerde yerel ayarlar ve kısıtlamalar bulunur.
Araçlar, araçları, sürücüleri veya personeli temsil eder. Araçlarda yerel ayarlar ve kısıtlamalar da bulunur.
Her varlığın özellikleri, belirli bir ayrıntı düzeyinde optimizasyon sorununun bir bölümünü açıklar. Model genelindeki kısıtlamalar tüm gönderiler ve araçlar için geçerlidir. Gönderilerde veya araçlarda belirtilen kısıtlamalar ve özellikler ise tek bir gönderi ya da araç için geçerlidir.
Her mesaj türüyle ilgili eksiksiz doküman için ShipmentModel (REST, gRPC), Shipment (REST, gRPC) ve Vehicle (REST, gRPC) mesajlarının referans dokümanlarına bakın.
OptimizeToursRequest tesis
Üst düzey OptimizeToursRequest mesajının (REST, gRPC) yaygın olarak kullanılan bazı özellikleri şunlardır:
searchMode, belirtilen kısıtlamaları karşılayan ilk çözümün döndürülüp döndürülmeyeceğini veya belirli bir son tarih içinde mümkün olan en iyi çözümün bulunup bulunmayacağını gösterir.
considerRoadTraffic, yönlendirme ve TVS tahmini için canlı trafiğin kullanılıp kullanılmayacağını belirler.
ShipmentModel mesajının (REST, gRPC) yaygın olarak kullanılan bazı özellikleri şunlardır:
globalStartTime, tüm araçlar ve gönderilerdeki rotaların en erken başlangıç zamanını gösterir. Hiçbir araç, ilk geçişlerine ve gönderimlerine bu tarihten önce başlayamaz.
globalEndTime, tüm araçlar ve gönderilerdeki rotaların en son bitiş zamanını gösterir. Bu zamana kadar, atanan tüm gönderiler ve geçişler tamamlanmış olmalıdır.
Kargo özellikleri
Shipment mesajının (REST, gRPC) yaygın olarak kullanılan bazı özellikleri şunlardır:
pickups[] ve deliveries[], gönderinin nereden alınabileceğini veya nereye bırakılabileceğini gösterir. pickups[] ve deliveries[] özellikleri, VisitRequest mesajını (REST, gRPC) kullanır.
loadDemands, bir aracın gönderimi tamamlaması için gereken yükü temsil eder. Araçların ilgili load_limits (REST, gRPC) özelliği, bir aracın tek seferde ne kadar yük taşıyabileceğini gösterir.
Yük hakkında daha fazla bilgiyi Yük Talepleri ve Sınırları başlıklı makalede bulabilirsiniz.
penalty_cost, bir gönderim atlanırsa oluşan maliyeti gösterir. Maliyet Modeli Parametreleri bölümünde maliyetler hakkında daha fazla bilgi edinin.
Araç özellikleri
Vehicle mesajının (REST, gRPC) yaygın olarak kullanılan bazı özellikleri şunlardır:
startLocation, bir aracın rotasına başlaması gereken yeri gösterir. Bu özellik isteğe bağlıdır. Belirtilmemesi halinde aracın rotası, ilk atanan gönderinin bulunduğu konumdan başlar.
endLocation, bir aracın rotasını nerede sonlandırması gerektiğini gösterir. Bu özellik isteğe bağlıdır. Belirtilmezse aracın rotası, son atanan gönderinin konumunda sona erer.
startTimeWindows[], bir aracın rotasına başlayabileceği zamanı gösterir. Bu özellik isteğe bağlıdır.
endTimeWindows[], bir aracın rotasına ne zaman başlayıp ne zaman sonlandırabileceğini gösterir.
Her iki özellik de isteğe bağlıdır.
loadLimits, gönderilerin yük taleplerini karşılamak için kullanılabilen araç kapasitesini gösterir. Yük talepleri ve sınırları hakkında daha fazla bilgiyi Yük Talepleri ve Sınırlar başlıklı makalede bulabilirsiniz.
JSON biçimindeki tam bir örnek istek şu şekilde görünür:
OptimizeTours ve BatchOptimizeTours, yukarıdaki örnekte olduğu gibi istek mesajlarını farklı şekillerde kullanır. Rota Optimizasyonu isteğinde bulunmadan önce bu iki yöntem arasındaki farkı anlamanız önemlidir:
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 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)"]]