यात्रा को ऑप्टिमाइज़ करने से जुड़ी समस्या को हल करने के बाद जवाब देना. इसमें हर वाहन के लिए आने वाले रास्तों, स्किप किए गए शिपमेंट, और समाधान की कुल लागत शामिल होती है.
| JSON के काेड में दिखाना | 
|---|
{ "routes": [ { object (  | 
            
| फ़ील्ड | |
|---|---|
routes[] | 
              
                 
 हर वाहन के लिए कैलकुलेट किए गए रास्ते; i-वां रास्ता, मॉडल में i-वें वाहन से जुड़ा होता है.  | 
            
requestLabel | 
              
                 
 
  | 
            
skippedShipments[] | 
              
                 
 स्किप किए गए सभी शिपमेंट की सूची.  | 
            
validationErrors[] | 
              
                 
 पुष्टि करने से जुड़ी उन सभी गड़बड़ियों की सूची जिनका हमने अलग से पता लगाया था.   | 
            
metrics | 
              
                 
 इस समाधान के लिए, कुल समय, दूरी, और इस्तेमाल की मेट्रिक.  | 
            
OptimizeToursValidationError
OptimizeToursRequest की पुष्टि करते समय मिलने वाली किसी गड़बड़ी या चेतावनी के बारे में बताता है.
| JSON के काेड में दिखाना | 
|---|
{
  "code": integer,
  "displayName": string,
  "fields": [
    {
      object ( | 
              
| फ़ील्ड | |
|---|---|
code | 
                
                   
 पुष्टि करने से जुड़ी गड़बड़ी, जोड़े ( इस सेक्शन में दिए गए फ़ील्ड, गड़बड़ी के बारे में ज़्यादा जानकारी देते हैं. कई गड़बड़ियां: कई गड़बड़ियां होने पर, पुष्टि करने की प्रोसेस उनमें से कई को आउटपुट करने की कोशिश करती है. किसी कंपाइलर की तरह ही, यह भी एक सटीक प्रोसेस नहीं है. पुष्टि करने से जुड़ी कुछ गड़बड़ियां "गंभीर" होंगी. इसका मतलब है कि वे पुष्टि की पूरी प्रक्रिया को रोक देंगी. ऐसा  स्थिरता:   | 
              
displayName | 
                
                   
 गड़बड़ी का डिसप्ले नेम.  | 
              
fields[] | 
                
                   
 गड़बड़ी के कॉन्टेक्स्ट में 0, 1 (ज़्यादातर समय) या उससे ज़्यादा फ़ील्ड शामिल हो सकते हैं. उदाहरण के लिए, वाहन #4 और शिपमेंट #2 का पहला पिकअप इस तरह से किया जा सकता है: हालांकि, ध्यान दें कि किसी गड़बड़ी कोड के लिए,   | 
              
errorMessage | 
                
                   
 गड़बड़ी के बारे में ऐसी जानकारी वाली स्ट्रिंग जिसे कोई भी व्यक्ति आसानी से पढ़ सकता है.  स्थिरता: स्थिर नहीं है: दिए गए   | 
              
offendingValues | 
                
                   
 इसमें फ़ील्ड की वैल्यू शामिल हो सकती हैं. यह सुविधा हमेशा उपलब्ध नहीं होती. आपको इस पर बिलकुल भरोसा नहीं करना चाहिए और इसका इस्तेमाल सिर्फ़ मैन्युअल मॉडल डीबग करने के लिए करना चाहिए.  | 
              
FieldReference
पुष्टि करने में हुई गड़बड़ी के लिए संदर्भ बताता है. इस फ़ाइल में, FieldReference हमेशा किसी दिए गए फ़ील्ड का हवाला देता है और उसी हैरारकी के स्ट्रक्चर का पालन करता है. उदाहरण के लिए, हम वाहन #5 के startTimeWindows एलिमेंट #2 की जानकारी देने के लिए, इनका इस्तेमाल कर सकते हैं:
name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }
हालांकि, हम मैसेज में OptimizeToursRequest या ShipmentModel जैसी टॉप-लेवल इकाइयों को शामिल नहीं करते, ताकि मैसेज में बहुत ज़्यादा जानकारी न हो.
| JSON के काेड में दिखाना | 
|---|
{ "name": string, "subField": { object (  | 
              
| फ़ील्ड | |
|---|---|
name | 
                
                   
 फ़ील्ड का नाम, जैसे कि "वाहन".  | 
              
subField | 
                
                   
 ज़रूरत पड़ने पर, बार-बार नेस्ट किया गया सब-फ़ील्ड.  | 
              
यूनियन फ़ील्ड  
  | 
              |
index | 
                
                   
 अगर फ़ील्ड दोहराया गया है, तो उसका इंडेक्स.  | 
              
key | 
                
                   
 अगर फ़ील्ड कोई मैप है, तो कुंजी.  | 
              
मेट्रिक
सभी रूट की एग्रीगेट की गई कुल मेट्रिक.
| JSON के काेड में दिखाना | 
|---|
{
  "aggregatedRouteMetrics": {
    object ( | 
              
| फ़ील्ड | |
|---|---|
aggregatedRouteMetrics | 
                
                   
 यह डेटा, सभी रास्तों के लिए इकट्ठा किया जाता है. हर मेट्रिक, एक ही नाम के सभी   | 
              
skippedMandatoryShipmentCount | 
                
                   
 ज़रूरी शिपमेंट की संख्या.  | 
              
usedVehicleCount | 
                
                   
 इस्तेमाल किए गए वाहनों की संख्या. ध्यान दें: अगर वाहन का रास्ता खाली है और   | 
              
earliestVehicleStartTime | 
                
                   
 इस्तेमाल किए गए वाहन के लिए, सबसे पहले शुरू होने का समय. इसे  आरएफ़सी3339 यूटीसी के "Zulu" फ़ॉर्मैट में एक टाइमस्टैंप, नैनोसेकंड रिज़ॉल्यूशन और नौ दशमलव अंकों के साथ. उदाहरण:   | 
              
latestVehicleEndTime | 
                
                   
 इस्तेमाल किए गए वाहन के लिए, विज्ञापन दिखाने का आखिरी समय. इसे  आरएफ़सी3339 यूटीसी के "Zulu" फ़ॉर्मैट में एक टाइमस्टैंप, नैनोसेकंड रिज़ॉल्यूशन और नौ दशमलव अंकों के साथ. उदाहरण:   | 
              
costs | 
                
                   
 सॉल्यूशन की लागत, जिसे लागत से जुड़े अनुरोध फ़ील्ड के हिसाब से बांटा गया है. इनपुट OptimizeToursRequest के हिसाब से, कुंजियां प्रोटो पाथ होती हैं, जैसे कि "model.shipments.pickups.cost". साथ ही, वैल्यू, उससे जुड़े लागत फ़ील्ड से जनरेट की गई कुल लागत होती हैं, जो पूरे समाधान में एग्रीगेट की जाती हैं. दूसरे शब्दों में कहें, तो कीमत["model.shipments.pickups.cost"], समाधान के तौर पर पिक अप की सभी कीमतों का कुल योग है. मॉडल में तय की गई सभी लागतों की जानकारी यहां दी गई है. हालांकि, TransitionAttributes से जुड़ी लागतों की जानकारी 01/2022 से सिर्फ़ एग्रीगेट किए गए तरीके से दी जाती है.  | 
              
totalCost | 
                
                   
 समाधान की कुल लागत. लागत मैप में सभी मानों का योग.  |