- JSON काेड में दिखाना
- शिपमेंट
- VisitRequest
- LatLng
- Waypoint
- जगह की जानकारी
- TimeWindow
- Vehicle
- TravelMode
- RouteModifiers
- UnloadingPolicy
- LoadLimit
- इंटरवल
- LoadCost
- DurationLimit
- DistanceLimit
- BreakRule
- BreakRequest
- FrequencyConstraint
- मकसद
- टाइप
- DurationDistanceMatrix
- Row
- TransitionAttributes
- ShipmentTypeIncompatibility
- IncompatibilityMode
- ShipmentTypeRequirement
- RequirementMode
- PrecedenceRule
शिपमेंट मॉडल में, शिपमेंट का एक सेट होता है. इसे वाहनों के एक सेट से पूरा किया जाना चाहिए. साथ ही, कुल लागत को कम से कम रखना चाहिए. कुल लागत में ये शामिल हैं:
- वाहनों के रूट की लागत (कुल समय के हिसाब से लागत, यात्रा के समय के हिसाब से लागत, और सभी वाहनों के लिए तय की गई लागत का योग).
- शिपमेंट पूरा न करने पर लगने वाले जुर्माने.
- शिपमेंट की कुल अवधि का शुल्क
| JSON के काेड में दिखाना |
|---|
{ "shipments": [ { object ( |
| फ़ील्ड | |
|---|---|
shipments[] |
शिपमेंट का ऐसा सेट जिसे मॉडल में पूरा करना ज़रूरी है. |
vehicles[] |
वाहनों का ऐसा सेट जिसका इस्तेमाल विज़िट करने के लिए किया जा सकता है. |
objectives[] |
इस मॉडल के लिए तय किए गए लक्ष्यों का सेट, जिसे हम लागत में बदल देंगे. अगर इनपुट मॉडल खाली नहीं है, तो उसे बिना किसी शुल्क के उपलब्ध कराया जाना चाहिए. बदला गया अनुरोध पाने के लिए, कृपया एक्सपेरिमेंट के तौर पर उपलब्ध: ज़्यादा जानकारी के लिए, https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request पर जाएं. |
globalStartTime |
मॉडल के शुरू और खत्म होने का ग्लोबल समय: इस रेंज के बाहर के समय को मान्य नहीं माना जा सकता. मॉडल का समय अंतराल एक साल से कम होना चाहिए. इसका मतलब है कि
यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: |
globalEndTime |
अगर यह नीति सेट नहीं की गई है, तो डिफ़ॉल्ट वैल्यू के तौर पर 1 जनवरी, 1971 को 00:00:00 यूटीसी (यानी, सेकंड: 31536000, नैनोसेकंड: 0) का इस्तेमाल किया जाता है. यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: |
globalDurationCostPerHour |
पूरे प्लान की "कुल अवधि" का मतलब, सभी वाहनों के लिए, सबसे पहले लागू होने वाले शुरुआती समय और सबसे बाद में लागू होने वाले आखिरी समय के बीच का अंतर होता है. उपयोगकर्ता, उस मात्रा के लिए हर घंटे की लागत असाइन कर सकते हैं. इससे, काम को जल्द से जल्द पूरा करने के लिए ऑप्टिमाइज़ किया जा सकता है. उदाहरण के लिए, ऐसा किया जा सकता है. यह लागत, |
durationDistanceMatrices[] |
मॉडल में इस्तेमाल की गई अवधि और दूरी की मैट्रिक्स के बारे में बताता है. अगर यह फ़ील्ड खाली है, तो इस्तेमाल के उदाहरण:
|
durationDistanceMatrixSrcTags[] |
ये टैग, अवधि और दूरी के मैट्रिक्स के सोर्स तय करते हैं; टैग, |
durationDistanceMatrixDstTags[] |
अवधि और दूरी के मैट्रिक्स के डेस्टिनेशन तय करने वाले टैग; टैग, |
transitionAttributes[] |
मॉडल में ट्रांज़िशन एट्रिब्यूट जोड़े गए. |
shipmentTypeIncompatibilities[] |
शिपमेंट के ऐसे टाइप के सेट जो एक-दूसरे के साथ काम नहीं करते ( |
shipmentTypeRequirements[] |
|
precedenceRules[] |
प्राथमिकता के नियमों का सेट, जिसे मॉडल में लागू किया जाना चाहिए. अहम जानकारी: प्राथमिकता के नियमों का इस्तेमाल करने से, उस समस्या का दायरा सीमित हो जाता है जिसे ऑप्टिमाइज़ किया जा सकता है. अगर प्राथमिकता के नियमों का इस्तेमाल करके किए गए अनुरोधों में कई शिपमेंट शामिल हैं, तो उन्हें अस्वीकार किया जा सकता है. |
maxActiveVehicles |
इससे, चालू वाहनों की ज़्यादा से ज़्यादा संख्या सीमित की जाती है. किसी वाहन को तब चालू माना जाता है, जब उसके रूट पर कम से कम एक शिपमेंट डिलीवर किया गया हो. इसका इस्तेमाल, उन मामलों में रास्तों की संख्या को सीमित करने के लिए किया जा सकता है जहां वाहनों की तुलना में ड्राइवर कम हों और वाहनों का फ्लीट अलग-अलग तरह का हो. इसके बाद, ऑप्टिमाइज़ेशन की प्रोसेस में, इस्तेमाल के लिए सबसे सही वाहनों का सबसेट चुना जाएगा. यह पॉज़िटिव होना चाहिए. |
शिपमेंट
किसी एक आइटम की शिपिंग, उसके पिकअप से लेकर डिलीवरी तक. शिपमेंट को पूरा माना जाने के लिए, यह ज़रूरी है कि एक वाहन, पिकअप करने की किसी एक जगह पर जाए और उसके हिसाब से अपनी खाली जगह कम करे. इसके बाद, वह डिलीवरी करने की किसी जगह पर जाए और उसके हिसाब से अपनी खाली जगह बढ़ाए.
| JSON के काेड में दिखाना |
|---|
{ "displayName": string, "pickups": [ { object ( |
| फ़ील्ड | |
|---|---|
displayName |
शिपमेंट का वह डिसप्ले नेम जो उपयोगकर्ता ने तय किया है. यह ज़्यादा से ज़्यादा 63 वर्णों का हो सकता है. इसमें UTF-8 वर्णों का इस्तेमाल किया जा सकता है. |
pickups[] |
शिपमेंट से जुड़े पिकअप के विकल्पों का सेट. अगर यह जानकारी नहीं दी जाती है, तो वाहन को सिर्फ़ उन जगहों पर जाना होगा जहां डिलीवरी करनी है. |
deliveries[] |
शिपमेंट से जुड़े डिलीवरी के विकल्पों का सेट. अगर यह जानकारी नहीं दी जाती है, तो वाहन को सिर्फ़ पिकअप की जगह पर जाना होगा. |
loadDemands |
शिपमेंट की लोड डिमांड (उदाहरण के लिए, वज़न, वॉल्यूम, पैलेट की संख्या वगैरह). मैप में मौजूद कुंजियां, आइडेंटिफ़ायर होनी चाहिए. इनसे लोड के टाइप के बारे में पता चलता है. साथ ही, इनमें यूनिट भी शामिल होनी चाहिए. उदाहरण के लिए: "weight_kg", "volume_gallons", "pallet_count" वगैरह. अगर दी गई कोई कुंजी मैप में नहीं दिखती है, तो उससे जुड़ा लोड शून्य माना जाता है. |
allowedVehicleIndices[] |
उन वाहनों का सेट जो इस शिपमेंट को पूरा कर सकते हैं. अगर यह फ़ील्ड खाली है, तो सभी वाहन इस सुविधा का इस्तेमाल कर सकते हैं. |
costsPerVehicle[] |
इससे पता चलता है कि हर वाहन से इस शिपमेंट की डिलीवरी करने पर कितना शुल्क लगता है. अगर यह तय किया गया है, तो इसमें इनमें से कोई एक होना चाहिए:
ये लागतें, |
costsPerVehicleIndices[] |
उन वाहनों के इंडेक्स जिन पर |
pickupToDeliveryAbsoluteDetourLimit |
यह पिकअप से डिलीवरी तक के सबसे छोटे रास्ते की तुलना में, ज़्यादा से ज़्यादा डिटूर समय के बारे में बताता है. अगर इसे तय किया जाता है, तो यह शून्य या इससे ज़्यादा होना चाहिए. साथ ही, शिपमेंट में कम से कम पिकअप और डिलीवरी की जानकारी शामिल होनी चाहिए. उदाहरण के लिए, मान लें कि चुने गए पिकअप के विकल्प से सीधे चुने गए डिलीवरी के विकल्प तक जाने में लगने वाला सबसे कम समय t है. इसके बाद, सेटिंग अगर एक ही शिपमेंट के लिए, दोनों तरह की सीमाएं तय की गई हैं, तो पिकअप/डिलीवरी के हर संभावित पेयर के लिए, ज़्यादा पाबंदी वाली सीमा का इस्तेमाल किया जाता है. अक्टूबर 2017 से, डाइवर्शन की सुविधा सिर्फ़ तब काम करती है, जब यात्रा की अवधि वाहनों पर निर्भर न हो. यह अवधि को सेकंड में दिखाता है. इसमें नौ दशमलव अंक तक हो सकते हैं. इसके आखिर में ' |
pickupToDeliveryTimeLimit |
इससे यह पता चलता है कि शिपमेंट को पिकअप करने से लेकर डिलीवर करने तक में ज़्यादा से ज़्यादा कितना समय लगेगा. अगर इसे तय किया जाता है, तो यह शून्य या इससे ज़्यादा होना चाहिए. साथ ही, शिपमेंट में कम से कम पिकअप और डिलीवरी की जानकारी शामिल होनी चाहिए. यह इस बात पर निर्भर नहीं करता कि पिकअप और डिलीवरी के लिए कौनसे विकल्प चुने गए हैं. साथ ही, यह वाहन की स्पीड पर भी निर्भर नहीं करता. इसे ज़्यादा से ज़्यादा डाइवर्शन की पाबंदियों के साथ तय किया जा सकता है: समाधान, दोनों स्पेसिफ़िकेशन का पालन करेगा. यह अवधि को सेकंड में दिखाता है. इसमें नौ दशमलव अंक तक हो सकते हैं. इसके आखिर में ' |
shipmentType |
यह एक ऐसी स्ट्रिंग होती है जिसमें इस शिपमेंट के "टाइप" के बारे में जानकारी होती है. इस सुविधा का इस्तेमाल, यह |
label |
इससे इस शिपमेंट के लिए लेबल तय होता है. इस लेबल की जानकारी, जवाब में मौजूद |
ignore |
अगर सही है, तो इस शिपमेंट को छोड़ दें, लेकिन अगर मॉडल में कोई
|
penaltyCost |
अगर शिपमेंट पूरा नहीं होता है, तो इस जुर्माने को रास्तों की कुल लागत में जोड़ दिया जाता है. अगर शिपमेंट के पिकअप और डिलीवरी के किसी एक विकल्प को चुना जाता है, तो उसे पूरा माना जाता है. लागत को मॉडल में, लागत से जुड़े अन्य सभी फ़ील्ड के लिए इस्तेमाल की गई यूनिट में दिखाया जा सकता है. साथ ही, यह पॉज़िटिव होनी चाहिए. अहम जानकारी: अगर इस पेनल्टी के बारे में नहीं बताया गया है, तो इसे हमेशा के लिए लागू माना जाता है. इसका मतलब है कि शिपमेंट पूरा होना चाहिए. |
pickupToDeliveryRelativeDetourLimit |
यह पिकअप से डिलीवरी तक के सबसे छोटे रास्ते की तुलना में, ज़्यादा से ज़्यादा समय बताता है. अगर इसे तय किया जाता है, तो यह शून्य या इससे ज़्यादा होना चाहिए. साथ ही, शिपमेंट में कम से कम पिकअप और डिलीवरी की जानकारी शामिल होनी चाहिए. उदाहरण के लिए, मान लें कि चुने गए पिकअप के विकल्प से सीधे चुने गए डिलीवरी के विकल्प तक जाने में लगने वाला सबसे कम समय t है. इसके बाद, सेटिंग अगर एक ही शिपमेंट के लिए, दोनों तरह की सीमाएं तय की गई हैं, तो पिकअप/डिलीवरी के हर संभावित पेयर के लिए, ज़्यादा पाबंदी वाली सीमा का इस्तेमाल किया जाता है. अक्टूबर 2017 से, डाइवर्शन की सुविधा सिर्फ़ तब काम करती है, जब यात्रा की अवधि वाहनों पर निर्भर न हो. |
VisitRequest
किसी वाहन से की जाने वाली यात्रा का अनुरोध: इसमें भौगोलिक जगह (या दो, नीचे देखें), खुलने और बंद होने का समय, और सेवा की अवधि (वाहन के सामान को पिकअप या ड्रॉप करने के बाद लगने वाला समय) शामिल होती है.
| JSON के काेड में दिखाना |
|---|
{ "arrivalLocation": { object ( |
| फ़ील्ड | |
|---|---|
arrivalLocation |
|
arrivalWaypoint |
यह वह वेपॉइंट है जहां वाहन इस |
departureLocation |
वह जगह जहां यह वाहन, |
departureWaypoint |
वह वेपॉइंट जहां वाहन इस |
tags[] |
विज़िट के अनुरोध से जुड़े टैग के बारे में बताता है. खाली या डुप्लीकेट स्ट्रिंग की अनुमति नहीं है. |
timeWindows[] |
ऐसी टाइम विंडो जिनसे किसी जगह पर पहुंचने का समय तय होता है. ध्यान दें कि वाहन, पहुंचने के समय की विंडो के बाहर भी रवाना हो सकता है. इसका मतलब है कि पहुंचने का समय और अवधि, किसी समयसीमा के अंदर होना ज़रूरी नहीं है. अगर वाहन
समयसीमाएं अलग-अलग होनी चाहिए.इसका मतलब है कि कोई भी समयसीमा, दूसरी समयसीमा के साथ ओवरलैप नहीं होनी चाहिए या उसके आस-पास नहीं होनी चाहिए. साथ ही, उन्हें बढ़ते क्रम में होना चाहिए.
|
duration |
विज़िट की अवधि, यानी कि वाहन के आने और जाने के बीच का समय.इसे इंतज़ार के संभावित समय में जोड़ा जाना चाहिए. यह अवधि को सेकंड में दिखाता है. इसमें नौ दशमलव अंक तक हो सकते हैं. इसके आखिर में ' |
cost |
किसी वाहन के रास्ते पर, विज़िट के इस अनुरोध को पूरा करने का शुल्क. इसका इस्तेमाल, शिपमेंट के हर पिकअप या डिलीवरी के विकल्प के लिए अलग-अलग शुल्क चुकाने के लिए किया जा सकता है. यह लागत, |
loadDemands |
इस कुकी का इस्तेमाल, वेबसाइट पर आने वाले व्यक्ति के अनुरोधों को लोड करने के लिए किया जाता है. यह फ़ील्ड, |
visitTypes[] |
विज़िट के टाइप के बारे में बताता है. इसका इस्तेमाल, किसी वाहन को इस यात्रा को पूरा करने के लिए ज़रूरी अतिरिक्त समय देने के लिए किया जा सकता है ( कोई टाइप सिर्फ़ एक बार दिख सकता है. |
label |
इस |
avoidUTurns |
इस विकल्प से यह तय किया जाता है कि इस जगह पर ड्राइविंग के रास्तों में यू-टर्न से बचना चाहिए या नहीं. यू-टर्न से बचने की सुविधा, सबसे सही तरीके से काम करती है. हालांकि, यह ज़रूरी नहीं है कि यू-टर्न से पूरी तरह बचा जा सके. इस सुविधा को फ़िलहाल आज़माया जा रहा है और इसके काम करने के तरीके में बदलाव हो सकता है. एक्सपेरिमेंट के तौर पर उपलब्ध: ज़्यादा जानकारी के लिए, https://developers.google.com/maps/tt/route-optimization/experimental/u-turn-avoidance/make-request पर जाएं. |
LatLng
यह ऑब्जेक्ट, अक्षांश/देशांतर की जोड़ी को दिखाता है. इसे डबल के तौर पर दिखाया जाता है, ताकि अक्षांश और देशांतर की डिग्री को दिखाया जा सके. जब तक अलग से कोई जानकारी न दी जाए, तब तक इस ऑब्जेक्ट को WGS84 स्टैंडर्ड के मुताबिक होना चाहिए. वैल्यू, सामान्य की गई सीमाओं के अंदर होनी चाहिए.
| JSON के काेड में दिखाना |
|---|
{ "latitude": number, "longitude": number } |
| फ़ील्ड | |
|---|---|
latitude |
डिग्री में अक्षांश. यह [-90.0, +90.0] की रेंज में होना चाहिए. |
longitude |
डिग्री में देशांतर. यह [-180.0, +180.0] की रेंज में होना चाहिए. |
वेपॉइंट
यह वेपॉइंट को शामिल करता है. वेपॉइंट, VisitRequest के पहुंचने और जाने की जगहों के साथ-साथ वाहनों के शुरू और खत्म होने की जगहों को मार्क करते हैं.
| JSON के काेड में दिखाना |
|---|
{ "sideOfRoad": boolean, "vehicleStopover": boolean, // Union field |
| फ़ील्ड | |
|---|---|
sideOfRoad |
ज़रूरी नहीं. इससे पता चलता है कि इस वेपॉइंट की जगह पर, वाहन को सड़क के किसी खास हिस्से पर रोकने के लिए प्राथमिकता दी जानी चाहिए. इस वैल्यू को सेट करने पर, रास्ता उस जगह से होकर गुज़रेगा. इससे वाहन, सड़क के उस किनारे पर रुक सकेगा जहां वह जगह सड़क के बीच से ज़्यादा करीब है. यह विकल्प, 'पैदल चलना' यात्रा मोड के लिए काम नहीं करता. |
vehicleStopover |
इससे पता चलता है कि वेपॉइंट पर वाहन को रुकना है, ताकि यात्रियों को पिक अप या ड्रॉप किया जा सके. यह विकल्प सिर्फ़ 'DRIVING' ट्रैवल मोड के लिए काम करता है. साथ ही, यह तब भी काम करता है, जब 'locationType' 'location' पर सेट हो. एक्सपेरिमेंटल: इस फ़ील्ड के काम करने के तरीके या इसकी उपलब्धता में आने वाले समय में बदलाव हो सकता है. |
यूनियन फ़ील्ड location_type. किसी जगह की जानकारी दिखाने के अलग-अलग तरीके. location_type इनमें से सिर्फ़ एक हो सकता है: |
|
location |
भौगोलिक निर्देशांकों का इस्तेमाल करके तय किया गया पॉइंट. इसमें एक वैकल्पिक हेडिंग भी शामिल होती है. |
placeId |
रास्ते के किसी पॉइंट से जुड़ा POI प्लेस आईडी. VisitRequest के लिए, किसी जगह पर पहुंचने या वहां से निकलने की जगह की जानकारी देने के लिए, किसी ऐसे प्लेस आईडी का इस्तेमाल करें जिससे उस जगह पर पहुंचने के लिए नेविगेशन की LatLng लोकेशन का पता चल सके. उदाहरण के लिए, किसी इमारत की जानकारी देने वाला जगह का आईडी सही है. हालांकि, किसी सड़क की जानकारी देने वाले जगह के आईडी का इस्तेमाल करने का सुझाव नहीं दिया जाता. |
जगह
इसमें किसी जगह की जानकारी होती है. जैसे, भौगोलिक पॉइंट और वैकल्पिक हेडिंग.
| JSON के काेड में दिखाना |
|---|
{
"latLng": {
object ( |
| फ़ील्ड | |
|---|---|
latLng |
वेपॉइंट के भौगोलिक निर्देशांक. |
heading |
कंपास हेडिंग, जो ट्रैफ़िक के फ़्लो की दिशा से जुड़ी होती है. इस वैल्यू का इस्तेमाल, पिकअप और ड्रॉप-ऑफ़ के लिए सड़क के उस हिस्से की जानकारी देने के लिए किया जाता है जिसका इस्तेमाल करना है. हेडिंग की वैल्यू 0 से 360 तक हो सकती हैं. इसमें 0 का मतलब उत्तर की ओर, 90 का मतलब पूरब की ओर, वगैरह होता है. |
TimeWindow
टाइम विंडो से, किसी इवेंट के समय को सीमित किया जाता है. जैसे, किसी जगह पर पहुंचने का समय या किसी वाहन के शुरू और खत्म होने का समय.
टाइम विंडो की हार्ड बाउंड्री, startTime और endTime, इवेंट के सबसे पहले और सबसे बाद के समय को लागू करती हैं, ताकि startTime <= event_time <=
endTime. सॉफ़्ट टाइम विंडो की शुरुआती सीमा, softStartTime, से पता चलता है कि इवेंट को softStartTime या उसके बाद होना चाहिए. अगर इवेंट, softStartTime से पहले होता है, तो उसके लिए एक शुल्क देना होगा. यह शुल्क, इस बात पर निर्भर करता है कि इवेंट, softStartTime से कितने समय पहले हुआ. सॉफ़्ट टाइम विंडो की ऊपरी सीमा, softEndTime, से यह पता चलता है कि इवेंट को softEndTime या उससे पहले होना चाहिए. अगर इवेंट softEndTime के बाद होता है, तो उसकी लागत softEndTime के बाद इवेंट होने में लगे समय के हिसाब से तय की जाती है. startTime, endTime, softStartTime, और softEndTime, ग्लोबल टाइम लिमिट (ShipmentModel.global_start_time और ShipmentModel.global_end_time देखें) के मुताबिक होने चाहिए. साथ ही, इन्हें इन बातों का ध्यान रखना चाहिए:
0 <= `startTime` <= `endTime` and
0 <= `startTime` <= `softStartTime` and
0 <= `softEndTime` <= `endTime`.
| JSON के काेड में दिखाना |
|---|
{ "startTime": string, "endTime": string, "softStartTime": string, "softEndTime": string, "costPerHourBeforeSoftStartTime": number, "costPerHourAfterSoftEndTime": number } |
| फ़ील्ड | |
|---|---|
startTime |
हार्ड टाइम विंडो के शुरू होने का समय. अगर इसे तय नहीं किया गया है, तो इसे यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: |
endTime |
सटीक समयसीमा के खत्म होने का समय. अगर इसे तय नहीं किया गया है, तो इसे यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: |
softStartTime |
टाइम विंडो के सॉफ़्ट स्टार्ट होने का समय. यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: |
softEndTime |
टाइम विंडो के खत्म होने का समय. यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: |
costPerHourBeforeSoftStartTime |
अगर इवेंट, softStartTime से पहले होता है, तो मॉडल में अन्य लागतों के साथ प्रति घंटे की लागत जोड़ी जाती है. इसकी गणना इस तरह की जाती है: यह लागत पॉज़िटिव होनी चाहिए. साथ ही, इस फ़ील्ड को सिर्फ़ तब सेट किया जा सकता है, जब softStartTime सेट किया गया हो. |
costPerHourAfterSoftEndTime |
अगर इवेंट यह लागत पॉज़िटिव होनी चाहिए. साथ ही, इस फ़ील्ड को सिर्फ़ तब सेट किया जा सकता है, जब |
वाहन
यह कुकी, शिपमेंट से जुड़ी समस्या में वाहन को मॉडल करती है. शिपमेंट की समस्या हल करने पर, इस वाहन के लिए startLocation से शुरू होकर endLocation पर खत्म होने वाला रास्ता बनाया जाएगा. रास्ता, विज़िट का क्रम होता है (ShipmentRoute देखें).
| JSON के काेड में दिखाना |
|---|
{ "displayName": string, "travelMode": enum ( |
| फ़ील्ड | |
|---|---|
displayName |
वाहन का वह नाम जो उपयोगकर्ता ने तय किया है. यह ज़्यादा से ज़्यादा 63 वर्णों का हो सकता है. इसमें UTF-8 वर्णों का इस्तेमाल किया जा सकता है. |
travelMode |
यात्रा का वह मोड जिससे वाहन के लिए इस्तेमाल की जा सकने वाली सड़कों और उसकी स्पीड पर असर पड़ता है. |
routeModifiers |
शर्तों का एक सेट, जिसे पूरा करने पर दिए गए वाहन के लिए रास्तों का हिसाब लगाने के तरीके पर असर पड़ता है. |
startLocation |
वह भौगोलिक जगह जहां से वाहन, शिपमेंट पिक अप करने से पहले शुरू होता है. अगर यह जानकारी नहीं दी जाती है, तो वाहन अपनी पहली पिकअप लोकेशन से यात्रा शुरू करता है. अगर शिपमेंट मॉडल में अवधि और दूरी की मैट्रिक्स मौजूद हैं, तो |
startWaypoint |
यह एक ऐसा वेपॉइंट होता है जो किसी भौगोलिक जगह को दिखाता है. यहां से वाहन, शिपमेंट पिक अप करने से पहले शुरू होता है. अगर |
endLocation |
वह जगह जहां वाहन अपनी आखिरी |
endWaypoint |
यह एक ऐसा वेपॉइंट होता है जो किसी भौगोलिक जगह को दिखाता है. यह वह जगह होती है जहां वाहन, अपनी आखिरी |
startTags[] |
वाहन के रास्ते की शुरुआत में जोड़े गए टैग के बारे में बताता है. खाली या डुप्लीकेट स्ट्रिंग की अनुमति नहीं है. |
endTags[] |
इससे वाहन के रूट के आखिर में जोड़े गए टैग के बारे में पता चलता है. खाली या डुप्लीकेट स्ट्रिंग की अनुमति नहीं है. |
startTimeWindows[] |
वह समयावधि जिसके दौरान वाहन, अपनी शुरुआती जगह से रवाना हो सकता है. ये ग्लोबल समयसीमाओं के अंदर होने चाहिए ( एक ही दोहराए गए फ़ील्ड से जुड़ी समयसीमाएं अलग-अलग होनी चाहिए.इसका मतलब है कि कोई भी समयसीमा, दूसरी समयसीमा के साथ ओवरलैप नहीं होनी चाहिए और न ही उसके आस-पास होनी चाहिए. साथ ही, उन्हें क्रम के हिसाब से लगाया जाना चाहिए.
|
endTimeWindows[] |
वह समयावधि जिसके दौरान वाहन अपनी मंज़िल पर पहुँच सकता है. ये ग्लोबल समयसीमाओं के अंदर होने चाहिए ( एक ही दोहराए गए फ़ील्ड से जुड़ी समयसीमाएं अलग-अलग होनी चाहिए.इसका मतलब है कि कोई भी समयसीमा, दूसरी समयसीमा के साथ ओवरलैप नहीं होनी चाहिए और न ही उसके आस-पास होनी चाहिए. साथ ही, उन्हें क्रम के हिसाब से लगाया जाना चाहिए.
|
unloadingPolicy |
वाहन पर सामान उतारने की नीति लागू की गई है. |
loadLimits |
वाहन की क्षमताएं (वज़न, वॉल्यूम, पैलेट की संख्या वगैरह). मैप में मौजूद कुंजियां, लोड के टाइप के आइडेंटिफ़ायर होती हैं. ये |
costPerHour |
वाहन की लागत: सभी लागतों को जोड़कर, वाहन के रास्ते के हर घंटे की लागत. यह लागत, रास्ते में लगने वाले कुल समय पर लागू होती है. इसमें यात्रा का समय, इंतज़ार का समय, और विज़िट का समय शामिल होता है. सिर्फ़ |
costPerTraveledHour |
वाहन के रास्ते में तय किए गए हर घंटे का शुल्क. यह लागत सिर्फ़ उस समय पर लागू होती है जो रास्ते में लगता है.यानी, |
costPerKilometer |
वाहन के रास्ते के हिसाब से, प्रति किलोमीटर का शुल्क. यह शुल्क, |
fixedCost |
अगर इस वाहन का इस्तेमाल शिपमेंट को हैंडल करने के लिए किया जाता है, तो तय की गई लागत लागू होती है. |
usedIfRouteIsEmpty |
यह फ़ील्ड सिर्फ़ उन वाहनों पर लागू होता है जिनके रूट पर कोई शिपमेंट नहीं होता. इससे पता चलता है कि इस मामले में वाहन को इस्तेमाल किया गया माना जाना चाहिए या नहीं. अगर यह वैल्यू सही है, तो वाहन अपनी शुरुआती जगह से आखिरी जगह तक जाता है. भले ही, वह कोई शिपमेंट न ले जा रहा हो. साथ ही, शुरुआती जगह से आखिरी जगह तक जाने में लगने वाले समय और दूरी के हिसाब से शुल्क लिया जाता है. इसके अलावा, यह वाहन अपनी शुरुआती जगह से मंज़िल तक नहीं जाता है. साथ ही, इस वाहन के लिए कोई |
routeDurationLimit |
वाहन के पूरे रास्ते की अवधि पर सीमा लागू की गई है. किसी |
travelDurationLimit |
वाहन के रास्ते की यात्रा की अवधि पर लागू सीमा. किसी |
routeDistanceLimit |
वाहन के पूरे रास्ते पर लागू होने वाली सीमा. किसी |
extraVisitDurationForVisitType |
यह विज़िट टाइप की स्ट्रिंग से अवधि तक का मैप तय करता है. समयावधि, अगर किसी विज़िट के अनुरोध में कई तरह की समस्याएं हैं, तो मैप में हर समस्या के लिए अवधि जोड़ दी जाएगी. |
breakRule |
इस वाहन पर लागू होने वाले ब्रेक के शेड्यूल के बारे में बताता है. अगर यह खाली है, तो इस वाहन के लिए कोई ब्रेक शेड्यूल नहीं किया जाएगा. |
label |
इससे इस वाहन के लिए लेबल तय किया जाता है. इस लेबल को रिस्पॉन्स में, इससे जुड़े |
ignore |
अगर यह वैल्यू सही है, तो अगर अगर |
travelDurationMultiple |
यह एक मल्टीप्लिकेटिव फ़ैक्टर है. इसका इस्तेमाल करके, इस वाहन के यात्रा समय को बढ़ाया या घटाया जा सकता है. उदाहरण के लिए, इसे 2.0 पर सेट करने का मतलब है कि यह वाहन धीमा है और इसे यात्रा करने में उतना समय लगता है जितना सामान्य वाहनों को लगता है. इस मल्टीपल से, विज़िट की अवधि पर कोई असर नहीं पड़ता. अगर चेतावनी: इस मल्टीपल को लागू करने के बाद, यात्रा के समय को सबसे नज़दीकी सेकंड में बदल दिया जाएगा. हालांकि, ऐसा किसी भी संख्यात्मक कार्रवाई को पूरा करने से पहले किया जाएगा. इसलिए, छोटे मल्टीपल से सटीक जानकारी नहीं मिल सकती.
|
TravelMode
यात्रा के ऐसे मोड जिनका इस्तेमाल वाहन कर सकते हैं.
ये Google Maps Platform Routes API के यात्रा मोड का सबसेट होना चाहिए. इसके बारे में यहां देखें: https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteTravelMode
ध्यान दें: WALKING रास्ते बीटा वर्शन में हैं. इसलिए, हो सकता है कि कभी-कभी इनमें पैदल चलने के लिए साफ़-सुथरे रास्ते या फ़ुटपाथ न हों. आपको अपने ऐप्लिकेशन में पैदल चलने के सभी रास्तों के लिए, उपयोगकर्ता को यह चेतावनी दिखानी होगी.
| Enums | |
|---|---|
TRAVEL_MODE_UNSPECIFIED |
यात्रा के मोड की जानकारी नहीं दी गई है. यह DRIVING के बराबर है. |
DRIVING |
ड्राइविंग के निर्देशों के हिसाब से यात्रा का मोड (कार, ...). |
WALKING |
पैदल चलने के रास्ते से जुड़ा यात्रा मोड. |
RouteModifiers
इसमें वाहन के रूट का हिसाब लगाते समय, ज़रूरी शर्तों का एक सेट शामिल होता है. यह Google Maps Platform Routes Preferred API में मौजूद RouteModifiers जैसा ही है. इसके बारे में यहां जानें: https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteModifiers.
| JSON के काेड में दिखाना |
|---|
{ "avoidTolls": boolean, "avoidHighways": boolean, "avoidFerries": boolean, "avoidIndoor": boolean } |
| फ़ील्ड | |
|---|---|
avoidTolls |
इस विकल्प से यह तय किया जाता है कि जहां ज़रूरी हो वहां टोल वाली सड़कों से बचा जाए या नहीं. टोल वाली सड़कों के बजाय, बिना टोल वाली सड़कों को प्राथमिकता दी जाएगी. यह सुविधा सिर्फ़ मोटर से चलने वाले वाहनों के लिए उपलब्ध है. |
avoidHighways |
इस विकल्प से यह तय किया जाता है कि जहां ज़रूरी हो वहां हाइवे से बचा जाए या नहीं. ऐसे रास्तों को प्राथमिकता दी जाएगी जिनमें हाईवे शामिल नहीं हैं. यह सुविधा सिर्फ़ मोटर से चलने वाले वाहनों के लिए उपलब्ध है. |
avoidFerries |
इससे यह तय होता है कि जहां ज़रूरी हो वहां फ़ेरी से यात्रा करने से बचना है या नहीं. उन रास्तों को प्राथमिकता दी जाएगी जिनमें फ़ेरी से यात्रा शामिल नहीं है. यह सुविधा सिर्फ़ मोटर से चलने वाले वाहनों के लिए उपलब्ध है. |
avoidIndoor |
ज़रूरी नहीं. इससे यह तय किया जाता है कि जहां मुमकिन हो वहां इंडोर नेविगेशन से बचना है या नहीं. उन रास्तों को प्राथमिकता दी जाएगी जिनमें इंडोर नेविगेशन की सुविधा नहीं है. यह सुविधा सिर्फ़ |
UnloadingPolicy
वाहन से सामान उतारने का तरीका बताने वाली नीति. यह सिर्फ़ उन शिपमेंट पर लागू होता है जिनमें पिकअप और डिलीवरी, दोनों की सुविधा उपलब्ध है.
unloadingPolicy के अलावा, अन्य शिपमेंट को रूट पर कहीं भी डिलीवर किया जा सकता है.
| Enums | |
|---|---|
UNLOADING_POLICY_UNSPECIFIED |
सामान उतारने की नीति के बारे में जानकारी नहीं दी गई है. डिलीवरी, पिकअप के बाद ही होनी चाहिए. |
LAST_IN_FIRST_OUT |
डिलीवरी, पिकअप के उल्टे क्रम में होनी चाहिए |
FIRST_IN_FIRST_OUT |
डिलीवरी, पिकअप के क्रम में ही होनी चाहिए |
LoadLimit
यह किसी वाहन पर लागू होने वाली लोड लिमिट तय करता है. उदाहरण के लिए, "यह ट्रक सिर्फ़ 3,500 किलोग्राम तक का सामान ले जा सकता है". loadLimits देखें.
| JSON के काेड में दिखाना |
|---|
{ "softMaxLoad": string, "costPerUnitAboveSoftMax": number, "startLoadInterval": { object ( |
| फ़ील्ड | |
|---|---|
softMaxLoad |
लोड की एक तय सीमा. |
costPerUnitAboveSoftMax |
अगर वाहन के रूट पर कभी भी लोड |
startLoadInterval |
रास्ते की शुरुआत में, वाहन के लिए तय किया गया लोड इंटरवल. |
endLoadInterval |
रास्ते के आखिर में, वाहन के लिए स्वीकार्य लोड इंटरवल. |
maxLoad |
ज़्यादा से ज़्यादा कितना लोड स्वीकार किया जा सकता है. |
costPerKilometer |
इस वाहन के लिए, एक किलोमीटर तक एक यूनिट लोड ले जाने की लागत. इसका इस्तेमाल ईंधन की खपत के प्रॉक्सी के तौर पर किया जा सकता है: अगर लोड का वज़न (न्यूटन में) है, तो लोड*किलोमीटर में ऊर्जा का डाइमेंशन होता है. एक्सपेरिमेंट के तौर पर उपलब्ध: ज़्यादा जानकारी के लिए, https://developers.google.com/maps/tt/route-optimization/experimental/load-cost/make-request पर जाएं. |
costPerTraveledHour |
इस वाहन के लिए, एक घंटे में एक यूनिट लोड ले जाने की लागत. एक्सपेरिमेंट के तौर पर उपलब्ध: ज़्यादा जानकारी के लिए, https://developers.google.com/maps/tt/route-optimization/experimental/load-cost/make-request पर जाएं. |
इंटरवल
लोड की जा सकने वाली रकम का इंटरवल.
| JSON के काेड में दिखाना |
|---|
{ "min": string, "max": string } |
| फ़ील्ड | |
|---|---|
min |
कम से कम स्वीकार्य लोड. यह वैल्यू, 0 या उससे ज़्यादा होनी चाहिए. अगर दोनों की जानकारी दी गई है, तो |
max |
ज़्यादा से ज़्यादा स्वीकार्य लोड. यह वैल्यू, 0 या उससे ज़्यादा होनी चाहिए. अगर इस एट्रिब्यूट की वैल्यू सबमिट नहीं की जाती है, तो इस मैसेज से ज़्यादा से ज़्यादा लोड पर कोई पाबंदी नहीं लगती. अगर दोनों की जानकारी दी गई है, तो |
LoadCost
Transition के दौरान एक यूनिट लोड को ले जाने की लागत. किसी दिए गए लोड के लिए, लागत दो हिस्सों का योग होती है:
- min(load,
loadThreshold) *costPerUnitBelowThreshold - max(0, load -
loadThreshold) *costPerUnitAboveThreshold
इस लागत के साथ, समाधान पहले ज़्यादा मांग वाले प्रॉडक्ट डिलीवर करते हैं या ज़्यादा मांग वाले प्रॉडक्ट को आखिर में पिकअप करते हैं. उदाहरण के लिए, अगर किसी वाहन में
load_limit {
key: "weight"
value {
costPerKilometer {
loadThreshold: 15
costPerUnitBelowThreshold: 2.0
costPerUnitAboveThreshold: 10.0
}
}
}
और इसका रूट, start,pickup,pickup,delivery,delivery,end है. इसमें ये ट्रांज़िशन शामिल हैं:
transition { vehicle_load['weight'] { amount: 0 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 20 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 0 }
travelDistanceMeters: 1000.0 }
तो इस LoadCost की लागत यह होगी: (cost_below * load_below * kilometers + cost_above * load_above * kms)
- ट्रांज़िशन 0: 0.0
- ट्रांज़िशन 1: 2.0 * 10 * 1.0 + 10.0 * 0 * 1.0 = 20.0
- ट्रांज़िशन 2: 2.0 * 15 * 1.0 + 10.0 * (20 - 15) * 1.0 = 80.0
- ट्रांज़िशन 3: 2.0 * 10 * 1.0 + 10.0 * 0 * 1.0 = 20.0
- ट्रांज़िशन 4: 0.0
इसलिए, रास्ते पर LoadCost 120.0 है.
हालांकि, अगर ट्रांज़िशन के साथ रूट इस तरह से दिया गया है: शुरू,पिकअप,डिलीवरी,पिकअप,डिलीवरी,खत्म:
transition { vehicle_load['weight'] { amount: 0 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 0 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travelDistanceMeters: 1000.0 }
transition { vehicle_load['weight'] { amount: 0 }
travelDistanceMeters: 1000.0 }
तो इस LoadCost पर खर्च की गई लागत यह है
- ट्रांज़िशन 0: 0.0
- ट्रांज़िशन 1: 2.0 * 10 * 1.0 + 10.0 * 0 * 1.0 = 20.0
- ट्रांज़िशन 2: 0.0
- ट्रांज़िशन 3: 2.0 * 10 * 1.0 + 10.0 * 0 * 1.0 = 20.0
- ट्रांज़िशन 4: 0.0
यहां रास्ते पर LoadCost 40.0 है.
LoadCost से, ज़्यादा ट्रांज़िशन वाले समाधानों की लागत बढ़ जाती है.
एक्सपेरिमेंट के तौर पर उपलब्ध: ज़्यादा जानकारी के लिए, https://developers.google.com/maps/tt/route-optimization/experimental/load-cost/make-request पर जाएं.
| JSON के काेड में दिखाना |
|---|
{ "loadThreshold": string, "costPerUnitBelowThreshold": number, "costPerUnitAboveThreshold": number } |
| फ़ील्ड | |
|---|---|
loadThreshold |
लोड की वह मात्रा जिसके बाद, लोड की एक यूनिट को ले जाने की लागत, costPerUnitBelowThreshold से बदलकर costPerUnitAboveThreshold हो जाती है. यह वैल्यू, 0 से ज़्यादा या इसके बराबर होनी चाहिए. |
costPerUnitBelowThreshold |
थ्रेशोल्ड और 0 के बीच की हर यूनिट के लिए, लोड की एक यूनिट को ले जाने की लागत. यह एक सीमित वैल्यू होनी चाहिए और इसकी वैल्यू 0 से ज़्यादा या इसके बराबर होनी चाहिए. |
costPerUnitAboveThreshold |
थ्रेशोल्ड से ऊपर की हर यूनिट के लिए, लोड की एक यूनिट को ले जाने की लागत. अगर थ्रेशोल्ड = 0 है, तो यह हर यूनिट के लिए तय की गई लागत होती है. यह एक सीमित वैल्यू होनी चाहिए और इसकी वैल्यू 0 से ज़्यादा या इसके बराबर होनी चाहिए. |
DurationLimit
यह किसी वाहन के रास्ते की ज़्यादा से ज़्यादा अवधि तय करने वाली सीमा होती है. यह हार्ड या सॉफ्ट हो सकता है.
सॉफ़्ट लिमिट फ़ील्ड तय किए जाने पर, सॉफ़्ट मैक्स थ्रेशोल्ड और उससे जुड़ी लागत, दोनों को एक साथ तय किया जाना चाहिए.
| JSON के काेड में दिखाना |
|---|
{ "maxDuration": string, "softMaxDuration": string, "quadraticSoftMaxDuration": string, "costPerHourAfterSoftMax": number, "costPerSquareHourAfterQuadraticSoftMax": number } |
| फ़ील्ड | |
|---|---|
maxDuration |
यह एक तय सीमा है, जिसके तहत अवधि को ज़्यादा से ज़्यादा maxDuration पर सेट किया जा सकता है. यह अवधि को सेकंड में दिखाता है. इसमें नौ दशमलव अंक तक हो सकते हैं. इसके आखिर में ' |
softMaxDuration |
सॉफ़्ट लिमिट में, ज़्यादा से ज़्यादा अवधि की सीमा लागू नहीं की जाती. हालांकि, इसका उल्लंघन करने पर, रूट पर शुल्क लगता है. यह लागत, मॉडल में बताई गई अन्य लागतों में जुड़ जाती है. इसकी यूनिट भी वही होती है. अगर यह अवधि को सेकंड में दिखाता है. इसमें नौ दशमलव अंक तक हो सकते हैं. इसके आखिर में ' |
quadraticSoftMaxDuration |
सॉफ़्ट लिमिट, ज़्यादा से ज़्यादा अवधि की सीमा लागू नहीं करती. हालांकि, इसका उल्लंघन होने पर, रूट पर अवधि के हिसाब से लागत लगती है. यह लागत, मॉडल में बताई गई अन्य लागतों में जुड़ जाती है. इसकी यूनिट भी वही होती है. अगर
यह अवधि को सेकंड में दिखाता है. इसमें नौ दशमलव अंक तक हो सकते हैं. इसके आखिर में ' |
costPerHourAfterSoftMax |
किराया नेगेटिव नहीं होना चाहिए. |
costPerSquareHourAfterQuadraticSoftMax |
अगर अवधि थ्रेशोल्ड से कम है, तो अतिरिक्त शुल्क नहीं लगता. अगर अवधि थ्रेशोल्ड से ज़्यादा है, तो शुल्क इस तरह से तय होता है: किराया नेगेटिव नहीं होना चाहिए. |
DistanceLimit
यह एक सीमा है, जो तय की जा सकने वाली ज़्यादा से ज़्यादा दूरी तय करती है. यह हार्ड या सॉफ्ट हो सकता है.
अगर कोई सॉफ्ट लिमिट तय की गई है, तो softMaxMeters और costPerKilometerAboveSoftMax, दोनों को तय किया जाना चाहिए. साथ ही, इनकी वैल्यू शून्य या इससे ज़्यादा होनी चाहिए.
| JSON के काेड में दिखाना |
|---|
{ "maxMeters": string, "softMaxMeters": string, "costPerKilometerBelowSoftMax": number, "costPerKilometerAboveSoftMax": number } |
| फ़ील्ड | |
|---|---|
maxMeters |
यह एक तय सीमा है. इसके तहत, दूरी ज़्यादा से ज़्यादा maxMeters तक हो सकती है. सीमा, नेगेटिव नहीं होनी चाहिए. |
softMaxMeters |
सॉफ़्ट लिमिट में, ज़्यादा से ज़्यादा दूरी तय करने की सीमा लागू नहीं होती. हालांकि, इसका उल्लंघन करने पर, मॉडल में तय की गई अन्य लागतों में एक और लागत जुड़ जाती है. इसकी यूनिट भी वही होती है. अगर softMaxMeters तय किया गया है, तो यह maxMeters से कम होना चाहिए और इसकी वैल्यू शून्य या इससे ज़्यादा होनी चाहिए. |
costPerKilometerBelowSoftMax |
प्रति किलोमीटर के हिसाब से खर्च, जो
|
costPerKilometerAboveSoftMax |
अगर दूरी किराया नेगेटिव नहीं होना चाहिए. |
BreakRule
किसी वाहन के लिए ब्रेक का समय जनरेट करने के नियम. जैसे, दोपहर के खाने का ब्रेक. ब्रेक, एक तय समय होता है. इस दौरान, वाहन अपनी मौजूदा जगह पर खड़ा रहता है और कोई विज़िट नहीं कर सकता. ब्रेक तब आ सकता है, जब:
- दो विज़िट के बीच की यात्रा के दौरान (इसमें विज़िट से ठीक पहले या ठीक बाद का समय शामिल है, लेकिन विज़िट के बीच का समय शामिल नहीं है). ऐसे मामले में, यह विज़िट के बीच के ट्रांज़िट समय को बढ़ा देता है,
- या गाड़ी चालू होने से पहले (गाड़ी ब्रेक के बीच में चालू नहीं हो सकती). ऐसे में, गाड़ी के चालू होने के समय पर इसका असर नहीं पड़ता.
- या वाहन के रुकने के बाद (वाहन के रुकने के समय के साथ).
| JSON के काेड में दिखाना |
|---|
{ "breakRequests": [ { object ( |
| फ़ील्ड | |
|---|---|
breakRequests[] |
ब्रेक का क्रम. |
frequencyConstraints[] |
एक से ज़्यादा |
BreakRequest
हर वाहन पर लागू होने वाले ब्रेक का क्रम (यानी कि उनकी संख्या और क्रम) पहले से पता होना चाहिए. BreakRequest को दोहराकर, उस क्रम को तय किया जाता है जिसमें उन्हें होना चाहिए. ऐसा हो सकता है कि डिलीवरी के लिए तय की गई समयावधि (earliestStartTime / latestStartTime) एक-दूसरे से मेल खाए. हालांकि, यह ज़रूरी है कि डिलीवरी के लिए तय की गई समयावधि, ऑर्डर के साथ काम करे. इसकी जांच की जाती है.
| JSON के काेड में दिखाना |
|---|
{ "earliestStartTime": string, "latestStartTime": string, "minDuration": string } |
| फ़ील्ड | |
|---|---|
earliestStartTime |
ज़रूरी है. ब्रेक शुरू होने का समय (शामिल है). यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: |
latestStartTime |
ज़रूरी है. ब्रेक शुरू होने की ऊपरी सीमा (शामिल है). यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: |
minDuration |
ज़रूरी है. ब्रेक की कम से कम अवधि. पॉज़िटिव होना चाहिए. यह अवधि को सेकंड में दिखाता है. इसमें नौ दशमलव अंक तक हो सकते हैं. इसके आखिर में ' |
FrequencyConstraint
ऊपर बताए गए ब्रेक की फ़्रीक्वेंसी और अवधि को और भी सीमित किया जा सकता है. इसके लिए, ब्रेक की कम से कम फ़्रीक्वेंसी तय की जा सकती है. जैसे, "हर 12 घंटे में कम से कम एक घंटे का ब्रेक होना चाहिए". मान लें कि इसका मतलब यह है कि "12 घंटे की किसी भी समयावधि में, कम से कम एक घंटे का एक ब्रेक होना चाहिए". इस उदाहरण का अनुवाद यहां दिया गया है FrequencyConstraint:
{
minBreakDuration { seconds: 3600 } # 1 hour.
maxInterBreakDuration { seconds: 39600 } # 11 hours (12 - 1 = 11).
}
समाधान में ब्रेक का समय और अवधि, इन सभी शर्तों के साथ-साथ BreakRequest में पहले से तय की गई समयसीमा और कम से कम अवधि के मुताबिक होगी.
FrequencyConstraint को लगातार न होने वाले ब्रेक पर भी लागू किया जा सकता है. उदाहरण के लिए, यहां दिया गया शेड्यूल "हर 12 घंटे में एक घंटा" के उदाहरण के मुताबिक है:
04:00 vehicle start
.. performing travel and visits ..
09:00 1 hour break
10:00 end of the break
.. performing travel and visits ..
12:00 20-min lunch break
12:20 end of the break
.. performing travel and visits ..
21:00 1 hour break
22:00 end of the break
.. performing travel and visits ..
23:59 vehicle end
| JSON के काेड में दिखाना |
|---|
{ "minBreakDuration": string, "maxInterBreakDuration": string } |
| फ़ील्ड | |
|---|---|
minBreakDuration |
ज़रूरी है. इस शर्त के लिए, ब्रेक की कम से कम अवधि. शून्य या उससे ज़्यादा. यह अवधि को सेकंड में दिखाता है. इसमें नौ दशमलव अंक तक हो सकते हैं. इसके आखिर में ' |
maxInterBreakDuration |
ज़रूरी है. रास्ते में किसी भी समय के अंतराल की ज़्यादा से ज़्यादा अवधि, जिसमें कम से कम यह अवधि को सेकंड में दिखाता है. इसमें नौ दशमलव अंक तक हो सकते हैं. इसके आखिर में ' |
मकसद
लक्ष्य, लागत मॉडल की जगह ले लेते हैं. इसलिए, ये पहले से तय की गई लागत के साथ काम नहीं करते. हर मकसद के लिए, पहले से तय की गई लागत की संख्या मैप की जाती है. जैसे, वाहनों, शिपमेंट या ट्रांज़िशन एट्रिब्यूट के लिए.
एक्सपेरिमेंट के तौर पर उपलब्ध: ज़्यादा जानकारी के लिए, https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request पर जाएं.
| JSON के काेड में दिखाना |
|---|
{
"type": enum ( |
| फ़ील्ड | |
|---|---|
type |
मकसद किस तरह का है. |
weight |
इस लक्ष्य को अन्य लक्ष्यों की तुलना में कितना महत्व दिया जाना चाहिए. यह कोई भी नॉन-नेगेटिव संख्या हो सकती है. वज़न का योग 1 होना ज़रूरी नहीं है. वज़न की डिफ़ॉल्ट वैल्यू 1.0 होती है. |
टाइप
वह ऑब्जेक्टिव टाइप जिसे लागत के सेट के साथ मैप किया जाएगा.
| Enums | |
|---|---|
DEFAULT |
लागत का डिफ़ॉल्ट सेट इस्तेमाल किया जाएगा, ताकि सही समाधान मिल सके. ध्यान दें: इस लक्ष्य का इस्तेमाल अकेले किया जा सकता है. हालांकि, अगर यह लक्ष्य पहले से मौजूद नहीं है, तो इसे हमेशा उपयोगकर्ता के तय किए गए लक्ष्यों में, बेसलाइन के तौर पर 1.0 के वेट के साथ जोड़ा जाएगा. |
MIN_DISTANCE |
"MIN" उद्देश्यों को पूरा करना. तय की गई कुल दूरी कम से कम हो. |
MIN_WORKING_TIME |
सभी वाहनों के लिए, काम करने के कुल समय को कम से कम करें. |
MIN_TRAVEL_TIME |
ऊपर दिए गए उदाहरण की तरह ही, लेकिन इसमें सिर्फ़ यात्रा के समय पर फ़ोकस किया गया है. |
MIN_NUM_VEHICLES |
कम से कम वाहनों का इस्तेमाल करें. |
DurationDistanceMatrix
यह कुकी, विज़िट और वाहन के शुरू होने की जगहों से लेकर विज़िट और वाहन के खत्म होने की जगहों तक की अवधि और दूरी का मैट्रिक्स तय करती है.
| JSON के काेड में दिखाना |
|---|
{
"rows": [
{
object ( |
| फ़ील्ड | |
|---|---|
rows[] |
अवधि और दूरी के मैट्रिक्स की पंक्तियों के बारे में बताता है. इसमें |
vehicleStartTag |
टैग से यह तय किया जाता है कि अवधि और दूरी की यह मैट्रिक्स किन वाहनों पर लागू होती है. अगर यह फ़ील्ड खाली है, तो इसका मतलब है कि यह सभी वाहनों पर लागू होता है. साथ ही, सिर्फ़ एक मैट्रिक्स हो सकता है. हर वाहन के शुरू होने का समय, सिर्फ़ एक मैट्रिक्स से मेल खाना चाहिए. इसका मतलब है कि उनके सभी मैट्रिक्स का |
पंक्ति
यह अवधि और दूरी के मैट्रिक्स की किसी लाइन के बारे में बताता है.
| JSON के काेड में दिखाना |
|---|
{ "durations": [ string ], "meters": [ number ] } |
| फ़ील्ड | |
|---|---|
durations[] |
किसी दी गई लाइन के लिए अवधि की वैल्यू. इसमें यह अवधि को सेकंड में दिखाता है. इसमें नौ दशमलव अंक तक हो सकते हैं. इसके आखिर में ' |
meters[] |
किसी दी गई लाइन के लिए दूरी की वैल्यू. अगर मॉडल में दूरी से जुड़ी कोई लागत या शर्त नहीं है, तो इसे खाली छोड़ा जा सकता है. अगर ऐसा नहीं है, तो इसमें |
TransitionAttributes
यह कुकी, किसी रूट पर लगातार दो बार विज़िट करने के बीच ट्रांज़िशन के एट्रिब्यूट तय करती है. एक ही ट्रांज़िशन पर कई TransitionAttributes लागू हो सकते हैं. ऐसे में, सभी अतिरिक्त लागतें जुड़ जाती हैं और सबसे सख्त शर्त या सीमा लागू होती है (नैचुरल "AND" सिमैंटिक के हिसाब से).
| JSON के काेड में दिखाना |
|---|
{
"srcTag": string,
"excludedSrcTag": string,
"dstTag": string,
"excludedDstTag": string,
"cost": number,
"costPerKilometer": number,
"distanceLimit": {
object ( |
| फ़ील्ड | |
|---|---|
srcTag |
ये टैग, (src->dst) ट्रांज़िशन का सेट तय करते हैं. ये एट्रिब्यूट, इसी सेट पर लागू होते हैं. सोर्स विज़िट या वाहन के शुरू होने की जानकारी तब मैच होती है, जब उसके |
excludedSrcTag |
|
dstTag |
किसी डेस्टिनेशन पर जाने या वाहन के रुकने की जगह की जानकारी तब मैच होती है, जब उसके |
excludedDstTag |
|
cost |
इस ट्रांज़िशन को पूरा करने के लिए लागत तय करता है. यह मॉडल में मौजूद अन्य सभी लागतों की तरह ही यूनिट में होता है और इसकी वैल्यू नेगेटिव नहीं होनी चाहिए. यह शुल्क, सभी मौजूदा शुल्कों के अलावा लिया जाता है. |
costPerKilometer |
इससे, ट्रांज़िशन के दौरान तय की गई दूरी पर लागू होने वाली प्रति किलोमीटर की लागत के बारे में पता चलता है. यह वाहनों पर तय किए गए किसी भी |
distanceLimit |
इससे यह तय किया जाता है कि ट्रांज़िशन के दौरान कितनी दूरी तय की जा सकती है. जून 2021 से, सिर्फ़ सॉफ़्ट लिमिट सेट की जा सकती हैं. |
delay |
इससे ट्रांज़िशन में लगने वाले समय के बारे में पता चलता है. यह देरी हमेशा सोर्स विज़िट खत्म होने के बाद और डेस्टिनेशन विज़िट शुरू होने से पहले होती है. यह अवधि को सेकंड में दिखाता है. इसमें नौ दशमलव अंक तक हो सकते हैं. इसके आखिर में ' |
ShipmentTypeIncompatibility
इससे शिपमेंट के टाइप के आधार पर, शिपमेंट के बीच की असंगतताओं के बारे में पता चलता है. एक ही रास्ते पर, शिपिंग के लिए इस्तेमाल किए जा सकने वाले और इस्तेमाल न किए जा सकने वाले वाहनों के दिखने की संख्या, इस्तेमाल न किए जा सकने वाले वाहनों के मोड के आधार पर सीमित होती है.
| JSON के काेड में दिखाना |
|---|
{
"types": [
string
],
"incompatibilityMode": enum ( |
| फ़ील्ड | |
|---|---|
types[] |
उन टाइप की सूची जो काम नहीं करते. अगर दो शिपमेंट के लिए, यहां दी गई |
incompatibilityMode |
कंपैटिबिलिटी से जुड़ी समस्या के लिए लागू किया गया मोड. |
IncompatibilityMode
ये मोड तय करते हैं कि एक ही रास्ते पर, ज़रूरी शर्तें पूरी न करने वाले शिपमेंट को किस तरह से सीमित किया जाए.
| Enums | |
|---|---|
INCOMPATIBILITY_MODE_UNSPECIFIED |
कंपैटबिलिटी मोड के बारे में जानकारी नहीं दी गई है. इस वैल्यू का इस्तेमाल कभी नहीं किया जाना चाहिए. |
NOT_PERFORMED_BY_SAME_VEHICLE |
इस मोड में, अलग-अलग तरह के दो शिपमेंट को एक ही वाहन में नहीं ले जाया जा सकता. |
NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY |
इस मोड में, अलग-अलग तरह के दो शिपमेंट को एक ही वाहन में एक साथ नहीं रखा जा सकता:
|
ShipmentTypeRequirement
शिपमेंट टाइप के आधार पर, शिपमेंट के बीच की ज़रूरी शर्तों के बारे में बताता है. ज़रूरी शर्तों के बारे में ज़्यादा जानकारी, ज़रूरी शर्तों के मोड से तय होती है.
| JSON के काेड में दिखाना |
|---|
{
"requiredShipmentTypeAlternatives": [
string
],
"dependentShipmentTypes": [
string
],
"requirementMode": enum ( |
| फ़ील्ड | |
|---|---|
requiredShipmentTypeAlternatives[] |
|
dependentShipmentTypes[] |
ध्यान दें: ज़रूरी शर्तों की ऐसी चेन की अनुमति नहीं है जिसमें |
requirementMode |
ज़रूरत के हिसाब से लागू किया गया मोड. |
RequirementMode
ऐसे मोड जिनसे किसी रूट पर, निर्भर शिपमेंट के दिखने के तरीके के बारे में पता चलता है.
| Enums | |
|---|---|
REQUIREMENT_MODE_UNSPECIFIED |
ज़रूरत के बारे में जानकारी नहीं दी गई है. इस वैल्यू का इस्तेमाल कभी नहीं किया जाना चाहिए. |
PERFORMED_BY_SAME_VEHICLE |
इस मोड में, "डिपेंडेंट" शिपमेंट के सभी आइटम, "ज़रूरी" शिपमेंट के कम से कम एक आइटम के साथ एक ही वाहन में भेजे जाने चाहिए. |
IN_SAME_VEHICLE_AT_PICKUP_TIME |
इसलिए, "डिपेंडेंट" शिपमेंट पिकअप के लिए इनमें से कोई एक विकल्प चुना जाना चाहिए:
|
IN_SAME_VEHICLE_AT_DELIVERY_TIME |
यह तरीका पहले जैसा ही है. हालांकि, "डिपेंडेंट" शिपमेंट के लिए, यह ज़रूरी है कि डिलीवरी के समय, वाहन में "ज़रूरी" शिपमेंट मौजूद हो. |
PrecedenceRule
दो इवेंट के बीच प्राथमिकता तय करने का नियम (हर इवेंट, शिपमेंट को पिकअप या डिलीवर करने से जुड़ा है): "दूसरे" इवेंट को "पहले" इवेंट के शुरू होने के कम से कम offsetDuration बाद शुरू होना चाहिए.
एक ही (या मिलते-जुलते) इवेंट के लिए, कई प्राथमिकताएं तय की जा सकती हैं. जैसे, "B को A की डिलीवरी के बाद पिकअप किया जाता है" और "C को B के पिकअप के बाद पिकअप किया जाता है".
इसके अलावा, प्राथमिकताएं सिर्फ़ तब लागू होती हैं, जब दोनों शिपमेंट पूरे हो गए हों. ऐसा न होने पर, इन्हें अनदेखा कर दिया जाता है.
| JSON के काेड में दिखाना |
|---|
{ "firstIsDelivery": boolean, "secondIsDelivery": boolean, "offsetDuration": string, "firstIndex": integer, "secondIndex": integer } |
| फ़ील्ड | |
|---|---|
firstIsDelivery |
इससे पता चलता है कि "first" इवेंट, डिलीवरी है या नहीं. |
secondIsDelivery |
इससे पता चलता है कि "दूसरा" इवेंट, डिलीवरी है या नहीं. |
offsetDuration |
"पहले" और "दूसरे" इवेंट के बीच का ऑफ़सेट. यह नेगेटिव हो सकता है. यह अवधि को सेकंड में दिखाता है. इसमें नौ दशमलव अंक तक हो सकते हैं. इसके आखिर में ' |
firstIndex |
"first" इवेंट का शिपमेंट इंडेक्स. इस फ़ील्ड की वैल्यू देना ज़रूरी है. |
secondIndex |
"second" इवेंट का शिपमेंट इंडेक्स. इस फ़ील्ड की वैल्यू देना ज़रूरी है. |