Bir aracın rotası, zaman ekseninde aşağıdaki gibi ayrıştırılabilir (n ziyaret olduğunu varsayarız):
| | | | | 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 fark olduğunu unutmayın:
- Aracın başlangıç ve bitişi ile her ziyaretin başlangıcı ve bitişi (diğer adıyla varış ve gidiş) gibi "dakik etkinlikler". Belirli bir saniyede gerçekleşir.
- Ziyaretlerin kendisi ve ziyaretler arasındaki geçiş gibi "zaman aralıkları". Zaman aralıkları bazen sıfır süreye sahip olabilir (yani aynı saniyede başlar ve biter). Ancak genellikle pozitif bir süreye sahiptir.
Sabit değerler:
- n ziyaret varsa n+1 geçiş vardır.
- Ziyaretler her zaman kendisinden önceki bir geçiş (aynı dizin) ve kendisinden sonraki bir geçiş (dizin + 1) ile çevrilidir.
- Araç çalıştırma işlemini her zaman 0 numaralı geçiş izler.
- Araç sonundan önce her zaman #n geçişi gelir.
Yakınlaştırıldığında, Transition ve Visit sırasında neler olur?
---+-------------------------------------+-----------------------------+-->
| 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, PARÇALAR, GECİKME ve BEKLEME işlevlerinin nasıl ayarlanabileceği burada açıklanmaktadır.
- Bu iki bölge çakışmaz.
- Geciktirme benzersizdir ve bir sonraki ziyaretten (veya araç sonundan) hemen önceki kesintisiz bir süre olmalıdır. Dolayısıyla, gecikme süresinin başlangıç ve bitiş zamanını bilmek yeterli olacaktır.
- ARA verme süreleri, birbirini örtüşmeyen, bitişik zaman aralıklarıdır. Yanıt, her bir aranın başlangıç zamanını ve süresini belirtir.
- TRAVEL ve WAIT "öncelik verilebilir"dir: 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şeceğini ve "bekleme"nin, kalan süreyi dolduracağını 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 | | | | ||
|| | | | | | | ||
--++-----------------------------------------------------------------++-->
| JSON gösterimi |
|---|
{ "vehicleIndex": integer, "vehicleLabel": string, "vehicleStartTime": string, "vehicleEndTime": string, "visits": [ { object ( |
| Alanlar | |
|---|---|
vehicleIndex |
Rotayı gerçekleştiren araç ( |
vehicleLabel |
Bu rotayı gerçekleştiren aracın etiketi. Belirtilmişse |
vehicleStartTime |
Aracın rotasına başladığı zaman. RFC3339 UTC "Zulu" biçiminde, nanosaniye çözünürlüğüne ve en fazla dokuz kesirli basamağa sahip bir zaman damgası. Örnekler: |
vehicleEndTime |
Aracın rotasını tamamladığı zaman. Nanosaniye çözünürlüğüne sahip ve en fazla dokuz kesirli basamak içeren RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
visits[] |
Bir rotayı temsil eden ziyaretlerin sıralı dizisi. visits[i], rotada i. ziyarettir. Bu alan boşsa araç kullanılmamış olarak kabul edilir. |
transitions[] |
Rotanın sıralı geçiş listesi. |
hasTrafficInfeasibilities |
Trafik nedeniyle artan seyahat süresi tahmini |
routePolyline |
Rotanın kodlanmış çoklu çizgi gösterimi. Bu alan yalnızca |
breaks[] |
Bu rotayı yapan araç için planlanan aralar. |
metrics |
Bu rota için süre, mesafe ve yük metrikleri. |
routeCosts |
Maliyetle ilgili istek alanlarına göre dökümü alınmış rota maliyeti. Anahtarlar, OptimizeToursRequest girişine (ör. "model.shipments.pickups.cost") kıyasla proto yollarıdır.Değerler, ilgili maliyet alanı tarafından oluşturulan ve tüm rota boyunca toplanan toplam maliyettir. Başka bir deyişle maliyet["model.shipments.pickups.cost"], rota üzerindeki tüm teslim alma maliyetlerinin toplamıdır. Modelde tanımlanan tüm maliyetler, 2022/01 itibarıyla yalnızca toplu olarak raporlanan TransitionAttributes ile ilgili maliyetler hariç burada ayrıntılı olarak raporlanır.
|
routeTotalCost |
Rotanın toplam maliyeti. Maliyet haritasındaki tüm maliyetlerin toplamı. |
Ziyaret edin
Bir rotada gerçekleştirilen ziyaret. Bu ziyaret, bir Shipment'ın teslim alınmasına veya teslim edilmesine karşılık gelir.
| JSON gösterimi |
|---|
{
"shipmentIndex": integer,
"isPickup": boolean,
"visitRequestIndex": integer,
"startTime": string,
"loadDemands": {
string: {
object ( |
| Alanlar | |
|---|---|
shipmentIndex |
|
isPickup |
Doğru ise ziyaret, |
visitRequestIndex |
|
startTime |
Ziyaretin başladığı zaman. Aracın ziyaret konumuna bu saatten daha erken ulaşabileceğini unutmayın. Saatler RFC3339 UTC "Zulu" biçiminde, nanosaniye çözünürlüğüne ve en fazla dokuz kesirli basamağa sahip bir zaman damgası. Örnekler: |
loadDemands |
Gönderim ve ziyaret isteğinin toplamı olarak toplam ziyaret yükleme talebi
|
detour |
Ziyaretten önce rotada ziyaret edilen gönderimler ve zaman aralıklarının neden olduğu olası bekleme süresi nedeniyle ek rota izleme süresi. Ziyaret bir teslimat ise yan yol, ilgili teslim alma ziyaretinden hesaplanır ve şuna eşittir: Aksi takdirde En fazla dokuz kesirli basamak içeren ve " |
shipmentLabel |
|
visitLabel |
|
Geçiş
Rotadaki iki etkinlik arasında geçiş. ShipmentRoute açıklamasına bakın.
Araçta startLocation ve/veya endLocation yoksa ilgili seyahat metrikleri 0 olur.
| JSON gösterimi |
|---|
{ "travelDuration": string, "travelDistanceMeters": number, "trafficInfoUnavailable": boolean, "delayDuration": string, "breakDuration": string, "waitDuration": string, "totalDuration": string, "startTime": string, "routePolyline": { object ( |
| Alanlar | |
|---|---|
travelDuration |
Bu geçiş sırasındaki seyahat süresi. " |
travelDistanceMeters |
Geçiş sırasında katedilen mesafe. |
trafficInfoUnavailable |
|
delayDuration |
Bu geçişe uygulanan gecikme sürelerinin toplamı. Varsa bir sonraki etkinlikten (ziyaret veya araç sonu) tam olarak En fazla dokuz kesirli basamak içeren ve " |
breakDuration |
Bu geçiş sırasında gerçekleşen araların süresinin toplamı (varsa). Her molanın başlangıç zamanı ve süresi En fazla dokuz kesirli basamak içeren ve " |
waitDuration |
Bu geçiş sırasında harcanan süre. Bekleme süresi, boşta kalma süresine karşılık gelir ve ara verme süresini içermez. Ayrıca bu bekleme süresinin, birbirine bitişik olmayan birkaç aralığa bölünebileceğini unutmayın. En fazla dokuz kesirli basamak içeren ve " |
totalDuration |
Kolaylık olması açısından geçişin toplam süresi. Eşittir:
En fazla dokuz kesirli basamak içeren ve " |
startTime |
Bu geçişin başlangıç zamanı. Nanosaniye çözünürlüğüne sahip ve en fazla dokuz kesirli basamak içeren RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
routePolyline |
Geçiş sırasında izlenen rotanın kodlanmış çoklu çizgi gösterimi. Bu alan yalnızca |
vehicleLoads |
Bu geçiş sırasında araç yüklemeleri. Bu araçta İlk geçiş sırasındaki yüklemeler, araç rotasının başlangıç yüklemeleridir. Ardından her ziyaretten sonra, ziyaretin teslim alma mı yoksa teslimat mı olduğuna bağlı olarak sonraki geçişin yüklemelerini elde etmek için ziyarete ait
|
EncodedPolyline
Bir çoklu çizginin kodlanmış temsili. Poli çizgi kodlaması hakkında daha fazla bilgiyi şu adreslerde bulabilirsiniz: https://developers.google.com/maps/documentation/utilities/polylinealgorithm https://developers.google.com/maps/documentation/javascript/reference/geometry#encoding.
| JSON gösterimi |
|---|
{ "points": string } |
| Alanlar | |
|---|---|
points |
Çoklu çizginin kodlanmış noktalarını temsil eden dize. |
Ara
Bir aranın yürütülmesini temsil eden veriler.
| JSON gösterimi |
|---|
{ "startTime": string, "duration": string } |
| Alanlar | |
|---|---|
startTime |
Aranın başlangıç zamanı. RFC3339 UTC "Zulu" biçiminde, nanosaniye çözünürlüğüne ve en fazla dokuz kesirli basamağa sahip bir zaman damgası. Örnekler: |
duration |
Mola süresi. En fazla dokuz kesirli basamak içeren ve " |