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 को true पर सेट करने पर, यह फ़ील्ड दिखाता है कि रास्ते के समय में होने वाले बदलावों का अनुमान, ट्रैफ़िक के आधार पर यात्रा की अवधि के अनुमानों का इस्तेमाल करके लगाया जाता है. ऐसा हो सकता है कि पहली विज़िट से पहले या आखिरी विज़िट के बाद, यात्रा में लगने वाले समय, देरी, और विज़िट के बीच के ब्रेक को पूरा करने के लिए, आपके पास कम समय हो. हालांकि, इस दौरान विज़िट और वाहन के लिए तय की गई समयसीमा पूरी हो जाती है. उदाहरण के लिए,

  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.
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 के लिए की गई थी. किसी स्टॉप पर विज़िट करने की जानकारी का इस्तेमाल सिर्फ़ तब किया जाता है, जब अलग-अलग मोड के हिसाब से ऑप्टिमाइज़ेशन की सुविधा चालू हो.

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)

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

travelDistanceMeters

number

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

trafficInfoUnavailable

boolean

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

delayDuration

string (Duration format)

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

breakDuration

string (Duration format)

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

waitDuration

string (Duration format)

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

totalDuration

string (Duration format)

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

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

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

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) का इस्तेमाल किया जाता है.