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

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 पर जाएं.

ट्रांज़िशन

रास्ते में मौजूद दो इवेंट के बीच ट्रांज़िशन. 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) का इस्तेमाल किया जाता है.