- JSON काेड में दिखाना
- शिपमेंट
- VisitRequest
- LatLng
- वेपॉइंट
- जगह की जानकारी
- TimeWindow
- वाहन
- TravelMode
- RouteModifiers
- UnloadingPolicy
- LoadLimit
- इंटरवल
- LoadCost
- DurationLimit
- DistanceLimit
- BreakRule
- BreakRequest
- FrequencyConstraint
- मकसद
- स्ट्रीम किस तरह की है
- DurationDistanceMatrix
- पंक्ति
- 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 यूटीसी (यानी सेकंड: 31,536,000, नैनो सेकंड: 0) का इस्तेमाल किया जाता है. आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़्ड होगा और इसमें 0, 3, 6 या 9 दशमलव अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: |
globalDurationCostPerHour |
पूरे प्लान की "ग्लोबल अवधि", सभी वाहनों के शुरू होने के सबसे पहले समय और खत्म होने के सबसे बाद के समय के बीच का अंतर होती है. उदाहरण के लिए, उपयोगकर्ता उस संख्या के लिए हर घंटे की लागत असाइन कर सकते हैं, ताकि जॉब को जल्द से जल्द पूरा करने के लिए उसे ऑप्टिमाइज़ किया जा सके. यह लागत, |
durationDistanceMatrices[] |
मॉडल में इस्तेमाल की गई अवधि और दूरी की मैट्रिक के बारे में बताता है. अगर यह फ़ील्ड खाली है, तो इस्तेमाल के उदाहरण:
|
durationDistanceMatrixSrcTags[] |
ये टैग, कुल समय और दूरी की मैट्रिक के सोर्स की जानकारी देते हैं. टैग, |
durationDistanceMatrixDstTags[] |
कुल समय और दूरी के मैट्रिक के डेस्टिनेशन तय करने वाले टैग; टैग, |
transitionAttributes[] |
मॉडल में ट्रांज़िशन एट्रिब्यूट जोड़े गए. |
shipmentTypeIncompatibilities[] |
shipment_types के ऐसे सेट जो साथ काम नहीं करते ( |
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 |
यह पिकअप से डिलीवरी तक के सबसे छोटे रास्ते की तुलना में, सबसे लंबे रास्ते पर लगने वाले समय की जानकारी देता है. अगर यह जानकारी दी गई है, तो यह संख्या 0 से बड़ी होनी चाहिए. साथ ही, शिपमेंट में कम से कम एक पिकअप और एक डिलीवरी शामिल होनी चाहिए. उदाहरण के लिए, मान लें कि t, पिकअप के चुने गए विकल्प से सीधे डिलीवरी के चुने गए विकल्प पर जाने में लगने वाला कम से कम समय है. इसके बाद,
अगर एक ही शिपमेंट के लिए, रिलेटिव और एब्सोलूट, दोनों तरह की सीमाएं तय की गई हैं, तो हर संभावित पिकअप/डिलीवरी पेयर के लिए, ज़्यादा पाबंदी वाली सीमा का इस्तेमाल किया जाता है. अक्टूबर 2017 से, यह सुविधा सिर्फ़ तब काम करती है, जब यात्रा का समय वाहनों पर निर्भर न हो. सेकंड में कुल अवधि, जिसमें दशमलव के बाद नौ अंक हो सकते हैं. यह अवधि ' |
pickupToDeliveryTimeLimit |
इससे यह पता चलता है कि शिपमेंट के पिकअप से लेकर डिलीवरी शुरू होने तक, ज़्यादा से ज़्यादा कितनी देर लग सकती है. अगर यह जानकारी दी गई है, तो यह संख्या 0 से बड़ी होनी चाहिए. साथ ही, शिपमेंट में कम से कम एक पिकअप और एक डिलीवरी शामिल होनी चाहिए. यह इस बात पर निर्भर नहीं करता कि पिकअप और डिलीवरी के लिए कौनसे विकल्प चुने गए हैं. यह वाहन की स्पीड पर भी निर्भर नहीं करता. इसे, रास्ते में आने वाली ज़्यादा से ज़्यादा रुकावटों के साथ भी बताया जा सकता है: समाधान, दोनों खास बातों का ध्यान रखेगा. सेकंड में कुल अवधि, जिसमें दशमलव के बाद नौ अंक हो सकते हैं. यह अवधि ' |
shipmentType |
इस शिपमेंट के लिए "टाइप" बताने वाली कोई स्ट्रिंग, जो खाली नहीं होनी चाहिए. इस सुविधा का इस्तेमाल, यह |
label |
इस शिपमेंट के लिए लेबल तय करता है. इस लेबल की जानकारी, जवाब में मौजूद |
ignore |
अगर यह सही है, तो इस शिपमेंट को छोड़ दें, लेकिन अगर मॉडल में कोई
|
penaltyCost |
अगर शिपमेंट पूरा नहीं होता है, तो यह जुर्माना, रूट की कुल कीमत में जोड़ दिया जाता है. अगर शिपमेंट के पिकअप और डिलीवरी के किसी एक विकल्प को चुना जाता है, तो शिपमेंट को पूरा माना जाता है. लागत को उसी यूनिट में दिखाया जा सकता है जिसका इस्तेमाल मॉडल में लागत से जुड़े अन्य सभी फ़ील्ड के लिए किया जाता है. साथ ही, यह यूनिट सकारात्मक होनी चाहिए. अहम जानकारी: अगर इस जुर्माने की जानकारी नहीं दी गई है, तो इसे अनलिमिटेड माना जाता है. इसका मतलब है कि शिपमेंट पूरा करना ज़रूरी है. |
pickupToDeliveryRelativeDetourLimit |
यह पिकअप से डिलीवरी तक के सबसे छोटे रास्ते की तुलना में, सबसे लंबे रास्ते में लगने वाले समय की जानकारी देता है. अगर यह जानकारी दी गई है, तो यह संख्या 0 से बड़ी होनी चाहिए. साथ ही, शिपमेंट में कम से कम एक पिकअप और एक डिलीवरी शामिल होनी चाहिए. उदाहरण के लिए, मान लें कि 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] की रेंज में होनी चाहिए. |
वेपॉइंट
वेपॉइंट को एनकैप्सुलेट करता है. वेपॉइंट, विज़िट रिक्वेस्ट के पहुंचने और जाने की जगहों के साथ-साथ, वाहनों के शुरू और खत्म होने की जगहों को मार्क करते हैं.
JSON के काेड में दिखाना |
---|
{ "sideOfRoad": boolean, "vehicleStopover": boolean, // Union field |
फ़ील्ड | |
---|---|
sideOfRoad |
ज़रूरी नहीं. इससे पता चलता है कि इस वेपॉइंट की जगह पर, वाहन को सड़क की किसी खास तरफ़ रोकने की प्राथमिकता दी गई है. इस वैल्यू को सेट करने पर, रास्ता उस जगह से होकर गुज़रेगा, ताकि वाहन सड़क के उस हिस्से पर रुक सके जो सड़क के बीच से उस जगह की ओर झुका हुआ है. यह विकल्प, 'पैदल चलना' यात्रा मोड के लिए काम नहीं करता. |
vehicleStopover |
इससे पता चलता है कि यह वेपॉइंट, वाहनों को रोकने के लिए है, जहां से यात्रियों को बैठाया या छोड़ा जाता है. यह विकल्प सिर्फ़ 'ड्राइविंग' यात्रा मोड के लिए काम करता है. साथ ही, यह तब काम करता है, जब 'locationType' की वैल्यू 'location' हो. एक्सपेरिमेंटल: आने वाले समय में, इस फ़ील्ड के काम करने के तरीके या इसकी मौजूदगी में बदलाव हो सकता है. |
यूनियन फ़ील्ड location_type . किसी जगह की जानकारी दिखाने के अलग-अलग तरीके. location_type इनमें से कोई एक हो सकता है: |
|
location |
भौगोलिक निर्देशांक का इस्तेमाल करके तय किया गया कोई पॉइंट. इसमें हेडिंग भी शामिल हो सकती है. |
placeId |
वेपॉइंट से जुड़ा पीओआई प्लेस आईडी. किसी जगह पर पहुंचने या वहां से निकलने की जगह की जानकारी देने के लिए, प्लेस आईडी का इस्तेमाल करें. यह प्लेस आईडी इतना सटीक होना चाहिए कि उस जगह पर नेविगेट करने के लिए, LatLng की जगह की जानकारी तय की जा सके. उदाहरण के लिए, किसी इमारत का जगह आईडी सही है, लेकिन सड़क का जगह आईडी सही नहीं है. |
जगह
किसी जगह (भौगोलिक पॉइंट और वैकल्पिक हेडिंग) को एन्कैप्सुलेट करता है.
JSON के काेड में दिखाना |
---|
{
"latLng": {
object ( |
फ़ील्ड | |
---|---|
latLng |
वेपॉइंट के भौगोलिक निर्देशांक. |
heading |
ट्रैफ़िक के फ़्लो की दिशा से जुड़ी कंपास हेडिंग. इस वैल्यू का इस्तेमाल, सड़क की उस साइड की जानकारी देने के लिए किया जाता है जहां से पिकअप और ड्रॉप-ऑफ़ किया जाना है. हेडिंग की वैल्यू 0 से 360 तक हो सकती है. जैसे, 0 का मतलब है कि सड़क की सीधी उत्तर दिशा, 90 का मतलब है कि सड़क की सीधी पूर्व दिशा वगैरह. |
TimeWindow
टाइम विंडो, किसी इवेंट के समय को सीमित करती हैं. जैसे, किसी विज़िट के पहुंचने का समय या किसी वाहन के शुरू और खत्म होने का समय.
टाइम विंडो की सीमाएं, startTime
और endTime
, इवेंट के शुरू और खत्म होने के समय को तय करती हैं. जैसे, startTime <= event_time <=
endTime
. सॉफ्ट टाइम विंडो की निचली सीमा, softStartTime
, यह बताती है कि इवेंट softStartTime
पर या उसके बाद होना चाहिए. इसके लिए, इवेंट के शुरू होने से सॉफ़्ट StartTime के बीच के समय के हिसाब से लागत लगाई जाती है. सॉफ़्ट टाइम विंडो की ऊपरी सीमा, 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 |
visitTypes स्ट्रिंग से लेकर अवधि तक के मैप की जानकारी देता है. यह समय, अगर विज़िट के अनुरोध के कई टाइप हैं, तो मैप में हर टाइप के लिए एक अवधि जोड़ी जाएगी. |
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
}
}
}
और इसका रूट, ट्रांज़िशन के साथ शुरू,पिकअप,पिकअप,डिलीवरी,डिलीवरी,खत्म है:
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
- पहला ट्रांज़िशन: 2.0 * 10 * 1.0 + 10.0 * 0 * 1.0 = 20.0
- दूसरा ट्रांज़िशन: 2.0 * 15 * 1.0 + 10.0 * (20 - 15) * 1.0 = 80.0
- तीसरा ट्रांज़िशन: 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
- पहला ट्रांज़िशन: 2.0 * 10 * 1.0 + 10.0 * 0 * 1.0 = 20.0
- ट्रांज़िशन 2: 0.0
- तीसरा ट्रांज़िशन: 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 |
अगर अवधि थ्रेशोल्ड से कम है, तो अतिरिक्त शुल्क 0 होगा. अगर अवधि थ्रेशोल्ड से ज़्यादा है, तो शुल्क इस हिसाब से लगेगा:
कीमत नेगेटिव नहीं होनी चाहिए. |
DistanceLimit
यह एक सीमा है, जो तय करती है कि कितनी दूरी तक यात्रा की जा सकती है. यह सॉफ्ट या हार्ड हो सकता है.
अगर कोई सॉफ्ट लिमिट तय की गई है, तो softMaxMeters
और costPerKilometerAboveSoftMax
, दोनों की वैल्यू तय होनी चाहिए. साथ ही, यह भी ज़रूरी है कि दोनों की वैल्यू 0 से ज़्यादा हो.
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 घंटे में 1 घंटा" के उदाहरण के मुताबिक है:
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
इससे शिपमेंट के shipmentType के आधार पर, शिपमेंट के बीच की गड़बड़ियों के बारे में पता चलता है. एक ही रास्ते पर, एक-दूसरे के साथ काम न करने वाले शिपमेंट दिखने पर पाबंदी, शिपमेंट के साथ काम न करने वाले मोड के आधार पर लगाई जाती है.
JSON के काेड में दिखाना |
---|
{
"types": [
string
],
"incompatibilityMode": enum ( |
फ़ील्ड | |
---|---|
types[] |
काम न करने वाले टाइप की सूची. सूची में शामिल दो शिपमेंट, जिनका |
incompatibilityMode |
काम न करने की समस्या पर लागू मोड. |
IncompatibilityMode
ये मोड बताते हैं कि एक ही रास्ते पर, एक-दूसरे के साथ काम न करने वाले शिपमेंट को कैसे दिखाने से रोका जाता है.
Enums | |
---|---|
INCOMPATIBILITY_MODE_UNSPECIFIED |
काम न करने वाला कोई मोड. इस वैल्यू का कभी भी इस्तेमाल नहीं किया जाना चाहिए. |
NOT_PERFORMED_BY_SAME_VEHICLE |
इस मोड में, एक-दूसरे के साथ काम न करने वाले दो शिपमेंट के लिए, एक ही वाहन का इस्तेमाल नहीं किया जा सकता. |
NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY |
|
ShipmentTypeRequirement
शिपमेंट के shipmentType के आधार पर, शिपमेंट के बीच की ज़रूरी शर्तों के बारे में बताता है. ज़रूरी शर्तों के बारे में जानकारी, ज़रूरी शर्त के मोड से मिलती है.
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
बाद, "दूसरे" इवेंट को शुरू करना होगा.
कई प्राथमिकताएं, एक ही (या मिलते-जुलते) इवेंट का रेफ़रंस दे सकती हैं. जैसे, "A की डिलीवरी के बाद B को पिकअप किया जाता है" और "B के पिकअप के बाद C को पिकअप किया जाता है".
इसके अलावा, प्राथमिकताएं सिर्फ़ तब लागू होती हैं, जब दोनों शिपमेंट पूरे किए जाते हैं. ऐसा न होने पर, उन्हें अनदेखा कर दिया जाता है.
JSON के काेड में दिखाना |
---|
{ "firstIsDelivery": boolean, "secondIsDelivery": boolean, "offsetDuration": string, "firstIndex": integer, "secondIndex": integer } |
फ़ील्ड | |
---|---|
firstIsDelivery |
इससे पता चलता है कि "पहला" इवेंट डिलीवरी है या नहीं. |
secondIsDelivery |
इससे पता चलता है कि "दूसरा" इवेंट डिलीवरी है या नहीं. |
offsetDuration |
"पहले" और "दूसरे" इवेंट के बीच का ऑफ़सेट. यह नेगेटिव हो सकता है. सेकंड में कुल अवधि, जिसमें दशमलव के बाद नौ अंक हो सकते हैं. यह अवधि ' |
firstIndex |
"पहले" इवेंट का शिपमेंट इंडेक्स. यह फ़ील्ड भरना ज़रूरी है. |
secondIndex |
"second" इवेंट का शिपमेंट इंडेक्स. यह फ़ील्ड भरना ज़रूरी है. |