- 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[] | 
 वाहनों का सेट, जिसका इस्तेमाल विज़िट के लिए किया जा सकता है. | 
| globalStartTime | 
 मॉडल के ग्लोबल शुरू और खत्म होने का समय: इस रेंज से बाहर के किसी भी समय को मान्य नहीं माना जा सकता. मॉडल का टाइम स्पैन एक साल से कम होना चाहिए. इसका मतलब है कि  
 आरएफ़सी3339 यूटीसी के "ज़ुलू" फ़ॉर्मैट में एक टाइमस्टैंप, जिसमें नैनोसेकंड रिज़ॉल्यूशन और ज़्यादा से ज़्यादा नौ फ़्रैक्शनल अंक हैं. उदाहरण:  | 
| globalEndTime | 
 अगर इसकी वैल्यू सेट नहीं की जाती है, तो डिफ़ॉल्ट रूप से 1 जनवरी, 1971 को 00:00:00 यूटीसी (यानी सेकंड: 31,536,000, नैनो सेकंड: 0) का इस्तेमाल किया जाता है. आरएफ़सी3339 यूटीसी के "ज़ुलू" फ़ॉर्मैट में एक टाइमस्टैंप, जिसमें नैनोसेकंड रिज़ॉल्यूशन और ज़्यादा से ज़्यादा नौ फ़्रैक्शनल अंक हैं. उदाहरण:  | 
| globalDurationCostPerHour | 
 पूरे प्लान की "ग्लोबल अवधि", सभी वाहनों के शुरू होने के सबसे पहले समय और खत्म होने के सबसे बाद के समय के बीच का अंतर होती है. उदाहरण के लिए, उपयोगकर्ता उस संख्या को हर घंटे के हिसाब से शुल्क दे सकते हैं. इससे, वह काम जल्दी पूरा करने के लिए, उसे ऑप्टिमाइज़ कर सकेगा. यह लागत  | 
| durationDistanceMatrices[] | 
 मॉडल में इस्तेमाल की गई अवधि और दूरी की मैट्रिक के बारे में बताता है. अगर यह फ़ील्ड खाली है, तो  इस्तेमाल के उदाहरण: 
 
  | 
| durationDistanceMatrixSrcTags[] | 
 ये टैग, कुल समय और दूरी की मैट्रिक के सोर्स की जानकारी देते हैं.  टैग,  | 
| durationDistanceMatrixDstTags[] | 
 कुल समय और दूरी के मैट्रिक के डेस्टिनेशन तय करने वाले टैग;  टैग,  | 
| transitionAttributes[] | 
 मॉडल में ट्रांज़िशन एट्रिब्यूट जोड़े गए. | 
| shipmentTypeIncompatibilities[] | 
 ऐसे शिपमेंट_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/10 से, चक्कर लगाने की सुविधा सिर्फ़ तब काम करती है, जब यात्रा का समय वाहनों पर निर्भर न हो. | 
VisitRequest
यात्रा के लिए अनुरोध वाहन से किया जा सकता है: इसमें एक भौगोलिक-जगह (या दो, नीचे देखें), खुलने और बंद होने का समय, टाइम विंडो से दिखाया जाता है, और सेवा में लगने वाला समय (सामान को पिक अप या ड्रॉप करने के लिए पहुंचने पर लगने वाला समय) शामिल है.
| JSON के काेड में दिखाना | 
|---|
| { "arrivalLocation": { object ( | 
| फ़ील्ड | |
|---|---|
| arrivalLocation | 
 वह जगह जहां से  | 
| arrivalWaypoint | 
 इस  | 
| departureLocation | 
 वह जगह जहां  | 
| departureWaypoint | 
 वह वेपॉइंट जहां यह  | 
| tags[] | 
 विज़िट के अनुरोध से जुड़े टैग के बारे में जानकारी देता है. खाली या डुप्लीकेट स्ट्रिंग की अनुमति नहीं है. | 
| timeWindows[] | 
 ऐसी टाइम विंडो जो किसी विज़िट के आने के समय को सीमित करती हैं. ध्यान दें कि कोई वाहन, पहुंचने के समय की विंडो के बाहर जा सकता है. इसका मतलब है कि पहुंचने का समय + कुल समय, समय की विंडो में होना ज़रूरी नहीं है. इस वजह से, अगर वाहन  
 टाइम विंडो एक-दूसरे से अलग होनी चाहिए.इसका मतलब है कि कोई भी टाइम विंडो, किसी दूसरी टाइम विंडो के साथ ओवरलैप नहीं करनी चाहिए या एक-दूसरे के बगल में होनी चाहिए. साथ ही, टाइम विंडो बढ़ते क्रम में होनी चाहिए. 
 | 
| duration | 
 विज़िट का कुल समय, यानी वाहन के पहुंचने और रवाना होने के बीच बिताया गया समय (इंतज़ार करने के संभावित समय में जोड़ा गया है;  सेकंड में कुल अवधि, जिसमें दशमलव के बाद नौ अंक हो सकते हैं. यह अवधि ' | 
| cost | 
 वाहन के रास्ते के लिए, यात्रा के इस अनुरोध को पूरा करने में लगने वाला शुल्क. इसका इस्तेमाल, शिपमेंट के पिकअप या डिलीवरी के हर विकल्प के लिए अलग-अलग शुल्क चुकाने के लिए किया जा सकता है. यह कीमत,  | 
| loadDemands | 
 इस विज़िट के अनुरोध की मांगें लोड करें. यह ठीक  | 
| visitTypes[] | 
 विज़िट के टाइप बताता है. इसका इस्तेमाल, इस विज़िट को पूरा करने में किसी वाहन को लगने वाला अतिरिक्त समय देने के लिए किया जा सकता है ( एक टाइप सिर्फ़ एक बार दिख सकता है. | 
| label | 
 इस  | 
LatLng
ऐसा ऑब्जेक्ट जो अक्षांश/देशांतर की जोड़ी को दिखाता है. अक्षांश और देशांतर की डिग्री दिखाने के लिए, इसे दो डबल वैल्यू के तौर पर दिखाया जाता है. जब तक अलग से न बताया गया हो, यह ऑब्जेक्ट WGS84 मानक के मुताबिक होना चाहिए. वैल्यू, नॉर्मलाइज़ की जा सकने वाली रेंज के अंदर होनी चाहिए.
| JSON के काेड में दिखाना | 
|---|
| { "latitude": number, "longitude": number } | 
| फ़ील्ड | |
|---|---|
| latitude | 
 डिग्री में अक्षांश. यह वैल्यू [-90.0, +90.0] की रेंज में होनी चाहिए. | 
| longitude | 
 डिग्री में देशांतर. यह [-180.0, +180.0] की रेंज में होना चाहिए. | 
वेपॉइंट
वेपॉइंट को एनकैप्सुलेट करता है. वेपॉइंट, visitRequests के आने और जाने की जगहों को मार्क करते हैं. साथ ही, वाहनों के शुरू और खत्म होने की जगह की जानकारी भी देते हैं.
| JSON के काेड में दिखाना | 
|---|
| { "sideOfRoad": boolean, // Union field | 
| फ़ील्ड | |
|---|---|
| sideOfRoad | 
 ज़रूरी नहीं. इससे पता चलता है कि इस वेपॉइंट की जगह पर, वाहन को सड़क की किसी खास तरफ़ रोकने की प्राथमिकता दी गई है. जब आप यह मान सेट करते हैं, तो मार्ग उस स्थान से गुजरेगा ताकि वाहन सड़क के उस किनारे पर रूक सके जहां स्थान का झुकाव सड़क के केंद्र से है. यह विकल्प, 'पैदल चलना' यात्रा मोड के लिए काम नहीं करता. | 
| यूनियन फ़ील्ड location_type. किसी जगह की जानकारी दिखाने के अलग-अलग तरीके.location_typeइनमें से सिर्फ़ एक हो सकता है: | |
| location | 
 भौगोलिक निर्देशांक का इस्तेमाल करके तय किया गया कोई पॉइंट. इसमें हेडिंग भी शामिल हो सकती है. | 
| placeId | 
 वेपॉइंट से जुड़ा, लोकप्रिय जगह का आईडी. | 
जगह
जगह को इनकैप्सुलेट करता है (भौगोलिक पॉइंट और वैकल्पिक हेडिंग).
| 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 यूटीसी के "Zulu" फ़ॉर्मैट में एक टाइमस्टैंप, नैनोसेकंड रिज़ॉल्यूशन और नौ दशमलव अंकों के साथ. उदाहरण:  | 
| endTime | 
 हार्ड टाइम विंडो खत्म होने का समय. अगर इसे सेट नहीं किया गया है, तो इसे  आरएफ़सी3339 यूटीसी के "Zulu" फ़ॉर्मैट में एक टाइमस्टैंप, नैनोसेकंड रिज़ॉल्यूशन और नौ दशमलव अंकों के साथ. उदाहरण के लिए:  | 
| softStartTime | 
 टाइम विंडो का सॉफ़्ट स्टार्ट समय. आरएफ़सी3339 यूटीसी के "ज़ुलू" फ़ॉर्मैट में एक टाइमस्टैंप, जिसमें नैनोसेकंड रिज़ॉल्यूशन और ज़्यादा से ज़्यादा नौ फ़्रैक्शनल अंक हैं. उदाहरण के लिए:  | 
| softEndTime | 
 समय विंडो का सॉफ़्ट खत्म होने का समय. आरएफ़सी3339 यूटीसी के "Zulu" फ़ॉर्मैट में एक टाइमस्टैंप, नैनोसेकंड रिज़ॉल्यूशन और नौ दशमलव अंकों के साथ. उदाहरण:  | 
| 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 के लिए सुझाए गए एपीआई यात्रा मोड का एक सबसेट होना चाहिए. इसे देखें: https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteTravelMode.
| 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 | 
 इस वाहन के लिए, लोड की एक यूनिट को एक किलोमीटर से ज़्यादा ले जाने में लगने वाला शुल्क. इसका इस्तेमाल ईंधन की खपत के लिए प्रॉक्सी के रूप में किया जा सकता है: अगर लोड वज़न का है (न्यूटन में), तो लोड*किलोमीटर ऊर्जा का डाइमेंशन होता है. | 
| costPerTraveledHour | 
 इस वाहन के लिए, एक घंटे के दौरान एक यूनिट लोड के साथ यात्रा करने की लागत. | 
इंटरवल
लोड की जाने वाली रकम का इंटरवल.
| JSON के काेड में दिखाना | 
|---|
| { "min": string, "max": string } | 
| फ़ील्ड | |
|---|---|
| min | 
 कम से कम स्वीकार किया जाने वाला लोड. यह वैल्यू 0 से ज़्यादा होनी चाहिए. अगर दोनों के बारे में बताया गया है, तो  | 
| max | 
 लोड करने की ज़्यादा से ज़्यादा सीमा. यह वैल्यू 0 से ज़्यादा होनी चाहिए. अगर इस एट्रिब्यूट की कोई वैल्यू सबमिट नहीं की जाती है, तो इस मैसेज से ज़्यादा से ज़्यादा लोड पर कोई पाबंदी नहीं होती. अगर दोनों के बारे में बताया गया है, तो  | 
LoadCost
Transition के दौरान लोड की एक यूनिट को दूसरी जगह ले जाने की लागत. किसी लोड के लिए, लागत दो हिस्सों का योग होती है:
- कम से कम(लोड, loadThreshold) *costPerUnitBelowThreshold
- अधिकतम(0, लोड - 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: 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 की वजह से, ज़्यादा लोड वाले ट्रांज़िशन वाले समाधानों की कीमत ज़्यादा होती है.
| 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 | 
 हार्ड लिमिट की वजह से, अवधि को ज़्यादा से ज़्यादा समय में सीमित किया जा सकता है. सेकंड में एक अवधि, जिसमें ज़्यादा से ज़्यादा नौ दशमलव अंक होते हैं और जो ' | 
| 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 यूटीसी के "ज़ुलू" फ़ॉर्मैट में एक टाइमस्टैंप, जिसमें नैनोसेकंड रिज़ॉल्यूशन और ज़्यादा से ज़्यादा नौ फ़्रैक्शनल अंक हैं. उदाहरण:  | 
| latestStartTime | 
 ज़रूरी है. ब्रेक की शुरुआत पर ऊपरी सीमा (शामिल). आरएफ़सी3339 यूटीसी के "Zulu" फ़ॉर्मैट में एक टाइमस्टैंप, नैनोसेकंड रिज़ॉल्यूशन और नौ दशमलव अंकों के साथ. उदाहरण के लिए:  | 
| 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 | 
 ज़रूरी है. रास्ते में किसी भी समय के लिए ज़्यादा से ज़्यादा अवधि जिसमें  सेकंड में एक अवधि, जिसमें ज़्यादा से ज़्यादा नौ दशमलव अंक होते हैं और जो ' | 
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 | 
 "दूसरे" इवेंट का शिपमेंट इंडेक्स. इस फ़ील्ड के बारे में बताना ज़रूरी है. |