समय अक्ष के साथ, किसी वाहन के रास्ते को इस तरह से अलग-अलग किया जा सकता है (हम मानते हैं कि n विज़िट हैं):
  |            |            |          |       |  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
ध्यान दें कि हम इनके बीच अंतर करते हैं:
- "समय पर होने वाले इवेंट", जैसे कि वाहन के शुरू और खत्म होने का समय और हर विज़िट के शुरू और खत्म होने का समय (यानी पहुंचने और जाने का समय). ये किसी खास सेकंड पर होते हैं.
 - "समय के अंतराल", जैसे कि विज़िट और विज़िट के बीच का ट्रांज़िशन. हालांकि, समयावधि कभी-कभी शून्य हो सकती है.इसका मतलब है कि शुरू और खत्म होने का समय एक ही सेकंड हो सकता है. हालांकि, आम तौर पर समयावधि का कोई मान होना चाहिए.
 
इनवैरिएंट:
- अगर n विज़िट हैं, तो n+1 ट्रांज़िशन हैं.
 - किसी विज़िट से पहले (एक ही इंडेक्स) और उसके बाद (इंडेक्स + 1) हमेशा एक ट्रांज़िशन होता है.
 - वाहन के चालू होने के बाद, हमेशा ट्रांज़िशन #0 होता है.
 - वाहन के खत्म होने से पहले, हमेशा ट्रांज़िशन #n होता है.
 
ज़ूम इन करके, Transition और Visit के दौरान क्या होता है, यहां बताया गया है:
---+-------------------------------------+-----------------------------+-->
   |           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
आखिर में, यहां बताया गया है कि ट्रांज़िशन के दौरान TRAVEL, BREAKS, DELAY, और WAIT को कैसे व्यवस्थित किया जा सकता है.
- वे ओवरलैप नहीं होते.
 - DELAY यूनीक होता है और अगली विज़िट (या वाहन के खत्म होने) से ठीक पहले, यह लगातार एक समयावधि होनी चाहिए. इसलिए, डिलीवरी में लगने वाले समय की शुरुआत और खत्म होने का समय जानने के लिए, डिलीवरी में लगने वाले समय की जानकारी ही काफ़ी है.
 - ब्रेक, एक-दूसरे से जुड़ी अवधियां होती हैं, जो ओवरलैप नहीं होतीं. जवाब में, हर ब्रेक के शुरू होने का समय और उसकी अवधि की जानकारी दी जाती है.
 - TRAVEL और WAIT "प्रीएमप्ट किए जा सकते हैं": इस ट्रांज़िशन के दौरान, इनमें कई बार रुकावट आ सकती है. क्लाइंट यह मान सकते हैं कि यात्रा "जितनी जल्दी हो सके" पूरी हो जाएगी और बाकी समय "इंतज़ार" में बीत जाएगा.
 
एक (जटिल) उदाहरण:
                               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 के काेड में दिखाना | 
|---|
{ "vehicleIndex": integer, "vehicleLabel": string, "vehicleStartTime": string, "vehicleEndTime": string, "visits": [ { object (  | 
            
| फ़ील्ड | |
|---|---|
vehicleIndex | 
              
                 
 रूट पर चलने वाला वाहन, जिसकी पहचान सोर्स   | 
            
vehicleLabel | 
              
                 
 इस रास्ते पर चलने वाले वाहन का लेबल. अगर यह जानकारी दी गई है, तो यह   | 
            
vehicleStartTime | 
              
                 
 वाहन के रूट शुरू होने का समय. आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़्ड होगा और इसमें 0, 3, 6 या 9 दशमलव अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण:   | 
            
vehicleEndTime | 
              
                 
 वह समय जब गाड़ी अपना रास्ता पूरा कर लेती है. आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़्ड होगा और इसमें 0, 3, 6 या 9 दशमलव अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण:   | 
            
visits[] | 
              
                 
 किसी रास्ते को दिखाने वाली विज़िट का क्रम. visits[i] रास्ते में i-वी विज़िट है. अगर यह फ़ील्ड खाली है, तो वाहन को इस्तेमाल न किए जाने वाला माना जाता है.  | 
            
transitions[] | 
              
                 
 रास्ते के लिए ट्रांज़िशन की क्रम से लगाई गई सूची.  | 
            
hasTrafficInfeasibilities | 
              
                 
 जब  ट्रैफ़िक की वजह से यात्रा के अनुमानित समय   | 
            
routePolyline | 
              
                 
 रूट की जानकारी देने वाली कोड की गई पॉलीलाइन. यह फ़ील्ड सिर्फ़ तब पॉप्युलेट होता है, जब   | 
            
breaks[] | 
              
                 
 इस रास्ते पर चलने वाले वाहन के लिए ब्रेक का शेड्यूल.   | 
            
metrics | 
              
                 
 इस रास्ते के लिए, कुल समय, दूरी, और लोड की मेट्रिक. कॉन्टेक्स्ट के हिसाब से,   | 
            
vehicleFullness | 
              
                 
 
 एक्सपेरिमेंटल: आने वाले समय में, इस फ़ील्ड के काम करने के तरीके या इसकी मौजूदगी में बदलाव हो सकता है.  | 
            
routeCosts | 
              
                 
 रास्ते की कीमत, जिसे कीमत से जुड़े अनुरोध फ़ील्ड के हिसाब से बांटा गया है. इनपुट OptimizeToursRequest के हिसाब से, कुंजियां प्रोटो पाथ होती हैं, जैसे कि "model.shipments.pickups.cost". साथ ही, वैल्यू, उससे जुड़े लागत फ़ील्ड से जनरेट की गई कुल लागत होती है, जो पूरे रूट पर एग्रीगेट की जाती है. दूसरे शब्दों में, costs["model.shipments.pickups.cost"] का मतलब है, रास्ते पर पिकअप करने की सभी लागतों का कुल योग. मॉडल में तय की गई सभी लागतों की जानकारी यहां दी गई है. हालांकि, TransitionAttributes से जुड़ी लागतों की जानकारी 01/2022 से सिर्फ़ एग्रीगेट तरीके से दी गई है.  | 
            
routeTotalCost | 
              
                 
 रास्ते की कुल कीमत. लागत के मैप में मौजूद सभी लागतों का कुल योग.  | 
            
यहां जाएं
किसी रूट के दौरान की गई विज़िट. यह विज़िट, Shipment के पिकअप या डिलीवरी से जुड़ी है.
| JSON के काेड में दिखाना | 
|---|
{
  "shipmentIndex": integer,
  "isPickup": boolean,
  "visitRequestIndex": integer,
  "startTime": string,
  "loadDemands": {
    string: {
      object ( | 
              
| फ़ील्ड | |
|---|---|
shipmentIndex | 
                
                   
 सोर्स   | 
              
isPickup | 
                
                   
 अगर यह वैल्यू 'सही' है, तो इसका मतलब है कि विज़िट,   | 
              
visitRequestIndex | 
                
                   
 
  | 
              
startTime | 
                
                   
 विज़िट शुरू होने का समय. ध्यान दें कि हो सकता है कि वाहन, विज़िट की जगह पर इससे पहले पहुंच जाए. समय,  आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़्ड होगा और इसमें 0, 3, 6 या 9 दशमलव अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण:   | 
              
loadDemands | 
                
                   
 शिपमेंट और विज़िट के अनुरोध   | 
              
detour | 
                
                   
 आपके डिलीवरी पते पर पहुंचने से पहले, रास्ते में जिन शिपमेंट को डिलीवर किया गया है उनकी वजह से, डिलीवरी में लगने वाला अतिरिक्त समय. साथ ही, समयसीमा की वजह से इंतज़ार करने में लगने वाला समय. अगर विज़िट डिलीवरी के लिए है, तो डेलिवरी के लिए किए गए सफ़र का हिसाब, पिकअप के लिए किए गए सफ़र से लगाया जाता है. यह हिसाब इस तरह लगाया जाता है: अगर ऐसा नहीं है, तो इसका हिसाब वाहन  सेकंड में कुल अवधि, जिसमें दशमलव के बाद नौ अंक हो सकते हैं. यह अवधि '  | 
              
shipmentLabel | 
                
                   
 अगर   | 
              
visitLabel | 
                
                   
 अगर   | 
              
injectedSolutionLocationToken | 
                
                   
 विज़िट की जगह की जानकारी दिखाने वाला अपारदर्शी टोकन. यह फ़ील्ड, नतीजों के रास्तों की विज़िट में तब पॉप्युलेट हो सकता है, जब इस विज़िट के लिए  एक्सपेरिमेंट के तौर पर उपलब्ध: ज़्यादा जानकारी के लिए, https://developers.google.com/maps/tt/route-optimization/experimental/u-turn-avoidance/make-request देखें.  | 
              
ट्रांज़िशन
रास्ते पर दो इवेंट के बीच ट्रांज़िशन. ShipmentRoute की जानकारी देखें.
अगर वाहन में startLocation और/या endLocation नहीं है, तो यात्रा से जुड़ी मेट्रिक की वैल्यू 0 होगी.
| JSON के काेड में दिखाना | 
|---|
{ "travelDuration": string, "travelDistanceMeters": number, "trafficInfoUnavailable": boolean, "delayDuration": string, "breakDuration": string, "waitDuration": string, "totalDuration": string, "startTime": string, "routePolyline": { object (  | 
              
| फ़ील्ड | |
|---|---|
travelDuration | 
                
                   
 इस ट्रांज़िशन के दौरान यात्रा की अवधि. सेकंड में कुल अवधि, जिसमें दशमलव के बाद नौ अंक हो सकते हैं. यह अवधि '  | 
              
travelDistanceMeters | 
                
                   
 ट्रांज़िशन के दौरान तय की गई दूरी.  | 
              
trafficInfoUnavailable | 
                
                   
 जब   | 
              
delayDuration | 
                
                   
 इस ट्रांज़िशन पर लागू होने वाली देरी की कुल अवधि. अगर कोई देरी है, तो यह अगले इवेंट (विज़िट या वाहन के खत्म होने) से ठीक  सेकंड में कुल अवधि, जिसमें दशमलव के बाद नौ अंक हो सकते हैं. यह अवधि '  | 
              
breakDuration | 
                
                   
 अगर कोई ट्रांज़िशन हुआ है, तो उस दौरान हुए ब्रेक की कुल अवधि. हर ब्रेक के शुरू होने के समय और उसकी अवधि की जानकारी  सेकंड में कुल अवधि, जिसमें दशमलव के बाद नौ अंक हो सकते हैं. यह अवधि '  | 
              
waitDuration | 
                
                   
 इस ट्रांज़िशन के दौरान इंतज़ार करने में लगने वाला समय. इंतज़ार का समय, इंतज़ार में बिताए गए समय से जुड़ा होता है. इसमें ब्रेक का समय शामिल नहीं होता. यह भी ध्यान दें कि इंतज़ार का यह समय, एक-दूसरे से अलग-अलग इंटरवल में हो सकता है. सेकंड में कुल अवधि, जिसमें दशमलव के बाद नौ अंक हो सकते हैं. यह अवधि '  | 
              
totalDuration | 
                
                   
 ट्रांज़िशन की कुल अवधि, जो आपकी सुविधा के लिए दी गई है. यह बराबर है: 
 सेकंड में कुल अवधि, जिसमें दशमलव के बाद नौ अंक हो सकते हैं. यह अवधि '  | 
              
startTime | 
                
                   
 इस ट्रांज़िशन का शुरू होने का समय. आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़्ड होगा और इसमें 0, 3, 6 या 9 दशमलव अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण:   | 
              
routePolyline | 
                
                   
 ट्रांज़िशन के दौरान इस्तेमाल किए गए रास्ते की जानकारी देने वाली कोड की गई पॉलीलाइन. यह फ़ील्ड सिर्फ़ तब पॉप्युलेट होता है, जब   | 
              
routeToken | 
                
                   
 सिर्फ़ आउटपुट के लिए. यह एक ऐसा टोक़न है जिसे नेविगेशन के दौरान रास्ते को फिर से बनाने के लिए, Navigation SDK को पास किया जा सकता है. साथ ही, रास्ते को फिर से बनाने की स्थिति में, रास्ते को बनाने के मूल मकसद का सम्मान किया जाता है. इस टोकन को एक ओपेक ब्लॉब के तौर पर इस्तेमाल करें. अलग-अलग अनुरोधों में इसकी वैल्यू की तुलना न करें. ऐसा इसलिए, क्योंकि सेवा का वही रास्ता दिखाने पर भी इसकी वैल्यू बदल सकती है. यह फ़ील्ड सिर्फ़ तब पॉप्युलेट होता है, जब   | 
              
vehicleLoads | 
                
                   
 इस ट्रांज़िशन के दौरान, वाहन के हर उस टाइप के लिए लोड होता है जो इस वाहन के  पहले ट्रांज़िशन के दौरान लोड, वाहन के रूट के शुरुआती लोड होते हैं. इसके बाद, हर विज़िट के बाद, विज़िट के   | 
              
EncodedPolyline
पॉलीलाइन का कोड में बदला गया वर्शन. पॉलीलाइन को कोड में बदलने के बारे में ज़्यादा जानकारी यहां मिल सकती है: https://developers.google.com/maps/documentation/utilities/polylinealgorithm https://developers.google.com/maps/documentation/javascript/reference/geometry#encoding.
| JSON के काेड में दिखाना | 
|---|
{ "points": string }  | 
              
| फ़ील्ड | |
|---|---|
points | 
                
                   
 पॉलीलाइन के कोड में बदले गए पॉइंट दिखाने वाली स्ट्रिंग.  | 
              
ब्रेक
ब्रेक के लागू होने की जानकारी देने वाला डेटा.
| JSON के काेड में दिखाना | 
|---|
{ "startTime": string, "duration": string }  | 
              
| फ़ील्ड | |
|---|---|
startTime | 
                
                   
 ब्रेक शुरू होने का समय. आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़्ड होगा और इसमें 0, 3, 6 या 9 दशमलव अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण:   | 
              
duration | 
                
                   
 ब्रेक की अवधि. सेकंड में कुल अवधि, जिसमें दशमलव के बाद नौ अंक हो सकते हैं. यह अवधि '  | 
              
VehicleFullness
VehicleFullness एक मेट्रिक है, जो यह कैलकुलेट करती है कि कोई वाहन कितना भरा हुआ है. हर VehicleFullness फ़ील्ड 0 से 1 के बीच होता है. इसे कैप की गई मेट्रिक फ़ील्ड (उदाहरण के लिए, AggregatedMetrics.travel_distance_meters) और उससे जुड़ी वाहन की सीमा (उदाहरण के लिए, Vehicle.route_distance_limit) के बीच के अनुपात के तौर पर कैलकुलेट किया जाता है. हालांकि, यह ज़रूरी नहीं है कि Vehicle.route_distance_limit फ़ील्ड मौजूद हो. ऐसा न करने पर, फ़ुलनेस रेशियो सेट नहीं होगा. अगर सीमा 0 है, तो फ़ील्ड को 1 पर सेट किया जाता है. ध्यान दें: जब किसी रास्ते पर ट्रैफ़िक की वजह से यात्रा करना मुश्किल हो जाता है, तो हो सकता है कि कुछ रॉ फ़ुलनेस रेशियो 1.0 से ज़्यादा हो जाएं. उदाहरण के लिए, हो सकता है कि वाहन तय की गई दूरी से ज़्यादा दूर चला जाए. ऐसे मामलों में, हम फ़ुलनेस वैल्यू को 1.0 पर कैप कर देते हैं.
| JSON के काेड में दिखाना | 
|---|
{ "maxFullness": number, "distance": number, "travelDuration": number, "activeDuration": number, "maxLoad": number, "activeSpan": number }  | 
              
| फ़ील्ड | |
|---|---|
maxFullness | 
                
                   
 इस मैसेज में मौजूद सभी अन्य फ़ील्ड की ज़्यादा से ज़्यादा संख्या.  | 
              
distance | 
                
                   
 
  | 
              
travelDuration | 
                
                   
 [AggregatedMetrics.travel_duration_seconds][] और   | 
              
activeDuration | 
                
                   
 [AggregatedMetrics.total_duration_seconds][] और   | 
              
maxLoad | 
                
                   
 [AggregatedMetrics.max_load][] के सभी टाइप और उनके   | 
              
activeSpan | 
                
                   
 किसी वाहन के लिए, (vehicleEndTime - vehicleStartTime) / (latestVehicleEndTime - earliestVehicleStartTime) का अनुपात. अगर हर मौजूद नहीं है, तो इसके बजाय (  |