Araç nitelikleri

RouteQ’de siparişlerin teslimatı hem sıradan araçlarla hem de yaya olarak veya toplu taşıma araçlarıyla seyahat eden kuryeler tarafından gerçekleştirilebilir. Araç ve kurye ortak bir dizi özelliği paylaşır.

vehicles sorgu alanı araç veya kuryeyi tanımlamak için kullanılır.

Araç veya kurye tanımlayıcısı

Bir araç veya kuryenin zorunlu bir niteliği, id’de ayarlanan benzersiz bir sayısal veya dize tanımlayıcısıdır. Tanımlayıcı tek bir hizmet talebi içinde benzersiz olmalıdır. İzleme sistemi’ne aktarıldığında, bu tanımlayıcı kurye kullanıcı girişi olarak kullanılacaktır.

Ek olarak, hesap sisteminizden aracın veya kuryenin sayısal veya dizgi tanımlayıcısını ref alanına girebilir ve kurye ile Takip üzerinden iletişime geçmek için onun cep telefonu numarasını phone alanına girebilirsiniz.

Taşıma şekli

Varsayılan değer rotalar oluşturulurken, kuryenin teslimat için bir binek araç (2,5 tondan az taşıma kapasitesi) kullandığı öngörülür. Gönderilerin yürüyerek, kamyonla veya toplu taşıma araçlarıyla teslimatı vehicle.routing_mode parametresi kullanılarak gösterilebilir. Tüm kuryeler teslimatları aynı şekilde yapıyorsa, options.routing_mode yönlendirme seçeneği kullanılabilir.

Not

vehicle.routing_mode parametresi options.routing_mode’den daha yüksek bir önceliğe sahiptir.

Olası değerler:

  • driving – varsayılan yöntem, 2,5 tondan daha az taşıma kapasitesine sahip araçlar için rotalama;

  • truck – varsayılan olarak – 2,5 ton üstü taşıma kapasitesine sahip kamyonlar için rotalama. Ek parametreler araç özellikleri bölümünde belirtilebilir. Bu taşıma şeklini kullanarak planlama yaparken, Moskova için kamyon kasası dahil olmak üzere kamyon trafiğini kısıtlayan yol işaretleri dikkate alınır;

  • walking – yaya profiline sahip bir rota. Rotada sadece yayanın yürüyebileceği yollar kullanılır;

  • transit – toplu taşıma araçlarını kullanarak ve otobüs durağından teslimat noktasına yürüyerek hareketi öngörülen rota.

Örnek 1

Aşağıdaki örnekte tüm kuryeler için transit taşıma şekli kullanılmaktadır. Sonuç olarak, kuryeler teslimatları toplu taşıma araçlarında yapıyor ve siparişler onlar için en uygun şekilde dağıtılmıştır.

API isteği (JSON)API yanıtıHaritada aç

Not

Oluşturulan rotalarda, kat edilen mesafe yalnızca kuryenin yürüdüğü mesafeler için gösterilmektedir. Toplu taşımada kat edilen mesafeler optimizasyon için dikkate alınır ancak metriklerde raporlanmaz.

Örnek 2

Aşağıdaki örnekte bir kurye için transit ve başka bir kurye için de driving taşıma şekli kullanılmaktadır. Siparişler kuryelere tahsis edilir, böylece araç toplu taşıma duraklarından veya birbirlerinden daha uzak noktalara teslimat yapar.

API isteği (JSON)API yanıtıHaritada aç

Araç veya kurye kapasitesi

RouteQ, bir aracın/kuryenin tek bir rotada taşıyabileceği maksimum ağırlığı veya gönderi miktarını belirlemek için araç kapasitesi tanımını destekler.

Araç veya kuryenin kapasitesini tanımlamak için capacity alanını kullanın (seçeneklerden birini belirtmek yeterlidir):

  • capacity.units – paket sayısı (palet, kutu, fıçı).

  • capacity.weight_kg – kilogram cinsinden ağırlık veya hacimsel ağırlık.

  • capacity.volume – metreküp cinsinden ölçülen ve ölçümlerin çarpımı olarak verilen hacim:

    • capacity.volume.width_m – metre cinsinden genişlik.

    • capacity.volume.depth_m – metre cinsinden derinlik.

    • capacity.volume.height_m – metre cinsinden yükseklik.

    Ölçümler bilinmiyorsa, bir alanda hacim değerini ayarlayın ve diğer alanlarda 1 belirtin veya capacity.volume_cbm kullanın.

  • capacity.volume_cbm – metreküp olarak verilen hacim.

Bir aracın hem metrik boyutları hem de hacmi belirtilmişse, bu durumda capacity.volume boyutları tanımlar ve capacity.volume_cbm kapasitesini tanımlar.

Not

Siparişlerin ağırlığı kilogram veya hacimsel ağırlık olarak belirtilmişse, araç kapasitesinin de aynı birimlerde belirtilmesi gerektiğini lütfen unutmayın. Benzer şekilde, siparişlerin ağırlığı paket sayısı olarak verilmişse, araç kapasitesi tanımı her bir araçtaki maksimum paket sayısını içermelidir.

Buna ek olarak, maksimum araç yükünün, belirtilen taşıma kapasitesinin bir yüzdesi olarak belirlenmesi mümkündür. Bunun için limits sorgu alanı kullanılır:

  • limits.volume_perccapacity.volume.width_m * capacity.volume.depth_m * capacity.volume.height_m’de ayarlanan değerin yüzdesi.

  • limits.weight_perccapacity.weight_kg’de ayarlanan değerin yüzdesi.

  • limits.unit_perccapacity.units’de ayarlanan değerin yüzdesi.

Ayarlanan değere göre aşırı yükleme olasılığını belirtmek için 100’den büyük bir değer belirtin. Örneğin sipariş boyutu tahminindeki olası yanlışlıklar için bir yük kapasitesi marjı bırakmak için 100’den küçük bir değer belirtin. Örneğin, 110 değeri %10 aşırı yüke izin verirken, 90 değeri belirtilen kapasitenin %90’ı kadar maksimum yüke izin verir.

Araç kapasitesi (limits dahil) ihlal edilmeyecek katı bir sınırdır. Araç yüklemesi hesaplanırken teslim alınacak ve teslim edilecek siparişler dikkate alınır. Daha fazla bilgi için lütfen Teslim alma ve teslimat bölümüne bakın.

Not

Aracın kapasitesi aracılığıyla, içine girmesi gereken sipariş sayısını dolaylı olarak kontrol edebilirsiniz. Örneğin, her siparişin hacmini 1 birim olarak belirlerseniz (gerçek sipariş boyutundan bağımsız olarak) ve araç kapasitesi 10 birimse, planlama sırasında her araca 10’dan fazla sipariş girmeyecektir.

Örnek

1,5 tonluk (Araç 1) ve 3 tonluk (Araç 2) iki araç ve 1 tonluk, 1,2 tonluk ve 1,4 tonluk üç teslimat siparişi verilmiştir.

Rota optimizasyonunda, 1,2 ton ağırlığındaki bir sipariş Araç 1’e, 1 ve 1,4 ton ağırlığındaki iki sipariş ise Araç 2’ye yerleştirilecektir.

API isteği (JSON)API yanıtıHaritada aç

Kullanıcı tarafından tanımlı kapasite birimleri

Kullanıcı tanımlı ölçü birimi’ne göre taşıma aracının kapasitesi.

Kullanıcı ölçü birimi iki parametre ile belirtilir:

  • capacity.custom.<seri numarası>.name – kullanıcı ölçü biriminin adı;

  • capacity.custom.<seri numarası>.size – kullanıcı ölçü birimine göre aracın kapasitesi.

Varsayılan değer, kapasite capacity.custom.<seri numarası>.size parametresi ile sınırlı değildir.

Birden fazla kullanıcı ölçü birimi belirtilebilir ve bunlara istediğiniz adı verebilirsiniz.

Uyarı

Araç üzerindeki özel ölçü biriminin adı sipariş için belirtilen ile eşleşmelidir.

Siparişler için kullanıcı tarafından tanımlı kapasite birimleri belirtilmişse veya bazı araçlar için açıkça belirtilmiş ancak diğerleri için belirtilmemişse, belirtilmedikleri araçlar için özel birimlere göre kapasite sınırsız olarak kabul edilir.

Kullanıcı parametresi price (sipariş tutarı) için Excel dosya sayfalarını doldurma örneği:

Sipariş tutarı

shipment_size.custom.0.name

shipment_size.custom.0.size

price

100

Siparişlerin toplam tutarı

capacity.custom.0.name

capacity.custom.0.size

price

1000

Örnek 1

Bu örnekte, gönderi birimlerinin ağırlığı, hacmi ve sayısı belirtilmiştir. Ayrıca sırasıyla location.shipment_size.custom ve vehicle.capacity.custom parametrelerini kullanarak taşınan siparişlerin toplam tutarı üzerinden sipariş tutarı ve araç başına limiti ayarlanmıştır.

Ağırlık, hacim ve paket sayısına göre kullanımları küçük olmasına rağmen, her biri 1 sipariş taşıyan 2 araç olduğu görülüyor, bunun nedeni bu siparişlerin tutarının araç için belirlenen limite yakın olmasıdır.

API isteği (JSON)API yanıtıHaritada aç

Örnek 2

Bu örnekte Örnek 1 ile aynı veriler kullanılmaktadır, ancak ek olarak bir kuryenin taşıyabileceği maksimum sipariş sayısı belirtilmiştir. Limit location.shipment_size.custom.1 ve vehicle.capacity.custom.1 parametreleri kullanılarak tanımlanır. Her araç artık en fazla 5 sipariş taşıyabilir.

Üç araçtaki sipariş sayısının değiştiği görülüyor. Artık 1 siparişi yalnızca 1 araba taşıyor ve toplam tutar limiti nedeniyle siparişler artık eklenemiyor. Geri kalan araçlarda toplam tutar açısından maksimum kullanım elde edildi fakat sipariş sayısındaki sınırlamaya uyumak da mümkün oldu.

API isteği (JSON)API yanıtıHaritada aç

Araç için minimum sipariş ağırlığı

Ağır bir kamyonun hafif bir siparişi şehrin diğer tarafına götürmesini önlemek için min_stop_weight parametresini kullanın. Bu parametre ile aracın bir noktaya teslim edeceği minimum toplam ağırlığı belirleyebilirsiniz. Farklı tonajlı araçlarla yük taşımacılığının planlanması durumunda geçerlidir.

Yumuşak kısıtlama: algoritma onu ihlal edebilir. Cezalar aşağıdaki alanlarda belirlenir:

  • penalty.min_stop_weight.fixed – bir noktadaki tüm siparişlerin minimum toplam ağırlığının ihlali için ceza (varsayılan 1000);

  • penalty.min_stop_weight.kg – bir noktaya teslim edilen siparişlerin toplam ağırlığındaki her eksik kilogram için ceza (varsayılan 50).

Örnek 1

1500 ve 10000 kg taşıma kapasitesine sahip iki araç 100, 500, 900 ve 9000 kg ağırlığındaki siparişleri teslim ediyor. Büyük araca hem hafif hem de ağır siparişler düşer.

API isteği (JSON)API yanıtıHaritada aç

Örnek 2

10000 kg taşıma kapasitesine sahip bir araç için min_stop_weight parametresi 1000 değeriyle belirtilir. Sonuç olarak, büyük otomobil yalnızca 9000 kg’lık bir sipariş alıyor.

API isteği (JSON)API yanıtıHaritada aç

Araç özellikleri

Araç özellikleri vehicle.specs alanından ayarlanabilir. Aşağıdaki parametreleri içerebilir:

  • width – aracın metre cinsinden genişliği;

  • height – aracın metre cinsinden yüksekliği;

  • length – aracın metre cinsinden uzunluğu;

  • max_weight – aracın ton cinsinden maksimum ağırlığı;

  • max_weight_kg – aracın kilogram cinsinden maksimum ağırlığı (planlama işlemleri sırasında tona yuvarlanır).

Not

Eğer planlama çalışmasında eş zamanlı olarak vehicle.specs.max_weight ve vehicle.specs.max_weight_kg parametreleri verilmişse, bu durumda çözümde vehicle.specs.max_weight kullanılacaktır.

Listelenen tüm özellikler için minimum değer 0’dır.

Uyarı

Bu parametreler yalnızca kamyonlar (routing_mode = truck) için belirtilebilir.

Kamyon kapasitesini hesaplamak için 21 sınıf kullanılır, bunun için bkz. spesifikasyon. Algoritma, her aracın boyutlarını ve taşıma kapasitesini dikkate alır ve tüm özellikleri araca eşit veya araçtan daha büyük olan spesifikasyondan en yakın sınıfı seçer. Aracın özelliklerinden en az birinin tanımlanan maksimum değerleri aşması halinde, araca truck_N21 sınıfı atanır. Çözümde en fazla 5 sınıf kullanılabilir. Eğer planlama sırasında daha fazla sınıf varsa, küçük sınıflar çözümden eşit olarak çıkarılır ve araçlar kalanlardan en yakın büyük sınıfı alır.

Çözümde hangi sınıfların kullanıldığını görmek için matrix_statistics API yanıt dizisine bakılabilir.

Sınıf özellikleri

Sınıf

Araç yüksekliği, m

Araç genişliği, m

Araç uzunluğu, m

Maksimum araç ağırlığı, ton

truck_N1

0

0

0

0

truck_N2

1.5

0

0

0

truck_N3

2

0

0

0

truck_N4

2

2

3.2

3.5

truck_N5

2.2

2.1

4

0

truck_N6

2.2

2.1

4

3.5

truck_N7

2.4

2.6

4

5

truck_N8

2.4

2.6

8

8

truck_N9

2.5

0

0

0

truck_N10

2.5

2.2

6.5

3.5

truck_N11

2.7

2.6

8

10

truck_N12

2.7

2.6

8

14.5

truck_N13

3

2.6

8

10

truck_N14

3

2.6

8

14.5

truck_N15

3

2.6

10

20

truck_N16

3.2

2.6

9

12

truck_N17

3.9

2.6

10

22

truck_N18

3.9

2.6

10

25

truck_N19

4

2.6

15

30

truck_N20

4

2.6

20

35

truck_N21

4

2.6

20

40

Araç özellikleri kaydı options.enable_vehicle_classes seçeneği ile etkinleştirilir. Varsayılan değer enable_vehicle_classes = true – bu durumda algoritma araçları özelliklerine göre sınıflandırır. Özelliklerinin kaydı enable_vehicle_classes = false ayarı ile devre dışı bırakılabilir.

Örnek 1.1

Bir kamyon ve bir binek otomobil olmak üzere iki araç 10 siparişi teslim ediyor. 2 adres, araçlar için 2,5 metre yükseklik sınırlaması olan Cherkizovskaya geçidinin yanında yer almaktadır. Bu adresler arasındaki en kısa yol buradan geçer.

Algoritma 2 rota oluşturacaktır, çünkü kamyon karşıya geçemeyecek kadar yüksektir. Yakınında bulunan siparişler, kısıtlayıcı özellikleri olmayan bir binek aracı taşıyacaktır. Kamyonun yüksekliği specs.height = 3 olduğundan, spesifikasyon’a göre ona truck_N13 sınıfı atanır.

API isteği (JSON)API yanıtıHaritada aç

Örnek 1.2

Planlamaya, örnek 1.1’de olduğu gibi aynı siparişler ve araçlar dahildir, ancak vehicle.specs kamyonu özellikleri belirtilmemiştir, bu nedenle kamyona herhangi bir sınıf atanmamıştır.

Algoritma herhangi bir geçiş kısıtlaması bulamaz ve kamyonun geçit üzerinden izleyeceği yolu planlar.

API isteği (JSON)API yanıtıHaritada aç

Örnek 2.1

Kurye, MKAD dışında kalan 2 siparişi teslim etmelidir. Sipariş noktaları birbirinin zıttı yöndedir. Aracın maksimum ağırlığı specs.max_weight belirtilmemiştir, bu nedenle algoritma MKAD boyunca hareketi kısıtlama olmaksızın hesaplar. Özelliklerin vehicle.specs eksikliği nedeniyle kamyona herhangi bir sınıf atanmamıştır.

API isteği (JSON)API yanıtıHaritada aç

Örnek 2.2

Her şey örnek 2.1’de olduğu gibi, ancak bu sefer araç için specs.max_weight = 12 olarak belirtilmiştir. Spesifikasyona göre, kamyona truck_N12 sınıfı atanmıştır. Algoritma, araç MKAD boyunca hareket edemediği için kilometreyi 3,5 kat daha fazla planladı.

API isteği (JSON)API yanıtıHaritada aç

Örnek 2.3

Her şey örnek 2.2’de olduğu gibi, ancak max_weight yerine max_weight_kg parametresi kullanılmıştır ve değer kg cinsinden belirtilmiştir. Kamyona aynı truck_N12 sınıfı atanmıştır. Algoritma aynı şekilde, araç MKAD’da gidemeyeceği için etrafından dolaşacağı bir rota planladı.

API isteği (JSON)API yanıtıHaritada aç

Araç etiketleri

RouteQ sorgusunda bir araç veya kuryeyi tanımlarken, siparişlerle uyumluluk kuralları (veya etiketler) atayabilirsiniz.

Uyumluluk kuralları, bir aracın belirli bir siparişi yerine getirmek için gerekli özel donanıma sahip olması durumunda gerekli olabilir – örneğin, gıda taşımak için ısı yalıtımlı bir kapalı kasa araç.

Araç ve sipariş uyumluluk kuralları (araç etiketleri) aşağıdaki alanlarda ayarlanır:

  • vehicle.tags alanı – siparişin öngördüğü özelliklerle kısmen örtüşebilen aracın özellikleri.

  • vehicle.excluded_tags alanı – sipariş öngördüğü özelliklerle eşleşmemesi gereken araç özellikleri.

Sipariş etiketlerini belirlemek için location.required_tags sorgu alanı kullanılır.

Uyarı

Sipariş etiketleri, siparişin gerektirdiği araç özelliklerini tanımlar ve araç etiketleri, belirli bir aracın farklı siparişlerle uyumluluğuna ilişkin fiili kuralları tanımlar.

Araç etiketleri satırlar veya düzenli ifadeler olarak tanımlanabilir. Satırlarda etiketler virgülle ayrılmış olarak listelenebilir. Bu durumda, listelenen araç etiketlerinden en az biri sipariş etiketi ile eşleşiyorsa veya siparişin etiketi yoksa araç siparişi teslim edebilecektir. Düzenli ifadeler, araçlar ve siparişler arasında daha karmaşık mantık ve uyumluluk kurallarını tanımlamanın bir yoludur.

RouteQ düzenli ifade sözdizimini kullanır POSIX Extended. Düzenli ifadeleri test etmek için Regex101 hizmeti kullanılabilir.

Gerçek örneklerini kullanarak etiketlerin nasıl uygulanabileceğine bir göz atalım.

Örnek 1

Bir nakliye şirketinin küçük miktarlarda yiyecek ve içecek teslimatı yaptığı bir senaryo düşünün. Bazı gıda maddelerinin kesinlikle ısı yalıtımlı kamyonlarla teslim edilmesi gerekmektedir. Aynı zamanda, tüm içecekler ve gıda grubundan bazı ürünler buzdolapsız olarak teslim edilebilir. Buna ek olarak, bazı müşteriler yalnızca araçlarda bir su kasası varsa gönderi kabul edebilmektedir.

Bu tür sipariş kısıtlamalarını tanımlamak için, location.required_tags alanında aşağıdaki etiketleri belirteceğiz:

  • TAIL_LIFT – araç su kasası ile donatılmışsa boşaltılabilecek siparişler için.

  • ISOTHERMAL_TRUCK – sıcaklık kontrollü taşıma gerektiren malları içeren siparişler için.

  • NORMAL_TRUCK – özel taşıma koşullarına sahip malları olmayan siparişler için.

Araçların yeteneklerini tanımlamak için vehicle.tags alanında aşağıdaki etiketleri kullanırız:

  • TAIL_LIFT – su kasası ile donatılmış araçlar için.

  • ISOTHERMAL_TRUCK – ısı yalıtımlı kasa ile donatılmış araçlar için.

  • NORMAL_TRUCK – ısı yalıtımlu kasası olmayan geleneksel araçlar için.

Not

Aracın gerçek konfigürasyonuna bağlı olarak bir veya daha fazla etiketi olabilir veya hiç olmayabilir. Aynı kural sipariş etiketleri için de geçerlidir.

API isteği (JSON)API yanıtıHaritada aç

Örnek 2

Boşaltma bölgelerinin farklı yükseklikleri nedeniyle bazı siparişlerin bir araç için gövde yüksekliği sınırı olduğu bir senaryo değerlendirelim.

Örneğin, 2 metre, 2,3 metre ve 2,5 metre gövde yüksekliği sınırı olan siparişler vardır. Bu durumda, uygun etiketlere sahip olmalıdırlar: Max_200, Max_230, Max_250.

Araçlarda etiketlerin daha karmaşık bir şekilde basılması gerekir, çünkü 2 metre yüksekliğe kadar olan bir araç her siparişi teslim edebilirken, 2,8 metre yüksekliğindeki bir araç tüm siparişleri teslim edemez. Yani yalnızca tags kullanılırsa, aracın yüksekliği durumunda:

  • 2 metreye kadar – sahada vehicle.tags tüm değerler yer alacaktır Max_200, Max_230, Max_250;

  • 2 ila 2,3 metre arasında – vehicle.tags alanında Max_230, Max_250 değerlerini içerecektir;

  • 2,3 ila 2,5 metre arasında – vehicle.tags alanında Max_250 değeri olacaktır;

  • 2,5 metreden fazla – vehicle.tags alanı boş olacaktır.

API isteği (JSON)API yanıtıHaritada aç

Örnek 3

Bazı siparişlerin belirli bir taşıma kapasitesine sahip araçların gelişine ilişkin bir sınırı olduğu bir senaryo düşünün (uygun araçlardan herhangi biri uygun olduğunda bir VEYA koşulu yürürlüktedir).

Örneğin, farklı yük taşıma kapasitelerine sahip araçlar vardır: 1, 3, 9 ve 15 ton. Bu özellikleri vehicle.tags etiketlerini kullanarak sabitleyelim. Siparişleri tanımlarken bu etiketlerin birleştirilmesi gerekeceğinden, bunları düzenli ifadeler kullanarak ayarlayalım: .*##1TON##.*``.*##3TON##.*, .*##9TON##.* ve .*##15TON##.* (.* – “herhangi bir alt dize” anlamına gelir).

Bazı siparişler için araç kapasitesi sınırı 1 ila 15 ton, 3 ila 9 ton ve 1 ila 3 tondur. Bu kısıtlama, eşleşen tüm makinelerin etiketlerini içeren düzenli ifadeli bir dize ile bir sipariş için ayarlanır. Yani, location.required_tags alanında gerekli yük kapasitesi durumunda aşağıdaki düzenli ifadeler yer alacaktır:

  • 1 ila 15 ton – ##1TON##3TON##9TON##15TON##;
  • 3 ila 9 ton – ##3TON##9TON##;
  • 1 ila 3 ton – ##1TON##3TON##.

Not

Örnek 2’de, aracın listelenen tüm etiketlere sahip olması gerektiğinden (koşul VE), sipariş etiketleri basit sıralama ile belirtilmiştir. Örnek 3’te, aracın sipariş etiketlerinden en az birine (VEYA koşulu) sahip olması gerekmektedir; bu, düzenli ifadeler kullanılarak veya VEYA koşullarının her olası kombinasyonu için ayrı etiketler oluşturularak sağlanabilir.

API isteği (JSON)API yanıtıHaritada aç

İsteğe bağlı etiketler

Bazen planlamanın, belirli siparişler için hangi araçların kullanılmasının (veya kullanılmamasının) istendiğini dikkate alması gerekir. Örneğin, VIP siparişleri özel eğitimli kuryelere teslim ettirmek daha iyidir.

Bu tür isteğe bağlı gereksinimler için, isteğe bağlı etiketler öngörülmekte ve bunlar location.optional_tags alanında sıralanmaktadır. Belirlenen bir tercihin karşılanamaması durumunda (örneğin ağırlık veya teslimat süresi kısıtlamaları nedeniyle) bu tercihin ihlal edilmesine izin verilebilir. İsteğe bağlı etiketlerin araç gerekli özellikleri’nden farkı budur.

Not

Araçların belirli bir bölgede kullanılması isteniyorsa (ancak zorunlu değilse), bunlar için isteğe bağlı coğrafi bölgeler ayarlayın.

Tercih önceliği location.optional_tags.value etiketinin ağırlığı kullanılarak ayarlanır. Değeri pozitif ya da negatif olabilir. Planlama sırasında, isteğe bağlı etiket, siparişin yürütüldüğü aracın etiketleri ile karşılaştırılır. Eğer location.optional_tags’den etiket listedeki araç etiketiyle eşleşiyorsa:

  • vehicle.tags, bu durumda value rota ücretinden düşülür;

  • vehicle.excluded_tags, bu durumda value rota ücretine eklenir.

İsteğe bağlı etiketleri rota ücretine ekleyen değer result.routes.metrics.total_optional_tags_cost alanına döndürülür (negatif olabilir).

Örnek

Bazıları aşağıdaki isteğe bağlı etiketlere sahip 10 siparişin teslim edilmesi gerekiyor:

  • vip – 6 siparişte, farklı noktalardaki etiket ağırlığı 100 ila 350 arasında değişmektedir;
  • morning – 3 siparişte, etiket ağırlığı tüm noktalarda aynıdır, 500.

Araçlardan birinin vip ve morning etiketleri vehicle.excluded_tags alanında tanımlanmıştır. Bu nedenle, bu kuryeye vip etiketli siparişlerin yanı sıra rotanın geç başlama zamanı nedeniyle morning etiketli siparişlerin atanmamasının daha iyi olduğu belirtilmektedir.

Sonuç olarak, çoğu durumda gereklilikler ihlal edilmemiştir: altı vip siparişinden beşi vip etiketi kısıtlaması olmaksızın kurye ile teslim edilmiştir, morning etiketine göre ihlal yoktur.

Ancak bir vip sipariş, kapasite sınırlamaları nedeniyle vip’de excluded_tags ile etiketlenmiş bir araç için planlanmıştı. Bu rotanın total_optional_tags_cost alanına 100 değeri döndürür: “istenmeyen” bir aracın kullanılması ücreti 100 birim artırmıştır. En düşük ağırlığı location.optional_tags.value olan sipariş için tercih ihlal edilmiştir.

API isteği (JSON)API yanıtıHaritada aç

Araçtaki siparişlerin uyumsuzluğu

Siparişler uyumsuz tiplere sahip olabilir, bunlar aşağıdaki parametreler kullanılarak belirtilir:

  • options.incompatible_load_types – tüm araçlar için aynı şekilde sipariş uyumsuzluğunu ayarlar. Ayrıntılar için Sipariş uyumsuzluğu bölümüne bakın.

  • vehicle.incompatible_load_types – belirli bir araç için siparişlerin uyumsuzluğunu belirtir, yani aracın özelliklerini dikkate almanızı sağlar.

  • vehicle.onboard_incompatible_load_types – false (varsayılan) olarak ayarlandığında, sipariş uyumsuzluğu tüm sefer için geçerlidir; true olarak ayarlandığında ise, yalnızca siparişler araçtayken geçerlidir.

Not

vehicle.incompatible_load_types parametresi daha yüksek bir önceliğe sahiptir ve belirli bir araç için options.incompatible_load_types parametrelerini yeniden belirler.

Örneğin, süt ve dondurmanın taşınması farklı sıcaklık rejimleri gerektirir. Aracın bir bölmesi varsa, ya süt ya da dondurma taşıyacaktır. Aracın farklı sıcaklık aralıklarına sahip iki bölmesi varsa, süt ve dondurmayı aynı anda farklı bölmelerde taşıyabilir. Bu durumda, tek bölmeli araçlar için vehicle.incompatible_load_types sipariş uyumsuzluğunu belirtmek yeterlidir. İki bölmeli araçlar için bu parametreye gerek yoktur ve genel olarak siparişler için options.incompatible_load_types uyumsuz tiplerin belirtilmesine de gerek yoktur.

Sipariş uyumsuzluğu araç özellikleri dışındaki nedenlerden kaynaklanıyorsa, vehicle.onboard_incompatible_load_types = true parametresini kullanın. Örneğin, rakiplerin siparişlerini aynı anda taşımak mümkün değilse, kurye depoya gitmeden her şirketin siparişlerini ayrı ayrı alacak ve teslim edecektir. Bu, kilometre ve rota süresini azaltacaktır.

Örnek 1

Teslimat aşağıdaki sipariş tipleri ile 4 adresten oluşmaktadır:

  • sipariş 1 (id = 1) – flowers;

  • sipariş 2 (id = 2) – flowers;

  • sipariş 3 (id = 3) – flowers, sweets;

  • sipariş 4 (id = 4) – flowers, ice-cream.

Bununla birlikte flowers ve sweets aynı araçta teslimat için uyumsuzdur. Ayrıca, araç 2’de flowers ve ice-cream’nin aynı anda teslimatı yasaktır, ancak flowers ve sweets’nin teslimatına izin verilmektedir. Bu durumda çözüm, ilk araçta 2 ve 4 numaralı siparişlerin, ikinci araçta ise 1 ve 3 numaralı siparişlerin teslim edilmesini içerecektir.

API isteği (JSON)API yanıtıHaritada aç

Örnek 2.1

Farklı şirketlerin 3 siparişinin alınması ve teslim edilmesi gerekiyor. 1 ve 2, 2 ve 3 numaralı siparişler rakip firmalara ait olduğu için birlikte teslim edilememektedir.

Planlama, kuryenin 1 ve 3 numaralı siparişleri alıp teslim etmesi ve ardından yeni bir seferde 2 numaralı siparişi yüklemek ve teslim etmek için depoya dönmesiyle sonuçlanır.

API isteği (JSON)API yanıtıHaritada aç

Örnek 2.2

Örnek 2.1’deki ile aynıdır, ancak vehicle.onboard_incompatible_load_types = true.

Planlama, kuryenin 2 numaralı siparişi alıp teslim etmesi ve ardından depoya gitmeden 1 ve 3 numaralı siparişleri alıp teslim etmesiyle sonuçlanır. Kat edilen mesafe ve rota süresi azaldı.

API isteği (JSON)API yanıtıHaritada aç

Coğrafi çitler

Araçlar için teslimat bölgesi kısıtlamaları belirlenebilir. Aracın siparişleri teslim edebileceği bölgeler vehicles.allowed_zones parametresi tarafından ayarlanır:

  • araç, allowed_zones parametresinde belirtilen herhangi bir bölgedeki siparişleri yerine getirebilir;

  • herhangi bir erişim bölgesi ayarlanmamışsa, araç siparişleri kısıtlama olmaksızın yerine getirebilir;

  • tüm araçların erişilebilirlik bölgeleri varsa ve sipariş noktası bunlardan herhangi birine denk gelmiyorsa bir sipariş yerine getirilemez.

Teslimat için yasaklanmış bölgeler vehicle.forbidden_zones parametresi ile belirtilir. Araç, forbidden_zones parametresinde belirtilen bölgelerden hiçbirine sipariş teslim edemez.

Not

Sipariş izin verilen ve yasak bölgelerin kesiştiği alanda bulunuyorsa, teslim edilemez, forbidden_zones parametresi allowed_zones’den daha yüksek bir önceliğe sahiptir.

Siparişler dağıtılırken hem atanan genel seçenek hem bireysel kuryeler için tanımlanan coğrafi bölgelerin uygunsuzluğu dikkate alınır. Ayrıca planlama sırasında coğrafi bölgeler ile ilgili tüm sınırlamalar iptal edilebilir.

Örnek

Örnekte, 4 sipariş ve 2 araç vardır, arayüzde ayarlanmıştır 4 coğrafi bölge. Siparişlerin coğrafi bölgelere aidiyeti koordinatlara göre otomatik olarak belirlenir:

  • Sipariş 1 – aynı anda zone1 ve zone2 bölgelerinde;

  • Sipariş 2 – zone1 bölgesinde;

  • Sipariş 3 – aynı anda zone2 ve zone3 bölgelerinde;

  • Sipariş 4 – zone4 bölgesinde.

Araçlar için coğrafi bölge erişilebilirliği belirlenmiştir:

vehicle.allowed_zones

vehicle.forbidden_zones

Araç 1

zone1, zone2

zone3

Araç 2

Tanımlanmış bölge yok

zone2

Sonuç olarak, Araç 1 Sipariş 1 ve 2’yi, Araç 2 ise Sipariş 4’ü teslim eder. Sipariş 3 ise adresi her iki araç için de yasaklanmış bölgelerde olduğu için tahsis edilmemiştir.

API isteği (JSON)API yanıtıHaritada aç

İsteğe bağlı coğrafi bölgeler

İsteğe bağlı coğrafi bölgeler, ziyaret için bir bonus veya ceza verilen siparişleri araçlar arasında dağıtmak için kullanılabilir. Her araca bu coğrafi bölgelerden bir veya daha fazlası atanabilir.

İsteğe bağlı coğrafi bölgeler, katı olmayan bir kısıtlamadır. Onların sayesinde ziyareti tercih edilen bölgeleri (öncelikli ve öncelikli olmayan bölgeler) ayarlamak için kullanılabilir.

İsteğe bağlı coğrafi bölgeler vehicle.optional_zones dizisi kullanılarak belirtilir:

  • optional_zones.N.zone – coğrafi bölge adı;
  • optional_zones.N.value – eğer parametrenin değeri 0’dan büyükse, araç belirtilen coğrafi bölgeyi ziyaret ettiği için bir bonus alır (bu parametrenin değeri rota ücretinden düşülür) ve 0’dan küçükse – bir ceza alır (değer rota ücretine eklenir).

Örnek 1

İki araçla 10 sipariş teslim edilmesi gerekiyor. Bir araç için South isteğe bağlı bir coğrafi bölge, diğeri için ise North isteğe bağlı coğrafi bölge ayarlanmıştır. Bu coğrafi bölgeleri ziyaret etmek için 1000 birim bonus belirlenmiştir. Sonuç olarak, araçlardan biri güneydeki, diğeri ise kuzeydeki siparişleri teslim ediyor. Sipariş 5 bir istisna olmuştur, South bölgesindeydi, ancak araç ile teslim edilmiştir Courier north.

API isteği (JSON)API yanıtıHaritada aç

Örnek 2

4 kuryenin 27 siparişi teslim etmesi gerekiyor. Kuryeler için şehir 4 isteğe bağlı coğrafi bölgeye ayrılmıştır: Northwest, Northeast, Southwest ve Southeast. Her kuryeye bonus alacağı bir öncelikli bölge, iki öncelikli olmayan bölge ve ceza alacağı bir bölge belirlenmiştir. Planlama, kuryeler siparişleri öncelikli bölgelerine teslim etmesiyle sonuçlanır. Araç kapasitesi sınırlamaları nedeniyle 18, 20 ve 23 numaralı siparişler istisna olmuştur.

API isteği (JSON)API yanıtıHaritada aç

Uyumsuz coğrafi bölgeler

Farklı teslimat bölgelerine ait siparişlerin aynı kurye seferine verilmesini engellemek için coğrafi bölge uyumsuzluğu tanımlayabilirsiniz.

Bu tür bölgelerin listesi yalnızca tüm çözüm için değil, aynı zamanda belirli bir kurye için de vehicles.incompatible_zones parametresi ile ayarlanabilir. Kurye için tanımlanan uyumsuz bölgeler, global olarak tanımlanan bölgelere göre önceliklidir. Kuryenin options.incompatible_zones global kısıtlamaya tabi olmasını önlemek için, onun için vehicles.incompatible_zones alanında boş bir liste belirleyin.

Örnek

Üç kuryenin her biri şehrin farklı bölgelerine 4 sipariş teslim etmek zorundadır: kuzeybatı, güneybatı, kuzeydoğu ve güneydoğu. Bu alanlar planlama sırasında coğrafi bölgelerle tanımlanmıştır: Northwest, Southwest, Northeast, Southeast.

Coğrafi bölge uyumsuzluğu global olarak tanımlanmıştır: güney bölgeleri (Southwest ve Southeast) kuzey bölgeleri (Northwest ve Northeast) ile uyumsuzdur. İki kurye için bir de vehicles.incompatible_zones parametresi tanımlanmıştır: ilk kurye için boş bir liste içermekte ve ikinci kurye için ise batı bölgelerinin (Northwest ve Southwest) doğu bölgeleri ile uyumsuz olduğu tanımlanmıştır (Northeast ve Southeast).

Planlamanın bir sonucu olarak:

  • ilk kurye Courier 1 global uyumsuzluk kısıtlamasına tabi değildir ve ona farklı bölgelerden gelen 4 sipariş tek seferde atanır;
  • ikinci kurye için, vehicles.incompatible_zones parametresinde tanımlanmış olan bölge uyumsuzluğu kısıtlamaları Courier 2 çalışıyor: doğu bölgelerine giden siparişler bir sefere, batı bölgelerine giden siparişler ise diğerine düşer;
  • üçüncü kurye Courier 3 global kısıtlamalara tabidir: güney bölgelerine ve kuzey bölgelerine verilen siparişler farklı seferlere ayrılmıştır.

API isteği (JSON)API yanıtıHaritada aç

Aracın hareket süresinin düzeltilmesi

Yandex Haritalar trafik sıkışıklığı verileri ve talepte belirtilen hız, bir rota oluştururken aracın hızını hesaplamak için kullanılır. Bununla birlikte, kamyonların trafikte daha yavaş hareket ettiği ve bazı sürücülerin daha agresif araç kullandığı ve tahmin edilenden daha erken vardığı sıklıkla görülen bir durumdur.

Bu tür sapmaları telafi etmek için RouteQ’de, kesirli bir değer belirleyebileceğiniz travel_time_multiplier seçeneği var. Değeri 1 olduğunda hesaplama, beklenen ortalama hıza sahip araç için yapılacaktır. Daha küçük değerler için (örn. 0,8) hesaplama daha hızlı araçlar için, daha büyük değerler durumda ise (örn. 1,2) daha yavaş araçlar için yapılacaktır.

Not

travel_time_multiplier parametresi sadece aracın hızını etkiler. Teslimat noktasındaki hizmet süresi aynı kalır.

Örnek 1

Aşağıdaki örnekte, rota oluşturma talebi seyahat süresi düzeltilmeden gönderilmektedir. Sonuç olarak, araç teslimatı 4 saat 20 dakikada gerçekleştiriyor ve bunun 3 saat 40 dakikası noktalar arasında seyahat etmek için harcanıyor.

API isteği (JSON)API yanıtıHaritada aç

Örnek 2

Örnek 1 ile aynıdır, ancak travel_time_multiplier parametresi 0,5’e eşit olarak eklenmiştir. Oluşturulan rotada kurye teslimatı 2 saat 25 dakikada gerçekleştiriyor, bunun 1 saat 45 dakikası noktalar arasında seyahat etmek için harcanıyor. Bununla birlikte park edilmesi ve malların aktarılması için harcanan süre değişmiyor.

API isteği (JSON)API yanıtıHaritada aç

Örnek 3

Örnek 1 ile aynıdır, ancak travel_time_multiplier parametresi 2’ye eşit olarak eklenmiştir. Oluşturulan rotada kurye teslimatı 7 saat 58 dakikada gerçekleştiriyor ve bunun 7 saat 18 dakikası noktalar arasında seyahat etmek için harcanıyor. Örnek 1’deki rotadan yaklaşık iki kat daha uzun sürer çünkü inşa edilen rotanın bir kısmı trafiğin yoğun olduğu saatlere denk gelir ve araç maksimum hızını kullanamaz. Park etme ve gönderilerin aktarılması için harcanan süre değişmez.

API isteği (JSON)API yanıtıHaritada aç

Hizmet süresinin düzeltilmesi

Kuryenin siparişi teslim ederken, teslim etmek için zaman ayırması gerekir. Buna park etme, asansör ile yukarı çıkma, kargonun teslimi ve evrak işleri dahildir. RouteQ’de bu, service_duration ve shared_service_duration alanları tarafından siparişlerde sağlanır. Ancak, bazı kuryeler gönderileri diğerlerinden daha hızlı teslim eder. Örneğin:

  • Araçlar ve toplu taşıma araçlarını kullanan kuryeler için eş zamanlı planlama sırasında, toplu taşıma araçlarıyla seyahat eden kuryeler park etmek için zaman kaybetmez. Sonuç olarak, teslimat işlemleri için daha az zamana ihtiyaç duyarlar.

  • Kuryeler farklı beceri seviyelerine sahip olabilirler. Deneyimli kuryeler genellikle siparişi teslim etmek için daha az zaman harcarlar.

Kuryelerin hizmet süreleri arasındaki farkı telafi etmek için RouteQ’de, belirli bir kuryenin hizmet süresini etkileyen service_duration_multiplier ve shared_service_duration_multiplier seçenekleri mevcuttur. 1 değeri söz konusu olduğunda, hizmet süresi service_duration veya shared_service_duration alanında belirtilenle aynı olacaktır, 1’den küçük değerlerde hizmet süresi daha kısa olacaktır ve 1’den büyük değerlerde hizmet süresi daha uzun olacaktır.

Not

service_duration_multiplier ve shared_service_duration_multiplier parametreleri ve yalnızca hizmet süresini etkiler. Noktalar arasındaki hareket süresi aynı kalıyor.

Örnek 1

Aşağıdaki örnekte, rota oluşturma isteği hizmet süresi düzeltilmeden gönderilmiştir.

API isteği (JSON)API yanıtıHaritada aç

Örnek 2

Aşağıdaki örnekte, rota oluşturma için Örnek 1’dekiyle aynı istek gönderilmiştir, ancak parametre service_duration_multiplier değeri 0,5’tir. Hesaplamada siparişlerin hizmet süresi Örnek 1’e kıyasla yarısı kadar zaman alıyor.

API isteği (JSON)API yanıtıHaritada aç

Örnek 3

Aşağıdaki örnekte, rota oluşturma için Örnek 1’dekiyle aynı istek gönderilmiştir, ancak parametre service_duration_multiplier değeri 2’dir. Hizmet, örnek 1’dekinden iki kat daha uzun sürmektedir.

API isteği (JSON)API yanıtıHaritada aç

Mümkün olan en kısa sürede teslimat

Optimum bir rota oluşturmak için algoritma, rota noktaları arasındaki beklemeyi en aza indirir. Ancak teslimatı daha erken bir zamana kaydırmanın yararlı olduğu zamanlar vardır. Örneğin:

  • geç kalma riskini en aza indirmeniz gerekir;
  • kurye gündüz saatlerinde daha rahat seyahat eder.

Siparişlerin mümkün olduğunca erken teslim edilmesini sağlamak için iki parametreden oluşan penalty.arrival_after_start’yi kullanın:

  • average_h – zaman aralığının başlangıcından sonraki ortalama varış süresi için ceza miktarını ayarlar. Seçeneği kullanırken her zaman bu değerin belirtilmesi önerilir.
  • as_soon_as_possible – rotaya mümkün olduğunca erken başlanıp başlanmayacağını belirler. Parametre true veya false (varsayılan) değerini alır. average_h’e ek olarak belirtilir.

Not

Algoritma, bir aracın başlangıç ve varış zamanlarını yalnızca depo için esnek başlangıç zamanı etkinleştirilmişse değiştirebilir.

Eğer penalty.arrival_after_start cezası kullanılmazsa, rota noktalar arasında minimum bekleme süresi ve depodan maksimum geç başlama süresi ile oluşturulacaktır.

Bir ceza kullanılırsa, algoritma kaliteyi düşürmüyorsa, daha erken başlayacak rotalar oluşturacaktır.

Rotanın mümkün olduğunca erken başlatılması isteniyorsa (bu ek bekleme süresine neden olsa bile), penalty.arrival_after_start.as_soon_as_possible = true belirtin.

Örnek 1

Rota, farklı zaman aralıklarına sahip 4 siparişten oluşmaktadır. Sipariş 5 için zaman aralığının en erken başlangıcı 08.00’dir. Kurye depodan 11.02’de yola çıkıyor ve ilk sipariş için 11.40’ta varıyor. 5 numaralı sipariş 12.59’da teslim ediliyor.

API isteği (JSON)API yanıtıHaritada aç

Örnek 2

Örnek 1’deki aynı veriler kullanılıyor, ancak zaman aralığının başlangıcından sonraki ortalama varış süresi için penalty.arrival_after_start.average_h parametresi kullanılarak bir ceza atanmıştır. Bununla birlikte kurye depodan 06.59’da yola çıkar, 8 dakika bekler ve en erken siparişi (sipariş 5) 08.00’de teslim eder.

API isteği (JSON)API yanıtıHaritada aç

Örnek 3

Örnek 2’deki aynı veriler kullanılır, ancak ek olarak penalty.arrival_after_start.as_soon_as_possible = true parametresi belirlenmiştir. Bu durumda kurye depodan 06.00’da yola çıkar, 1 saat 7 dakika bekler ve en erken siparişi (sipariş 5) 08.00’de teslim eder.

API isteği (JSON)API yanıtıHaritada aç

Eklentiler

Eklenti, treylerli bir kamyondur (çekici). Siparişler çekiciye ve treylere yüklenebilir ve bununla birlikte bir sipariş kısmen çekiciye ve kısmen de treylere yüklenebilir.

Treyleri tanımlamak için trailer nesnesini kullanın.

Alan

Açıklama

trailer.сapacity

Treyler kapasitesi, aşağıdaki alanlar tarafından tanımlanır:

  • weight_kg – kilogram cinsinden kapasite;
  • units – birim cinsinden kapasite.

Treylerin kapasitesine eklenir.

trailer.capacity.custom

Treylerde taşınabilecek kullanıcı birimi sayısı.

Kullanıcı birimlerdeki kapasiteler "name": size biçiminde belirtilir, burada:

  • name – kullanıcı biriminin adı (additionalProperties alanı yerine belirtilir);
  • size – aracın ilgili birimlerdeki kapasitesi negatif olmayan bir gerçek sayı olarak ifade edilir.

Birimin adı sevkiyatlarda veya diğer araçlarda mevcutsa ancak bu araçta yoksa, kapasitenin sınırsız olduğu varsayılır.

trailer.capacity.limits

Treyler yükleme limiti, aşağıdaki alanlar tarafından tanımlanır:

  • units_perc – kullanıcı tanımlı birimlerde, treyler kapasitesinin yüzdesi olarak ifade edilir;
  • volume_perc – treyler hacminin bir yüzdesi olarak;
  • weight_perc – treylerde taşınan yükün izin verilen azami toplam ağırlığının yüzdesi olarak.

trailer.capacity.volume

Treylerin metrik boyutları aşağıdaki alanlar tarafından tanımlanır:

  • depth_m* – derinlik;
  • height_m* – yükseklik;
  • width_m* – genişlik.

Değerler metre cinsinden ifade edilmektedir.

* – Zorunlu parametre

trailer.capacity.volume_cbm

Metreküp cinsinden treyler hacmi.

Eğer treylerin hem metrik boyutları hem de hacmi varsa, trailer.capacity.volume boyutlarını ve trailer.capacity.volume_cbm kapasiteyi tanımlar.

trailer.max_capacity_difference

Treylerin ve çekicinin yükündeki maksimum fark aşağıdaki alanlar tarafından tanımlanır:

  • units – treylerde çekiciye göre kaç birim daha fazla mal olabilir;
  • volume_cbm – treyler yükünün çekici yükünden kaç metreküp daha büyük olabileceği;
  • weight_kg – treyler yükünün çekici yükünden kaç kilogram daha fazla olabileceği.

Alanlardan herhangi biri eksikse, bu, üzerinde herhangi bir kısıtlama olmadığı anlamına gelir.

Treyler ve çekici yükü arasındaki farka ilişkin fiziksel sınırlamalar vardır. Çekici boşsa ve treyler ağırsa, araç kontrol edilemez hale geliyor, eklenti hareket edemez.

trailer.max_capacity_difference.custom

Treyler ve çekici arasındaki yüklü kullanıcı birimi sayısında izin verilen maksimum fark.

Kullanıcı birimlerinde izin verilen fark "name": size biçiminde belirtilir:

  • name – kullanıcı biriminin adı (additionalProperties alanı yerine belirtilir);
  • size – aracın ilgili birimlerdeki kapasitesi negatif olmayan bir gerçek sayı olarak ifade edilir.

Birimin adı sevkiyatlarda veya diğer araçlarda mevcutsa ancak bu araçta yoksa, herhangi bir kısıtlama yoktur.

trailer.cost

Treyler ücreti, aşağıdaki alanlar tarafından tanımlanır:

  • fixed – treylerin kullanımı için sabit bir ücret;
  • hour – treyler kullanım saati başına ücret;
  • km – kilometre başına ücret (yalnızca çekicinin treyler ile seyahat ettiği yolculuk bölümleri için eklenir);
  • location – varış noktası başına treyler kullanım ücreti;
  • run – depodan varış noktasına yolculuk başına ücret;
  • tonne_km – kilometre başına bir ton taşımanın ücreti.

Treyler kullanılıyorsa çekici ücretine eklenir.

trailer.decoupling_time_s

Treylerin ayrılma süresi saniye cinsinden.

Yalnızca tipi anchor ve parking olan siparişler için (bkz. bölüm Treyler kullanımı).

trailer.coupling_time_s

Saniye cinsinden römork bağlama süresi.

Yalnızca tipi anchor ve parking olan siparişler için (bkz. bölüm Treyler kullanımı).

trailer.rolling_cost

Yüklerin treylerden çekiciye her aktarımı* için ceza.

* Aktarım – siparişlerin treylerden çekiciye aktarılması (erişilemeyen yerlere teslim etmek için (bkz. Treyler kullanımı)).

trailer.rolling_time

Yükün treylerden çekiciye aktarım süresi, saniye cinsinden ayarlanır. Aşağıdaki alanlarda tanımlanabilir:

  • fixed_time_s – sabit zaman;
  • s_per_kg – kilogram yük başına boşaltma süresi;
  • s_per_m3 – metreküp yük başına boşaltma süresi;
  • s_per_unit – birim yük başına boşaltma süresi.

Birden fazla zaman türü belirtilmişse, en çok zaman alan zaman türü kullanılır. Herhangi bir tür belirtilmemişse, yalnızca sabit zaman kullanılır.

Aktarım için treylerin önce bağlanması ve sonra çözülmesi gerektiğinden, aktarım süresine coupling_time_s ve decoupling_time_s eklenir.

Sorgudaki treyler tanımlama örneği:

{
    "trailer": {
        "capacity": {
            "weight_kg": 10000,
            "units": 200
        },
        "max_capacity_difference": {
            "units": 10,
            "weight_kg": 0
        },
        "cost": {
            "fixed": 1000,
            "km": 10
        },
        "decoupling_time_s": 300,
        "coupling_time_s": 300,
        "rolling_time": {
            "fixed_time_s": 3000
        }
    }
}

Çekicinin treylerle kullanımı hakkında ayrıntılar için Treyler kullanımı bölümüne bakın.

Destek birimine yaz