Dizin
RouteOptimization(arayüz)AggregatedMetrics(message)BatchOptimizeToursMetadata(message)BatchOptimizeToursRequest(message)BatchOptimizeToursRequest.AsyncModelConfig(message)BatchOptimizeToursResponse(message)BreakRule(message)BreakRule.BreakRequest(message)BreakRule.FrequencyConstraint(message)DataFormat(enum)DistanceLimit(mesaj)GcsDestination(message)GcsSource(message)InjectedSolutionConstraint(message)InjectedSolutionConstraint.ConstraintRelaxation(message)InjectedSolutionConstraint.ConstraintRelaxation.Relaxation(message)InjectedSolutionConstraint.ConstraintRelaxation.Relaxation.Level(enum)InputConfig(mesaj)Location(message)OptimizeToursLongRunningMetadata(message)OptimizeToursRequest(message)OptimizeToursRequest.SearchMode(enum)OptimizeToursRequest.SolvingMode(enum)OptimizeToursResponse(mesaj)OptimizeToursResponse.Metrics(message)OptimizeToursUriMetadata(message)OptimizeToursUriRequest(message)OptimizeToursUriResponse(message)OptimizeToursValidationError(message)OptimizeToursValidationError.FieldReference(message)OutputConfig(message)RouteModifiers(message)Shipment(message)Shipment.Load(message)Shipment.VisitRequest(message)ShipmentModel(message)ShipmentModel.DurationDistanceMatrix(message)ShipmentModel.DurationDistanceMatrix.Row(message)ShipmentModel.Objective(message)ShipmentModel.Objective.Type(enum)ShipmentModel.PrecedenceRule(mesaj)ShipmentRoute(message)ShipmentRoute.Break(message)ShipmentRoute.EncodedPolyline(message)ShipmentRoute.Transition(message)ShipmentRoute.VehicleLoad(message)ShipmentRoute.Visit(message)ShipmentRoute.Visit.VisitType(enum)ShipmentTypeIncompatibility(mesaj)ShipmentTypeIncompatibility.IncompatibilityMode(enum)ShipmentTypeRequirement(mesaj)ShipmentTypeRequirement.RequirementMode(enum)SkippedShipment(mesaj)SkippedShipment.Reason(message)SkippedShipment.Reason.Code(enum)TimeWindow(mesaj)TransitionAttributes(message)Uri(message)Vehicle(message)Vehicle.DurationLimit(message)Vehicle.LoadLimit(message)Vehicle.LoadLimit.Interval(message)Vehicle.LoadLimit.LoadCost(message)Vehicle.TravelMode(enum)Vehicle.UnloadingPolicy(enum)VehicleFullness(mesaj)Waypoint(mesaj)
RouteOptimization
Araç turlarını optimize etmeye yönelik bir hizmet.
Belirli alan türlerinin geçerliliği:
google.protobuf.Timestamp- Zamanlar Unix zamanı cinsindendir: 1970-01-01T00:00:00+00:00'dan itibaren geçen saniye sayısı.
- Saniye değeri [0, 253402300799] aralığında, yani [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00] aralığında olmalıdır.
- nanos ayarlanmamalı veya 0 olarak ayarlanmalıdır.
google.protobuf.Duration- Saniye değeri [0, 253402300799] aralığında, yani [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00] aralığında olmalıdır.
- nanos ayarlanmamalı veya 0 olarak ayarlanmalıdır.
google.type.LatLng- Enlem [-90,0, 90,0] aralığında olmalıdır.
- Boylam [-180,0, 180,0] aralığında olmalıdır.
- Enlem ve boylamdan en az biri sıfır olmamalıdır.
| BatchOptimizeTours |
|---|
|
Bir veya daha fazla Bu yöntem, uzun süreli bir işlemdir (LRO). Optimizasyon için girişler ( Kullanıcı, LRO'nun durumunu kontrol etmek için LRO LRO'nun
|
| OptimizeTours |
|---|
|
Amaç,
|
| OptimizeToursLongRunning |
|---|
|
Bu, büyük zaman aşımı değerlerine sahip optimizasyonlar için tasarlanmış Döndürülen
|
| OptimizeToursUri |
|---|
|
Bu, büyük zaman aşımı değerleri ve büyük giriş/çıkış boyutları içeren optimizasyonlar için tasarlanmış İstemci, Google Cloud Storage'da depolanan Bu yöntem, birkaç dakikadan uzun süren optimizasyonlar ve 8 MB'tan büyük giriş/çıkış boyutları için Döndürülen
|
AggregatedMetrics
Tüm Transition ve/veya Visit (veya tüm ShipmentRoute) öğeleri için ShipmentRoute (veya OptimizeToursResponse) ile ilgili toplu metrikler.
| Alanlar | |
|---|---|
performed_shipment_count |
Gerçekleştirilen gönderim sayısı. Teslim alma ve teslim etme çiftinin yalnızca bir kez sayıldığını unutmayın. |
travel_duration |
Bir rota veya çözüm için toplam seyahat süresi. |
wait_duration |
Bir rota veya çözüm için toplam bekleme süresi. |
delay_duration |
Bir rota veya çözüm için toplam gecikme süresi. |
break_duration |
Bir rota veya çözüm için toplam mola süresi. |
visit_duration |
Bir rota veya çözüm için toplam ziyaret süresi. |
total_duration |
Toplam süre, yukarıdaki tüm sürelerin toplamına eşit olmalıdır. Rotalar için şunlara da karşılık gelir: |
travel_distance_meters |
Bir rota veya çözüm için toplam seyahat mesafesi. |
max_loads |
Bu rotadaki (veya çözümdeki) her bir miktar için tüm rota (veya çözüm) boyunca ulaşılan maksimum yük. Tüm |
performed_mandatory_shipment_count |
Zorunlu gönderimlerin sayısı. Deneysel: Bu alanın davranışı veya varlığı gelecekte değişebilir. |
performed_shipment_penalty_cost_sum |
Gerçekleştirilen gönderilerin Deneysel: Bu alanın davranışı veya varlığı gelecekte değişebilir. |
BatchOptimizeToursMetadata
Bu türün alanı yok.
BatchOptimizeToursRequest çağrıları için işlem meta verileri.
BatchOptimizeToursRequest
Turları eşzamansız bir işlem olarak toplu optimize etme isteği. Her giriş dosyası bir OptimizeToursRequest, her çıkış dosyası ise bir OptimizeToursResponse içermelidir. İstek, dosyaları okuma/yazma ve ayrıştırma bilgilerini içerir. Tüm giriş ve çıkış dosyaları aynı projede olmalıdır.
| Alanlar | |
|---|---|
parent |
Zorunlu. Çağrı yapılacak hedef proje ve konum. Biçim:
Bölgesel |
model_configs[] |
Zorunlu. Her satın alma modeli için giriş/çıkış bilgileri (ör. dosya yolları ve veri biçimleri) |
AsyncModelConfig
Bir optimizasyon modelini eşzamansız olarak çözmeyle ilgili bilgiler.
| Alanlar | |
|---|---|
display_name |
İsteğe bağlıdır. Kullanıcı tarafından tanımlanan model adı, kullanıcılar tarafından modelleri takip etmek için takma ad olarak kullanılabilir. |
input_config |
Zorunlu. Giriş modeliyle ilgili bilgiler. |
output_config |
Zorunlu. İstenen çıkış konumu bilgileri. |
BatchOptimizeToursResponse
Bu türün alanı yok.
BatchOptimizeToursRequest için yanıt. Bu, işlem tamamlandıktan sonra uzun süreli işlemde döndürülür.
BreakRule
Bir araç için zaman araları (ör. öğle yemekleri) oluşturma kuralları. Mola, aracın mevcut konumunda boşta kaldığı ve herhangi bir ziyaret gerçekleştiremediği bitişik bir zaman dilimidir. Aşağıdaki durumlarda kesinti yaşanabilir:
- İki ziyaret arasındaki seyahat sırasında (ziyaretten hemen önce veya hemen sonraki zamanı içerir ancak ziyaretin ortasındaki zamanı içermez). Bu durumda, ziyaretler arasındaki ilgili nakliye süresini uzatır.
- veya araç çalıştırılmadan önce (araç, mola sırasında çalıştırılamayabilir). Bu durumda, aracın çalıştırılma zamanı etkilenmez.
- veya araç bitişinden sonra (aynı şekilde, araç bitiş zamanıyla birlikte).
| Alanlar | |
|---|---|
break_requests[] |
Ara dizisi. |
frequency_constraints[] |
Birden fazla |
BreakRequest
Her araç için geçerli olan mola sırası (yani mola sayısı ve sırası) önceden bilinmelidir. Yinelenen BreakRequest, bu adım sırasını gerçekleşmesi gereken sırayla tanımlar. Zaman aralıkları (earliest_start_time / latest_start_time) çakışabilir ancak siparişle uyumlu olmalıdır (bu kontrol edilir).
| Alanlar | |
|---|---|
earliest_start_time |
Zorunlu. Aranın başlangıcı için alt sınır (dahil). |
latest_start_time |
Zorunlu. Aranın başlangıcı için üst sınır (dahil). |
min_duration |
Zorunlu. Aranın minimum süresi. Pozitif olmalıdır. |
FrequencyConstraint
Yukarıda belirtilen molaların sıklığı ve süresi, minimum mola sıklığı zorunlu kılınarak daha da kısıtlanabilir (ör. "Her 12 saatte bir en az 1 saat mola verilmelidir"). Bu kuralın "12 saatlik herhangi bir kayan zaman aralığında en az bir saatlik en az bir mola olmalıdır" şeklinde yorumlanabileceğini varsayarsak bu örnek aşağıdaki FrequencyConstraint değerine karşılık gelir:
{
min_break_duration { seconds: 3600 } # 1 hour.
max_inter_break_duration { seconds: 39600 } # 11 hours (12 - 1 = 11).
}
Çözümdeki araların zamanlaması ve süresi, BreakRequest içinde belirtilen zaman aralıkları ve minimum sürelere ek olarak bu tür tüm kısıtlamalara uyar.
FrequencyConstraint, uygulamada ardışık olmayan aralar için geçerli olabilir. Örneğin, aşağıdaki program "her 12 saatte bir 1 saat" örneğine uygundur:
04:00 vehicle start
.. performing travel and visits ..
09:00 1 hour break
10:00 end of the break
.. performing travel and visits ..
12:00 20-min lunch break
12:20 end of the break
.. performing travel and visits ..
21:00 1 hour break
22:00 end of the break
.. performing travel and visits ..
23:59 vehicle end
| Alanlar | |
|---|---|
min_break_duration |
Zorunlu. Bu kısıtlama için minimum ara süresi. Negatif olmayan. |
max_inter_break_duration |
Zorunlu. Rotada en azından kısmen |
DataFormat
Giriş ve çıkış dosyaları için veri biçimleri.
| Sıralamalar | |
|---|---|
DATA_FORMAT_UNSPECIFIED |
Geçersiz değer. Biçim, UNSPECIFIED olmamalıdır. |
JSON |
JavaScript Nesne Gösterimi. |
PROTO_TEXT |
Protokol arabellekleri metin biçimi. https://protobuf.dev/reference/protobuf/textformat-spec/ adresini ziyaret edin. |
DistanceLimit
Gidilebilecek maksimum mesafeyi tanımlayan bir sınır. Sert veya yumuşak olabilir.
Esnek sınır tanımlanırsa hem soft_max_meters hem de cost_per_kilometer_above_soft_max tanımlanmalı ve negatif olmamalıdır.
| Alanlar | |
|---|---|
max_meters |
Mesafe değerini en fazla max_meters olacak şekilde kısıtlayan kesin bir sınır. Sınır, negatif olmayan bir değer olmalıdır. |
soft_max_meters |
Maksimum mesafe sınırını zorunlu kılmayan ancak ihlal edildiğinde modelde tanımlanan diğer maliyetlere aynı birimle eklenen bir maliyete neden olan esnek bir sınırdır. Tanımlanmışsa soft_max_meters, max_meters'tan küçük ve negatif olmayan bir değer olmalıdır. |
cost_per_kilometer_below_soft_max |
Kilometre başına maliyet, Bu maliyet |
cost_per_kilometer_above_soft_max |
Mesafe Maliyet negatif olmamalıdır. |
GcsDestination
Çıkış dosyalarının yazılacağı Google Cloud Storage konumu.
| Alanlar | |
|---|---|
uri |
Zorunlu. Google Cloud Storage URI'si. |
GcsSource
Giriş dosyasının okunacağı Google Cloud Storage konumu.
| Alanlar | |
|---|---|
uri |
Zorunlu. |
InjectedSolutionConstraint
Hangi ziyaretlerin nasıl kısıtlanması gerektiğiyle ilgili bilgiler de dahil olmak üzere isteğe eklenen çözüm.
| Alanlar | |
|---|---|
routes[] |
Enjekte edilecek çözeltinin rotaları. Bazı rotalar orijinal çözümden çıkarılabilir. Rotalar ve atlanan gönderiler, |
skipped_shipments[] |
Enjekte edilecek çözümün atlanan gönderimleri. Bazıları orijinal çözümden çıkarılabilir. |
constraint_relaxations[] |
Sıfır veya daha fazla araç grubu için kısıtlamaların ne zaman ve ne kadar esnetileceğini belirtir. Bu alan boşsa boş olmayan tüm araç rotaları tamamen kısıtlanır. |
ConstraintRelaxation
Bir araç grubu için ziyaretlerle ilgili kısıtlamaların hangi eşiklerde ve hangi düzeye kadar esnetileceğini belirtir. skipped_shipment alanında listelenen gönderiler atlanacak şekilde kısıtlanır. Diğer bir deyişle, bu gönderiler gerçekleştirilemez.
| Alanlar | |
|---|---|
relaxations[] |
|
vehicle_indices[] |
Ziyaret kısıtlamasının
|
Dinlenme
relaxations boşsa routes tarihindeki tüm ziyaretlerin başlangıç zamanı ve sırası tamamen kısıtlanır ve bu rotalara yeni ziyaret eklenemez. Ayrıca, araç boş olmadığı sürece (yani ziyaret içermediği ve modelde used_if_route_is_empty değerinin false olarak ayarlandığı durumlar hariç) routes cinsinden başlangıç ve bitiş zamanı tamamen kısıtlanır.
relaxations(i).level, aşağıdaki koşulları karşılayan bir #j ziyaretine uygulanan kısıtlama esnetme düzeyini belirtir:
route.visits(j).start_time >= relaxations(i).threshold_timeVEj + 1 >= relaxations(i).threshold_visit_count
Benzer şekilde, aşağıdaki koşulları karşılıyorsa araç başlangıcı relaxations(i).level olarak gevşetilir:
vehicle_start_time >= relaxations(i).threshold_timeVErelaxations(i).threshold_visit_count == 0ve araç bitişi, aşağıdaki koşulları karşılıyorsarelaxations(i).leveldeğerine gevşetilir:vehicle_end_time >= relaxations(i).threshold_timeVEroute.visits_size() + 1 >= relaxations(i).threshold_visit_count
Bir ziyaret threshold_visit_count VEYA threshold_time ölçütünü karşılıyorsa esneklik düzeyi uygulamak için aynı level değerine sahip iki relaxations ekleyin: Biri yalnızca threshold_visit_count, diğeri ise yalnızca threshold_time ölçütüne ayarlanmış olmalıdır. Bir ziyaret birden fazla relaxations koşullarını karşılıyorsa en esnek düzey uygulanır. Sonuç olarak, aracın başlangıcından rota ziyaretleri boyunca aracın bitişine kadar esneklik seviyesi daha esnek hale gelir. Diğer bir deyişle, rota ilerledikçe esneklik seviyesi azalmaz.
Herhangi bir relaxations için eşik koşullarını karşılamayan rota ziyaretlerinin zamanlaması ve sırası tamamen kısıtlanır ve bu sıralara ziyaret eklenemez. Ayrıca, bir aracın başlangıç veya bitişi herhangi bir gevşeme koşulunu karşılamıyorsa araç boş olmadığı sürece süre sabitlenir.
| Alanlar | |
|---|---|
level |
|
threshold_time |
|
threshold_visit_count |
|
Seviye
Bir ziyaret için uygulanan ve eşik koşullarını karşıladığında uygulanan farklı kısıtlama esnetme düzeylerini ifade eder.
Aşağıdaki numaralandırma, artan gevşeme sırasına göredir.
| Sıralamalar | |
|---|---|
LEVEL_UNSPECIFIED |
Dolaylı varsayılan esnetme düzeyi: Hiçbir kısıtlama esnetilmez. Diğer bir deyişle, tüm ziyaretler tamamen kısıtlanır. Bu değer, |
RELAX_VISIT_TIMES_AFTER_THRESHOLD |
Ziyaret başlangıç zamanları ve araç başlangıç/bitiş zamanları esnetilir ancak her ziyaret aynı araca bağlı kalır ve ziyaret sırasına uyulması gerekir: Ziyaretlerin arasına veya önüne başka bir ziyaret eklenemez. |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD |
RELAX_VISIT_TIMES_AFTER_THRESHOLD ile aynıdır ancak ziyaret sırası da esnetilir: Ziyaretler yalnızca bu araç tarafından gerçekleştirilebilir ancak gerçekleştirilmeyebilir. |
RELAX_ALL_AFTER_THRESHOLD |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD ile aynıdır ancak araç da rahattır: ziyaretler, eşik zamanında veya sonrasında tamamen ücretsizdir ve potansiyel olarak gerçekleştirilmeyebilir. |
InputConfig
[BatchOptimizeTours][google.maps.routeoptimization.v1.RouteOptimizationService.BatchOptimizeTours] için bir giriş belirtin.
| Alanlar | |
|---|---|
data_format |
Zorunlu. Giriş verisi biçimi. |
source birleşik alanı. Zorunlu. source aşağıdakilerden yalnızca biri olabilir: |
|
gcs_source |
Google Cloud Storage konumu. Bu, tek bir nesne (dosya) olmalıdır. |
Konum
Bir konumu (coğrafi nokta ve isteğe bağlı bir yön) kapsar.
| Alanlar | |
|---|---|
lat_lng |
Ara noktanın coğrafi koordinatları. |
heading |
Trafik akışının yönüyle ilişkili pusula yönü. Bu değer, yolcu alma ve bırakma için kullanılacak yolun tarafını belirtmek amacıyla kullanılır. Yön değerleri 0 ile 360 arasında olabilir. 0 değeri tam kuzey yönünü, 90 değeri tam doğu yönünü belirtir. |
OptimizeToursLongRunningMetadata
Bu türün alanı yok.
OptimizeToursLongRunning çağrıları için işlem meta verileri.
OptimizeToursRequest
Çözülecek gönderi modelini ve optimizasyon parametrelerini tanımlayan bir tur optimizasyonu çözücüsüne verilecek istek.
| Alanlar | |
|---|---|
parent |
Zorunlu. Arama yapmak için hedef projeyi veya konumu seçin. Biçim:
Bölgesel |
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. |
solving_mode |
Varsayılan olarak, çözme modu |
search_mode |
İsteği çözmek için kullanılan arama modu. |
injected_first_solution_routes[] |
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. |
injected_solution_constraint |
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. |
refresh_details_routes[] |
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,
|
interpret_injected_solutions_using_labels |
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 |
consider_road_traffic |
|
populate_polylines |
Doğru ise yanıtlarda çoklu çizgiler doldurulur |
populate_transition_polylines |
Doğru ise yanıtta çoklu çizgiler ve rota jetonları doldurulur |
allow_large_deadline_despite_interruption_risk |
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. |
use_geodesic_distances |
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, |
geodesic_meters_per_second |
|
max_validation_errors |
Döndürülen doğrulama hatalarının sayısını kısaltır. Bu hatalar, solving_mode=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: |
SearchMode
Aramanın davranışını tanımlayan mod. Gecikme ile çözüm kalitesi arasında denge kurar. Tüm modlarda genel istek son tarihi uygulanır.
| Sıralamalar | |
|---|---|
SEARCH_MODE_UNSPECIFIED |
Belirtilmemiş arama modu, RETURN_FAST ile eşdeğer. |
RETURN_FAST |
İlk iyi çözümü bulduktan sonra aramayı durdurun. |
CONSUME_ALL_AVAILABLE_TIME |
Daha iyi çözümler bulmak için mevcut zamanın tamamını harcamak |
SolvingMode
Çözücünün isteği nasıl işlemesi gerektiğini tanımlar. VALIDATE_ONLY hariç tüm modlarda, istek geçersizse INVALID_REQUEST hatası alırsınız. Döndürülen hata sayısını sınırlamak için max_validation_errors bölümüne bakın.
| Sıralamalar | |
|---|---|
DEFAULT_SOLVE |
Modeli çözün. [OptimizeToursResponse.validation_errors][google.cloud.optimization.v1.OptimizeToursResponse.validation_errors] içinde uyarılar verilebilir. |
VALIDATE_ONLY |
Modeli çözmeden yalnızca doğrular: Mümkün olduğunca çok OptimizeToursResponse.validation_errors doldurur. |
DETECT_SOME_INFEASIBLE_SHIPMENTS |
Yalnızca ÖNEMLİ: Uygun olmayan tüm gönderiler burada döndürülmez. Yalnızca ön işleme sırasında uygun olmadığı tespit edilen gönderiler döndürülür. |
TRANSFORM_AND_RETURN_REQUEST |
Bu mod yalnızca Deneysel: Daha fazla bilgi için https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request adresini ziyaret edin. |
OptimizeToursResponse
Her aracın izlediği rotaları, atlanan gönderileri ve çözümün toplam maliyetini içeren bir rota optimizasyonu sorununu çözdükten sonra verilen yanıt.
| Alanlar | |
|---|---|
routes[] |
Her araç için hesaplanan rotalar. i. rota, modeldeki i. araca karşılık gelir. |
request_label |
İstekte bir etiket belirtilmişse |
skipped_shipments[] |
Atlanan tüm gönderilerin listesi. |
validation_errors[] |
Bağımsız olarak tespit edebildiğimiz tüm doğrulama hatalarının listesi. |
processed_request |
Bazı durumlarda, gelen isteği çözmeden önce değiştiririz (ör. maliyet ekleriz). solving_mode == TRANSFORM_AND_RETURN_REQUEST ise değiştirilen istek burada döndürülür. Deneysel: Daha fazla bilgi için https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request adresini ziyaret edin. |
metrics |
Bu çözüm için süre, mesafe ve kullanım metrikleri. |
Metrikler
Tüm rotalar üzerinden toplanan genel metrikler.
| Alanlar | |
|---|---|
aggregated_route_metrics |
Rotalar üzerinden toplanır. Her metrik, aynı ada sahip tüm |
skipped_mandatory_shipment_count |
Atlanan zorunlu gönderim sayısı. |
used_vehicle_count |
Kullanılan araç sayısı. Not: Bir araç rotası boşsa ve |
earliest_vehicle_start_time |
İkinci el araçlar için en erken başlangıç zamanı. Tüm ikinci el araçların |
latest_vehicle_end_time |
Kullanılan bir araç için en geç bitiş zamanı. Tüm kullanılan araçların maksimum |
costs |
Çözümün maliyetle ilgili istek alanlarına göre dökümü alınmış maliyeti. Anahtarlar, giriş OptimizeToursRequest'e göre proto yollarıdır (ör. "model.shipments.pickups.cost"). Değerler ise ilgili maliyet alanı tarafından oluşturulan ve tüm çözüm genelinde toplanan toplam maliyettir. Başka bir deyişle, costs["model.shipments.pickups.cost"], çözümdeki tüm teslim alma masraflarının toplamıdır. Modelde tanımlanan tüm maliyetler, yalnızca 2022/01 itibarıyla toplu olarak raporlanan TransitionAttributes ile ilgili maliyetler hariç olmak üzere burada ayrıntılı olarak raporlanır. |
total_cost |
Çözümün toplam maliyeti. Maliyet haritasındaki tüm değerlerin toplamı. |
OptimizeToursUriMetadata
Bu türün alanı yok.
OptimizeToursUri çağrıları için işlem meta verileri.
OptimizeToursUriRequest
OptimizeToursUri yöntemi tarafından kullanılan bir istek.
| Alanlar | |
|---|---|
parent |
Zorunlu. Arama yapmak için hedef projeyi veya konumu seçin. Biçim:
Bölgesel |
input |
Zorunlu. |
output |
Zorunlu. |
OptimizeToursUriResponse
OptimizeToursUri yöntemi tarafından döndürülen yanıt.
| Alanlar | |
|---|---|
output |
İsteğe bağlıdır. JSON veya textproto olarak kodlanmış Kaynağın |
OptimizeToursValidationError
Bir OptimizeToursRequest doğrulanırken karşılaşılan hatayı veya uyarıyı açıklar.
| Alanlar | |
|---|---|
code |
Doğrulama hatası, her zaman mevcut olan ( Bu bölümden sonraki alanlar, hatayla ilgili daha fazla bilgi sağlar. BİRDEN FAZLA HATA: Birden fazla hata olduğunda doğrulama işlemi, bunlardan birkaçını göstermeye çalışır. Derleyicilerde olduğu gibi bu da kusursuz bir süreç değildir. Bazı doğrulama hataları "önemli"dir. Bu hatalar, doğrulama sürecinin tamamını durdurur. Bu durum, KARARLILIK: |
display_name |
Hatanın görünen adı. |
fields[] |
Hata bağlamı 0, 1 (çoğu zaman) veya daha fazla alan içerebilir. Örneğin, 4 numaralı araca ve 2 numaralı gönderinin ilk teslim alma işlemine şu şekilde referans verilebilir: Ancak |
error_message |
Hatayı açıklayan, kullanıcıların okuyabileceği bir dize. KARARLILIK: Kararlı değil: Belirli bir |
offending_values |
Alanların değerlerini içerebilir. Bu seçenek her zaman kullanılamayabilir. Bu yönteme kesinlikle güvenmemeli ve yalnızca manuel model hata ayıklama için kullanmalısınız. |
FieldReference
Doğrulama hatası için bir bağlam belirtir. FieldReference her zaman bu dosyadaki belirli bir alanı ifade eder ve aynı hiyerarşik yapıyı izler. Örneğin, 5 numaralı aracın start_time_windows öğesinin 2 numaralı öğesini şu şekilde belirtebiliriz:
name: "vehicles" index: 5 sub_field { name: "end_time_windows" index: 2 }
Ancak mesajın kalabalık görünmemesi için OptimizeToursRequest veya ShipmentModel gibi üst düzey varlıkları dahil etmiyoruz.
| Alanlar | |
|---|---|
name |
Alanın adı (ör. "vehicles"). |
sub_field |
Gerekirse yinelemeli olarak iç içe yerleştirilmiş alt alan. |
|
|
index |
Yineleniyorsa alanın dizini. |
key |
Alan bir haritaysa anahtar. |
OutputConfig
[BatchOptimizeTours][google.maps.routeoptimization.v1.RouteOptimizationService.BatchOptimizeTours] sonuçları için bir hedef belirtin.
| Alanlar | |
|---|---|
data_format |
Zorunlu. Çıkış verisi biçimi. |
destination birleşik alanı. Zorunlu. destination aşağıdakilerden yalnızca biri olabilir: |
|
gcs_destination |
Çıkışın yazılacağı Google Cloud Storage konumu. |
RouteModifiers
Araç rotaları hesaplanırken karşılanması gereken bir dizi isteğe bağlı koşulu kapsar. Bu, Google Haritalar Platformu Routes Preferred API'deki RouteModifiers ile benzerdir. https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteModifiers adresini inceleyin.
| Alanlar | |
|---|---|
avoid_tolls |
Mümkün olduğunda paralı yollardan kaçınılıp kaçınılmayacağını belirtir. Paralı yol içermeyen rotalara öncelik verilir. Yalnızca motorlu seyahat modları için geçerlidir. |
avoid_highways |
Mümkün olduğunda otoyollardan kaçınılıp kaçınılmayacağını belirtir. Otoyol içermeyen rotalara öncelik verilir. Yalnızca motorlu seyahat modları için geçerlidir. |
avoid_ferries |
Mümkün olduğunda feribotlardan kaçınılıp kaçınılmayacağını belirtir. Feribotla seyahat içermeyen rotalara öncelik verilir. Yalnızca motorlu seyahat modları için geçerlidir. |
avoid_indoor |
İsteğe bağlıdır. Mümkün olduğunda kapalı alanlarda gezinmekten kaçınılıp kaçınılmayacağını belirtir. Bina içi navigasyon içermeyen rotalara öncelik verilir. Yalnızca |
Gönderim
Tek bir öğenin, teslim alma noktalarından birinden teslimat noktalarından birine gönderilmesi. Sevkiyatın gerçekleştirilmiş sayılması için benzersiz bir aracın, sevkiyatın teslim alma konumlarından birini ziyaret etmesi (ve yedek kapasitelerini buna göre azaltması), ardından teslimat konumlarından birini ziyaret etmesi (ve yedek kapasitelerini buna göre yeniden artırması) gerekir.
| Alanlar | |
|---|---|
display_name |
Gönderinin kullanıcı tarafından tanımlanan görünen adı. En fazla 63 karakter uzunluğunda olabilir ve UTF-8 karakterleri kullanılabilir. |
pickups[] |
Gönderiyle ilişkili teslim alma alternatifleri grubu. Belirtilmezse aracın yalnızca teslimatlara karşılık gelen bir konumu ziyaret etmesi gerekir. |
deliveries[] |
Gönderiyle ilişkili teslimat alternatifleri grubu. Belirtilmezse aracın yalnızca teslim alma işlemlerine karşılık gelen bir konumu ziyaret etmesi gerekir. |
load_demands |
Gönderinin yük talepleri (ör. ağırlık, hacim, palet sayısı vb.) Eşlemedeki anahtarlar, ilgili yükün türünü açıklayan tanımlayıcılar olmalıdır. İdeal olarak birimleri de içermelidir. Örneğin: "weight_kg", "volume_gallons", "pallet_count" vb. Belirli bir anahtar haritada görünmüyorsa ilgili yük boş olarak kabul edilir. |
allowed_vehicle_indices[] |
Bu sevkiyatı gerçekleştirebilecek araç grubu. Boş bırakılırsa tüm araçlar bu görevi gerçekleştirebilir. Araçlar, |
costs_per_vehicle[] |
Bu gönderi her bir araç tarafından teslim edildiğinde ortaya çıkan maliyeti belirtir. Belirtilmesi durumunda şunlardan biri olmalıdır:
Bu maliyetler |
costs_per_vehicle_indices[] |
|
pickup_to_delivery_absolute_detour_limit |
Teslim alma noktasından teslimat noktasına kadar olan en kısa yola kıyasla maksimum mutlak sapma süresini belirtir. Belirtilmişse negatif olmamalı ve gönderi en az bir teslim alma ve bir teslimat içermelidir. Örneğin, t, seçilen teslim alma alternatifinden doğrudan seçilen teslimat alternatifine gitmek için gereken en kısa süre olsun. Ardından Aynı gönderi için hem göreceli hem de mutlak sınırlar belirtilirse her olası teslim alma/teslimat çifti için daha kısıtlayıcı sınır kullanılır. Ekim 2017 itibarıyla, sapmalar yalnızca seyahat süreleri araçlara bağlı olmadığında desteklenir. |
pickup_to_delivery_time_limit |
Bir gönderinin teslim alma başlangıcından teslimat başlangıcına kadar geçen maksimum süreyi belirtir. Belirtilmişse negatif olmamalı ve gönderi en az bir teslim alma ve bir teslimat içermelidir. Bu durum, teslim alma ve teslimat için hangi alternatiflerin seçildiğine veya araç hızına bağlı değildir. Bu, maksimum sapma kısıtlamalarıyla birlikte belirtilebilir: Çözüm, her iki spesifikasyona da uyar. |
shipment_type |
Bu gönderi için "tür" belirten boş olmayan dize. Bu özellik, Tek bir ziyaret için belirtilen |
label |
Bu gönderi için bir etiket belirtir. Bu etiket, ilgili |
ignore |
Doğru ise bu gönderiyi atla ancak Modelde
|
penalty_cost |
Gönderim tamamlanmazsa bu ceza, rotaların toplam maliyetine eklenir. Teslim alma ve teslimat alternatiflerinden biri ziyaret edilirse gönderi tamamlanmış kabul edilir. Maliyet, modeldeki maliyetle ilgili diğer tüm alanlar için kullanılan birimle ifade edilebilir ve pozitif olmalıdır. ÖNEMLİ: Bu ceza belirtilmezse sonsuz olarak kabul edilir. Diğer bir deyişle, gönderimin tamamlanması gerekir. |
pickup_to_delivery_relative_detour_limit |
Teslim alma noktasından teslimat noktasına kadar olan en kısa yola kıyasla maksimum göreceli sapma süresini belirtir. Belirtilmişse negatif olmamalı ve gönderi en az bir teslim alma ve bir teslimat içermelidir. Örneğin, t, seçilen teslim alma alternatifinden doğrudan seçilen teslimat alternatifine gitmek için gereken en kısa süre olsun. Ardından Aynı gönderi için hem göreceli hem de mutlak sınırlar belirtilirse her olası teslim alma/teslimat çifti için daha kısıtlayıcı sınır kullanılır. Ekim 2017 itibarıyla, sapmalar yalnızca seyahat süreleri araçlara bağlı olmadığında desteklenir. |
Yükleme
Ziyaret gerçekleştirilirken, teslim alma işlemi söz konusuysa araç yüküne önceden tanımlanmış bir miktar eklenebilir veya teslimat söz konusuysa bu miktar çıkarılabilir. Bu mesajda söz konusu tutar belirtilir. Şu sayfaya göz atın: load_demands.
| Alanlar | |
|---|---|
amount |
İlgili ziyareti gerçekleştiren aracın yükünün değişeceği miktar. Bu değer bir tam sayı olduğundan, kullanıcıların hassasiyet kaybını önlemek için uygun bir birim seçmeleri önerilir. 0'dan büyük veya 0'a eşit olmalıdır. |
VisitRequest
Bir araç tarafından gerçekleştirilebilecek ziyaret isteği: Coğrafi konumu (veya iki konumu, aşağıya bakın), zaman aralıklarıyla temsil edilen açılış ve kapanış saatleri ve hizmet süresi (araç, ürünleri almak veya bırakmak için ulaştıktan sonra harcanan süre) vardır.
| Alanlar | |
|---|---|
arrival_location |
Aracın bu |
arrival_waypoint |
Aracın bu |
departure_location |
Aracın bu |
departure_waypoint |
Aracın bu |
tags[] |
Ziyaret isteğine eklenen etiketleri belirtir. Boş veya yinelenen dizelere izin verilmez. |
time_windows[] |
Ziyarete varış zamanını kısıtlayan zaman aralıkları. Bir aracın varış zaman aralığının dışında hareket edebileceğini unutmayın. Diğer bir deyişle, varış zamanı + sürenin bir zaman aralığı içinde olması gerekmez. Araç
Zaman aralıkları ayrık olmalıdır. Yani hiçbir zaman aralığı birbiriyle çakışmamalı veya bitişik olmamalı ve artan sırada olmalıdır.
|
duration |
Ziyaret süresi, yani aracın varış ve ayrılış arasında geçirdiği süre (olası bekleme süresine eklenir; bkz. |
cost |
Bir araç rotasında bu ziyaret isteğini yerine getirmenin maliyeti. Bu, bir gönderinin her alternatif teslim alma veya teslimat seçeneği için farklı maliyetler ödemek amacıyla kullanılabilir. Bu maliyet, |
load_demands |
Bu ziyaret isteğinin yük talepleri. Bu, |
visit_types[] |
Ziyaret türlerini belirtir. Bu, bir aracın bu ziyareti tamamlaması için gereken ek süreyi tahsis etmek amacıyla kullanılabilir (bkz. Bir tür yalnızca bir kez görünebilir. |
label |
Bu |
avoid_u_turns |
Bu konumdaki sürüş rotalarında U dönüşlerinden kaçınılıp kaçınılmayacağını belirtir. U dönüşünden kaçınma özelliği, en iyi sonucu vermeye çalışır ancak tamamen kaçınma garanti edilmez. Bu, deneysel bir özelliktir ve davranışında değişiklikler olabilir. Deneysel: Daha fazla bilgi için https://developers.google.com/maps/tt/route-optimization/experimental/u-turn-avoidance/make-request adresini ziyaret edin. |
ShipmentModel
Gönderi modeli, bir dizi araç tarafından gerçekleştirilmesi gereken bir dizi gönderi içerir. Bu sırada, aşağıdakilerin toplamı olan genel maliyet en aza indirilir:
- Araçların rotasını belirleme maliyeti (toplam süre başına maliyet, seyahat süresi başına maliyet ve tüm araçlar için sabit maliyetin toplamı).
- gönderim cezaları uygulanır.
- gönderimlerin toplam süresinin maliyeti
| Alanlar | |
|---|---|
shipments[] |
Modelde gerçekleştirilmesi gereken gönderi grubu. |
vehicles[] |
Ziyaretleri gerçekleştirmek için kullanılabilecek araçlar. |
objectives[] |
Bu model için maliyetlere dönüştüreceğimiz hedef grubu. Boş değilse giriş modeli ücretsiz olmalıdır. Değiştirilen isteği almak için lütfen Deneysel: Daha fazla bilgi için https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request adresini ziyaret edin. |
global_start_time |
Modelin genel başlangıç ve bitiş zamanı: Bu aralığın dışındaki zamanlar geçerli kabul edilemez. Modelin zaman aralığı bir yıldan kısa olmalıdır. Diğer bir deyişle,
|
global_end_time |
Ayarlanmazsa varsayılan olarak 1 Ocak 1971, 00:00:00 UTC (yani saniye: 31536000, nanosaniye: 0) kullanılır. |
global_duration_cost_per_hour |
Genel planın "global süresi", tüm araçların en erken geçerli başlangıç zamanı ile en geç geçerli bitiş zamanı arasındaki farktır. Kullanıcılar, işi en kısa sürede tamamlamak için optimizasyon yapmak amacıyla bu miktara saatlik maliyet atayabilir. Bu maliyet, |
duration_distance_matrices[] |
Modelde kullanılan süre ve mesafe matrislerini belirtir. Bu alan boşsa Kullanım örnekleri:
|
duration_distance_matrix_src_tags[] |
Süre ve mesafe matrislerinin kaynaklarını tanımlayan etiketler; Etiketler |
duration_distance_matrix_dst_tags[] |
Süre ve mesafe matrislerinin hedeflerini tanımlayan etiketler; Etiketler |
transition_attributes[] |
Modele geçiş özellikleri eklendi. |
shipment_type_incompatibilities[] |
Uyumsuz shipment_types kümeleri ( |
shipment_type_requirements[] |
|
precedence_rules[] |
Modelde uygulanması gereken öncelik kuralları kümesi. ÖNEMLİ: Öncelik kurallarının kullanılması, optimize edilebilecek sorunun boyutunu sınırlar. Çok sayıda gönderi içeren öncelik kurallarını kullanan istekler reddedilebilir. |
max_active_vehicles |
Etkin araçların maksimum sayısını kısıtlar. Rotası en az bir sevkiyat gerçekleştiriyorsa araç etkindir. Bu, sürücü sayısının araç sayısından az olduğu ve araç filosunun heterojen olduğu durumlarda rota sayısını sınırlamak için kullanılabilir. Optimizasyon, kullanılacak en iyi araç alt kümesini seçer. Kesinlikle pozitif olmalıdır. |
DurationDistanceMatrix
Ziyaret ve araç başlangıç konumlarından ziyaret ve araç bitiş konumlarına kadar olan süre ve mesafe matrisini belirtir.
| Alanlar | |
|---|---|
rows[] |
Süre ve mesafe matrisinin satırlarını belirtir. |
vehicle_start_tag |
Bu süre ve mesafe matrisinin hangi araçlar için geçerli olduğunu tanımlayan etiket. Boş bırakılırsa bu, tüm araçlar için geçerli olur ve yalnızca tek bir matris olabilir. Her araç başlangıcı tam olarak bir matrisle eşleşmelidir. Yani Tüm matrislerin farklı bir |
Satır
Süre ve mesafe matrisinin bir satırını belirtir.
| Alanlar | |
|---|---|
durations[] |
Belirli bir satırın süre değerleri. |
meters[] |
Belirli bir satırın mesafe değerleri. Modeldeki mesafelerle ilgili herhangi bir maliyet veya kısıtlama yoksa bu alan boş bırakılabilir. Aksi takdirde, |
Hedef
Hedefler, maliyet modelinin yerini tamamen alır ve bu nedenle önceden var olan maliyetlerle uyumlu değildir. Her hedef, önceden tanımlanmış bir dizi maliyetle (ör. araçlar, gönderiler veya geçiş özellikleri) eşlenir.
Deneysel: Daha fazla bilgi için https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request adresini ziyaret edin.
| Alanlar | |
|---|---|
type |
Hedefin türü. |
weight |
Bu hedefin diğerlerine kıyasla ne kadar önemli olduğu. Bu, negatif olmayan herhangi bir sayı olabilir. Ağırlıkların toplamının 1 olması gerekmez. Ağırlıklar varsayılan olarak 1,0 değerine ayarlanır. |
Tür
Bir maliyet grubuyla eşlenecek hedef türü.
| Sıralamalar | |
|---|---|
DEFAULT |
Makul bir çözüm sağlamak için varsayılan bir maliyet grubu kullanılır. Not: Bu hedef tek başına kullanılabilir ancak kullanıcı tarafından belirtilen hedeflere her zaman 1,0 ağırlıkla eklenir (henüz mevcut değilse). |
MIN_DISTANCE |
"MIN" hedefleri. Katedilen toplam mesafeyi en aza indirin. |
MIN_WORKING_TIME |
Tüm araçların toplam çalışma süresini en aza indirin. |
MIN_TRAVEL_TIME |
Yukarıdakiyle aynıdır ancak yalnızca seyahat süresine odaklanır. |
MIN_NUM_VEHICLES |
Kullanılan araç sayısını en aza indirme |
PrecedenceRule
İki etkinlik arasındaki öncelik kuralı (her etkinlik, bir gönderinin teslim alınması veya teslim edilmesidir): "İkinci" etkinlik, "birinci" etkinlik başladıktan en az offset_duration sonra başlamalıdır.
Birden fazla öncelik aynı (veya ilgili) etkinliklere başvurabilir. Örneğin, "B'nin teslim alınması, A'nın teslimatından sonra gerçekleşir" ve "C'nin teslim alınması, B'nin teslim alınmasından sonra gerçekleşir".
Ayrıca, öncelikler yalnızca her iki gönderim de gerçekleştirildiğinde geçerli olur, aksi takdirde yoksayılır.
| Alanlar | |
|---|---|
first_is_delivery |
"İlk" etkinliğin teslimat olup olmadığını gösterir. |
second_is_delivery |
"İkinci" etkinliğin bir teslimat olup olmadığını gösterir. |
offset_duration |
"İlk" ve "ikinci" etkinlik arasındaki fark. Negatif olabilir. |
first_index |
"İlk" etkinliğin gönderi dizini. Bu alan belirtilmelidir. |
second_index |
"İkinci" etkinliğin gönderi dizini. Bu alan belirtilmelidir. |
ShipmentRoute
Bir aracın rotası, zaman ekseni boyunca şu şekilde ayrıştırılabilir (n ziyaret olduğunu varsayıyoruz):
| | | | | T[2], | | |
| Transition | Visit #0 | | | V[2], | | |
| #0 | aka | T[1] | V[1] | ... | V[n-1] | T[n] |
| aka T[0] | V[0] | | | V[n-2],| | |
| | | | | T[n-1] | | |
^ ^ ^ ^ ^ ^ ^ ^
vehicle V[0].start V[0].end V[1]. V[1]. V[n]. V[n]. vehicle
start (arrival) (departure) start end start end end
Aşağıdakiler arasında ayrım yaptığımızı unutmayın:
- Aracın başlangıç ve bitişi ile her ziyaretin başlangıç ve bitişi (varış ve ayrılış olarak da bilinir) gibi "dakik etkinlikler". Belirli bir saniyede gerçekleşirler.
- "zaman aralıkları" (ör. ziyaretlerin kendileri ve ziyaretler arasındaki geçiş) Zaman aralıklarının süresi bazen sıfır olabilir (ör. aynı saniyede başlayıp biter) ancak genellikle pozitif bir süreye sahiptir.
Değişmezler:
- n ziyaret varsa n+1 geçiş vardır.
- Bir ziyaret her zaman öncesinde bir geçiş (aynı dizin) ve sonrasında bir geçiş (dizin + 1) ile çevrilidir.
- Araç çalıştırma işlemini her zaman 0 numaralı geçiş takip eder.
- Araç bitişinden önce her zaman geçiş #n gelir.
Yakından incelediğimizde, Transition ve Visit sırasında şunlar gerçekleşir:
---+-------------------------------------+-----------------------------+-->
| TRANSITION[i] | VISIT[i] |
| | |
| * TRAVEL: the vehicle moves from | PERFORM the visit: |
| VISIT[i-1].departure_location to | |
| VISIT[i].arrival_location, which | * Spend some time: |
| takes a given travel duration | the "visit duration". |
| and distance | |
| | * Load or unload |
| * BREAKS: the driver may have | some quantities from the |
| breaks (e.g. lunch break). | vehicle: the "demand". |
| | |
| * WAIT: the driver/vehicle does | |
| nothing. This can happen for | |
| many reasons, for example when | |
| the vehicle reaches the next | |
| event's destination before the | |
| start of its time window | |
| | |
| * DELAY: *right before* the next | |
| arrival. E.g. the vehicle and/or | |
| driver spends time unloading. | |
| | |
---+-------------------------------------+-----------------------------+-->
^ ^ ^
V[i-1].end V[i].start V[i].end
Son olarak, geçiş sırasında SEYAHAT, MOLA, GECİKME ve BEKLEME durumlarının nasıl düzenlenebileceğini aşağıda görebilirsiniz.
- Çakışmazlar.
- DELAY benzersizdir ve bir sonraki ziyaretten (veya araç bitişinden) hemen önce bitişik bir zaman dilimi olmalıdır. Bu nedenle, başlangıç ve bitiş zamanını öğrenmek için gecikme süresini bilmek yeterlidir.
- BREAKS, bitişik ve çakışmayan zaman dilimleridir. Yanıtta her molanın başlangıç zamanı ve süresi belirtiliyor.
- TRAVEL ve WAIT "kesintiye uğratılabilir" durumdadır: Bu geçiş sırasında birkaç kez kesintiye uğrayabilirler. Müşteriler, seyahatin "mümkün olan en kısa sürede" gerçekleştiğini ve kalan sürenin "bekleme" ile doldurulduğunu varsayabilir.
Karmaşık bir örnek:
TRANSITION[i]
--++-----+-----------------------------------------------------------++-->
|| | | | | | | ||
|| T | B | T | | B | | D ||
|| r | r | r | W | r | W | e ||
|| a | e | a | a | e | a | l ||
|| v | a | v | i | a | i | a ||
|| e | k | e | t | k | t | y ||
|| l | | l | | | | ||
|| | | | | | | ||
--++-----------------------------------------------------------------++-->
| Alanlar | |
|---|---|
vehicle_index |
Rotayı gerçekleştiren araç, kaynak |
vehicle_label |
Belirtilmişse bu rotayı izleyen aracın etiketi ( |
vehicle_start_time |
Aracın rotasına başladığı zaman. |
vehicle_end_time |
Aracın rotasını tamamladığı zaman. |
visits[] |
Bir rotayı temsil eden sıralı ziyaret dizisi. visits[i], rotadaki i. ziyarettir. Bu alan boşsa araç kullanılmamış olarak kabul edilir. |
transitions[] |
Rota için sıralı geçiş listesi. |
has_traffic_infeasibilities |
Trafik nedeniyle seyahat süresi tahmini |
route_polyline |
Rotanın kodlanmış çoklu çizgi gösterimi. Bu alan yalnızca |
breaks[] |
Bu rotayı izleyen araç için planlanan molalar. |
metrics |
Bu rota için süre, mesafe ve yük metrikleri. |
vehicle_fullness |
Deneysel: Bu alanın davranışı veya varlığı gelecekte değişebilir. |
route_costs |
Maliyetle ilgili istek alanlarına göre dökümü alınmış rota maliyeti. Anahtarlar, giriş OptimizeToursRequest'e göre proto yollarıdır (ör. "model.shipments.pickups.cost"). Değerler ise ilgili maliyet alanı tarafından oluşturulan ve tüm rota üzerinden toplanan toplam maliyettir. Diğer bir deyişle, costs["model.shipments.pickups.cost"], rota üzerindeki tüm teslim alma masraflarının toplamıdır. Modelde tanımlanan tüm maliyetler, yalnızca 2022/01 itibarıyla toplu olarak raporlanan TransitionAttributes ile ilgili maliyetler hariç olmak üzere burada ayrıntılı olarak raporlanır. |
route_total_cost |
Rotanın toplam maliyeti. Maliyet haritasındaki tüm maliyetlerin toplamı. |
Ara
Bir aranın yürütülmesini temsil eden veriler.
| Alanlar | |
|---|---|
start_time |
Aranın başlangıç zamanı. |
duration |
Molanın süresi. |
EncodedPolyline
Çoklu çizginin kodlanmış temsili. Çoklu çizgi kodlama hakkında daha fazla bilgiyi https://developers.google.com/maps/documentation/utilities/polylinealgorithm https://developers.google.com/maps/documentation/javascript/reference/geometry#encoding adresinde bulabilirsiniz.
| Alanlar | |
|---|---|
points |
Çoklu çizginin kodlanmış noktalarını temsil eden dize. |
Geçiş
Rotadaki iki etkinlik arasında geçiş. ShipmentRoute açıklamasını inceleyin.
Araçta start_location ve/veya end_location yoksa ilgili seyahat metrikleri 0 olur.
| Alanlar | |
|---|---|
travel_duration |
Bu geçiş sırasındaki seyahat süresi. |
travel_distance_meters |
Geçiş sırasında katedilen mesafe. |
traffic_info_unavailable |
Trafik |
delay_duration |
Bu geçişe uygulanan gecikme sürelerinin toplamı. Gecikme varsa bir sonraki etkinlikten (ziyaret veya araç sonu) tam olarak |
break_duration |
Bu geçiş sırasında gerçekleşen araların (varsa) toplam süresi. Her aranın başlangıç zamanı ve süresiyle ilgili ayrıntılar |
wait_duration |
Bu geçiş sırasında beklemede geçen süre. Bekleme süresi, boşta kalma süresine karşılık gelir ve mola süresini içermez. Bu bekleme süresinin, bitişik olmayan birkaç aralığa bölünebileceğini de unutmayın. |
total_duration |
Geçişin toplam süresi (kolaylık sağlamak için verilmiştir). Şuna eşittir:
|
start_time |
Bu geçişin başlangıç zamanı. |
route_polyline |
Geçiş sırasında izlenen rotanın kodlanmış çoklu çizgi gösterimi. Bu alan yalnızca |
route_token |
Yalnızca çıkış. Navigasyon sırasında rotayı yeniden oluşturmak ve yeni rota çizilmesi durumunda rota oluşturulurkenki asıl niyeti dikkate almak için Navigation SDK'ya iletilebilen opak bir jeton. Bu jetonu opak bir blob olarak değerlendirin. Hizmet tam olarak aynı rotayı döndürse bile değeri değişebileceğinden, istekler arasında değerini karşılaştırmayın. Bu alan yalnızca |
vehicle_loads |
Bu geçiş sırasında, bu aracın İlk geçiş sırasındaki yükler, araç rotasının başlangıç yükleridir. Ardından, her ziyaretten sonra, ziyaretin |
VehicleLoad
Belirli bir tür için rota boyunca bir noktada aracın gerçek yükünü bildirir (Transition.vehicle_loads bölümüne bakın).
| Alanlar | |
|---|---|
amount |
Belirli bir tür için araçtaki yük miktarı. Yük birimi genellikle türle belirtilir. Şu sayfaya göz atın: |
Ziyaret edin
Rota sırasında yapılan ziyaret. Bu ziyaret, bir Shipment teslim alma veya teslim etme işlemine karşılık gelir.
| Alanlar | |
|---|---|
shipment_index |
Kaynak |
is_pickup |
Doğruysa ziyaret, |
visit_request_index |
|
start_time |
Ziyaretin başladığı zaman. Aracın ziyaret yerine bu saatten daha erken varabileceğini unutmayın. Saatler |
load_demands |
Toplam ziyaret yükü talebi, gönderi ve ziyaret isteğinin toplamıdır |
detour |
Ziyaretten önce rotada ziyaret edilen gönderiler ve zaman aralıklarının neden olduğu potansiyel bekleme süresi nedeniyle ek rota değiştirme süresi. Ziyaret bir teslimat ise sapma, ilgili teslim alma ziyaretinden hesaplanır ve şuna eşittir: Aksi takdirde, araç |
shipment_label |
|
visit_label |
|
visit_type |
İsteğe bağlıdır. Ziyaretin türünü belirtir. |
injected_solution_location_token |
Ziyaret edilen konumla ilgili bilgileri temsil eden opak bir jeton. Bu ziyaret için Deneysel: Daha fazla bilgi için https://developers.google.com/maps/tt/route-optimization/experimental/u-turn-avoidance/make-request adresini ziyaret edin. |
VisitType
Ziyaretin teslim alma, teslimat veya Stop ziyareti olup olmadığını gösterir. Bir durağa yapılan ziyaretler yalnızca çoklu mod optimizasyonu etkinleştirildiğinde kullanılır.
| Sıralamalar | |
|---|---|
VISIT_TYPE_UNSPECIFIED |
Ziyaret türü belirtilmedi. |
PICKUP_SHIPMENT |
Ziyaret, gönderinin teslim alınmasına karşılık gelir. |
DELIVER_SHIPMENT |
Ziyaret, gönderi teslimatına karşılık gelir. |
ShipmentTypeIncompatibility
Gönderilerin shipment_type değerine bağlı olarak gönderiler arasındaki uyumsuzlukları belirtir. Uyumsuz gönderilerin aynı rotada görünmesi, uyumsuzluk moduna göre kısıtlanır.
| Alanlar | |
|---|---|
types[] |
Uyumsuz türlerin listesi. Listelenenler arasında farklı |
incompatibility_mode |
Uyumsuzluğa uygulanan mod. |
IncompatibilityMode
Uyumsuz gönderilerin görünümünün aynı rotada nasıl kısıtlanacağını tanımlayan modlar.
| Sıralamalar | |
|---|---|
INCOMPATIBILITY_MODE_UNSPECIFIED |
Belirtilmemiş uyumsuzluk modu. Bu değer hiçbir zaman kullanılmamalıdır. |
NOT_PERFORMED_BY_SAME_VEHICLE |
Bu modda, uyumsuz türlere sahip iki gönderi hiçbir zaman aynı aracı paylaşamaz. |
NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY |
Bu modda, uyumsuz türlere sahip iki gönderi hiçbir zaman aynı anda aynı araçta bulunamaz:
|
ShipmentTypeRequirement
shipment_type değerine göre gönderiler arasındaki koşulları belirtir. Şartın ayrıntıları, şart modu tarafından tanımlanır.
| Alanlar | |
|---|---|
required_shipment_type_alternatives[] |
|
dependent_shipment_types[] |
NOT: Bir |
requirement_mode |
Şarta uygulanan mod. |
RequirementMode
Bir rotadaki bağımlı gönderilerin görünümünü tanımlayan modlar.
| Sıralamalar | |
|---|---|
REQUIREMENT_MODE_UNSPECIFIED |
Belirtilmemiş şart modu. Bu değer hiçbir zaman kullanılmamalıdır. |
PERFORMED_BY_SAME_VEHICLE |
Bu modda, tüm "bağımlı" gönderiler, "gerekli" gönderilerinden en az biriyle aynı aracı paylaşmalıdır. |
IN_SAME_VEHICLE_AT_PICKUP_TIME |
Bu nedenle, "bağımlı" bir gönderi teslim alma işlemi şunlardan birine sahip olmalıdır:
|
IN_SAME_VEHICLE_AT_DELIVERY_TIME |
"Bağımlı" gönderilerin teslimat sırasında araçlarında "gerekli" bir gönderi olması gerektiği dışında, öncekiyle aynıdır. |
SkippedShipment
Bir çözümde gerçekleştirilmeyen gönderilerin ayrıntılarını belirtir. Önemsiz durumlarda ve/veya atlama nedenini belirleyebildiğimizde nedeni burada bildiririz.
| Alanlar | |
|---|---|
index |
Dizin, kaynak |
label |
|
reasons[] |
Gönderimin neden atlandığını açıklayan nedenlerin listesi. Yukarıdaki |
penalty_cost |
Bu, Deneysel: Bu alanın davranışı veya varlığı gelecekte değişebilir. |
estimated_incompatible_vehicle_ratio |
Aşağıdaki nedenlerden en az biri nedeniyle bu sevkiyatı gerçekleştiremeyen araçların tahmini oranı. Not: Bu alan yalnızca nedenler bir araçla ilgili olduğunda doldurulur. Deneysel: Bu alanın davranışı veya varlığı gelecekte değişebilir. |
Neden
Gönderimin neden atlandığını açıklayabiliyorsak nedenler burada listelenir. Neden tüm araçlar için aynı değilse reason birden fazla öğe içerir. Atlanan bir gönderinin yinelenen nedenleri olamaz (ör. example_vehicle_index hariç tüm alanların aynı olduğu durumlar). Örnek:
reasons {
code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
example_vehicle_index: 1
example_exceeded_capacity_type: "Apples"
}
reasons {
code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
example_vehicle_index: 3
example_exceeded_capacity_type: "Pears"
}
reasons {
code: CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT
example_vehicle_index: 1
}
Atlanan gönderi hiçbir araçla uyumlu değil. Nedenler tüm araçlar için farklı olabilir ancak en az bir aracın "Elma" kapasitesi (1. araç dahil), en az bir aracın "Armut" kapasitesi (3. araç dahil) ve en az bir aracın mesafe sınırı (1. araç dahil) aşılır.
| Alanlar | |
|---|---|
code |
Kodun yorumlarına bakın. |
example_vehicle_indices[] |
Deneysel: Bu alanın davranışı veya varlığı gelecekte değişebilir. |
example_exceeded_capacity_type |
Neden kodu |
example_vehicle_index |
Neden, gönderi-araç uyumsuzluğuyla ilgiliyse bu alan, ilgili bir aracın dizinini sağlar. |
Kod
Neden türünü tanımlayan kod. Buradaki sıralamanın bir anlamı yoktur. Özellikle, her iki neden de geçerliyse belirli bir nedenin çözümde diğerinden önce görünüp görünmeyeceğine dair bir gösterge sunmaz.
| Sıralamalar | |
|---|---|
CODE_UNSPECIFIED |
Bu hiçbir zaman kullanılmamalıdır. |
NO_VEHICLE |
Modelde araç bulunmadığından hiçbir gönderim yapılamıyor. |
DEMAND_EXCEEDS_VEHICLE_CAPACITY |
Sevkiyatın talebi, bir aracın bazı kapasite türleri için kapasitesini aşıyor. Bunlardan biri example_exceeded_capacity_type. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT |
Bu sevkiyatı gerçekleştirmek için gereken minimum mesafe (ör. aracın Bu hesaplama için jeodezik mesafeleri kullandığımızı unutmayın. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT |
Seyahat süresi, bekleme süresi ve hizmet süresi dahil olmak üzere bu gönderimi gerçekleştirmek için gereken minimum süre, aracın Not: Seyahat süresi, en iyi durum senaryosuna göre hesaplanır. Yani jeodezik mesafe x 36 m/sn (yaklaşık 130 km/saat) olarak hesaplanır. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT |
Yukarıdakiyle aynıdır ancak yalnızca minimum seyahat süresi ile aracın travel_duration_limit değeri karşılaştırılır. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS |
Araç, en erken başlangıç zamanında başlarsa en iyi senaryoda bu sevkiyatı gerçekleştiremez (zaman hesaplaması için CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT bölümüne bakın): Toplam süre, aracın en geç bitiş zamanından sonra bitmesine neden olur. |
VEHICLE_NOT_ALLOWED |
Gönderinin allowed_vehicle_indices alanı boş değil ve bu araç bu alana ait değil. |
VEHICLE_IGNORED |
Aracın Deneysel: Bu alanın davranışı veya varlığı gelecekte değişebilir. |
SHIPMENT_IGNORED |
Gönderinin Deneysel: Bu alanın davranışı veya varlığı gelecekte değişebilir. |
SKIPPED_IN_INJECTED_SOLUTION_CONSTRAINT |
Gönderim Deneysel: Bu alanın davranışı veya varlığı gelecekte değişebilir. |
VEHICLE_ROUTE_IS_FULLY_SEQUENCE_CONSTRAINED |
Deneysel: Bu alanın davranışı veya varlığı gelecekte değişebilir. |
ZERO_PENALTY_COST |
Gönderinin ceza maliyeti sıfırdır. Bu, gelişmiş bir modelleme seçeneği olarak yararlı olabilir ancak bir gönderinin neden atlandığını sonradan açıklamak için de kullanılabilir. Deneysel: Bu alanın davranışı veya varlığı gelecekte değişebilir. |
TimeWindow
Zaman pencereleri, bir etkinliğin zamanını (ör. bir ziyarete varış zamanı veya bir aracın başlangıç ve bitiş zamanı) kısıtlar.
start_time ve end_time şeklindeki kesin zaman aralığı sınırları, etkinliğin en erken ve en geç zamanını start_time <= event_time <=
end_time olacak şekilde zorunlu kılar. Esnek zaman aralığının alt sınırı olan soft_start_time, etkinliğin soft_start_time tarihinde veya sonrasında gerçekleşmesi tercihini ifade eder. Bu tercih, etkinliğin soft_start_time'dan ne kadar önce gerçekleştiğiyle orantılı bir maliyet doğurur. Esnek zaman aralığı üst sınırı (soft_end_time), etkinliğin soft_end_time tarihinde veya daha önce gerçekleşmesi tercihini ifade eder. Bu tercih, etkinliğin soft_end_time tarihinden ne kadar sonra gerçekleştiğiyle orantılı bir maliyet doğurur. start_time, end_time, soft_start_time ve soft_end_time, genel zaman sınırları içinde olmalı (ShipmentModel.global_start_time ve ShipmentModel.global_end_time bölümlerine bakın) ve şunlara uymalıdır:
0 <= `start_time` <= `end_time` and
0 <= `start_time` <= `soft_start_time` and
0 <= `soft_end_time` <= `end_time`.
| Alanlar | |
|---|---|
start_time |
Kesin zaman aralığının başlangıç zamanı. Belirtilmezse |
end_time |
Kesin zaman aralığının bitiş zamanı. Belirtilmezse |
soft_start_time |
Zaman aralığının esnek başlangıç zamanı. |
soft_end_time |
Zaman aralığının esnek bitiş zamanı. |
cost_per_hour_before_soft_start_time |
Etkinlik soft_start_time'dan önce gerçekleşirse modeldeki diğer maliyetlere eklenen saat başına maliyet şu şekilde hesaplanır: Bu maliyet pozitif olmalıdır ve alan yalnızca soft_start_time ayarlanmışsa ayarlanabilir. |
cost_per_hour_after_soft_end_time |
Etkinlik Bu maliyet pozitif olmalıdır ve alan yalnızca |
TransitionAttributes
Bir rotadaki art arda iki ziyaret arasındaki geçişlerin özelliklerini belirtir. Aynı geçiş için birden fazla TransitionAttributes geçerli olabilir. Bu durumda, tüm ek maliyetler toplanır ve en katı kısıtlama veya sınır uygulanır (doğal "VE" semantiği izlenir).
| Alanlar | |
|---|---|
src_tag |
Bu özelliklerin geçerli olduğu (kaynak->hedef) geçişler grubunu tanımlayan etiketler. Kaynak ziyaret veya araç başlangıcı, yalnızca |
excluded_src_tag |
Şu sayfaya göz atın: |
dst_tag |
Bir varış noktası ziyareti veya araç sonu, yalnızca |
excluded_dst_tag |
Şu sayfaya göz atın: |
cost |
Bu geçişi gerçekleştirmenin maliyetini belirtir. Bu değer, modeldeki diğer tüm maliyetlerle aynı birimdedir ve negatif olmamalıdır. Bu ücret, mevcut diğer tüm maliyetlere ek olarak uygulanır. |
cost_per_kilometer |
Bu geçiş gerçekleştirilirken kat edilen mesafeye uygulanan kilometre başına maliyeti belirtir. Araçlarda belirtilen |
distance_limit |
Bu geçişi gerçekleştirirken kat edilen mesafe için bir sınır belirtir. Haziran 2021 itibarıyla yalnızca esnek sınırlar desteklenmektedir. |
delay |
Bu geçiş gerçekleştirilirken oluşan gecikmeyi belirtir. Bu gecikme her zaman kaynak ziyaret tamamlandıktan sonra ve hedef ziyaret başlamadan önce gerçekleşir. |
Uri
Route Optimization API tarafından okunabilen ve yazılabilen bir kaynağı işaret eden tek tip kaynak tanımlayıcısı.
| Alanlar | |
|---|---|
uri |
Kaynağın URI'si. Kaynak henüz mevcut olmayabilir. Kaynağın içeriği JSON veya textproto olarak kodlanır. Yalnızca Google Cloud Storage kaynakları desteklenir. Kaynak JSON olarak kodlanmışsa kaynak adının sonuna |
Araç
Sevkiyat problemindeki bir aracı modeller. Bir gönderi sorununun çözülmesi, bu araç için start_location ile başlayıp end_location ile biten bir rota oluşturur. Rota, bir dizi ziyarettir (ShipmentRoute bölümüne bakın).
| Alanlar | |
|---|---|
display_name |
Aracın kullanıcı tarafından tanımlanan görünen adı. En fazla 63 karakter uzunluğunda olabilir ve UTF-8 karakterleri kullanılabilir. |
travel_mode |
Aracın kullanabileceği yolları ve hızını etkileyen seyahat modu. |
route_modifiers |
Belirli bir araç için rotaların hesaplanma şeklini etkileyen ve karşılanması gereken bir dizi koşul. |
start_location |
Aracın herhangi bir gönderiyi teslim almadan önce yola çıktığı coğrafi konum. Belirtilmezse araç ilk teslim alma noktasından başlar. Gönderi modelinde süre ve mesafe matrisleri varsa |
start_waypoint |
Aracın herhangi bir gönderiyi teslim almadan önce başladığı coğrafi konumu temsil eden yol noktası. |
end_location |
Aracın son |
end_waypoint |
Aracın son |
start_tags[] |
Aracın rotasının başlangıcına eklenen etiketleri belirtir. Boş veya yinelenen dizelere izin verilmez. |
end_tags[] |
Aracın rotasının sonuna eklenen etiketleri belirtir. Boş veya yinelenen dizelere izin verilmez. |
start_time_windows[] |
Aracın başlangıç konumundan ayrılabileceği zaman aralıkları. Genel zaman sınırları içinde olmalıdır ( Aynı yinelenen alana ait zaman pencereleri birbirinden ayrı olmalıdır. Diğer bir deyişle, hiçbir zaman penceresi birbiriyle çakışamaz veya bitişik olamaz ve kronolojik sırayla olmalıdır.
|
end_time_windows[] |
Aracın bitiş konumuna varabileceği zaman aralıkları. Genel zaman sınırları içinde olmalıdır ( Aynı yinelenen alana ait zaman pencereleri birbirinden ayrı olmalıdır. Diğer bir deyişle, hiçbir zaman penceresi birbiriyle çakışamaz veya bitişik olamaz ve kronolojik sırayla olmalıdır.
|
unloading_policy |
Araçta boşaltma politikası uygulanıyor. |
load_limits |
Aracın kapasitesi (ör. ağırlık, hacim, palet sayısı) Eşlemedeki anahtarlar, |
cost_per_hour |
Araç maliyetleri: Tüm maliyetler toplanır ve Araç rotasının saat başına maliyeti. Bu maliyet, rotanın toplam süresine uygulanır ve seyahat süresi, bekleme süresi ve ziyaret süresini içerir. Yalnızca |
cost_per_traveled_hour |
Araç rotasının seyahat edilen saat başına maliyeti. Bu maliyet yalnızca rota tarafından kullanılan seyahat süresine (yani |
cost_per_kilometer |
Araç rotasının kilometre başına maliyeti. Bu maliyet, |
fixed_cost |
Bu araç bir gönderiyi taşımak için kullanılıyorsa uygulanan sabit maliyet. |
used_if_route_is_empty |
Bu alan, yalnızca rotaları herhangi bir gönderiye hizmet vermeyen araçlar için geçerlidir. Bu durumda aracın ikinci el olarak kabul edilip edilmeyeceğini belirtir. Doğru ise araç, herhangi bir gönderi teslim etmese bile başlangıç konumundan bitiş konumuna gider ve başlangıç --> bitiş yolculuğundan kaynaklanan zaman ve mesafe maliyetleri hesaba katılır. Aksi takdirde, başlangıç konumundan bitiş konumuna gitmez ve bu araç için |
route_duration_limit |
Aracın rotasının toplam süresine uygulanan sınır. Belirli bir |
travel_duration_limit |
Aracın rotasının seyahat süresine uygulanan sınır. Belirli bir |
route_distance_limit |
Aracın rotasının toplam mesafesine uygulanan sınır. Belirli bir |
extra_visit_duration_for_visit_type |
visit_types dizelerinden sürelere bir eşleme belirtir. Süre, belirtilen Bir ziyaret isteğinde birden fazla tür varsa haritadaki her tür için bir süre eklenir. |
break_rule |
Bu araçta uygulanacak mola programını açıklar. Boş bırakılırsa bu araç için mola planlanmaz. |
label |
Bu araç için bir etiket belirtir. Bu etiket, yanıtta ilgili |
ignore |
Doğru ise
|
travel_duration_multiple |
Bu aracın seyahat sürelerini artırmak veya azaltmak için kullanılabilecek bir çarpma faktörü belirtir. Örneğin, bu değeri 2,0 olarak ayarlarsanız bu araç daha yavaş olur ve seyahat süreleri standart araçların iki katı olur. Bu çarpan, ziyaret sürelerini etkilemez. UYARI: Seyahat süreleri, bu kat sayı uygulandıktan sonra ancak herhangi bir sayısal işlem yapılmadan önce en yakın saniyeye yuvarlanır. Bu nedenle, küçük bir kat sayı hassasiyet kaybına neden olabilir. Aşağıdaki |
DurationLimit
Bir aracın rotasının maksimum süresini tanımlayan sınır. Sert veya yumuşak olabilir.
Esnek sınır alanı tanımlandığında hem esnek maksimum eşik hem de ilişkili maliyeti birlikte tanımlanmalıdır.
| Alanlar | |
|---|---|
max_duration |
Süreyi en fazla max_duration olacak şekilde kısıtlayan kesin bir sınır. |
soft_max_duration |
Maksimum süre sınırını zorunlu kılmayan ancak ihlal edildiğinde rotanın maliyetini artıran esnek bir sınırdır. Bu maliyet, modelde tanımlanan diğer maliyetlere aynı birimle eklenir. Tanımlanmışsa |
quadratic_soft_max_duration |
Maksimum süre sınırını zorunlu kılmayan ancak ihlal edildiğinde rotanın maliyetini artıran esnek bir sınır. Bu maliyet, sürenin karesiyle orantılıdır. Bu maliyet, modelde tanımlanan diğer maliyetlere aynı birimle eklenir.
|
cost_per_hour_after_soft_max |
Maliyet negatif olmamalıdır. |
cost_per_square_hour_after_quadratic_soft_max |
Süre eşiğin altındaysa ek maliyet 0 olur. Aksi takdirde maliyet, süreye bağlı olarak aşağıdaki gibi hesaplanır: Maliyet negatif olmamalıdır. |
LoadLimit
Bir araç için geçerli olan yük sınırını tanımlar (ör. "bu kamyon yalnızca 3.500 kg'a kadar yük taşıyabilir"). Şu sayfaya göz atın: load_limits.
| Alanlar | |
|---|---|
soft_max_load |
Yükün sanal sınırı. Şu sayfaya göz atın: |
cost_per_unit_above_soft_max |
Bu aracın rotası boyunca yük |
start_load_interval |
Rotanın başlangıcında aracın kabul edilebilir yük aralığı. |
end_load_interval |
Rotanın sonunda aracın kabul edilebilir yük aralığı. |
max_load |
Kabul edilebilir maksimum yük miktarı. |
cost_per_kilometer |
Bu araç için bir birim yükün bir kilometre taşınmasının maliyeti. Bu, yakıt tüketimi için bir proxy olarak kullanılabilir: Yük bir ağırlıksa (Newton cinsinden), yük*kilometre bir enerji boyutuna sahiptir. Deneysel: Daha fazla bilgi için https://developers.google.com/maps/tt/route-optimization/experimental/load-cost/make-request adresini ziyaret edin. |
cost_per_traveled_hour |
Bu araç için bir saat boyunca bir birim yükle seyahat etmenin maliyeti. Deneysel: Daha fazla bilgi için https://developers.google.com/maps/tt/route-optimization/experimental/load-cost/make-request adresini ziyaret edin. |
Aralık
Kabul edilebilir yük miktarı aralığı.
| Alanlar | |
|---|---|
min |
Kabul edilebilir minimum yük. 0 veya daha büyük olmalıdır. Her ikisi de belirtilmişse |
max |
Kabul edilebilir maksimum yük. 0 veya daha büyük olmalıdır. Belirtilmezse maksimum yük bu mesajla kısıtlanmaz. Her ikisi de belirtilmişse |
LoadCost
Transition boyunca bir birim yük taşımanın maliyeti. Belirli bir yük için maliyet iki bölümün toplamıdır:
- min(yük,
load_threshold) *cost_per_unit_below_threshold - maks(0, yük -
load_threshold) *cost_per_unit_above_threshold
Bu maliyetle çözümler, önce yüksek talepleri teslim etmeyi veya eşdeğer olarak yüksek talepleri en son almayı tercih eder. Örneğin, bir araçta
load_limit {
key: "weight"
value {
cost_per_kilometer {
load_threshold: 15
cost_per_unit_below_threshold: 2.0
cost_per_unit_above_threshold: 10.0
}
}
}
ve rotası başlangıç,teslim alma,teslim alma,teslimat,teslimat,bitiş şeklindedir ve geçişler şöyledir:
transition { vehicle_load['weight'] { amount: 0 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 20 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 0 }
travel_distance_meters: 1000.0 }
Bu LoadCost tarafından yapılan maliyet (cost_below * load_below * kilometers + cost_above * load_above * kms) olur.
- geçiş 0: 0,0
- geçiş 1: 2,0 * 10 * 1,0 + 10,0 * 0 * 1,0 = 20,0
- geçiş 2: 2,0 * 15 * 1,0 + 10,0 * (20 - 15) * 1,0 = 80,0
- geçiş 3: 2,0 * 10 * 1,0 + 10,0 * 0 * 1,0 = 20,0
- geçiş 4: 0,0
Bu nedenle, rota üzerindeki LoadCost 120,0 olur.
Ancak rota başlangıç, teslim alma, teslimat, teslim alma, teslimat, bitiş ise ve geçişler varsa:
transition { vehicle_load['weight'] { amount: 0 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 0 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 0 }
travel_distance_meters: 1000.0 }
Bu LoadCost tarafından yapılan harcama
- geçiş 0: 0,0
- geçiş 1: 2,0 * 10 * 1,0 + 10,0 * 0 * 1,0 = 20,0
- geçiş 2: 0,0
- 3. geçiş: 2,0 * 10 * 1,0 + 10,0 * 0 * 1,0 = 20,0
- geçiş 4: 0,0
Burada rota üzerindeki LoadCost 40,0'dır.
LoadCost, ağır yüklü geçişler içeren çözümleri daha pahalı hale getirir.
Deneysel: Daha fazla bilgi için https://developers.google.com/maps/tt/route-optimization/experimental/load-cost/make-request adresini ziyaret edin.
| Alanlar | |
|---|---|
load_threshold |
Bir yük birimini taşıma maliyetinin cost_per_unit_below_threshold değerinden cost_per_unit_above_threshold değerine değiştiği yük miktarı. 0'dan büyük veya 0'a eşit olmalıdır. |
cost_per_unit_below_threshold |
0 ile eşik arasındaki her birim için bir yük birimini taşıma maliyeti. Sonlu bir değer ve >= 0 olmalıdır. |
cost_per_unit_above_threshold |
Eşik değerin üzerindeki her birim için bir yük birimini taşıma maliyeti. Eşik = 0 olan özel durumda bu, birim başına sabit bir maliyettir. Sonlu bir değer ve >= 0 olmalıdır. |
TravelMode
Araçlar tarafından kullanılabilen seyahat modları.
Bunlar, Google Haritalar Platformu Routes API seyahat modlarının bir alt kümesi olmalıdır. Bkz. https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteTravelMode
Not: WALKING rotaları beta sürümündedir ve bazen net kaldırımlar veya yaya yolları eksik olabilir. Uygulamanızda gösterdiğiniz tüm yaya rotaları için kullanıcıya bu uyarıyı göstermeniz gerekir.
| Sıralamalar | |
|---|---|
TRAVEL_MODE_UNSPECIFIED |
Belirtilmemiş seyahat modu, DRIVING ile eşdeğerdir. |
DRIVING |
Arabayla yol tarifine karşılık gelen seyahat modu (araba vb.). |
WALKING |
Yaya yol tarifine karşılık gelen seyahat modu. |
UnloadingPolicy
Aracın nasıl boşaltılabileceğine dair politika. Yalnızca hem teslim alma hem de teslimat içeren gönderiler için geçerlidir.
Diğer gönderiler, unloading_policy değerinden bağımsız olarak rotanın herhangi bir yerinde gerçekleşebilir.
| Sıralamalar | |
|---|---|
UNLOADING_POLICY_UNSPECIFIED |
Belirtilmemiş boşaltma politikası; teslimatlar, ilgili teslim almalardan sonra yapılmalıdır. |
LAST_IN_FIRST_OUT |
Teslimatlar, teslim almaların tersi sırayla yapılmalıdır. |
FIRST_IN_FIRST_OUT |
Teslimatlar, teslim almalarla aynı sırada gerçekleşmelidir. |
VehicleFullness
VehicleFullness, bir aracın ne kadar dolu olduğunu hesaplayan bir metriktir. Her VehicleFullness alanı 0 ile 1 arasındadır ve sınırlı bir metrik alanı (ör. AggregatedMetrics.travel_distance_meters) ile ilgili araç sınırı (ör. Vehicle.route_distance_limit) arasındaki oran olarak hesaplanır (varsa). Aksi takdirde doluluk oranı ayarlanmadan kalır. Sınır 0 ise alan 1 olarak ayarlanır. Not: Bir rota trafikle ilgili uygunsuzluklara tabi olduğunda bazı ham doluluk oranları 1, 0'ı aşabilir (ör. araç, mesafe sınırını aşabilir). Bu durumlarda, doluluk değerlerini 1,0 ile sınırlandırırız.
| Alanlar | |
|---|---|
max_fullness |
Bu mesajdaki diğer tüm alanların maksimum değeri. |
distance |
|
travel_duration |
[AggregatedMetrics.travel_duration_seconds][] ile |
active_duration |
[AggregatedMetrics.total_duration_seconds][] ile |
max_load |
Tüm [AggregatedMetrics.max_load][] türleri ve ilgili |
active_span |
Belirli bir araç için (vehicle_end_time - vehicle_start_time) / (latest_vehicle_end_time - earliest_vehicle_start_time) oranı. Payda yoksa bunun yerine ( |
Ara nokta
Bir ara noktayı kapsar. Yol noktaları, VisitRequest'lerin varış ve ayrılış konumlarını, araçların ise başlangıç ve bitiş konumlarını belirtir.
| Alanlar | |
|---|---|
side_of_road |
İsteğe bağlıdır. Bu ara noktanın konumu, aracın yolun belirli bir tarafında durması için bir tercih olduğunu gösterir. Bu değeri ayarladığınızda rota, konumdan geçer. Böylece araç, yolun merkezinden konuma doğru eğimli olan tarafında durabilir. Bu seçenek, "YÜRÜYEREK" seyahat modu için kullanılamaz. |
vehicle_stopover |
Ara noktanın, araçların yolcu almak veya indirmek için durması gereken bir yer olduğunu gösterir. Bu seçenek yalnızca "SÜRÜŞ" seyahat modu ve "location_type" değeri "location" olduğunda kullanılabilir. Deneysel: Bu alanın davranışı veya varlığı gelecekte değişebilir. |
location_type birleşik alanı. Bir konumu temsil etmenin farklı yolları. location_type aşağıdakilerden yalnızca biri olabilir: |
|
location |
İsteğe bağlı bir başlık da dahil olmak üzere coğrafi koordinatlar kullanılarak belirtilen bir nokta. |
place_id |
Ara noktayla ilişkili ÖY yer kimliği. Bir VisitRequest'in varış veya kalkış konumunu belirtmek için yer kimliği kullanırken, yere navigasyon için LatLng konumunu belirleyecek kadar spesifik bir yer kimliği kullanın. Örneğin, bir binayı temsil eden yer kimliği uygundur ancak bir yolu temsil eden yer kimliği önerilmez. |