टाइम ऐक्सिस पर वाहन के रास्ते को इस तरह से डिकोड किया जा सकता है (हम मान लेते हैं कि विज़िट 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 को किस तरह व्यवस्थित किया जा सकता है.
- वे ओवरलैप नहीं होते हैं.
- देरी यूनीक है और अगली विज़िट (या वाहन के खत्म होने) से ठीक पहले की अवधि ज़रूरी है. इसलिए, देरी के शुरू और खत्म होने के समय की जानकारी होना काफ़ी है.
- BREAKS एक साथ चलने वाले और अलग-अलग समय अवधि के होते हैं. रिस्पॉन्स से, हर ब्रेक के शुरू होने और उसकी अवधि के बारे में पता चलता है.
- TRAVEL और WAIT "पहले से तैयार" हैं: इस बदलाव के दौरान उनमें कई बार रुकावट आ सकती है. क्लाइंट मान सकते हैं कि यात्रा "जल्द से जल्द" होगी और यह कि "इंतज़ार करो" बचे हुए समय को भर देता है.
A (मुश्किल) का उदाहरण:
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 यूटीसी "ज़ुलु" में टाइमस्टैंप फ़ॉर्मैट, नैनोसेकंड रिज़ॉल्यूशन और ज़्यादा से ज़्यादा नौ फ़्रैक्शनल अंकों के साथ हो सकता है. उदाहरण: |
vehicleEndTime |
वह समय जब वाहन अपना रास्ता पूरा करता है. आरएफ़सी3339 यूटीसी "ज़ुलु" में टाइमस्टैंप फ़ॉर्मैट, नैनोसेकंड रिज़ॉल्यूशन और ज़्यादा से ज़्यादा नौ फ़्रैक्शनल अंकों के साथ हो सकता है. उदाहरण: |
visits[] |
रास्तों को दिखाने वाली विज़िट का क्रम. विज़िट[i] रूट की पहली विज़िट है. अगर यह फ़ील्ड खाली है, तो वाहन को इस्तेमाल नहीं किया गया माना जाता है. |
transitions[] |
रूट के लिए ट्रांज़िशन की क्रम वाली सूची. |
hasTrafficInfeasibilities |
अगर
ट्रैफ़िक की वजह से |
routePolyline |
रूट का एन्कोडेड पॉलीलाइन निरूपण. इस फ़ील्ड में जानकारी सिर्फ़ तब अपने-आप भर जाती है, जब |
breaks[] |
इस रास्ते पर चलने वाले वाहन के लिए ब्रेक का समय तय किया गया है. |
metrics |
इस रूट की अवधि, दूरी, और लोड की मेट्रिक. कॉन्टेक्स्ट के आधार पर, |
routeCosts |
रूट की लागत को लागत से जुड़े अनुरोध के फ़ील्ड के हिसाब से बांटा गया है. कुंजियां, प्रोटो पाथ हैं. ये इनपुट OptimizeToursRequest से जुड़े होते हैं, जैसे कि "model.shipments.pickups.cost" और ये वैल्यू, उस लागत के फ़ील्ड से जनरेट हुई कुल लागत होती हैं जिसे पूरे रास्ते के लिए एग्रीगेट किया जाता है. दूसरे शब्दों में कहें, तो ["model.shipments.pickups.cost"], किसी रूट पर पिक अप करने के सभी शुल्कों का कुल योग होता है. मॉडल में तय की गई सभी कीमतों के बारे में यहां ज़्यादा जानकारी दी गई है. हालांकि, ट्रांज़िशन एट्रिब्यूट से जुड़ी लागत को छोड़कर, ये कीमतें सिर्फ़ 2022/01 तक के डेटा के आधार पर रिपोर्ट की गई हैं. एक ऑब्जेक्ट, जिसमें |
routeTotalCost |
रास्ते की कुल कीमत. लागत मैप में सभी लागतों का योग. |
यहां जाएं
किसी रास्ते के दौरान की गई यात्रा. यह विज़िट, किसी Shipment
के पिकअप या डिलीवरी से जुड़ी है.
JSON के काेड में दिखाना |
---|
{
"shipmentIndex": integer,
"isPickup": boolean,
"visitRequestIndex": integer,
"startTime": string,
"loadDemands": {
string: {
object ( |
फ़ील्ड | |
---|---|
shipmentIndex |
सोर्स |
isPickup |
अगर विज़िट सही है, तो |
visitRequestIndex |
|
startTime |
विज़िट शुरू होने का समय. ध्यान दें कि वाहन, यात्रा की जगह पर इससे पहले भी आ सकता है. समय आरएफ़सी3339 यूटीसी "ज़ुलु" में टाइमस्टैंप फ़ॉर्मैट, नैनोसेकंड रिज़ॉल्यूशन और ज़्यादा से ज़्यादा नौ फ़्रैक्शनल अंकों के साथ हो सकता है. उदाहरण: |
loadDemands |
शिपिंग और विज़िट अनुरोध एक ऑब्जेक्ट, जिसमें |
detour |
यात्रा से पहले रूट पर शिपमेंट के साथ-साथ टाइम विंडो की वजह से संभावित प्रतीक्षा समय की वजह से अतिरिक्त चक्कर लगाने का समय. अगर विज़िट एक डिलीवरी है, तो चक्करदार पथ की गणना संबंधित पिकअप विज़िट से की जाती है और यह इसके बराबर होता है:
अगर ऐसा नहीं है, तो इसकी गिनती,
सेकंड में कुल नौ दशमलव अंक, जो ' |
shipmentLabel |
अगर |
visitLabel |
अगर |
ट्रांज़िशन
रूट पर दो इवेंट के बीच ट्रांज़िशन. ShipmentRoute
का ब्यौरा देखें.
अगर वाहन में startLocation
और/या endLocation
नहीं है, तो यात्रा से जुड़ी मेट्रिक शून्य होगी.
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 यूटीसी "ज़ुलु" में टाइमस्टैंप फ़ॉर्मैट, नैनोसेकंड रिज़ॉल्यूशन और ज़्यादा से ज़्यादा नौ फ़्रैक्शनल अंकों के साथ हो सकता है. उदाहरण: |
routePolyline |
ट्रांज़िशन के दौरान, कोड में बदली गई पॉलीलाइन दिखाने वाला रूट इस्तेमाल करना. इस फ़ील्ड में जानकारी सिर्फ़ तब अपने-आप भर जाती है, जब |
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 यूटीसी "ज़ुलु" में टाइमस्टैंप फ़ॉर्मैट, नैनोसेकंड रिज़ॉल्यूशन और ज़्यादा से ज़्यादा नौ फ़्रैक्शनल अंकों के साथ हो सकता है. उदाहरण: |
duration |
ब्रेक का कुल समय. सेकंड में कुल नौ दशमलव अंक, जो ' |