ShipmentModel içeren bir OptimizeToursRequest gönderir ve ShipmentRoute içeren bir OptimizeToursResponse döndürür. Bunlar, araçlar tarafından toplam maliyeti en aza indiren rota grubudur.
ShipmentModel modeli, temel olarak yapılması gereken Shipment'lerden ve Shipment'leri taşımak için kullanılabilecek Vehicle'lerden oluşur. ShipmentRoute, Shipment'leri Vehicle'lere atar. Daha ayrıntılı olarak belirtmek gerekirse her bir araca bir Visit dizisi atar. Visit, bir Shipment için teslim alma veya teslimat olan VisitRequest değerine karşılık gelir.
Amaç, maliyetin ShipmentModel içinde tanımlanmış birçok bileşene sahip olduğu toplam maliyeti en aza indiren bir ShipmentRoute'lerin Vehicle'lere atanmasını sağlamaktır.
HTTP isteği
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*/locations/*}:optimizeTours
URL, gRPC Kod Dönüştürme söz dizimini kullanır.
Yol parametreleri
| Parametreler | |
|---|---|
parent |
Zorunlu. Arama yapmak için projeyi veya konumu hedefleyin. Biçim: * Herhangi bir konum belirtilmezse bölge otomatik olarak seçilir. |
İstek içeriği
İstek metni 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 eşzamanlı istekler için sunucu son tarihine (hangisi daha önceyse) ulaşılmadan önce yanıt döndürür. Eşzamansız istekler için sunucu, zaman aşımı dolmadan önce bir çözüm (mümkünse) oluşturur. En fazla dokuz kesirli basamak içeren ve " |
model |
Çözülmesi gereken gönderim modeli. |
solvingMode |
Çözme modu varsayılan olarak |
searchMode |
İsteği çözmek için kullanılan arama modu. |
injectedFirstSolutionRoutes[] |
Önceki bir çözüme benzer ilk çözümü bulma konusunda optimizasyon algoritmasına rehberlik edin. Model, ilk çözüm oluşturulduğunda kısıtlanır. Bir rota üzerinde gerçekleştirilmeyen tüm sevkiyatlar, ilk çözümde dolaylı olarak atlanır, ancak birbirini izleyen çözümlerde kullanılabilir. Çözüm, bazı temel geçerlilik varsayımlarını karşılamalıdır:
Yerleştirilen çözüm uygulanabilir değilse doğrulama hatası her zaman döndürülmez ve bunun yerine uygulanabilir olmadığını belirten bir hata döndürülebilir. |
injectedSolutionConstraint |
Önceki çözüme benzer nihai bir çözüm bulmak için optimizasyon algoritmasını kısıtlayın. Örneğin bu, tamamlanmış veya tamamlanmak üzere olan ancak değiştirilmemesi gereken rota bölümlerini dondurmak için kullanılabilir. Enjekte edilen çözüm uygun değilse doğrulama hatası döndürülmeyebilir ve bunun yerine uygun olmadığını belirten bir hata döndürülebilir. |
refreshDetailsRoutes[] |
Boş olmayan 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. 2020/11 itibarıyla bu işlem, yalnızca boş olmayan rotaların çoklu çizgilerini dolduruyor ve Geçilen rotaların Bu alan
|
interpretInjectedSolutionsUsingLabels |
Doğruysa:
Bu yorum Bu değer doğruysa aşağıdaki kategorilerdeki etiketler kategorilerinde en fazla bir kez görünmelidir:
Enjekte edilen çözümdeki bir Yerleştirilen bir çözümden rota ziyaretlerini veya rotaların tamamını kaldırmak, ima edilen kısıtlamaları etkileyebilir ve bu da çözümde, doğrulama hatalarında veya uygulanabilirlikte değişikliğe yol açabilir. NOT: Arayan, her |
considerRoadTraffic |
|
populatePolylines |
Doğru ise yanıt |
populateTransitionPolylines |
Doğru değerine ayarlanırsa |
allowLargeDeadlineDespiteInterruptionRisk |
Bu ayar belirlenirse istek için 60 dakikaya kadar bir son tarih (https://grpc.io/blog/deadlines adresine bakın) belirlenebilir. Aksi takdirde, maksimum son tarih yalnızca 30 dakikadır. Uzun ömürlü isteklerin kesinti riskinin önemli ölçüde daha yüksek (ancak yine de küçü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 hatası sayısını kısaltır. Bu hatalar genellikle solvingMode=VALIDATE_ONLY olmadığı sürece INVALID_ARGUMENT hata yüküne BadRequest hata ayrıntısı (https://cloud.google.com/apis/design/errors#error_details) olarak eklenir: |
Yanıt gövdesi
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 izni gerekir:
routeoptimization.locations.use
Daha fazla bilgi için IAM belgelerini inceleyin.