वाहन के रास्ते को टाइम ऐक्सिस के साथ, इस तरह से बांटा जा सकता है (हम मानते हैं कि 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) से पहले और उसके बाद ट्रांज़िशन (इंडेक्स + 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 और AGE की व्यवस्था कैसे की जा सकती है.
- वे ओवरलैप नहीं होते.
- देरी यूनीक है और अगली विज़िट (या वाहन खत्म होने से पहले) से ठीक पहले की समयावधि होनी चाहिए. इसलिए, शुरू और खत्म होने का समय जानने के लिए, देरी की अवधि की जानकारी होना काफ़ी है.
- 'BREAKS' समय की ऐसी अवधि होती है जो एक-दूसरे से जुड़ी हुई होती हैं और ओवरलैप नहीं होती हैं. इस रिस्पॉन्स से, हर ब्रेक के शुरू होने का समय और उसकी अवधि की जानकारी मिलती है.
- TRAVEL और AGE "प्रीम्प्टेबल" होते हैं: इस ट्रांज़िशन के दौरान उन्हें कई बार रोका जा सकता है. क्लाइंट यह मान सकते हैं कि यात्रा "जल्द से जल्द" हो जाती है और "इंतज़ार" करने का समय बचा है.
एक (जटिल) उदाहरण:
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 | | | | ||
|| | | | | | | ||
--++-----------------------------------------------------------------++-->
जेएसओएन के काेड में दिखाना |
---|
{ "vehicleIndex": integer, "vehicleLabel": string, "vehicleStartTime": string, "vehicleEndTime": string, "visits": [ { object ( |
फ़ील्ड | |
---|---|
vehicleIndex |
वाहन, रास्ते की जानकारी देता है. इसकी पहचान, सोर्स |
vehicleLabel |
इस रास्ते पर चल रहे वाहन का लेबल, अगर बताया गया हो, तो |
vehicleStartTime |
वह समय जब वाहन अपना रास्ता शुरू करता है. RFC3339 यूटीसी "ज़ुलु" फ़ॉर्मैट में एक टाइमस्टैंप, जिसमें नैनोसेकंड का रिज़ॉल्यूशन और नौ फ़्रैक्शनल अंक हो सकते हैं. उदाहरण: |
vehicleEndTime |
वह समय जब वाहन अपना रास्ता खत्म करता है. RFC3339 यूटीसी "ज़ुलु" फ़ॉर्मैट में एक टाइमस्टैंप, जिसमें नैनोसेकंड का रिज़ॉल्यूशन और नौ फ़्रैक्शनल अंक हो सकते हैं. उदाहरण: |
visits[] |
किसी रास्ते को दिखाने वाली विज़िट का ऑर्डर दिया गया क्रम. विज़िट[i], इस रास्ते की i-वीं यात्रा है. अगर यह फ़ील्ड खाली है, तो वाहन को 'इस्तेमाल नहीं किया गया' माना जाएगा. |
transitions[] |
रास्ते के लिए ट्रांज़िशन की क्रम वाली सूची. |
hasTrafficInfeasibilities |
जब
Next_visit पर पहुंचने पर, हो सकता है कि वह मौजूदा समय के बाद पहुंच जाए. ऐसा इसलिए है, क्योंकि ट्रैफ़िक की वजह से, यात्रा में लगने वाले समय का अनुमान |
routePolyline |
कोड में बदला गया रूट दिखाया गया है. इस फ़ील्ड में जानकारी सिर्फ़ तब भरती है, जब |
breaks[] |
इस रास्ते पर चलने वाले वाहन के लिए शेड्यूल किए गए ब्रेक. |
metrics |
इस रास्ते के लिए अवधि, दूरी, और लोड मेट्रिक. कॉन्टेक्स्ट के हिसाब से, |
routeCosts |
रास्ते की लागत, जिसे लागत से जुड़े अनुरोध वाले फ़ील्ड के हिसाब से बांटा गया है. कुंजियां, इनपुट OptimizeToursRequest से मिलते-जुलते प्रोटो पाथ होते हैं, जैसे कि "model.shipments.pickups.cost" और वैल्यू, संबंधित लागत फ़ील्ड से जनरेट होने वाली कुल लागत होती है, जिसे पूरे रास्ते के लिए एग्रीगेट किया जाता है. दूसरे शब्दों में, किसी रूट के लिए पिक अप के कुल शुल्क का योग ["model.shipments.pickups.cost"] होता है. मॉडल में बताई गई सभी कीमतों की पूरी जानकारी यहां दी गई है. हालांकि, ट्रांज़िशन एट्रिब्यूट से जुड़ी उन लागतों की जानकारी नहीं दी गई है जिन्हें 2022/01 तक सिर्फ़ एग्रीगेट करके रिपोर्ट किया जाता है. एक ऑब्जेक्ट, जिसमें |
routeTotalCost |
रास्ते का कुल किराया. लागत मैप में सभी लागतों का योग. |
इस लिंक पर जाएँ
किसी रास्ते के दौरान की गई विज़िट. यह विज़िट Shipment
के पिकअप या डिलीवरी से जुड़ी है.
जेएसओएन के काेड में दिखाना |
---|
{
"shipmentIndex": integer,
"isPickup": boolean,
"visitRequestIndex": integer,
"startTime": string,
"loadDemands": {
string: {
object ( |
फ़ील्ड | |
---|---|
shipmentIndex |
सोर्स |
isPickup |
अगर सही है, तो विज़िट |
visitRequestIndex |
|
startTime |
विज़िट शुरू होने का समय. ध्यान दें कि विज़िट की जगह पर वाहन इस समय से पहले पहुंच सकता है. समय, RFC3339 यूटीसी "ज़ुलु" फ़ॉर्मैट में एक टाइमस्टैंप, जिसमें नैनोसेकंड का रिज़ॉल्यूशन और नौ फ़्रैक्शनल अंक हो सकते हैं. उदाहरण: |
loadDemands |
शिपमेंट और विज़िट के अनुरोध एक ऑब्जेक्ट, जिसमें |
detour |
यात्रा से पहले के रास्ते में आने वाले शिपमेंट और टाइम विंडो की वजह से लगने वाले संभावित इंतज़ार के समय की वजह से ज़्यादा लंबा समय. अगर विज़िट कोई डिलीवरी है, तो चक्करदार विज़िट का हिसाब, उससे जुड़ी पिकअप विज़िट से लिया जाता है और यह इसके बराबर होता है:
ऐसा न होने पर,
सेकंड में दी गई अवधि, जिसमें नौ भिन्नांक हो सकते हैं. साथ ही, यह ' |
shipmentLabel |
अगर |
visitLabel |
अगर |
ट्रांज़िशन
रास्ते में दो इवेंट के बीच ट्रांज़िशन. ShipmentRoute
की जानकारी देखें.
अगर वाहन के पास startLocation
और/या endLocation
नहीं है, तो यात्रा की उससे जुड़ी मेट्रिक 0 होगी.
जेएसओएन के काेड में दिखाना |
---|
{ "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 |
इस ट्रांज़िशन के शुरू होने का समय. RFC3339 यूटीसी "ज़ुलु" फ़ॉर्मैट में एक टाइमस्टैंप, जिसमें नैनोसेकंड का रिज़ॉल्यूशन और नौ फ़्रैक्शनल अंक हो सकते हैं. उदाहरण: |
routePolyline |
बदलाव के दौरान फ़ॉलो किए गए रूट को कोड में बदला गया पॉलीलाइन दिखाया गया है. इस फ़ील्ड में जानकारी सिर्फ़ तब भरती है, जब |
vehicleLoads |
इस ट्रांज़िशन के दौरान, ऐसे हर तरह के वाहन लोड किए जाते हैं जो इस वाहन के पहले ट्रांज़िशन के दौरान लोड होने वाले लोड, वाहन के रास्ते पर शुरुआती लोड होते हैं. फिर, हर विज़िट के बाद, विज़िट के एक ऑब्जेक्ट, जिसमें |
EncodedPolyline
पॉलीलाइन को कोड में बदला गया है. पॉलीलाइन एन्कोडिंग के बारे में ज़्यादा जानकारी यहां मिल सकती है: https://developers.google.com/maps/documentation/utilities/polylinealgorithm https://developers.google.com/maps/documentation/javascript/reference/geometry#encoding.
जेएसओएन के काेड में दिखाना |
---|
{ "points": string } |
फ़ील्ड | |
---|---|
points |
पॉलीलाइन के कोड में बदले गए पॉइंट दिखाने वाली स्ट्रिंग. |
ब्रेक
ब्रेक की प्रोसेस से जुड़ा डेटा.
जेएसओएन के काेड में दिखाना |
---|
{ "startTime": string, "duration": string } |
फ़ील्ड | |
---|---|
startTime |
ब्रेक शुरू होने का समय. RFC3339 यूटीसी "ज़ुलु" फ़ॉर्मैट में एक टाइमस्टैंप, जिसमें नैनोसेकंड का रिज़ॉल्यूशन और नौ फ़्रैक्शनल अंक हो सकते हैं. उदाहरण: |
duration |
ब्रेक की अवधि. सेकंड में दी गई अवधि, जिसमें नौ भिन्नांक हो सकते हैं. साथ ही, यह ' |