ShipmentModel içeren bir OptimizeToursRequest gönderir ve ShipmentRoute'ler içeren bir OptimizeToursResponse döndürür. Bunlar, araçların toplam maliyeti en aza indirmek için izleyeceği bir dizi rotadır.
ShipmentModel modeli temel olarak, gerçekleştirilmesi gereken Shipmentlardan ve Shipmentları taşımak için kullanılabilecek Vehiclelardan oluşur. ShipmentRoute, Vehicle için Shipment atar. Daha açık belirtmek gerekirse her araca bir dizi Visit atarlar. Burada bir Visit, bir Shipment için teslim alma veya teslimat olan bir VisitRequest değerine karşılık gelir.
Amaç, ShipmentRoute'leri Vehicle'lere atayarak toplam maliyeti en aza indirmektir. Maliyet, ShipmentModel içinde tanımlanan birçok bileşenden oluşur.
HTTP isteği
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*}:optimizeTours
URL, gRPC Kod Dönüştürme söz dizimini kullanır.
Yol parametreleri
| Parametreler | |
|---|---|
parent |
Zorunlu. Arama yapmak için hedef projeyi veya konumu seçin. Biçim:
Bölgesel |
İstek metni
İstek içeriği aşağıdaki yapıyla birlikte verileri içerir:
| JSON gösterimi |
|---|
{ "timeout": string, "model": { object ( |
| Alanlar | |
|---|---|
timeout |
Bu zaman aşımı ayarlanırsa sunucu, zaman aşımı süresi dolmadan veya senkronize istekler için sunucu son tarihine ulaşılmadan önce (hangisi daha önce gerçekleşirse) bir yanıt döndürür. Asenkron isteklerde sunucu, zaman aşımı süresi dolmadan önce bir çözüm üretir (mümkünse). |
model |
Çözülecek gönderi modeli. |
solvingMode |
Varsayılan olarak, çözme modu |
searchMode |
İsteği çözmek için kullanılan arama modu. |
injectedFirstSolutionRoutes[] |
Optimizasyon algoritmasını, önceki bir çözüme benzer bir ilk çözüm bulmaya yönlendirin. İlk çözüm oluşturulduğunda model kısıtlanır. Bir rotada gerçekleştirilmeyen gönderiler, ilk çözümde dolaylı olarak atlanır ancak sonraki çözümlerde gerçekleştirilebilir. Çözüm, bazı temel geçerlilik varsayımlarını karşılamalıdır:
Eklenen çözüm uygun değilse doğrulama hatası döndürülmeyebilir ve bunun yerine uygunsuzluğu belirten bir hata döndürülebilir. |
injectedSolutionConstraint |
Optimizasyon algoritmasını, önceki bir çözüme benzer nihai bir çözüm bulacak şekilde kısıtlayın. Örneğin, bu özellik, rotaların tamamlanmış veya tamamlanacak ancak değiştirilmemesi gereken kısımlarını dondurmak için kullanılabilir. Eklenen çözüm uygun değilse doğrulama hatası döndürülmeyebilir ve bunun yerine uygunsuzluğu belirten bir hata döndürülebilir. |
refreshDetailsRoutes[] |
Boş değilse verilen rotalar, temel ziyaret sıraları veya seyahat süreleri değiştirilmeden yenilenir: Yalnızca diğer ayrıntılar güncellenir. Bu işlem, modeli çözmez. Kasım 2020 itibarıyla bu, yalnızca boş olmayan rotaların çoklu çizgilerini doldurur ve İletilen rotaların Bu alan,
|
interpretInjectedSolutionsUsingLabels |
Doğruysa:
Bu yorumlama True (doğru) ise aşağıdaki kategorilerdeki etiketler, kendi kategorilerinde en fazla bir kez görünmelidir:
Eklenen çözümdeki bir Rota ziyaretlerini veya tüm rotaları eklenen bir çözümden kaldırmak, örtük kısıtlamaları etkileyebilir. Bu da çözümde değişikliğe, doğrulama hatalarına veya uygulanamazlığa yol açabilir. NOT: Çağrıyı yapan taraf, her |
considerRoadTraffic |
|
populatePolylines |
Doğru ise yanıtlarda çoklu çizgiler doldurulur |
populateTransitionPolylines |
Doğru ise yanıtta çoklu çizgiler ve rota jetonları doldurulur |
allowLargeDeadlineDespiteInterruptionRisk |
Bu ayar belirlenirse isteğin son tarihi (https://grpc.io/blog/deadlines adresine bakın) 60 dakikaya kadar olabilir. Aksi takdirde, maksimum süre yalnızca 30 dakikadır. Uzun süreli isteklerin kesintiye uğrama riskinin çok daha yüksek (ancak yine de düşük) olduğunu unutmayın. |
useGeodesicDistances |
Doğru ise seyahat mesafeleri Google Haritalar mesafeleri yerine jeodezik mesafeler kullanılarak hesaplanır ve seyahat süreleri, |
label |
Bu isteği tanımlamak için kullanılabilecek etiket, |
geodesicMetersPerSecond |
|
maxValidationErrors |
Döndürülen doğrulama hatalarının sayısını kısaltır. Bu hatalar, solvingMode=VALIDATE_ONLY olmadığı sürece genellikle INVALID_ARGUMENT hata yüküne BadRequest hata ayrıntısı (https://cloud.google.com/apis/design/errors#error_details) olarak eklenir: |
Yanıt metni
Başarılıysa yanıt metni, OptimizeToursResponse öğesinin bir örneğini içerir.
Yetkilendirme kapsamları
Aşağıdaki OAuth kapsamını gerektirir:
https://www.googleapis.com/auth/cloud-platform
IAM İzinleri
parent kaynağında aşağıdaki IAM iznini gerektirir:
routeoptimization.locations.use
Daha fazla bilgi için IAM belgelerini inceleyin.