ShipmentRoute

किसी वाहन के रास्ते को समय के हिसाब से इस तरह से बांटा जा सकता है (हम मानते हैं कि 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 यूनीक होता है और यह ज़रूरी है कि यह अगले स्टॉप (या वाहन के खत्म होने) से ठीक पहले का समय हो. इसलिए, इसके शुरू और खत्म होने का समय जानने के लिए, देरी की अवधि जानना काफ़ी है.
  • ब्रेक, समय की ऐसी अवधि होती है जो एक के बाद एक होती है और एक-दूसरे से ओवरलैप नहीं होती. जवाब में, हर ब्रेक के शुरू होने का समय और अवधि बताई जाती है.
  • यात्रा और इंतज़ार "प्रीएम्प्टेबल" होते हैं: इस ट्रांज़िशन के दौरान, इन्हें कई बार रोका जा सकता है. क्लाइंट यह मान सकते हैं कि यात्रा "जितनी जल्दी हो सके" शुरू हो जाती है और "इंतज़ार" में बाकी समय लगता है.

एक (जटिल) उदाहरण:

                               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 (Visit)
    }
  ],
  "transitions": [
    {
      object (Transition)
    }
  ],
  "hasTrafficInfeasibilities": boolean,
  "routePolyline": {
    object (EncodedPolyline)
  },
  "breaks": [
    {
      object (Break)
    }
  ],
  "metrics": {
    object (AggregatedMetrics)
  },
  "vehicleFullness": {
    object (VehicleFullness)
  },
  "routeCosts": {
    string: number,
    ...
  },
  "routeTotalCost": number
}
फ़ील्ड
vehicleIndex

integer

रूट पर चलने वाले वाहन की पहचान, सोर्स ShipmentModel में मौजूद उसके इंडेक्स से की जाती है.

vehicleLabel

string

इस रास्ते पर चलने वाले वाहन का लेबल, अगर बताया गया है, तो ShipmentModel.vehicles(vehicleIndex).label के बराबर होना चाहिए.

vehicleStartTime

string (Timestamp format)

वह समय जब वाहन अपना रास्ता शुरू करता है.

यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" या "2014-10-02T15:01:23+05:30".

vehicleEndTime

string (Timestamp format)

वह समय जब वाहन अपने रास्ते पर चलना बंद कर देता है.

यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" या "2014-10-02T15:01:23+05:30".

visits[]

object (Visit)

विज़िट का क्रम, जो किसी रास्ते को दिखाता है. visits[i] रास्ते में i-th विज़िट है. अगर यह फ़ील्ड खाली है, तो वाहन को इस्तेमाल नहीं किया गया माना जाता है.

transitions[]

object (Transition)

रास्ते के लिए ट्रांज़िशन की क्रम से लगाई गई सूची.

hasTrafficInfeasibilities

boolean

OptimizeToursRequest.consider_road_traffic को सही पर सेट करने पर, यह फ़ील्ड दिखाता है कि रास्ते के समय में होने वाले बदलावों का अनुमान, ट्रैफ़िक के आधार पर यात्रा की अवधि के अनुमानों का इस्तेमाल करके लगाया जाता है. ऐसा हो सकता है कि यात्रा में लगने वाले समय, देरी, और यात्राओं के बीच के ब्रेक को ट्रैफ़िक के हिसाब से अडजस्ट करने के लिए, आपके पास ज़रूरत के मुताबिक समय न हो. ऐसा पहली यात्रा से पहले या आखिरी यात्रा के बाद हो सकता है. हालांकि, इस दौरान यात्रा और वाहन के लिए तय की गई समयसीमा पूरी हो सकती है. उदाहरण के लिए,

  startTime(previous_visit) + duration(previous_visit) +
  travelDuration(previous_visit, next_visit) > startTime(next_visit)

ट्रैफ़िक की वजह से, यात्रा में लगने वाले समय का अनुमान travelDuration(previous_visit, next_visit) बढ़ गया है. इसलिए, हो सकता है कि अगले स्टॉप पर पहुंचने का समय, मौजूदा समयसीमा से बाद का हो. इसके अलावा, यात्रा में लगने वाले समय के अनुमान और विज़िट या ब्रेक के समय की विंडो से जुड़ी पाबंदियों की वजह से, ब्रेक को विज़िट के साथ ओवरलैप करने के लिए मजबूर किया जा सकता है.

routePolyline

object (EncodedPolyline)

रास्ते की एन्कोड की गई पॉलीलाइन. यह फ़ील्ड सिर्फ़ तब भरा जाता है, जब OptimizeToursRequest.populate_polylines को 'सही है' पर सेट किया गया हो.

breaks[]

object (Break)

इस रूट पर चलने वाले वाहन के लिए तय किए गए ब्रेक. breaks क्रम, समय के अंतराल को दिखाता है. हर अंतराल, startTime से शुरू होता है और duration सेकंड तक चलता है.

metrics

object (AggregatedMetrics)

इस रास्ते के लिए, अवधि, दूरी, और लोड मेट्रिक. कॉन्टेक्स्ट के हिसाब से, AggregatedMetrics के फ़ील्ड को सभी ShipmentRoute.transitions या ShipmentRoute.visits पर जोड़ा जाता है.

vehicleFullness

object (VehicleFullness)

VehicleFullness फ़ील्ड का इस्तेमाल यह पता लगाने के लिए किया जाता है कि कैप की गई मेट्रिक, वाहन की तय सीमा के कितने करीब हैं. इसके फ़ील्ड, कैप की गई मेट्रिक फ़ील्ड (जैसे कि AggregatedMetrics.travel_distance_meters) और वाहन की सीमा (जैसे कि Vehicle.route_distance_limit) के बीच के अनुपात होते हैं.

एक्सपेरिमेंट के तौर पर उपलब्ध: इस फ़ील्ड के काम करने के तरीके या इसकी उपलब्धता में आने वाले समय में बदलाव हो सकता है.

routeCosts

map (key: string, value: number)

रास्ते की लागत, जिसे लागत से जुड़े अनुरोध फ़ील्ड के हिसाब से बांटा गया है. कुंजियां, OptimizeToursRequest के इनपुट के हिसाब से प्रोटो पाथ होती हैं. उदाहरण के लिए, "model.shipments.pickups.cost". वैल्यू, लागत वाले फ़ील्ड से जनरेट की गई कुल लागत होती है. इसे पूरे रास्ते के हिसाब से एग्रीगेट किया जाता है. दूसरे शब्दों में, costs["model.shipments.pickups.cost"] का मतलब है कि रास्ते में पिकअप करने की सभी लागतों का योग. मॉडल में तय की गई सभी लागतों की जानकारी यहां दी गई है. हालांकि, TransitionAttributes से जुड़ी लागतों की जानकारी सिर्फ़ एग्रीगेट किए गए तरीके से दी जाती है. यह जानकारी 2022/01 से दी जा रही है.

routeTotalCost

number

रास्ते की कुल लागत. यह लागत के मैप में मौजूद सभी लागतों का योग होती है.

यहां जाएं

रास्ते में की गई विज़िट. यह विज़िट, Shipment को पिकअप करने या डिलीवर करने से जुड़ी होती है.

JSON के काेड में दिखाना
{
  "shipmentIndex": integer,
  "isPickup": boolean,
  "visitRequestIndex": integer,
  "startTime": string,
  "loadDemands": {
    string: {
      object (Load)
    },
    ...
  },
  "detour": string,
  "shipmentLabel": string,
  "visitLabel": string,
  "visitType": enum (VisitType),
  "injectedSolutionLocationToken": integer
}
फ़ील्ड
shipmentIndex

integer

सोर्स ShipmentModel में shipments फ़ील्ड का इंडेक्स.

isPickup

boolean

अगर वैल्यू सही है, तो इसका मतलब है कि विज़िट, Shipment के पिकअप से जुड़ी है. इसके अलावा, यह डिलीवरी से जुड़ा होता है.

visitRequestIndex

integer

Shipment के पिकअप या डिलीवरी फ़ील्ड में VisitRequest का इंडेक्स (isPickup देखें).

startTime

string (Timestamp format)

विज़िट शुरू होने का समय. ध्यान दें कि वाहन, विज़िट की जगह पर इस समय से पहले भी पहुंच सकता है. समय, ShipmentModel के मुताबिक है.

यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" या "2014-10-02T15:01:23+05:30".

loadDemands

map (key: string, value: object (Load))

शिपमेंट और विज़िट के अनुरोध loadDemands के योग के तौर पर, विज़िट लोड की कुल मांग. अगर विज़िट डिलीवरी के लिए है, तो वैल्यू नेगेटिव होती हैं. मांग की रिपोर्टिंग, Transition.loads फ़ील्ड में दिए गए टाइप के हिसाब से की जाती है. इस फ़ील्ड के बारे में यहां देखें.

detour

string (Duration format)

यात्रा से पहले रास्ते में आने वाले शिपमेंट की वजह से, यात्रा में लगने वाला अतिरिक्त समय. साथ ही, समयसीमा की वजह से इंतज़ार में लगने वाला संभावित समय. अगर यात्रा डिलीवरी के लिए है, तो यात्रा में लगने वाले अतिरिक्त समय का हिसाब, पिकअप की यात्रा के हिसाब से लगाया जाता है. यह इस तरह से लगाया जाता है:

startTime(delivery) - startTime(pickup)
- (duration(pickup) + travel duration from the pickup location
to the delivery location).

अगर ऐसा नहीं है, तो इसका हिसाब वाहन के startLocation से लगाया जाता है. यह इसके बराबर होता है:

startTime - vehicleStartTime - travel duration from
the vehicle's `startLocation` to the visit.

यह सेकंड में अवधि होती है. इसमें नौ दशमलव अंकों तक हो सकते हैं. यह 's' पर खत्म होती है. उदाहरण: "3.5s".

shipmentLabel

string

अगर Shipment में बताया गया है, तो उससे जुड़े Shipment.label की कॉपी.

visitLabel

string

अगर VisitRequest में बताया गया है, तो उससे जुड़े VisitRequest.label की कॉपी.

visitType

enum (VisitType)

ज़रूरी नहीं. इससे विज़िट का टाइप पता चलता है. Visit.is_pickup फ़ील्ड की वैल्यू को ओवरराइड करता है.

injectedSolutionLocationToken

integer

यह एक अपारदर्शी टोकन होता है. इससे किसी जगह पर जाने की जानकारी मिलती है.

इस फ़ील्ड में, नतीजे के रास्तों की विज़िट की जानकारी अपने-आप भर सकती है. ऐसा तब होता है, जब इस विज़िट के लिए VisitRequest.avoid_u_turns को सही पर सेट किया गया हो या अनुरोध OptimizeToursRequest में ShipmentModel.avoid_u_turns को सही पर सेट किया गया हो.

एक्सपेरिमेंट के तौर पर उपलब्ध: ज़्यादा जानकारी के लिए, https://developers.google.com/maps/tt/route-optimization/experimental/u-turn-avoidance/make-request पर जाएं.

VisitType

इससे पता चलता है कि विज़िट, पिकअप, डिलीवरी या Stop के लिए है. Stop पर आने वाले लोगों की जानकारी का इस्तेमाल सिर्फ़ तब किया जाता है, जब मल्टीमॉडल ऑप्टिमाइज़ेशन की सुविधा चालू हो.

Enums
VISIT_TYPE_UNSPECIFIED विज़िट के टाइप की जानकारी नहीं दी गई है.
PICKUP_SHIPMENT विज़िट, शिपमेंट पिकअप से जुड़ी होती है.
DELIVER_SHIPMENT यह विज़िट, शिपमेंट की डिलीवरी से जुड़ी होती है.

ट्रांज़िशन

रास्ते में मौजूद दो इवेंट के बीच ट्रांज़िशन. ShipmentRoute के बारे में जानकारी देखें.

अगर वाहन में startLocation और/या endLocation नहीं है, तो यात्रा से जुड़ी मेट्रिक की वैल्यू 0 होती है.

JSON के काेड में दिखाना
{
  "travelDuration": string,
  "travelDistanceMeters": number,
  "trafficInfoUnavailable": boolean,
  "delayDuration": string,
  "breakDuration": string,
  "waitDuration": string,
  "totalDuration": string,
  "startTime": string,
  "routePolyline": {
    object (EncodedPolyline)
  },
  "routeToken": string,
  "vehicleLoads": {
    string: {
      object (VehicleLoad)
    },
    ...
  }
}
फ़ील्ड
travelDuration

string (Duration format)

इस ट्रांज़िशन के दौरान यात्रा की अवधि.

यह सेकंड में अवधि होती है. इसमें नौ दशमलव अंकों तक हो सकते हैं. यह 's' पर खत्म होती है. उदाहरण: "3.5s".

travelDistanceMeters

number

ट्रांज़िशन के दौरान तय की गई दूरी.

trafficInfoUnavailable

boolean

जब OptimizeToursRequest.consider_road_traffic के ज़रिए ट्रैफ़िक की जानकारी का अनुरोध किया जाता है और Transition के लिए ट्रैफ़िक की जानकारी नहीं मिल पाती है, तो इस बूलियन को 'सही' पर सेट किया जाता है. ऐसा कुछ समय के लिए (रीयलटाइम ट्रैफ़िक सर्वर में कभी-कभी आने वाली समस्या) या हमेशा के लिए (इस जगह के लिए कोई डेटा नहीं है) हो सकता है.

delayDuration

string (Duration format)

इस ट्रांज़िशन पर लागू किए गए डिले की अवधि का योग. अगर कोई देरी होती है, तो वह अगले इवेंट (विज़िट या वाहन के रुकने) से ठीक delayDuration सेकंड पहले शुरू होती है. TransitionAttributes.delay देखें.

यह सेकंड में अवधि होती है. इसमें नौ दशमलव अंकों तक हो सकते हैं. यह 's' पर खत्म होती है. उदाहरण: "3.5s".

breakDuration

string (Duration format)

इस ट्रांज़िशन के दौरान होने वाले ब्रेक की कुल अवधि. अगर कोई ब्रेक नहीं होता है, तो इसकी वैल्यू 0 होती है. हर ब्रेक के शुरू होने के समय और अवधि की जानकारी, ShipmentRoute.breaks में सेव की जाती है.

यह सेकंड में अवधि होती है. इसमें नौ दशमलव अंकों तक हो सकते हैं. यह 's' पर खत्म होती है. उदाहरण: "3.5s".

waitDuration

string (Duration format)

इस बदलाव के दौरान इंतज़ार करने में लगा समय. इंतज़ार की अवधि, काम न करने के समय के बराबर होती है. इसमें ब्रेक का समय शामिल नहीं होता. यह भी ध्यान दें कि इंतज़ार करने का यह समय, कई अलग-अलग समय अंतराल में बंटा हो सकता है.

यह सेकंड में अवधि होती है. इसमें नौ दशमलव अंकों तक हो सकते हैं. यह 's' पर खत्म होती है. उदाहरण: "3.5s".

totalDuration

string (Duration format)

ट्रांज़िशन की कुल अवधि. यह जानकारी आपकी सुविधा के लिए दी गई है. यह अवधि इस तरह तय होती है:

  • अगली विज़िट startTime (या अगर यह आखिरी ट्रांज़िशन है, तो vehicleEndTime) - इस ट्रांज़िशन का startTime;
  • अगर ShipmentRoute.has_traffic_infeasibilities की वैल्यू false है, तो यह भी लागू होगा: `totalDuration = travelDuration + delayDuration
  • breakDuration + waitDuration`.

यह सेकंड में अवधि होती है. इसमें नौ दशमलव अंकों तक हो सकते हैं. यह 's' पर खत्म होती है. उदाहरण: "3.5s".

startTime

string (Timestamp format)

इस ट्रांज़िशन के शुरू होने का समय.

यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" या "2014-10-02T15:01:23+05:30".

routePolyline

object (EncodedPolyline)

ट्रांज़िशन के दौरान फ़ॉलो किए गए रूट का कोड में बदला गया पॉलीलाइन प्रज़ेंटेशन. यह फ़ील्ड सिर्फ़ तब दिखता है, जब populateTransitionPolylines को 'सही है' पर सेट किया गया हो.

routeToken

string

सिर्फ़ आउटपुट. यह एक ओपेक टोकन है. इसे Navigation SDK को पास किया जा सकता है, ताकि नेविगेशन के दौरान रास्ते को फिर से बनाया जा सके. साथ ही, रास्ता बदलने की स्थिति में, जब रास्ता बनाया गया था, तब के मूल मकसद को पूरा किया जा सके. इस टोकन को ओपेक ब्लॉब के तौर पर इस्तेमाल करें. अलग-अलग अनुरोधों के लिए इसकी वैल्यू की तुलना न करें, क्योंकि सेवा से एक ही रास्ता मिलने पर भी इसकी वैल्यू बदल सकती है. यह फ़ील्ड सिर्फ़ तब भरा जाता है, जब populateTransitionPolylines को 'सही' पर सेट किया गया हो.

vehicleLoads

map (key: string, value: object (VehicleLoad))

इस ट्रांज़िशन के दौरान वाहन में मौजूद सामान. यह सामान, हर उस टाइप का होता है जो इस वाहन के Vehicle.load_limits में दिखता है या जिसमें इस रूट पर किए गए किसी शिपमेंट के लिए, शून्य से ज़्यादा Shipment.load_demands होता है.

पहले ट्रांज़िशन के दौरान लोड किए गए सामान को, वाहन के रूट के शुरुआती लोड माना जाता है. इसके बाद, हर बार आने वाले व्यक्ति के हिसाब से, loadDemands को जोड़ा या घटाया जाता है, ताकि अगले ट्रांज़िशन के लोड का पता चल सके. यह इस बात पर निर्भर करता है कि आने वाला व्यक्ति पिकअप करने आया था या डिलीवरी करने.

EncodedPolyline

यह पॉलीलाइन का एन्कोड किया गया वर्शन होता है. पॉलीलाइन एन्कोडिंग के बारे में ज़्यादा जानकारी यहां मिल सकती है: https://developers.google.com/maps/documentation/utilities/polylinealgorithm https://developers.google.com/maps/documentation/javascript/reference/geometry#encoding.

JSON के काेड में दिखाना
{
  "points": string
}
फ़ील्ड
points

string

पॉलीलाइन के कोड में बदले गए पॉइंट दिखाने वाली स्ट्रिंग.

ब्रेक

ब्रेक के लागू होने की जानकारी देने वाला डेटा.

JSON के काेड में दिखाना
{
  "startTime": string,
  "duration": string
}
फ़ील्ड
startTime

string (Timestamp format)

ब्रेक शुरू होने का समय.

यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" या "2014-10-02T15:01:23+05:30".

duration

string (Duration format)

ब्रेक की अवधि.

यह सेकंड में अवधि होती है. इसमें नौ दशमलव अंकों तक हो सकते हैं. यह 's' पर खत्म होती है. उदाहरण: "3.5s".

VehicleFullness

VehicleFullness एक मेट्रिक है. इससे यह पता चलता है कि वाहन में कितनी जगह खाली है. हर VehicleFullness फ़ील्ड की वैल्यू 0 से 1 के बीच होती है. इसकी गिनती, कैप की गई मेट्रिक फ़ील्ड (जैसे, AggregatedMetrics.travel_distance_meters) और उससे जुड़ी वाहन की सीमा (जैसे, Vehicle.route_distance_limit) के अनुपात के तौर पर की जाती है. हालांकि, ऐसा तब होता है, जब वाहन की सीमा मौजूद हो. ऐसा न करने पर, फ़ुलनेस रेशियो सेट नहीं होता. अगर सीमा 0 है, तो फ़ील्ड को 1 पर सेट किया जाता है. ध्यान दें: जब किसी रास्ते पर ट्रैफ़िक की वजह से यात्रा करना मुश्किल हो जाता है, तो कुछ मामलों में, बस में यात्रियों की संख्या का अनुपात 1.0 से ज़्यादा हो सकता है. उदाहरण के लिए, बस तय की गई दूरी से ज़्यादा चल सकती है. ऐसे मामलों में, हम फ़ुलनेस वैल्यू को 1.0 पर सीमित कर देते हैं.

JSON के काेड में दिखाना
{
  "maxFullness": number,
  "distance": number,
  "travelDuration": number,
  "activeDuration": number,
  "maxLoad": number,
  "activeSpan": number
}
फ़ील्ड
maxFullness

number

इस मैसेज में मौजूद अन्य सभी फ़ील्ड की ज़्यादा से ज़्यादा वैल्यू.

distance

number

AggregatedMetrics.travel_distance_meters और Vehicle.route_distance_limit के बीच का अनुपात. अगर Vehicle.route_distance_limit को सेट नहीं किया गया है, तो इस फ़ील्ड को भी सेट नहीं किया जाएगा.

travelDuration

number

[AggregatedMetrics.travel_duration_seconds][] और Vehicle.travel_duration_limit के बीच का अनुपात. अगर Vehicle.travel_duration_limit को सेट नहीं किया गया है, तो इस फ़ील्ड को भी सेट नहीं किया जाएगा.

activeDuration

number

[AggregatedMetrics.total_duration_seconds][] और Vehicle.route_duration_limit के बीच का अनुपात. अगर Vehicle.route_duration_limit को सेट नहीं किया गया है, तो इस फ़ील्ड को भी सेट नहीं किया जाएगा.

maxLoad

number

सभी तरह के [AggregatedMetrics.max_load][] और उनके Vehicle.load_limits के बीच ज़्यादा से ज़्यादा अनुपात. अगर सभी Vehicle.load_limits फ़ील्ड की वैल्यू सेट नहीं की गई है, तो इस फ़ील्ड की वैल्यू भी सेट नहीं की जाएगी.

activeSpan

number

किसी वाहन के लिए, (vehicleEndTime - vehicleStartTime) / (latestVehicleEndTime - earliestVehicleStartTime) का अनुपात. अगर डिनॉमिनेटर मौजूद नहीं है, तो इसके बजाय (ShipmentModel.global_end_time - ShipmentModel.global_start_time) का इस्तेमाल किया जाता है.