इंडेक्स
RouteOptimization(इंटरफ़ेस)AggregatedMetrics(मैसेज)BatchOptimizeToursMetadata(मैसेज)BatchOptimizeToursRequest(मैसेज)BatchOptimizeToursRequest.AsyncModelConfig(मैसेज)BatchOptimizeToursResponse(मैसेज)BreakRule(मैसेज)BreakRule.BreakRequest(मैसेज)BreakRule.FrequencyConstraint(मैसेज)DataFormat(enum)DistanceLimit(मैसेज)GcsDestination(मैसेज)GcsSource(मैसेज)InjectedSolutionConstraint(मैसेज)InjectedSolutionConstraint.ConstraintRelaxation(मैसेज)InjectedSolutionConstraint.ConstraintRelaxation.Relaxation(मैसेज)InjectedSolutionConstraint.ConstraintRelaxation.Relaxation.Level(enum)InputConfig(मैसेज)Location(मैसेज)OptimizeToursLongRunningMetadata(मैसेज)OptimizeToursRequest(मैसेज)OptimizeToursRequest.SearchMode(enum)OptimizeToursRequest.SolvingMode(enum)OptimizeToursResponse(मैसेज)OptimizeToursResponse.Metrics(मैसेज)OptimizeToursUriMetadata(मैसेज)OptimizeToursUriRequest(मैसेज)OptimizeToursUriResponse(मैसेज)OptimizeToursValidationError(मैसेज)OptimizeToursValidationError.FieldReference(मैसेज)OutputConfig(मैसेज)RouteModifiers(मैसेज)Shipment(मैसेज)Shipment.Load(मैसेज)Shipment.VisitRequest(मैसेज)ShipmentModel(मैसेज)ShipmentModel.DurationDistanceMatrix(मैसेज)ShipmentModel.DurationDistanceMatrix.Row(मैसेज)ShipmentModel.Objective(मैसेज)ShipmentModel.Objective.Type(enum)ShipmentModel.PrecedenceRule(मैसेज)ShipmentRoute(मैसेज)ShipmentRoute.Break(मैसेज)ShipmentRoute.EncodedPolyline(मैसेज)ShipmentRoute.Transition(मैसेज)ShipmentRoute.VehicleLoad(मैसेज)ShipmentRoute.Visit(मैसेज)ShipmentRoute.Visit.VisitType(enum)ShipmentTypeIncompatibility(मैसेज)ShipmentTypeIncompatibility.IncompatibilityMode(enum)ShipmentTypeRequirement(मैसेज)ShipmentTypeRequirement.RequirementMode(enum)SkippedShipment(मैसेज)SkippedShipment.Reason(मैसेज)SkippedShipment.Reason.Code(enum)TimeWindow(मैसेज)TransitionAttributes(मैसेज)Uri(मैसेज)Vehicle(मैसेज)Vehicle.DurationLimit(मैसेज)Vehicle.LoadLimit(मैसेज)Vehicle.LoadLimit.Interval(मैसेज)Vehicle.LoadLimit.LoadCost(मैसेज)Vehicle.TravelMode(enum)Vehicle.UnloadingPolicy(enum)VehicleFullness(मैसेज)Waypoint(मैसेज)
RouteOptimization
वाहन यात्राओं को ऑप्टिमाइज़ करने के लिए सेवा.
कुछ फ़ील्ड के मान्य होने की अवधि:
google.protobuf.Timestamp- समय, यूनिक्स टाइम में होता है: 1970-01-01T00:00:00+00:00 के बाद से सेकंड में.
- सेकंड की वैल्यू [0, 253402300799] के बीच होनी चाहिए. इसका मतलब है कि वैल्यू [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00] के बीच होनी चाहिए.
- नैनोसेकंड की वैल्यू को सेट नहीं किया जाना चाहिए या इसे 0 पर सेट किया जाना चाहिए.
google.protobuf.Duration- सेकंड की वैल्यू [0, 253402300799] के बीच होनी चाहिए. इसका मतलब है कि वैल्यू [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00] के बीच होनी चाहिए.
- नैनोसेकंड की वैल्यू को सेट नहीं किया जाना चाहिए या इसे 0 पर सेट किया जाना चाहिए.
google.type.LatLng- अक्षांश [-90.0, 90.0] के बीच होना चाहिए.
- देशांतर [-180.0, 180.0] के बीच होना चाहिए.
- अक्षांश और देशांतर में से कम से कम एक की वैल्यू शून्य नहीं होनी चाहिए.
| BatchOptimizeTours |
|---|
|
यह एक या उससे ज़्यादा यह तरीका, लंबे समय तक चलने वाली कार्रवाई (एलआरओ) है. ऑप्टिमाइज़ेशन के लिए इनपुट ( उपयोगकर्ता, एलआरओ की स्थिति देखने के लिए अगर एलआरओ अगर एलआरओ का
|
| OptimizeTours |
|---|
|
यह फ़ंक्शन,
इसका मकसद,
|
| OptimizeToursLongRunning |
|---|
|
यह लौटाए गए एक्सपेरिमेंट के तौर पर उपलब्ध: ज़्यादा जानकारी के लिए, https://developers.google.com/maps/tt/route-optimization/experimental/otlr/make-request पर जाएं.
|
| OptimizeToursUri |
|---|
|
यह क्लाइंट, Google Cloud Storage में सेव किए गए अगर ऑप्टिमाइज़ेशन में कुछ मिनटों से ज़्यादा समय लगता है और इनपुट/आउटपुट का साइज़ 8 एमबी से ज़्यादा है, तो लौटाए गए एक्सपेरिमेंट के तौर पर उपलब्ध: ज़्यादा जानकारी के लिए, https://developers.google.com/maps/tt/route-optimization/experimental/otlr/make-request पर जाएं.
|
AggregatedMetrics
सभी Transition और/या Visit (क्रमशः, सभी ShipmentRoute) एलिमेंट के लिए, ShipmentRoute (क्रमशः, OptimizeToursResponse) की कुल मेट्रिक.
| फ़ील्ड | |
|---|---|
performed_shipment_count |
शिपमेंट की संख्या. ध्यान दें कि पिकअप और डिलीवरी के पेयर को सिर्फ़ एक बार गिना जाता है. |
travel_duration |
किसी रास्ते या समाधान के लिए यात्रा की कुल अवधि. |
wait_duration |
किसी रास्ते या समाधान के लिए इंतज़ार करने का कुल समय. |
delay_duration |
किसी रास्ते या समाधान के लिए, देरी की कुल अवधि. |
break_duration |
किसी रास्ते या समाधान के लिए, ब्रेक की कुल अवधि. |
visit_duration |
किसी रास्ते या समाधान के लिए विज़िट की कुल अवधि. |
total_duration |
कुल अवधि, ऊपर दी गई सभी अवधियों के योग के बराबर होनी चाहिए. रास्तों के लिए, यह इन चीज़ों से भी जुड़ा होता है: |
travel_distance_meters |
किसी रास्ते या समाधान के लिए तय की गई कुल दूरी. |
max_loads |
पूरे रास्ते (यानी कि समाधान) के लिए, इस रास्ते (यानी कि समाधान) पर मौजूद हर मात्रा के लिए, ज़्यादा से ज़्यादा लोड हासिल किया गया. इसे सभी |
performed_mandatory_shipment_count |
ज़रूरी शिपमेंट की संख्या. एक्सपेरिमेंट के तौर पर उपलब्ध: इस फ़ील्ड के काम करने के तरीके या इसकी उपलब्धता में आने वाले समय में बदलाव हो सकता है. |
performed_shipment_penalty_cost_sum |
यह शिप किए गए प्रॉडक्ट के एक्सपेरिमेंट के तौर पर उपलब्ध: इस फ़ील्ड के काम करने के तरीके या इसकी उपलब्धता में आने वाले समय में बदलाव हो सकता है. |
BatchOptimizeToursMetadata
इस टाइप में कोई फ़ील्ड नहीं है.
BatchOptimizeToursRequest कॉल के लिए ऑपरेशन मेटाडेटा.
BatchOptimizeToursRequest
टूर को बैच में ऑप्टिमाइज़ करने का अनुरोध, एसिंक्रोनस ऑपरेशन के तौर पर किया जाता है. हर इनपुट फ़ाइल में एक OptimizeToursRequest होना चाहिए और हर आउटपुट फ़ाइल में एक OptimizeToursResponse होगा. अनुरोध में फ़ाइलों को पढ़ने/लिखने और पार्स करने की जानकारी होती है. सभी इनपुट और आउटपुट फ़ाइलें एक ही प्रोजेक्ट में होनी चाहिए.
| फ़ील्ड | |
|---|---|
parent |
ज़रूरी है. कॉल करने के लिए, टारगेट प्रोजेक्ट और जगह की जानकारी. फ़ॉर्मैट:
अगर कोई जगह नहीं चुनी जाती है, तो कोई क्षेत्र अपने-आप चुन लिया जाएगा. |
model_configs[] |
ज़रूरी है. हर खरीदारी मॉडल के लिए इनपुट/आउटपुट की जानकारी, जैसे कि फ़ाइल पाथ और डेटा फ़ॉर्मैट. |
AsyncModelConfig
एक ऑप्टिमाइज़ेशन मॉडल को एसिंक्रोनस तरीके से हल करने के लिए जानकारी.
| फ़ील्ड | |
|---|---|
display_name |
ज़रूरी नहीं. उपयोगकर्ता की ओर से तय किया गया मॉडल का नाम. उपयोगकर्ता, मॉडल को ट्रैक करने के लिए इसका इस्तेमाल एलियास के तौर पर कर सकते हैं. |
input_config |
ज़रूरी है. इनपुट मॉडल के बारे में जानकारी. |
output_config |
ज़रूरी है. आउटपुट के लिए जगह की जानकारी. |
BatchOptimizeToursResponse
इस टाइप में कोई फ़ील्ड नहीं है.
BatchOptimizeToursRequest का जवाब. यह कार्रवाई पूरी होने के बाद, Long Running Operation में दिखता है.
BreakRule
किसी वाहन के लिए समय के हिसाब से ब्रेक जनरेट करने के नियम (जैसे, लंच ब्रेक). ब्रेक, समय की एक ऐसी अवधि होती है जिसमें वाहन अपनी मौजूदा जगह पर खड़ा रहता है और कोई यात्रा नहीं कर सकता. ब्रेक इन वजहों से हो सकता है:
- दो विज़िट के बीच की यात्रा के दौरान (इसमें विज़िट से ठीक पहले या ठीक बाद का समय शामिल होता है, लेकिन विज़िट के बीच का समय शामिल नहीं होता है). ऐसे मामले में, यह विज़िट के बीच के ट्रांज़िट समय को बढ़ा देता है,
- या गाड़ी चालू होने से पहले (गाड़ी ब्रेक के बीच में चालू नहीं हो सकती). ऐसे में, गाड़ी के चालू होने के समय पर इसका असर नहीं पड़ता.
- या वाहन के रुकने के बाद (वाहन के रुकने के समय के साथ).
| फ़ील्ड | |
|---|---|
break_requests[] |
ब्रेक का क्रम. |
frequency_constraints[] |
कई |
BreakRequest
हर वाहन पर लागू होने वाले ब्रेक का क्रम (यानी कि उनकी संख्या और क्रम) पहले से पता होना चाहिए. BreakRequest को दोहराकर, उस क्रम को तय किया जाता है जिसमें उन्हें होना चाहिए. ऐसा हो सकता है कि डिलीवरी के लिए तय की गई समयावधि (earliest_start_time / latest_start_time) एक-दूसरे से मेल खाती हो. हालांकि, यह ज़रूरी है कि वे ऑर्डर के हिसाब से सही हों. इसकी जांच की जाती है.
| फ़ील्ड | |
|---|---|
earliest_start_time |
ज़रूरी है. ब्रेक शुरू होने का समय (शामिल है). |
latest_start_time |
ज़रूरी है. ब्रेक शुरू होने की ऊपरी सीमा (शामिल है). |
min_duration |
ज़रूरी है. ब्रेक की कम से कम अवधि. पॉज़िटिव होना चाहिए. |
FrequencyConstraint
ऊपर बताए गए ब्रेक की फ़्रीक्वेंसी और अवधि को और भी सीमित किया जा सकता है. इसके लिए, ब्रेक की कम से कम फ़्रीक्वेंसी तय की जा सकती है. जैसे, "हर 12 घंटे में कम से कम एक घंटे का ब्रेक होना चाहिए". मान लें कि इसका मतलब यह है कि "12 घंटे की किसी भी समयावधि में, कम से कम एक घंटे का एक ब्रेक होना चाहिए". इस उदाहरण का मतलब यह होगा FrequencyConstraint:
{
min_break_duration { seconds: 3600 } # 1 hour.
max_inter_break_duration { 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
| फ़ील्ड | |
|---|---|
min_break_duration |
ज़रूरी है. इस शर्त के लिए, ब्रेक की कम से कम अवधि. शून्य या उससे ज़्यादा. |
max_inter_break_duration |
ज़रूरी है. रास्ते में किसी भी समय के अंतराल की ज़्यादा से ज़्यादा अवधि, जिसमें कम से कम कुछ समय के लिए |
DataFormat
इनपुट और आउटपुट फ़ाइलों के लिए डेटा फ़ॉर्मैट.
| Enums | |
|---|---|
DATA_FORMAT_UNSPECIFIED |
अमान्य वैल्यू. फ़ॉर्मैट UNSPECIFIED नहीं होना चाहिए. |
JSON |
JavaScript ऑब्जेक्ट नोटेशन. |
PROTO_TEXT |
प्रोटोकॉल बफ़र का टेक्स्ट फ़ॉर्मैट. https://protobuf.dev/reference/protobuf/textformat-spec/ पर जाएं |
DistanceLimit
यह एक सीमा होती है, जिससे तय किया जाता है कि ज़्यादा से ज़्यादा कितनी दूरी तय की जा सकती है. यह सीमा, हार्ड या सॉफ़्ट हो सकती है.
अगर कोई सॉफ्ट लिमिट तय की गई है, तो soft_max_meters और cost_per_kilometer_above_soft_max, दोनों की वैल्यू तय की जानी चाहिए. साथ ही, इनकी वैल्यू शून्य या इससे ज़्यादा होनी चाहिए.
| फ़ील्ड | |
|---|---|
max_meters |
यह एक तय सीमा है, जिसके तहत दूरी ज़्यादा से ज़्यादा max_meters हो सकती है. यह सीमा, शून्य या इससे ज़्यादा होनी चाहिए. |
soft_max_meters |
सॉफ़्ट लिमिट में, ज़्यादा से ज़्यादा दूरी की सीमा लागू नहीं की जाती है. हालांकि, इसका उल्लंघन करने पर, मॉडल में तय की गई अन्य लागतों में एक और लागत जुड़ जाती है. इसकी यूनिट भी वही होती है. अगर soft_max_meters तय किया गया है, तो यह max_meters से कम होना चाहिए और इसकी वैल्यू नेगेटिव नहीं होनी चाहिए. |
cost_per_kilometer_below_soft_max |
प्रति किलोमीटर के हिसाब से खर्च,
|
cost_per_kilometer_above_soft_max |
अगर दूरी किराया नेगेटिव नहीं होना चाहिए. |
GcsDestination
Google Cloud Storage की वह जगह जहां आउटपुट फ़ाइलें सेव की जाएंगी.
| फ़ील्ड | |
|---|---|
uri |
ज़रूरी है. Google Cloud Storage यूआरआई. |
GcsSource
Google Cloud Storage की वह जगह जहां से इनपुट फ़ाइल पढ़ी जाएगी.
| फ़ील्ड | |
|---|---|
uri |
ज़रूरी है. Google Cloud Storage ऑब्जेक्ट का यूआरआई, जिसका फ़ॉर्मैट |
InjectedSolutionConstraint
अनुरोध में डाला गया समाधान. इसमें यह जानकारी शामिल होती है कि किन विज़िट को सीमित किया जाना चाहिए और उन्हें कैसे सीमित किया जाना चाहिए.
| फ़ील्ड | |
|---|---|
routes[] |
इंजेक्ट किए जाने वाले समाधान के रास्ते. ऐसा हो सकता है कि ओरिजनल समाधान में कुछ रास्तों को शामिल न किया गया हो. रास्तों और स्किप किए गए शिपमेंट को, |
skipped_shipments[] |
इंजेक्ट किए जाने वाले सलूशन के शिपमेंट छोड़ दिए गए. ऐसा हो सकता है कि कुछ को ओरिजनल समाधान से हटा दिया गया हो. |
constraint_relaxations[] |
शून्य या उससे ज़्यादा वाहनों के ग्रुप के लिए, यह तय करता है कि पाबंदियों को कब और कितना कम करना है. अगर यह फ़ील्ड खाली है, तो वाहनों के सभी नॉन-एम्टी रूट पर पूरी तरह से पाबंदी लागू होती है. |
ConstraintRelaxation
वाहन के ग्रुप के लिए, यह बताता है कि विज़िट पर लगी पाबंदियों को किस थ्रेशोल्ड पर और किस लेवल तक कम किया जाएगा. skipped_shipment फ़ील्ड में लिस्ट किए गए शिपमेंट को स्किप करना ज़रूरी है. इसका मतलब है कि उन्हें पूरा नहीं किया जा सकता.
| फ़ील्ड | |
|---|---|
relaxations[] |
विज़िट से जुड़ी सभी पाबंदियों में ढील दी गई है. ये पाबंदियां, |
vehicle_indices[] |
उन वाहनों के इंडेक्स की जानकारी देता है जिन पर यात्रा से जुड़ी पाबंदी अगर |
सुकून देने वाले
अगर relaxations खाली है, तो routes में मौजूद सभी यात्राओं के शुरू होने का समय और क्रम पूरी तरह से तय होता है. साथ ही, उन रास्तों में कोई नई यात्रा नहीं जोड़ी जा सकती.इसके अलावा, routes में किसी वाहन के शुरू और खत्म होने का समय पूरी तरह से तय होता है. हालांकि, ऐसा तब नहीं होता, जब वाहन खाली हो (यानी कि उसमें कोई यात्रा न हो और मॉडल में used_if_route_is_empty को 'गलत' के तौर पर सेट किया गया हो).
relaxations(i).level, उस विज़िट #j पर लागू होने वाले कंस्ट्रेंट रिलैक्सेशन लेवल के बारे में बताता है जो इन शर्तों को पूरा करती है:
route.visits(j).start_time >= relaxations(i).threshold_timeऔरj + 1 >= relaxations(i).threshold_visit_count
इसी तरह, अगर वाहन इन शर्तों को पूरा करता है, तो उसे relaxations(i).level तक स्टार्ट करने की अनुमति दी जाती है:
vehicle_start_time >= relaxations(i).threshold_timeऔरrelaxations(i).threshold_visit_count == 0और वाहन के लिए तय की गई दूरीrelaxations(i).levelतक कम हो जाती है. हालांकि, इसके लिए इन शर्तों को पूरा करना ज़रूरी है:vehicle_end_time >= relaxations(i).threshold_timeऔरroute.visits_size() + 1 >= relaxations(i).threshold_visit_count
अगर कोई विज़िट threshold_visit_count या threshold_time की शर्तों को पूरा करती है, तो रिलैक्सेशन लेवल लागू करने के लिए, एक जैसे level वाले दो relaxations जोड़ें: एक में सिर्फ़ threshold_visit_count सेट हो और दूसरे में सिर्फ़ threshold_time सेट हो. अगर कोई विज़िट, एक से ज़्यादा relaxations की शर्तों को पूरा करती है, तो सबसे कम पाबंदी वाला लेवल लागू होता है. इस वजह से, वाहन के शुरू होने से लेकर रूट के हिसाब से विज़िट की गई जगहों तक और फिर वाहन के रुकने तक, समय में छूट का लेवल बढ़ता जाता है. इसका मतलब है कि रूट के हिसाब से विज़िट की गई जगहों की संख्या बढ़ने पर, समय में छूट का लेवल कम नहीं होता.
रास्ते में की गई उन यात्राओं के समय और क्रम पर पूरी तरह से पाबंदी होती है जो किसी भी relaxations की थ्रेशोल्ड शर्तों को पूरा नहीं करती हैं. साथ ही, इन क्रमों में कोई भी यात्रा नहीं जोड़ी जा सकती. इसके अलावा, अगर किसी वाहन के शुरू या खत्म होने का समय, किसी भी छूट की शर्तों को पूरा नहीं करता है, तो समय तय होता है. हालांकि, अगर वाहन खाली है, तो समय तय नहीं होता.
| फ़ील्ड | |
|---|---|
level |
यह कंस्ट्रेंट रिलैक्सेशन का वह लेवल है जो |
threshold_time |
वह समय जब |
threshold_visit_count |
विज़िट की वह संख्या जिसके बाद अगर यह |
लेवल
यह कुकी, अलग-अलग तरह की पाबंदियों में ढील देने के लेवल के बारे में बताती है. ये लेवल, किसी विज़िट के लिए लागू होते हैं. साथ ही, थ्रेशोल्ड की शर्तों को पूरा करने पर, ये लेवल लागू होते हैं.
नीचे दी गई सूची में, आराम मिलने के हिसाब से तरीकों को क्रम से लगाया गया है.
| Enums | |
|---|---|
LEVEL_UNSPECIFIED |
डिफ़ॉल्ट रूप से, रिलैक्सेशन का लेवल: इसमें कोई भी शर्त पूरी नहीं की जाती. इसका मतलब है कि सभी विज़िट पर पूरी तरह से पाबंदी होती है. इस वैल्यू का इस्तेमाल, |
RELAX_VISIT_TIMES_AFTER_THRESHOLD |
विज़िट शुरू होने के समय और वाहन के शुरू/बंद होने के समय में बदलाव किया जा सकता है. हालांकि, हर विज़िट एक ही वाहन से जुड़ी रहेगी. साथ ही, विज़िट के क्रम का पालन करना होगा: उनके बीच या उनसे पहले कोई विज़िट नहीं जोड़ी जा सकती. |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD |
यह RELAX_VISIT_TIMES_AFTER_THRESHOLD के जैसा ही है. हालांकि, इसमें विज़िट के क्रम को भी आसान बनाया गया है: विज़िट सिर्फ़ इस वाहन से की जा सकती हैं, लेकिन हो सकता है कि विज़िट न हो पाएं. |
RELAX_ALL_AFTER_THRESHOLD |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD के जैसा ही है, लेकिन इसमें वाहन को भी छूट मिलती है: थ्रेशोल्ड समय पर या उसके बाद विज़िट पूरी तरह से मुफ़्त होती हैं. साथ ही, ऐसा हो सकता है कि विज़िट पूरी न हो. |
InputConfig
[BatchOptimizeTours][google.maps.routeoptimization.v1.RouteOptimizationService.BatchOptimizeTours] के लिए कोई इनपुट तय करें.
| फ़ील्ड | |
|---|---|
data_format |
ज़रूरी है. इनपुट डेटा का फ़ॉर्मैट. |
यूनियन फ़ील्ड source. ज़रूरी है. source इनमें से सिर्फ़ एक हो सकता है: |
|
gcs_source |
Google Cloud Storage की जगह. यह एक ऑब्जेक्ट (फ़ाइल) होना चाहिए. |
जगह
इसमें किसी जगह की जानकारी होती है. जैसे, भौगोलिक पॉइंट और वैकल्पिक हेडिंग.
| फ़ील्ड | |
|---|---|
lat_lng |
वेपॉइंट के भौगोलिक निर्देशांक. |
heading |
यह ट्रैफ़िक के फ़्लो की दिशा से जुड़ा कंपास हेडिंग है. इस वैल्यू का इस्तेमाल, पिकअप और ड्रॉप-ऑफ़ के लिए सड़क का वह हिस्सा तय करने के लिए किया जाता है जिसका इस्तेमाल करना है. हेडिंग की वैल्यू 0 से 360 तक हो सकती हैं. इनमें 0 का मतलब उत्तर की ओर, 90 का मतलब पूर्व की ओर वगैरह होता है. |
OptimizeToursLongRunningMetadata
इस टाइप में कोई फ़ील्ड नहीं है.
OptimizeToursLongRunning कॉल के लिए ऑपरेशन मेटाडेटा.
OptimizeToursRequest
यह अनुरोध, यात्रा ऑप्टिमाइज़ेशन से जुड़ी समस्याओं को हल करने की सुविधा को दिया जाता है. इसमें शिपमेंट मॉडल और ऑप्टिमाइज़ेशन पैरामीटर के बारे में बताया जाता है.
| फ़ील्ड | |
|---|---|
parent |
ज़रूरी है. कॉल करने के लिए, प्रोजेक्ट या जगह को टारगेट करें. फ़ॉर्मैट:
अगर कोई जगह नहीं चुनी जाती है, तो कोई क्षेत्र अपने-आप चुन लिया जाएगा. |
timeout |
अगर यह टाइम आउट सेट किया गया है, तो सर्वर टाइम आउट की अवधि खत्म होने से पहले या सिंक्रोनस अनुरोधों के लिए सर्वर की समयसीमा पूरी होने से पहले जवाब देता है. इनमें से जो भी पहले हो. एसिंक्रोनस अनुरोधों के लिए, सर्वर टाइमआउट खत्म होने से पहले ही जवाब जनरेट कर देगा. हालांकि, ऐसा सिर्फ़ तब होगा, जब जवाब जनरेट करना मुमकिन हो. |
model |
शिपमेंट मॉडल से जुड़ी समस्या को हल करना. |
solving_mode |
डिफ़ॉल्ट रूप से, हल करने का मोड |
search_mode |
अनुरोध को पूरा करने के लिए इस्तेमाल किया गया खोज मोड. |
injected_first_solution_routes[] |
ऑप्टिमाइज़ेशन एल्गोरिदम को, पिछले समाधान से मिलते-जुलते पहले समाधान को ढूंढने में मदद करें. पहला समाधान बनाते समय, मॉडल पर कुछ पाबंदियां लगाई जाती हैं. अगर किसी शिपमेंट को किसी रूट पर नहीं ले जाया जाता है, तो पहले समाधान में उसे अपने-आप छोड़ दिया जाता है. हालांकि, बाद के समाधानों में उसे शामिल किया जा सकता है. समाधान में, वैधता से जुड़ी कुछ बुनियादी मान्यताओं का पालन किया जाना चाहिए:
अगर डाला गया समाधान काम नहीं करता है, तो ज़रूरी नहीं है कि पुष्टि करने से जुड़ी गड़बड़ी का मैसेज दिखे. इसके बजाय, काम न करने की वजह बताने वाला मैसेज दिख सकता है. |
injected_solution_constraint |
ऑप्टिमाइज़ेशन एल्गोरिदम को सीमित करें, ताकि वह ऐसा फ़ाइनल समाधान ढूंढ सके जो पिछले समाधान से मिलता-जुलता हो. उदाहरण के लिए, इसका इस्तेमाल उन रास्तों के हिस्सों को फ़्रीज़ करने के लिए किया जा सकता है जिन्हें पहले ही पूरा कर लिया गया है या जिन्हें पूरा किया जाना है, लेकिन उनमें बदलाव नहीं किया जाना चाहिए. अगर डाला गया समाधान काम नहीं करता है, तो ज़रूरी नहीं है कि पुष्टि करने से जुड़ी गड़बड़ी का मैसेज दिखे. इसके बजाय, काम न करने की वजह बताने वाला मैसेज दिख सकता है. |
refresh_details_routes[] |
अगर यह खाली नहीं है, तो दिए गए रास्तों को रीफ़्रेश किया जाएगा. हालांकि, विज़िट या यात्रा के समय के क्रम में कोई बदलाव नहीं किया जाएगा. सिर्फ़ अन्य जानकारी अपडेट की जाएगी. इससे मॉडल की समस्या हल नहीं होती. नवंबर 2020 से, यह सिर्फ़ उन रास्तों की पॉलीलाइन भरता है जिनमें कोई न कोई स्टेशन मौजूद है. इसके लिए, ऐसा हो सकता है कि पास किए गए रास्तों के इस फ़ील्ड का इस्तेमाल,
|
interpret_injected_solutions_using_labels |
अगर यह सही है, तो:
यह व्याख्या, अगर सही है, तो यहां दी गई कैटगरी के लेबल, अपनी कैटगरी में ज़्यादा से ज़्यादा एक बार दिखने चाहिए:
अगर इंजेक्ट किए गए समाधान में मौजूद इंजेक्ट किए गए समाधान से रूट विज़िट या पूरे रूट हटाने से, लागू की गई पाबंदियों पर असर पड़ सकता है. इससे समाधान में बदलाव हो सकता है, पुष्टि करने से जुड़ी गड़बड़ियां हो सकती हैं या समाधान लागू नहीं हो सकता. ध्यान दें: कॉल करने वाले व्यक्ति को यह पक्का करना होगा कि हर |
consider_road_traffic |
|
populate_polylines |
अगर यह विकल्प चुना जाता है, तो जवाब |
populate_transition_polylines |
अगर यह वैल्यू सही है, तो जवाब |
allow_large_deadline_despite_interruption_risk |
अगर यह सेट है, तो अनुरोध के लिए 60 मिनट तक की समयसीमा तय की जा सकती है. इसके बारे में ज़्यादा जानने के लिए, https://grpc.io/blog/deadlines पर जाएं. अगर यह सेट नहीं है, तो ज़्यादा से ज़्यादा समयसीमा सिर्फ़ 30 मिनट होती है. ध्यान दें कि लंबे समय तक चलने वाले अनुरोधों में रुकावट आने का जोखिम काफ़ी ज़्यादा होता है. हालांकि, यह जोखिम अब भी कम है. |
use_geodesic_distances |
अगर यह वैल्यू सही है, तो यात्रा की दूरी का हिसाब लगाने के लिए, Google Maps में मौजूद दूरी के बजाय जियोडेसिक दूरी का इस्तेमाल किया जाएगा. साथ ही, यात्रा में लगने वाले समय का हिसाब लगाने के लिए, जियोडेसिक दूरी का इस्तेमाल किया जाएगा. इसमें |
label |
यह लेबल, इस अनुरोध की पहचान करने के लिए इस्तेमाल किया जा सकता है. इसकी जानकारी |
geodesic_meters_per_second |
|
max_validation_errors |
पुष्टि करने से जुड़ी गड़बड़ियों की संख्या को छोटा करता है. आम तौर पर, ये गड़बड़ियां INVALID_ARGUMENT गड़बड़ी के पेलोड से जुड़ी होती हैं. इन्हें BadRequest गड़बड़ी की जानकारी (https://cloud.google.com/apis/design/errors#error_details) के तौर पर दिखाया जाता है. हालांकि, अगर solving_mode=VALIDATE_ONLY है, तो ऐसा नहीं होता. |
SearchMode
यह मोड, खोज के व्यवहार को तय करता है. इसमें जवाब मिलने में लगने वाले समय और जवाब की क्वालिटी के बीच समझौता किया जाता है. सभी मोड में, अनुरोध पूरा करने की समयसीमा लागू होती है.
| Enums | |
|---|---|
SEARCH_MODE_UNSPECIFIED |
खोज का मोड तय नहीं किया गया है. यह RETURN_FAST के बराबर है. |
RETURN_FAST |
पहला अच्छा समाधान मिलने के बाद, खोज को रोक दें. |
CONSUME_ALL_AVAILABLE_TIME |
बेहतर समाधान खोजने के लिए, पूरा समय दें. |
SolvingMode
इससे यह तय होता है कि सॉल्वर को अनुरोध को कैसे हैंडल करना चाहिए. VALIDATE_ONLY को छोड़कर, सभी मोड में अमान्य अनुरोध करने पर आपको INVALID_REQUEST गड़बड़ी का मैसेज मिलेगा. जवाब में गड़बड़ियों की संख्या सीमित करने के लिए, max_validation_errors देखें.
| Enums | |
|---|---|
DEFAULT_SOLVE |
मॉडल को हल करें. [OptimizeToursResponse.validation_errors][google.cloud.optimization.v1.OptimizeToursResponse.validation_errors] में चेतावनियां जारी की जा सकती हैं. |
VALIDATE_ONLY |
यह सिर्फ़ मॉडल की पुष्टि करता है, उसे हल नहीं करता: इसमें ज़्यादा से ज़्यादा OptimizeToursResponse.validation_errors शामिल किए जाते हैं. |
DETECT_SOME_INFEASIBLE_SHIPMENTS |
सिर्फ़ अहम जानकारी: यहां उन सभी शिपमेंट की जानकारी नहीं दी जाती जिन्हें डिलीवर नहीं किया जा सकता. सिर्फ़ उन शिपमेंट की जानकारी दी जाती है जिन्हें प्रीप्रोसेसिंग के दौरान डिलीवर न किए जा सकने वाले शिपमेंट के तौर पर पता लगाया गया है. |
TRANSFORM_AND_RETURN_REQUEST |
यह मोड सिर्फ़ तब काम करता है, जब एक्सपेरिमेंट के तौर पर उपलब्ध: ज़्यादा जानकारी के लिए, https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request पर जाएं. |
OptimizeToursResponse
यात्रा के ऑप्टिमाइज़ेशन से जुड़ी समस्या को हल करने के बाद मिला जवाब. इसमें हर वाहन के लिए तय किए गए रास्ते, शिपमेंट जो छोड़ दिए गए हैं, और समाधान की कुल लागत शामिल है.
| फ़ील्ड | |
|---|---|
routes[] |
हर वाहन के लिए कैलकुलेट किए गए रास्ते; i-वां रास्ता, मॉडल में मौजूद i-वें वाहन से मेल खाता है. |
request_label |
अगर अनुरोध में कोई लेबल बताया गया था, तो |
skipped_shipments[] |
सभी शिपमेंट की सूची जिन्हें छोड़ दिया गया है. |
validation_errors[] |
सत्यापन से जुड़ी उन सभी गड़बड़ियों की सूची जिन्हें हमने अपने-आप पता लगाया है. |
processed_request |
कुछ मामलों में, हम समस्या को हल करने से पहले, आने वाले अनुरोध में बदलाव करते हैं. जैसे, शुल्क जोड़ना. अगर solving_mode == TRANSFORM_AND_RETURN_REQUEST है, तो यहां बदले गए अनुरोध को वापस कर दिया जाता है. एक्सपेरिमेंट के तौर पर उपलब्ध: ज़्यादा जानकारी के लिए, https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request पर जाएं. |
metrics |
इस समाधान के लिए अवधि, दूरी, और इस्तेमाल की मेट्रिक. |
मेट्रिक
सभी रास्तों के लिए एग्रीगेट की गई कुल मेट्रिक.
| फ़ील्ड | |
|---|---|
aggregated_route_metrics |
रास्तों के हिसाब से एग्रीगेट की गई मेट्रिक. हर मेट्रिक, एक ही नाम वाले सभी |
skipped_mandatory_shipment_count |
ज़रूरी शिपमेंट की संख्या जिन्हें स्किप किया गया है. |
used_vehicle_count |
इस्तेमाल किए गए वाहनों की संख्या. ध्यान दें: अगर किसी वाहन का रूट खाली है और |
earliest_vehicle_start_time |
इस्तेमाल किए गए वाहन के लिए, विज्ञापन दिखाने का सबसे पहला समय. इसे |
latest_vehicle_end_time |
इस्तेमाल की गई गाड़ी के लिए, नीलामी खत्म होने का सबसे नया समय. इसे |
costs |
सॉल्यूशन की लागत, जिसे लागत से जुड़े अनुरोध फ़ील्ड के हिसाब से बांटा गया है. कुंजियां, OptimizeToursRequest के इनपुट के हिसाब से प्रोटो पाथ होती हैं. उदाहरण के लिए, "model.shipments.pickups.cost". वैल्यू, लागत वाले फ़ील्ड से जनरेट की गई कुल लागत होती है. इसे पूरे समाधान के लिए एग्रीगेट किया जाता है. दूसरे शब्दों में कहें, तो costs["model.shipments.pickups.cost"] का मतलब, समाधान के लिए पिकअप की सभी लागतों का योग होता है. मॉडल में तय की गई सभी लागतों की जानकारी यहां दी गई है. हालांकि, TransitionAttributes से जुड़ी लागतों की जानकारी सिर्फ़ एग्रीगेट किए गए तरीके से दी जाती है. यह जानकारी 2022/01 से दी जा रही है. |
total_cost |
समाधान की कुल लागत. लागत के मैप में मौजूद सभी वैल्यू का योग. |
OptimizeToursUriMetadata
इस टाइप में कोई फ़ील्ड नहीं है.
OptimizeToursUri कॉल के लिए ऑपरेशन मेटाडेटा.
OptimizeToursUriRequest
यह OptimizeToursUri तरीके से इस्तेमाल किया गया अनुरोध है.
| फ़ील्ड | |
|---|---|
parent |
ज़रूरी है. कॉल करने के लिए, प्रोजेक्ट या जगह को टारगेट करें. फ़ॉर्मैट:
अगर कोई जगह नहीं चुनी जाती है, तो कोई क्षेत्र अपने-आप चुन लिया जाएगा. |
input |
ज़रूरी है. |
output |
ज़रूरी है. Cloud Storage ऑब्जेक्ट का यूआरआई, जिसमें |
OptimizeToursUriResponse
OptimizeToursUri तरीके से मिला जवाब.
| फ़ील्ड | |
|---|---|
output |
ज़रूरी नहीं. Cloud Storage ऑब्जेक्ट का यूआरआई, जिसमें संसाधन के |
OptimizeToursValidationError
OptimizeToursRequest की पुष्टि करते समय हुई गड़बड़ी या चेतावनी के बारे में बताता है.
| फ़ील्ड | |
|---|---|
code |
पुष्टि करने से जुड़ी गड़बड़ी को ( इस सेक्शन के बाद दिए गए फ़ील्ड में, गड़बड़ी के बारे में ज़्यादा जानकारी दी गई है. एक से ज़्यादा गड़बड़ियां: एक से ज़्यादा गड़बड़ियां होने पर, पुष्टि करने की प्रोसेस में उनमें से कुछ गड़बड़ियों को आउटपुट के तौर पर दिखाने की कोशिश की जाती है. कंपाइलर की तरह, यह प्रोसेस भी पूरी तरह से सटीक नहीं होती. पुष्टि करने के दौरान होने वाली कुछ गड़बड़ियां "गंभीर" होंगी. इसका मतलब है कि इनसे पुष्टि करने की पूरी प्रोसेस रुक जाएगी. स्थिरता: |
display_name |
गड़बड़ी का डिसप्ले नेम. |
fields[] |
गड़बड़ी के कॉन्टेक्स्ट में 0, 1 (ज़्यादातर समय) या इससे ज़्यादा फ़ील्ड शामिल हो सकते हैं. उदाहरण के लिए, वाहन #4 और शिपमेंट #2 के पहले पिकअप के बारे में इस तरह बताया जा सकता है: हालांकि, ध्यान दें कि किसी गड़बड़ी कोड के लिए, |
error_message |
इस स्ट्रिंग में गड़बड़ी के बारे में ऐसी जानकारी होती है जिसे कोई भी व्यक्ति आसानी से पढ़ सकता है. स्थिरता: स्थिर नहीं है: किसी |
offending_values |
इसमें फ़ील्ड की वैल्यू शामिल हो सकती हैं. यह सुविधा हमेशा उपलब्ध नहीं होती है. आपको इस पर बिल्कुल भी भरोसा नहीं करना चाहिए. इसका इस्तेमाल सिर्फ़ मैन्युअल तरीके से मॉडल को डीबग करने के लिए करें. |
FieldReference
यह पुष्टि करने से जुड़ी गड़बड़ी के लिए कॉन्टेक्स्ट तय करता है. FieldReference हमेशा इस फ़ाइल में दिए गए फ़ील्ड को दिखाता है और एक ही क्रम में होता है. उदाहरण के लिए, हम इस कोड का इस्तेमाल करके, वाहन #5 के start_time_windows का एलिमेंट #2 तय कर सकते हैं:
name: "vehicles" index: 5 sub_field { name: "end_time_windows" index: 2 }
हालांकि, हम मैसेज में ज़्यादा जानकारी शामिल करने से बचने के लिए, OptimizeToursRequest या ShipmentModel जैसी टॉप-लेवल की इकाइयों को शामिल नहीं करते.
| फ़ील्ड | |
|---|---|
name |
फ़ील्ड का नाम, जैसे कि "vehicles". |
sub_field |
ज़रूरत पड़ने पर, बार-बार नेस्ट किया गया सब-फ़ील्ड. |
यूनियन फ़ील्ड
|
|
index |
अगर फ़ील्ड को दोहराया गया है, तो उसका इंडेक्स. |
key |
अगर फ़ील्ड कोई मैप है, तो कुंजी. |
OutputConfig
[BatchOptimizeTours][google.maps.routeoptimization.v1.RouteOptimizationService.BatchOptimizeTours] के नतीजों के लिए, डेस्टिनेशन तय करें.
| फ़ील्ड | |
|---|---|
data_format |
ज़रूरी है. आउटपुट डेटा का फ़ॉर्मैट. |
यूनियन फ़ील्ड destination. ज़रूरी है. destination इनमें से सिर्फ़ एक हो सकता है: |
|
gcs_destination |
Google Cloud Storage में वह जगह जहां आउटपुट लिखा जाएगा. |
RouteModifiers
इसमें वाहन के रूट का हिसाब लगाते समय, ज़रूरी शर्तों का एक सेट शामिल होता है. यह Google Maps Platform Routes Preferred API में मौजूद RouteModifiers जैसा ही है. इसके बारे में यहां जानें: https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteModifiers.
| फ़ील्ड | |
|---|---|
avoid_tolls |
यह तय करता है कि जहां ज़रूरी हो वहां टोल वाली सड़कों से बचा जाए या नहीं. उन रास्तों को प्राथमिकता दी जाएगी जिनमें टोल वाली सड़कें नहीं हैं. यह सिर्फ़ मोटर वाले परिवहन के तरीकों पर लागू होता है. |
avoid_highways |
यह तय करता है कि जहां ज़रूरी हो वहां हाइवे से बचा जाए या नहीं. हाइवे से न गुज़रने वाले रास्तों को प्राथमिकता दी जाएगी. यह सिर्फ़ मोटर वाले परिवहन के साधनों पर लागू होता है. |
avoid_ferries |
इससे यह तय होता है कि जहां ज़रूरी हो वहां फ़ेरी से यात्रा करने से बचना है या नहीं. उन रास्तों को प्राथमिकता दी जाएगी जिनमें फ़ेरी से यात्रा शामिल नहीं है. यह सुविधा, सिर्फ़ मोटर से चलने वाले वाहनों के लिए उपलब्ध है. |
avoid_indoor |
ज़रूरी नहीं. इससे यह तय होता है कि जहां मुमकिन हो वहां इंडोर नेविगेशन से बचना है या नहीं. उन रास्तों को प्राथमिकता दी जाएगी जिनमें इंडोर नेविगेशन की सुविधा नहीं है. यह सिर्फ़ |
शिपमेंट
किसी एक सामान को पिकअप करने की जगह से लेकर डिलीवरी करने की जगह तक ले जाना. शिपमेंट को पूरा माना जाने के लिए, किसी वाहन को सामान पिकअप करने की जगह पर जाना होगा. इससे वाहन की खाली जगह कम हो जाएगी. इसके बाद, वाहन को सामान डिलीवरी करने की जगह पर जाना होगा. इससे वाहन की खाली जगह फिर से बढ़ जाएगी.
| फ़ील्ड | |
|---|---|
display_name |
शिपमेंट का वह डिसप्ले नेम जो उपयोगकर्ता ने तय किया है. यह ज़्यादा से ज़्यादा 63 वर्णों का हो सकता है. इसमें UTF-8 वर्णों का इस्तेमाल किया जा सकता है. |
pickups[] |
शिपमेंट से जुड़े पिकअप के विकल्पों का सेट. अगर यह जानकारी नहीं दी जाती है, तो वाहन को सिर्फ़ डिलीवरी की जगह पर जाना होगा. |
deliveries[] |
शिपमेंट से जुड़े डिलीवरी के विकल्पों का सेट. अगर यह जानकारी नहीं दी जाती है, तो वाहन को सिर्फ़ पिकअप की जगह पर जाना होगा. |
load_demands |
शिपमेंट की लोड डिमांड (उदाहरण के लिए, वज़न, वॉल्यूम, पैलेट की संख्या वगैरह). मैप में मौजूद कुंजियां, आइडेंटिफ़ायर होनी चाहिए. इनसे लोड के टाइप के बारे में पता चलता है. साथ ही, इनमें यूनिट भी शामिल होनी चाहिए. उदाहरण के लिए: "weight_kg", "volume_gallons", "pallet_count" वगैरह. अगर दी गई कोई कुंजी मैप में नहीं दिखती है, तो उससे जुड़ा लोड शून्य माना जाता है. |
allowed_vehicle_indices[] |
उन वाहनों का सेट जो इस शिपमेंट को पूरा कर सकते हैं. अगर यह फ़ील्ड खाली है, तो सभी वाहन इस सुविधा का इस्तेमाल कर सकते हैं. |
costs_per_vehicle[] |
इससे पता चलता है कि हर वाहन से इस शिपमेंट को डिलीवर करने पर कितना शुल्क लगता है. अगर यह एट्रिब्यूट दिया गया है, तो इसमें इनमें से कोई एक वैल्यू होनी चाहिए:
ये लागतें, |
costs_per_vehicle_indices[] |
उन वाहनों के इंडेक्स जिन पर |
pickup_to_delivery_absolute_detour_limit |
यह पिकअप से डिलीवरी तक के सबसे छोटे रास्ते की तुलना में, ज़्यादा से ज़्यादा डिटूर समय के बारे में बताता है. अगर इसे तय किया जाता है, तो यह शून्य या इससे ज़्यादा होना चाहिए. साथ ही, शिपमेंट में कम से कम पिकअप और डिलीवरी शामिल होनी चाहिए. उदाहरण के लिए, मान लें कि चुने गए पिकअप के विकल्प से सीधे चुने गए डिलीवरी के विकल्प तक पहुंचने में कम से कम समय t लगता है. ऐसे में, अगर एक ही शिपमेंट के लिए, रिलेटिव और ऐब्सलूट, दोनों तरह की सीमाएं तय की गई हैं, तो पिकअप/डिलिवरी के हर संभावित जोड़े के लिए, ज़्यादा पाबंदी वाली सीमा का इस्तेमाल किया जाता है. 2017/10 से, सिर्फ़ तब तक रास्ते में बदलाव करने की सुविधा काम करती है, जब तक यात्रा की अवधि वाहनों पर निर्भर नहीं करती. |
pickup_to_delivery_time_limit |
इससे शिपमेंट को पिकअप करने से लेकर डिलीवर करने तक का ज़्यादा से ज़्यादा समय पता चलता है. अगर इसे तय किया जाता है, तो यह शून्य या इससे ज़्यादा होना चाहिए. साथ ही, शिपमेंट में कम से कम पिकअप और डिलीवरी शामिल होनी चाहिए. यह इस बात पर निर्भर नहीं करता कि पिकअप और डिलीवरी के लिए कौनसे विकल्प चुने गए हैं. साथ ही, यह वाहन की स्पीड पर भी निर्भर नहीं करता. इसे ज़्यादा से ज़्यादा डाइवर्शन की पाबंदियों के साथ तय किया जा सकता है: समाधान, दोनों स्पेसिफ़िकेशन का पालन करेगा. |
shipment_type |
यह एक ऐसी स्ट्रिंग होती है जिसमें कुछ न कुछ लिखा होता है. इससे शिपमेंट के "टाइप" के बारे में पता चलता है. इस सुविधा का इस्तेमाल, यह |
label |
इससे इस शिपमेंट के लिए लेबल तय होता है. इस लेबल की जानकारी, जवाब में मौजूद |
ignore |
अगर सही है, तो इस शिपमेंट को छोड़ दें, लेकिन अगर मॉडल में कोई
|
penalty_cost |
अगर शिपमेंट पूरा नहीं होता है, तो यह जुर्माना रास्तों की कुल लागत में जोड़ दिया जाता है. किसी शिपमेंट को तब पूरा माना जाता है, जब उसके पिकअप और डिलीवरी के किसी एक विकल्प पर जाया जाता है. लागत को उसी यूनिट में दिखाया जा सकता है जिसका इस्तेमाल मॉडल में लागत से जुड़े अन्य सभी फ़ील्ड के लिए किया जाता है. साथ ही, यह पॉज़िटिव होनी चाहिए. अहम जानकारी: अगर इस पेनल्टी के बारे में नहीं बताया गया है, तो इसे हमेशा के लिए लागू माना जाता है. इसका मतलब है कि शिपमेंट पूरा होना चाहिए. |
pickup_to_delivery_relative_detour_limit |
यह पिकअप से डिलीवरी तक के सबसे छोटे रास्ते की तुलना में, ज़्यादा से ज़्यादा समय बताता है. अगर इसे तय किया जाता है, तो यह शून्य या इससे ज़्यादा होना चाहिए. साथ ही, शिपमेंट में कम से कम पिकअप और डिलीवरी शामिल होनी चाहिए. उदाहरण के लिए, मान लें कि चुने गए पिकअप के विकल्प से सीधे चुने गए डिलीवरी के विकल्प तक पहुंचने में कम से कम समय t लगता है. ऐसे में, अगर एक ही शिपमेंट के लिए, रिलेटिव और ऐब्सलूट, दोनों तरह की सीमाएं तय की गई हैं, तो पिकअप/डिलिवरी के हर संभावित जोड़े के लिए, ज़्यादा पाबंदी वाली सीमा का इस्तेमाल किया जाता है. 2017/10 से, सिर्फ़ तब तक रास्ते में बदलाव करने की सुविधा काम करती है, जब तक यात्रा की अवधि वाहनों पर निर्भर नहीं करती. |
फ़ाइलों के लोड होने के बारे में जानकारी
विज़िट के दौरान, अगर पिकअप करना है, तो वाहन के लोड में पहले से तय की गई रकम जोड़ी जा सकती है. वहीं, अगर डिलीवरी करनी है, तो वाहन के लोड में से पहले से तय की गई रकम घटाई जा सकती है. इस मैसेज में, ऐसी रकम के बारे में बताया गया है. load_demands देखें.
| फ़ील्ड | |
|---|---|
amount |
वह रकम जिससे विज़िट करने वाले वाहन का लोड अलग-अलग होगा. यह एक पूर्णांक है. इसलिए, उपयोगकर्ताओं को सलाह दी जाती है कि वे सटीक वैल्यू पाने के लिए, सही यूनिट चुनें. यह वैल्यू, 0 या उससे ज़्यादा होनी चाहिए. |
VisitRequest
किसी वाहन से की जाने वाली यात्रा का अनुरोध: इसमें भौगोलिक जगह (या दो, नीचे देखें), खुलने और बंद होने का समय, और सेवा की अवधि (वाहन के सामान को पिकअप या ड्रॉप करने के बाद लगने वाला समय) शामिल होती है.
| फ़ील्ड | |
|---|---|
arrival_location |
|
arrival_waypoint |
वह वेपॉइंट जहां वाहन इस |
departure_location |
वह जगह जहां यह वाहन, |
departure_waypoint |
वह वेपॉइंट जहां वाहन इस |
tags[] |
इससे विज़िट के अनुरोध से जुड़े टैग तय किए जाते हैं. खाली या डुप्लीकेट स्ट्रिंग की अनुमति नहीं है. |
time_windows[] |
समय की ऐसी विंडो जो किसी जगह पर पहुंचने के समय को सीमित करती हैं. ध्यान दें कि कोई वाहन, पहुंचने के समय की विंडो के बाहर भी जा सकता है. इसका मतलब है कि पहुंचने का समय + अवधि, समय की विंडो के अंदर होना ज़रूरी नहीं है. अगर वाहन
समयसीमाएं अलग-अलग होनी चाहिए.इसका मतलब है कि कोई भी समयसीमा, दूसरी समयसीमा के साथ ओवरलैप नहीं होनी चाहिए और न ही उसके आस-पास होनी चाहिए. साथ ही, उन्हें बढ़ते क्रम में होना चाहिए.
|
duration |
विज़िट की अवधि, यानी कि वाहन के आने और जाने के बीच का समय.इसे इंतज़ार के संभावित समय में जोड़ा जाएगा. |
cost |
वाहन के रास्ते पर, इस यात्रा के अनुरोध को पूरा करने का शुल्क. इसका इस्तेमाल, शिपमेंट को पिकअप या डिलीवर करने के हर विकल्प के लिए अलग-अलग शुल्क चुकाने के लिए किया जा सकता है. यह शुल्क, |
load_demands |
इस विज़िट के अनुरोध के लिए लोड की मांग. यह |
visit_types[] |
इससे विज़िट के टाइप के बारे में पता चलता है. इसका इस्तेमाल, किसी वाहन को इस यात्रा को पूरा करने के लिए ज़रूरी अतिरिक्त समय देने के लिए किया जा सकता है ( कोई टाइप सिर्फ़ एक बार दिख सकता है. |
label |
इस |
avoid_u_turns |
इससे यह तय होता है कि इस जगह पर ड्राइविंग के रास्तों में यू-टर्न से बचना चाहिए या नहीं. यू-टर्न से बचने की पूरी कोशिश की जाती है, लेकिन इसकी कोई गारंटी नहीं होती. यह एक एक्सपेरिमेंटल सुविधा है और इसके काम करने के तरीके में बदलाव हो सकता है. एक्सपेरिमेंट के तौर पर उपलब्ध: ज़्यादा जानकारी के लिए, https://developers.google.com/maps/tt/route-optimization/experimental/u-turn-avoidance/make-request पर जाएं. |
ShipmentModel
शिपमेंट मॉडल में, शिपमेंट का एक सेट होता है. इसे वाहनों के एक सेट से पूरा किया जाना चाहिए. साथ ही, कुल लागत को कम से कम रखा जाना चाहिए. कुल लागत में ये शामिल हैं:
- वाहनों के रूट की लागत (कुल समय के हिसाब से लागत, यात्रा के समय के हिसाब से लागत, और सभी वाहनों के लिए तय की गई लागत का योग).
- शिपमेंट पूरा न करने पर लगने वाले जुर्माने.
- शिपमेंट की कुल अवधि का शुल्क
| फ़ील्ड | |
|---|---|
shipments[] |
शिपमेंट का ऐसा सेट जिसे मॉडल में पूरा करना ज़रूरी है. |
vehicles[] |
वाहनों का ऐसा सेट जिसका इस्तेमाल विज़िट करने के लिए किया जा सकता है. |
objectives[] |
इस मॉडल के लिए, लक्ष्यों का सेट. हम इन्हें लागत में बदल देंगे. अगर यह खाली नहीं है, तो इनपुट मॉडल की कोई लागत नहीं होनी चाहिए. बदले गए अनुरोध को पाने के लिए, कृपया एक्सपेरिमेंट के तौर पर उपलब्ध: ज़्यादा जानकारी के लिए, https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request पर जाएं. |
global_start_time |
मॉडल के शुरू और खत्म होने का ग्लोबल समय: इस रेंज के बाहर के समय को मान्य नहीं माना जा सकता. मॉडल की समयावधि एक साल से कम होनी चाहिए. इसका मतलब है कि
|
global_end_time |
अगर यह नीति सेट नहीं की गई है, तो डिफ़ॉल्ट वैल्यू के तौर पर 1 जनवरी, 1971 को 00:00:00 यूटीसी (यानी, सेकंड: 31536000, नैनोसेकंड: 0) का इस्तेमाल किया जाता है. |
global_duration_cost_per_hour |
पूरे प्लान की "कुल अवधि" से पता चलता है कि सभी वाहनों के लिए, काम शुरू होने का सबसे पहला समय और काम खत्म होने का सबसे आखिरी समय क्या है. उपयोगकर्ता, इस अवधि के हिसाब से हर घंटे की लागत तय कर सकते हैं. इससे उन्हें काम को जल्द से जल्द पूरा करने में मदद मिलेगी. उदाहरण के लिए, इस लागत की यूनिट वही होनी चाहिए जो |
duration_distance_matrices[] |
मॉडल में इस्तेमाल की गई अवधि और दूरी की मैट्रिक्स के बारे में बताता है. अगर यह फ़ील्ड खाली है, तो इस्तेमाल के उदाहरण:
|
duration_distance_matrix_src_tags[] |
ये टैग, अवधि और दूरी के मैट्रिक्स के सोर्स तय करते हैं; टैग, |
duration_distance_matrix_dst_tags[] |
ये टैग, अवधि और दूरी के मैट्रिक्स की डेस्टिनेशन तय करते हैं; टैग, |
transition_attributes[] |
मॉडल में ट्रांज़िशन एट्रिब्यूट जोड़े गए. |
shipment_type_incompatibilities[] |
शिपमेंट के ऐसे टाइप के सेट जो एक-दूसरे के साथ काम नहीं करते ( |
shipment_type_requirements[] |
|
precedence_rules[] |
प्राथमिकता के नियमों का सेट, जिसे मॉडल में लागू किया जाना चाहिए. अहम जानकारी: प्राथमिकता के नियमों का इस्तेमाल करने से, ऑप्टिमाइज़ की जा सकने वाली समस्या का साइज़ सीमित हो जाता है. अगर प्राथमिकता के नियमों का इस्तेमाल करके किए गए अनुरोधों में कई शिपमेंट शामिल हैं, तो उन्हें अस्वीकार किया जा सकता है. |
max_active_vehicles |
इससे, चालू वाहनों की ज़्यादा से ज़्यादा संख्या सीमित की जाती है. कोई वाहन तब चालू होता है, जब उसके रूट पर कम से कम एक शिपमेंट किया जाता है. इसका इस्तेमाल, उन मामलों में रूट की संख्या को सीमित करने के लिए किया जा सकता है जहां वाहनों की संख्या, ड्राइवर की संख्या से ज़्यादा होती है और वाहनों का फ़्लीट अलग-अलग तरह का होता है. इसके बाद, ऑप्टिमाइज़ेशन की सुविधा, इस्तेमाल करने के लिए वाहनों का सबसे अच्छा सबसेट चुनेगी. यह वैल्यू, शून्य से ज़्यादा होनी चाहिए. |
DurationDistanceMatrix
यह कुकी, विज़िट और वाहन की शुरुआती जगहों से लेकर विज़िट और वाहन की आखिरी जगहों तक की अवधि और दूरी की मैट्रिक्स तय करती है.
| फ़ील्ड | |
|---|---|
rows[] |
यह कुल समय और दूरी के मैट्रिक्स की पंक्तियों के बारे में बताता है. इसमें उतने ही एलिमेंट होने चाहिए जितने |
vehicle_start_tag |
यह टैग बताता है कि अवधि और दूरी की यह मैट्रिक्स किन वाहनों पर लागू होती है. अगर यह खाली है, तो यह सभी वाहनों पर लागू होता है. साथ ही, सिर्फ़ एक मैट्रिक्स हो सकता है. हर वाहन के शुरू होने की जानकारी, सिर्फ़ एक मैट्रिक्स से मेल खानी चाहिए. इसका मतलब है कि उनके सभी मैट्रिक्स का |
पंक्ति
यह अवधि और दूरी के मैट्रिक्स की किसी लाइन के बारे में बताता है.
| फ़ील्ड | |
|---|---|
durations[] |
किसी दी गई लाइन के लिए अवधि की वैल्यू. इसमें |
meters[] |
किसी दी गई लाइन के लिए दूरी की वैल्यू. अगर मॉडल में दूरी से जुड़ी कोई लागत या शर्त नहीं है, तो इसे खाली छोड़ा जा सकता है. अगर ऐसा नहीं है, तो इसमें |
मकसद
लक्ष्य, लागत मॉडल की जगह ले लेते हैं. इसलिए, ये पहले से मौजूद लागत के साथ काम नहीं करते.हर लक्ष्य, पहले से तय की गई कई लागतों से मैप होता है. उदाहरण के लिए, वाहन, शिपमेंट या ट्रांज़िशन एट्रिब्यूट.
एक्सपेरिमेंट के तौर पर उपलब्ध: ज़्यादा जानकारी के लिए, https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request पर जाएं.
| फ़ील्ड | |
|---|---|
type |
मकसद किस तरह का है. |
weight |
यह लक्ष्य, अन्य लक्ष्यों की तुलना में कितना अहम है. यह कोई भी नॉन-नेगेटिव संख्या हो सकती है. वज़न का योग 1 होना ज़रूरी नहीं है. वज़न की डिफ़ॉल्ट वैल्यू 1.0 होती है. |
टाइप
वह ऑब्जेक्टिव टाइप जिसे लागत के सेट के साथ मैप किया जाएगा.
| Enums | |
|---|---|
DEFAULT |
लागत का डिफ़ॉल्ट सेट इस्तेमाल किया जाएगा, ताकि सही समाधान मिल सके. ध्यान दें: इस लक्ष्य का इस्तेमाल अकेले किया जा सकता है. हालांकि, अगर यह लक्ष्य पहले से मौजूद नहीं है, तो इसे हमेशा उपयोगकर्ता के तय किए गए लक्ष्यों में, बेसलाइन के तौर पर 1.0 के वेट के साथ जोड़ा जाएगा. |
MIN_DISTANCE |
"MIN" ऑब्जेक्टिव. तय की गई कुल दूरी को कम करें. |
MIN_WORKING_TIME |
सभी वाहनों के लिए, काम करने के कुल समय को कम से कम करें. |
MIN_TRAVEL_TIME |
ऊपर दिए गए उदाहरण की तरह ही, लेकिन इसमें सिर्फ़ यात्रा के समय पर फ़ोकस किया गया है. |
MIN_NUM_VEHICLES |
कम से कम वाहनों का इस्तेमाल करें. |
PrecedenceRule
दो इवेंट के बीच प्राथमिकता तय करने का नियम (हर इवेंट, शिपमेंट को पिकअप या डिलीवर करने से जुड़ा है): "दूसरे" इवेंट को "पहले" इवेंट के शुरू होने के कम से कम offset_duration बाद शुरू होना चाहिए.
एक ही (या मिलते-जुलते) इवेंट के लिए, कई पूर्ववर्ती इवेंट हो सकते हैं. उदाहरण के लिए, "B को पिकअप करने का इवेंट, A की डिलीवरी के बाद होता है" और "C को पिकअप करने का इवेंट, B को पिकअप करने के बाद होता है".
इसके अलावा, प्राथमिकताएं सिर्फ़ तब लागू होती हैं, जब दोनों शिपमेंट पूरे हो गए हों. ऐसा न होने पर, इन्हें अनदेखा कर दिया जाता है.
| फ़ील्ड | |
|---|---|
first_is_delivery |
इससे पता चलता है कि "first" इवेंट, डिलीवरी है या नहीं. |
second_is_delivery |
इससे पता चलता है कि "दूसरा" इवेंट, डिलीवरी है या नहीं. |
offset_duration |
"पहले" और "दूसरे" इवेंट के बीच का ऑफ़सेट. यह नेगेटिव हो सकता है. |
first_index |
"first" इवेंट का शिपमेंट इंडेक्स. इस फ़ील्ड की वैल्यू देना ज़रूरी है. |
second_index |
"second" इवेंट का शिपमेंट इंडेक्स. इस फ़ील्ड की वैल्यू देना ज़रूरी है. |
ShipmentRoute
किसी वाहन के रास्ते को समय के हिसाब से इस तरह से बांटा जा सकता है (हम मानते हैं कि n बार यात्रा की गई है):
| | | | | T[2], | | |
| Transition | Visit #0 | | | V[2], | | |
| #0 | aka | T[1] | V[1] | ... | V[n-1] | T[n] |
| aka T[0] | V[0] | | | V[n-2],| | |
| | | | | T[n-1] | | |
^ ^ ^ ^ ^ ^ ^ ^
vehicle V[0].start V[0].end V[1]. V[1]. V[n]. V[n]. vehicle
start (arrival) (departure) start end start end end
ध्यान दें कि हम इन दोनों के बीच अंतर करते हैं:
- "समय पर होने वाले इवेंट", जैसे कि वाहन के शुरू और बंद होने का समय, हर यात्रा के शुरू और खत्म होने का समय (यानी कि पहुंचने और निकलने का समय). ये इवेंट, किसी तय समय पर होते हैं.
- "समय के अंतराल" के बारे में जानकारी मिलती है. जैसे, विज़िट और विज़िट के बीच का ट्रांज़िशन. हालांकि, समय के अंतराल की अवधि कभी-कभी शून्य हो सकती है.इसका मतलब है कि यह एक ही सेकंड में शुरू और खत्म हो सकता है. हालांकि, अक्सर इसकी अवधि कुछ न कुछ होती है.
इनवेरिएंट:
- अगर n विज़िट हैं, तो n+1 ट्रांज़िशन होंगे.
- विज़िट से पहले हमेशा ट्रांज़िशन (उसी इंडेक्स का) होता है और विज़िट के बाद ट्रांज़िशन (इंडेक्स + 1) होता है.
- वाहन के चालू होने के बाद, हमेशा ट्रांज़िशन #0 होता है.
- वाहन के खत्म होने से पहले हमेशा ट्रांज़िशन #n होता है.
ज़ूम इन करने पर, यहां बताया गया है कि Transition और Visit के दौरान क्या होता है:
---+-------------------------------------+-----------------------------+-->
| TRANSITION[i] | VISIT[i] |
| | |
| * TRAVEL: the vehicle moves from | PERFORM the visit: |
| VISIT[i-1].departure_location to | |
| VISIT[i].arrival_location, which | * Spend some time: |
| takes a given travel duration | the "visit duration". |
| and distance | |
| | * Load or unload |
| * BREAKS: the driver may have | some quantities from the |
| breaks (e.g. lunch break). | vehicle: the "demand". |
| | |
| * WAIT: the driver/vehicle does | |
| nothing. This can happen for | |
| many reasons, for example when | |
| the vehicle reaches the next | |
| event's destination before the | |
| start of its time window | |
| | |
| * DELAY: *right before* the next | |
| arrival. E.g. the vehicle and/or | |
| driver spends time unloading. | |
| | |
---+-------------------------------------+-----------------------------+-->
^ ^ ^
V[i-1].end V[i].start V[i].end
आखिर में, यहां बताया गया है कि ट्रांज़िशन के दौरान TRAVEL, BREAKS, DELAY, और WAIT को कैसे व्यवस्थित किया जा सकता है.
- ये ओवरलैप नहीं होते.
- DELAY यूनीक होता है और यह ज़रूरी है कि यह अगले स्टॉप (या वाहन के खत्म होने) से ठीक पहले का समय हो. इसलिए, इसके शुरू और खत्म होने का समय जानने के लिए, देरी की अवधि जानना काफ़ी है.
- ब्रेक, समय की ऐसी अवधि होती है जो एक के बाद एक होती है और एक-दूसरे से ओवरलैप नहीं होती. जवाब में, हर ब्रेक के शुरू होने का समय और अवधि बताई जाती है.
- यात्रा और इंतज़ार "प्रीएम्प्टेबल" होते हैं: इस ट्रांज़िशन के दौरान, इन्हें कई बार रोका जा सकता है. क्लाइंट यह मान सकते हैं कि यात्रा "जितनी जल्दी हो सके" शुरू हो जाती है और "इंतज़ार" में बाकी समय लगता है.
एक (जटिल) उदाहरण:
TRANSITION[i]
--++-----+-----------------------------------------------------------++-->
|| | | | | | | ||
|| T | B | T | | B | | D ||
|| r | r | r | W | r | W | e ||
|| a | e | a | a | e | a | l ||
|| v | a | v | i | a | i | a ||
|| e | k | e | t | k | t | y ||
|| l | | l | | | | ||
|| | | | | | | ||
--++-----------------------------------------------------------------++-->
| फ़ील्ड | |
|---|---|
vehicle_index |
रूट पर चलने वाले वाहन की पहचान, सोर्स |
vehicle_label |
इस रास्ते पर चलने वाले वाहन का लेबल, अगर बताया गया है, तो |
vehicle_start_time |
वह समय जब वाहन अपना रास्ता शुरू करता है. |
vehicle_end_time |
वह समय जब वाहन अपने रास्ते पर चलना बंद कर देता है. |
visits[] |
विज़िट का क्रम, जो किसी रास्ते को दिखाता है. visits[i] रास्ते में i-th विज़िट है. अगर यह फ़ील्ड खाली है, तो वाहन को इस्तेमाल नहीं किया गया माना जाता है. |
transitions[] |
रास्ते के लिए ट्रांज़िशन की क्रम से लगाई गई सूची. |
has_traffic_infeasibilities |
ट्रैफ़िक की वजह से, यात्रा में लगने वाले समय का अनुमान |
route_polyline |
रास्ते की एन्कोड की गई पॉलीलाइन. यह फ़ील्ड सिर्फ़ तब भरा जाता है, जब |
breaks[] |
इस रूट पर चलने वाले वाहन के लिए तय किए गए ब्रेक. |
metrics |
इस रास्ते के लिए, अवधि, दूरी, और लोड मेट्रिक. कॉन्टेक्स्ट के हिसाब से, |
vehicle_fullness |
एक्सपेरिमेंट के तौर पर उपलब्ध: इस फ़ील्ड के काम करने के तरीके या इसकी उपलब्धता में आने वाले समय में बदलाव हो सकता है. |
route_costs |
रास्ते की लागत, जिसे लागत से जुड़े अनुरोध फ़ील्ड के हिसाब से बांटा गया है. कुंजियां, OptimizeToursRequest के इनपुट के हिसाब से प्रोटो पाथ होती हैं. उदाहरण के लिए, "model.shipments.pickups.cost". वैल्यू, लागत वाले फ़ील्ड से जनरेट की गई कुल लागत होती है. इसे पूरे रास्ते के हिसाब से एग्रीगेट किया जाता है. दूसरे शब्दों में, costs["model.shipments.pickups.cost"] का मतलब है कि रास्ते में पिकअप करने की सभी लागतों का योग. मॉडल में तय की गई सभी लागतों की जानकारी यहां दी गई है. हालांकि, TransitionAttributes से जुड़ी लागतों की जानकारी सिर्फ़ एग्रीगेट किए गए तरीके से दी जाती है. यह जानकारी 2022/01 से दी जा रही है. |
route_total_cost |
रास्ते की कुल लागत. यह लागत के मैप में मौजूद सभी लागतों का योग होती है. |
ब्रेक
ब्रेक के लागू होने की जानकारी देने वाला डेटा.
| फ़ील्ड | |
|---|---|
start_time |
ब्रेक शुरू होने का समय. |
duration |
ब्रेक की अवधि. |
EncodedPolyline
यह पॉलीलाइन का एन्कोड किया गया वर्शन होता है. पॉलीलाइन एन्कोडिंग के बारे में ज़्यादा जानकारी यहां मिल सकती है: https://developers.google.com/maps/documentation/utilities/polylinealgorithm https://developers.google.com/maps/documentation/javascript/reference/geometry#encoding.
| फ़ील्ड | |
|---|---|
points |
पॉलीलाइन के कोड में बदले गए पॉइंट दिखाने वाली स्ट्रिंग. |
ट्रांज़िशन
रास्ते में मौजूद दो इवेंट के बीच ट्रांज़िशन. ShipmentRoute के बारे में जानकारी देखें.
अगर वाहन में start_location और/या end_location नहीं है, तो यात्रा से जुड़ी मेट्रिक की वैल्यू 0 होती है.
| फ़ील्ड | |
|---|---|
travel_duration |
इस ट्रांज़िशन के दौरान यात्रा की अवधि. |
travel_distance_meters |
ट्रांज़िशन के दौरान तय की गई दूरी. |
traffic_info_unavailable |
जब |
delay_duration |
इस ट्रांज़िशन पर लागू किए गए डिले की अवधि का योग. अगर कोई देरी होती है, तो वह अगले इवेंट (विज़िट या वाहन के रुकने) से ठीक |
break_duration |
इस ट्रांज़िशन के दौरान होने वाले ब्रेक की कुल अवधि. अगर कोई ब्रेक नहीं होता है, तो इसकी वैल्यू 0 होती है. हर ब्रेक के शुरू होने के समय और अवधि की जानकारी, |
wait_duration |
इस बदलाव के दौरान इंतज़ार करने में लगा समय. इंतज़ार की अवधि, काम न करने के समय के बराबर होती है. इसमें ब्रेक का समय शामिल नहीं होता. यह भी ध्यान दें कि इंतज़ार करने का यह समय, कई अलग-अलग समय अंतराल में बंटा हो सकता है. |
total_duration |
ट्रांज़िशन की कुल अवधि. यह जानकारी आपकी सुविधा के लिए दी गई है. यह अवधि इस तरह तय होती है:
|
start_time |
इस ट्रांज़िशन के शुरू होने का समय. |
route_polyline |
ट्रांज़िशन के दौरान फ़ॉलो किए गए रूट का कोड में बदला गया पॉलीलाइन प्रज़ेंटेशन. यह फ़ील्ड सिर्फ़ तब दिखता है, जब |
route_token |
सिर्फ़ आउटपुट. यह एक ओपेक टोकन है. इसे Navigation SDK को पास किया जा सकता है, ताकि नेविगेशन के दौरान रास्ते को फिर से बनाया जा सके. साथ ही, रास्ता बदलने की स्थिति में, जब रास्ता बनाया गया था, तब के मूल मकसद को पूरा किया जा सके. इस टोकन को ओपेक ब्लॉब के तौर पर इस्तेमाल करें. अलग-अलग अनुरोधों के लिए इसकी वैल्यू की तुलना न करें, क्योंकि सेवा से एक ही रास्ता मिलने पर भी इसकी वैल्यू बदल सकती है. यह फ़ील्ड सिर्फ़ तब भरा जाता है, जब |
vehicle_loads |
इस ट्रांज़िशन के दौरान वाहन में मौजूद सामान. यह सामान, हर उस टाइप का होता है जो इस वाहन के पहले ट्रांज़िशन के दौरान लोड किए गए सामान को, वाहन के रूट के शुरुआती लोड माना जाता है. इसके बाद, हर बार आने वाले व्यक्ति के हिसाब से, |
VehicleLoad
यह रिपोर्ट, किसी रूट पर किसी समय वाहन के असल लोड की जानकारी देती है. यह जानकारी, किसी तय किए गए टाइप के लिए होती है (Transition.vehicle_loads देखें).
| फ़ील्ड | |
|---|---|
amount |
दिए गए टाइप के लिए, वाहन पर लोड की गई चीज़ों का वज़न. लोड की यूनिट आम तौर पर टाइप से पता चलती है. |
यहां जाएं
रास्ते में की गई विज़िट. यह विज़िट, Shipment को पिकअप करने या डिलीवर करने से जुड़ी होती है.
| फ़ील्ड | |
|---|---|
shipment_index |
सोर्स |
is_pickup |
अगर वैल्यू सही है, तो इसका मतलब है कि विज़िट, |
visit_request_index |
|
start_time |
विज़िट शुरू होने का समय. ध्यान दें कि वाहन, विज़िट की जगह पर इस समय से पहले भी पहुंच सकता है. समय, |
load_demands |
शिपमेंट और विज़िट के अनुरोध |
detour |
यात्रा से पहले रास्ते में आने वाले शिपमेंट की वजह से, यात्रा में लगने वाला अतिरिक्त समय. साथ ही, समयसीमा की वजह से इंतज़ार में लगने वाला संभावित समय. अगर यात्रा डिलीवरी के लिए है, तो यात्रा में लगने वाले अतिरिक्त समय का हिसाब, पिकअप की यात्रा के हिसाब से लगाया जाता है. यह इस तरह से लगाया जाता है: अगर ऐसा नहीं है, तो इसका हिसाब वाहन के |
shipment_label |
अगर |
visit_label |
अगर |
visit_type |
ज़रूरी नहीं. इससे विज़िट का टाइप पता चलता है. |
injected_solution_location_token |
यह एक अपारदर्शी टोकन होता है. इससे किसी जगह पर जाने की जानकारी मिलती है. इस फ़ील्ड में, नतीजे के रास्तों की विज़िट की जानकारी अपने-आप भर सकती है. ऐसा तब होता है, जब इस विज़िट के लिए एक्सपेरिमेंट के तौर पर उपलब्ध: ज़्यादा जानकारी के लिए, https://developers.google.com/maps/tt/route-optimization/experimental/u-turn-avoidance/make-request पर जाएं. |
VisitType
इससे पता चलता है कि विज़िट, पिकअप, डिलीवरी या Stop के लिए है. Stop पर आने वाले लोगों की जानकारी का इस्तेमाल सिर्फ़ तब किया जाता है, जब मल्टीमॉडल ऑप्टिमाइज़ेशन की सुविधा चालू हो.
| Enums | |
|---|---|
VISIT_TYPE_UNSPECIFIED |
विज़िट के टाइप की जानकारी नहीं दी गई है. |
PICKUP_SHIPMENT |
विज़िट, शिपमेंट पिकअप से जुड़ी होती है. |
DELIVER_SHIPMENT |
यह विज़िट, शिपमेंट की डिलीवरी से जुड़ी होती है. |
ShipmentTypeIncompatibility
यह एट्रिब्यूट, shipment_type के आधार पर शिपमेंट के बीच के अंतर के बारे में बताता है. एक ही रास्ते पर अलग-अलग तरह के शिपमेंट दिखने पर पाबंदी लगाई जाती है. यह पाबंदी, अंतर के मोड के आधार पर लगाई जाती है.
| फ़ील्ड | |
|---|---|
types[] |
उन टाइप की सूची जो काम नहीं करते. अगर दो शिपमेंट के लिए, यहां दी गई |
incompatibility_mode |
कंपैटिबिलिटी से जुड़ी समस्या पर लागू किया गया मोड. |
IncompatibilityMode
ये मोड तय करते हैं कि एक ही रास्ते पर, ज़रूरी शर्तें पूरी न करने वाले शिपमेंट को कैसे दिखाया जाए.
| Enums | |
|---|---|
INCOMPATIBILITY_MODE_UNSPECIFIED |
कंपैटबिलिटी मोड के बारे में जानकारी नहीं दी गई है. इस वैल्यू का इस्तेमाल कभी नहीं किया जाना चाहिए. |
NOT_PERFORMED_BY_SAME_VEHICLE |
इस मोड में, अलग-अलग तरह के दो शिपमेंट को एक ही वाहन में नहीं ले जाया जा सकता. |
NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY |
इस मोड में, एक साथ दो ऐसे शिपमेंट को एक ही वाहन में नहीं रखा जा सकता जो एक-दूसरे के साथ काम नहीं करते:
|
ShipmentTypeRequirement
शिपमेंट के टाइप के आधार पर, शिपमेंट के बीच की ज़रूरी शर्तों के बारे में बताता है. ज़रूरत के हिसाब से, ज़रूरी शर्तों के बारे में जानकारी दी जाती है.
| फ़ील्ड | |
|---|---|
required_shipment_type_alternatives[] |
|
dependent_shipment_types[] |
ध्यान दें: ज़रूरी शर्तों की ऐसी चेन की अनुमति नहीं है जिसमें |
requirement_mode |
ज़रूरत के हिसाब से लागू किया गया मोड. |
RequirementMode
ऐसे मोड जिनसे किसी रूट पर, निर्भर शिपमेंट के दिखने के तरीके के बारे में पता चलता है.
| Enums | |
|---|---|
REQUIREMENT_MODE_UNSPECIFIED |
ज़रूरत के बारे में जानकारी नहीं दी गई है. इस वैल्यू का इस्तेमाल कभी नहीं किया जाना चाहिए. |
PERFORMED_BY_SAME_VEHICLE |
इस मोड में, सभी "डिपेंडेंट" शिपमेंट को उसी वाहन में भेजना होगा जिसमें कम से कम एक "ज़रूरी" शिपमेंट भेजा गया है. |
IN_SAME_VEHICLE_AT_PICKUP_TIME |
इसलिए, "डिपेंडेंट" शिपमेंट पिकअप के लिए इनमें से कोई एक विकल्प चुना जाना चाहिए:
|
IN_SAME_VEHICLE_AT_DELIVERY_TIME |
यह तरीका पहले जैसा ही है. हालांकि, "डिपेंडेंट" शिपमेंट के लिए, यह ज़रूरी है कि डिलीवरी के समय, वाहन में "ज़रूरी" शिपमेंट मौजूद हो. |
SkippedShipment
इससे किसी समाधान में, शिप नहीं किए गए शिपमेंट की जानकारी मिलती है. मामूली मामलों में और/या अगर हम स्किप करने की वजह का पता लगा पाते हैं, तो हम यहां इसकी जानकारी देते हैं.
| फ़ील्ड | |
|---|---|
index |
इंडेक्स, सोर्स |
label |
अगर |
reasons[] |
शिपमेंट को स्किप करने की वजहों की सूची. ऊपर दी गई टिप्पणी |
penalty_cost |
यह एक्सपेरिमेंट के तौर पर उपलब्ध: इस फ़ील्ड के काम करने के तरीके या इसकी उपलब्धता में आने वाले समय में बदलाव हो सकता है. |
estimated_incompatible_vehicle_ratio |
उन वाहनों का अनुमानित अनुपात जो यहां दी गई कम से कम एक वजह से, इस शिपमेंट को पूरा नहीं कर सकते. ध्यान दें: इस फ़ील्ड में जानकारी सिर्फ़ तब भरी जाती है, जब वजहों में किसी वाहन का ज़िक्र किया गया हो. एक्सपेरिमेंट के तौर पर उपलब्ध: इस फ़ील्ड के काम करने के तरीके या इसकी उपलब्धता में आने वाले समय में बदलाव हो सकता है. |
कारण
अगर हम यह बता सकते हैं कि शिपमेंट को क्यों स्किप किया गया, तो इसकी वजहें यहां दी जाएंगी. अगर सभी वाहनों के लिए वजह एक जैसी नहीं है, तो reason में एक से ज़्यादा एलिमेंट होंगे. छोड़े गए शिपमेंट के लिए, डुप्लीकेट वजहें नहीं हो सकतीं. इसका मतलब है कि example_vehicle_index को छोड़कर, सभी फ़ील्ड एक जैसे नहीं हो सकते. उदाहरण:
reasons {
code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
example_vehicle_index: 1
example_exceeded_capacity_type: "Apples"
}
reasons {
code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
example_vehicle_index: 3
example_exceeded_capacity_type: "Pears"
}
reasons {
code: CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT
example_vehicle_index: 1
}
शिपिंग के लिए छोड़े गए वाहन के साथ, कोई भी वाहन इस्तेमाल नहीं किया जा सकता. सभी वाहनों के लिए वजहें अलग-अलग हो सकती हैं. हालांकि, कम से कम एक वाहन (वाहन 1) में "सेब" की क्षमता से ज़्यादा सेब रखे गए हैं, कम से कम एक वाहन (वाहन 3) में "नाशपाती" की क्षमता से ज़्यादा नाशपाती रखे गए हैं, और कम से कम एक वाहन (वाहन 1) ने तय की गई दूरी से ज़्यादा दूरी तय की है.
| फ़ील्ड | |
|---|---|
code |
कोड की टिप्पणियां देखें. |
example_vehicle_indices[] |
एक्सपेरिमेंट के तौर पर उपलब्ध: इस फ़ील्ड के काम करने के तरीके या इसकी उपलब्धता में आने वाले समय में बदलाव हो सकता है. |
example_exceeded_capacity_type |
अगर वजह का कोड |
example_vehicle_index |
अगर वजह, शिपमेंट में इस्तेमाल होने वाले वाहन के साथ काम न करने से जुड़ी है, तो यह फ़ील्ड, काम के किसी एक वाहन का इंडेक्स दिखाता है. |
कोड
वजह के टाइप की पहचान करने वाला कोड. यहां दिए गए क्रम का कोई मतलब नहीं है. खास तौर पर, इससे यह पता नहीं चलता कि अगर दोनों वजहें लागू होती हैं, तो समाधान में कौनसी वजह पहले दिखेगी.
| Enums | |
|---|---|
CODE_UNSPECIFIED |
इसका इस्तेमाल कभी नहीं किया जाना चाहिए. |
NO_VEHICLE |
मॉडल में कोई ऐसा वाहन नहीं है जिससे सभी शिपमेंट पूरे न किए जा सकें. |
DEMAND_EXCEEDS_VEHICLE_CAPACITY |
शिपमेंट की मांग, कुछ तरह की क्षमता के लिए वाहन की क्षमता से ज़्यादा है. इनमें से एक example_exceeded_capacity_type है. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT |
शिपिंग के लिए तय की गई कम से कम दूरी, वाहन की ध्यान दें कि इस कैलकुलेशन के लिए, हम जियोडेसिक दूरी का इस्तेमाल करते हैं. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT |
इस शिपमेंट को पूरा करने में लगने वाला कम से कम समय, वाहन के ध्यान दें: यात्रा में लगने वाले समय का हिसाब, सबसे अच्छे मामले में लगाया जाता है. जैसे, जियोडेसिक दूरी x 36 मीटर/सेकंड (लगभग 130 कि॰मी॰/घंटा). |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT |
ऊपर दिए गए उदाहरण की तरह ही, लेकिन इसमें सिर्फ़ यात्रा में लगने वाले कम से कम समय और वाहन के travel_duration_limit की तुलना की जाती है. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS |
अगर वाहन, शिपिंग के लिए सबसे पहले उपलब्ध होने के समय पर शुरू होता है, तो सबसे अच्छे मामले में भी वह इस शिपमेंट को पूरा नहीं कर पाएगा. समय का हिसाब लगाने के लिए, CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT देखें. कुल समय की वजह से, वाहन शिपिंग के लिए सबसे बाद में उपलब्ध होने के समय के बाद तक उपलब्ध रहेगा. |
VEHICLE_NOT_ALLOWED |
शिपमेंट के allowed_vehicle_indices फ़ील्ड में कोई वैल्यू मौजूद है और यह वाहन उससे जुड़ा नहीं है. |
VEHICLE_IGNORED |
वाहन के एक्सपेरिमेंट के तौर पर उपलब्ध: इस फ़ील्ड के काम करने के तरीके या इसकी उपलब्धता में आने वाले समय में बदलाव हो सकता है. |
SHIPMENT_IGNORED |
शिपमेंट के एक्सपेरिमेंट के तौर पर उपलब्ध: इस फ़ील्ड के काम करने के तरीके या इसकी उपलब्धता में आने वाले समय में बदलाव हो सकता है. |
SKIPPED_IN_INJECTED_SOLUTION_CONSTRAINT |
शिपमेंट को एक्सपेरिमेंट के तौर पर उपलब्ध: इस फ़ील्ड के काम करने के तरीके या इसकी उपलब्धता में आने वाले समय में बदलाव हो सकता है. |
VEHICLE_ROUTE_IS_FULLY_SEQUENCE_CONSTRAINED |
एक्सपेरिमेंट के तौर पर उपलब्ध: इस फ़ील्ड के काम करने के तरीके या इसकी उपलब्धता में आने वाले समय में बदलाव हो सकता है. |
ZERO_PENALTY_COST |
शिपमेंट पर कोई जुर्माना नहीं लगा है. यह बेहतर मॉडलिंग के लिए फ़ायदेमंद हो सकता है. हालांकि, इससे यह भी पता चल सकता है कि शिपमेंट को क्यों स्किप किया गया. एक्सपेरिमेंट के तौर पर उपलब्ध: इस फ़ील्ड के काम करने के तरीके या इसकी उपलब्धता में आने वाले समय में बदलाव हो सकता है. |
TimeWindow
टाइम विंडो से, किसी इवेंट के समय को सीमित किया जाता है. जैसे, किसी जगह पर पहुंचने का समय या किसी वाहन के शुरू और खत्म होने का समय.
टाइम विंडो की हार्ड बाउंड्री, start_time और end_time, इवेंट के सबसे पहले और सबसे बाद के समय को लागू करती हैं, ताकि start_time <= event_time <=
end_time. सॉफ़्ट टाइम विंडो की निचली सीमा, soft_start_time, से पता चलता है कि इवेंट को soft_start_time या उसके बाद होना चाहिए. ऐसा न होने पर, इवेंट के सॉफ़्ट स्टार्ट टाइम से पहले होने पर, इवेंट के लिए ज़्यादा कीमत चुकानी पड़ती है. सॉफ़्ट टाइम विंडो की ऊपरी सीमा, soft_end_time, से यह पता चलता है कि इवेंट को soft_end_time या उससे पहले होना चाहिए. अगर इवेंट soft_end_time के बाद होता है, तो इवेंट में लगने वाली लागत, soft_end_time के बाद इवेंट होने में लगे समय के हिसाब से तय की जाती है. start_time, end_time, soft_start_time, और soft_end_time, ग्लोबल टाइम लिमिट (ShipmentModel.global_start_time और ShipmentModel.global_end_time देखें) के मुताबिक होने चाहिए. साथ ही, इन्हें इन बातों का ध्यान रखना चाहिए:
0 <= `start_time` <= `end_time` and
0 <= `start_time` <= `soft_start_time` and
0 <= `soft_end_time` <= `end_time`.
| फ़ील्ड | |
|---|---|
start_time |
हार्ड टाइम विंडो के शुरू होने का समय. अगर इसे तय नहीं किया गया है, तो इसे |
end_time |
यह हार्ड टाइम विंडो के खत्म होने का समय है. अगर इसे तय नहीं किया गया है, तो इसे |
soft_start_time |
टाइम विंडो के सॉफ़्ट स्टार्ट का समय. |
soft_end_time |
टाइम विंडो के खत्म होने का समय. |
cost_per_hour_before_soft_start_time |
अगर इवेंट, soft_start_time से पहले होता है, तो मॉडल में अन्य लागतों के साथ प्रति घंटे की लागत जोड़ी जाती है. इसकी गणना इस तरह की जाती है: यह लागत पॉज़िटिव होनी चाहिए. साथ ही, इस फ़ील्ड को सिर्फ़ तब सेट किया जा सकता है, जब soft_start_time सेट किया गया हो. |
cost_per_hour_after_soft_end_time |
अगर इवेंट यह लागत पॉज़िटिव होनी चाहिए. साथ ही, इस फ़ील्ड को सिर्फ़ तब सेट किया जा सकता है, जब |
TransitionAttributes
यह कुकी, किसी रास्ते पर लगातार दो बार आने के बीच होने वाले ट्रांज़िशन के एट्रिब्यूट के बारे में बताती है. एक ही ट्रांज़िशन पर कई TransitionAttributes लागू हो सकते हैं: ऐसे में, सभी अतिरिक्त लागतें जुड़ जाती हैं और सबसे ज़्यादा पाबंदी या सीमा लागू होती है (नैचुरल "AND" सिमैंटिक के मुताबिक).
| फ़ील्ड | |
|---|---|
src_tag |
ऐसे टैग जो (src->dst) ट्रांज़िशन का सेट तय करते हैं. ये एट्रिब्यूट इन पर लागू होते हैं. सोर्स विज़िट या वाहन के शुरू होने की जानकारी तब मैच होती है, जब उसके |
excluded_src_tag |
|
dst_tag |
किसी डेस्टिनेशन पर जाने या वाहन के रुकने की जगह की जानकारी तब मैच होती है, जब उसके |
excluded_dst_tag |
|
cost |
इससे इस ट्रांज़िशन को पूरा करने की लागत के बारे में पता चलता है. यह मॉडल में मौजूद अन्य सभी लागतों की तरह ही यूनिट में होती है और यह नेगेटिव नहीं होनी चाहिए. यह अन्य सभी मौजूदा लागतों के ऊपर लागू होती है. |
cost_per_kilometer |
इससे, ट्रांज़िशन के दौरान तय की गई दूरी पर लागू होने वाली प्रति किलोमीटर की लागत के बारे में पता चलता है. यह वाहनों पर तय किए गए किसी भी |
distance_limit |
यह ट्रांज़िशन करते समय तय की गई दूरी की सीमा तय करता है. जून 2021 से, सिर्फ़ सॉफ़्ट लिमिट सेट की जा सकती हैं. |
delay |
इससे ट्रांज़िशन में लगने वाले समय के बारे में पता चलता है. यह देरी हमेशा सोर्स विज़िट खत्म होने के बाद और डेस्टिनेशन विज़िट शुरू होने से पहले होती है. |
उरी
यह एक यूनिफ़ॉर्म रिसोर्स आइडेंटिफ़ायर है. यह ऐसे संसाधन की ओर ले जाता है जिसे Route Optimization API पढ़ और लिख सकता है.
| फ़ील्ड | |
|---|---|
uri |
संसाधन का यूआरआई. ऐसा हो सकता है कि संसाधन अभी मौजूद न हो. संसाधन के कॉन्टेंट को JSON या textproto के तौर पर कोड में बदला जाता है. सिर्फ़ Google Cloud Storage संसाधनों का इस्तेमाल किया जा सकता है. अगर संसाधन को JSON के तौर पर कोड में बदला गया है, तो संसाधन के नाम के आखिर में |
वाहन
शिपमेंट की समस्या में वाहन को मॉडल करता है. शिपमेंट की समस्या को हल करने से, इस वाहन के लिए start_location से शुरू होकर end_location पर खत्म होने वाला एक रूट बन जाएगा. रूट, विज़िट का क्रम होता है (ShipmentRoute देखें).
| फ़ील्ड | |
|---|---|
display_name |
वाहन का वह डिसप्ले नेम जो उपयोगकर्ता ने तय किया है. यह ज़्यादा से ज़्यादा 63 वर्णों का हो सकता है. इसमें UTF-8 वर्णों का इस्तेमाल किया जा सकता है. |
travel_mode |
यात्रा का वह मोड जिससे वाहन के लिए इस्तेमाल की जा सकने वाली सड़कों और उसकी स्पीड पर असर पड़ता है. |
route_modifiers |
शर्तों का एक सेट, जिसे पूरा करने पर दिए गए वाहन के लिए रास्तों का हिसाब लगाने के तरीके पर असर पड़ता है. |
start_location |
वह भौगोलिक जगह जहां से वाहन, शिपमेंट पिक अप करने से पहले शुरू होता है. अगर यह जानकारी नहीं दी जाती है, तो वाहन अपनी पहली पिकअप लोकेशन से यात्रा शुरू करता है. अगर शिपमेंट मॉडल में अवधि और दूरी की मैट्रिक्स मौजूद हैं, तो |
start_waypoint |
यह एक ऐसा वेपॉइंट होता है जो किसी भौगोलिक जगह को दिखाता है. यहां से वाहन, शिपमेंट पिक अप करने से पहले शुरू होता है. अगर न तो |
end_location |
वह भौगोलिक जगह जहां वाहन, आखिरी |
end_waypoint |
यह एक ऐसा वेपॉइंट होता है जो किसी भौगोलिक जगह को दिखाता है. वाहन अपनी आखिरी |
start_tags[] |
इससे वाहन के रास्ते की शुरुआत में जोड़े गए टैग के बारे में पता चलता है. खाली या डुप्लीकेट स्ट्रिंग इस्तेमाल करने की अनुमति नहीं है. |
end_tags[] |
इससे वाहन के रूट के आखिर में जोड़े गए टैग के बारे में पता चलता है. खाली या डुप्लीकेट स्ट्रिंग इस्तेमाल करने की अनुमति नहीं है. |
start_time_windows[] |
वह समयावधि जिसके दौरान वाहन, अपनी शुरुआती जगह से रवाना हो सकता है. ये ग्लोबल टाइम लिमिट के अंदर होने चाहिए ( बार-बार इस्तेमाल किए जाने वाले एक ही फ़ील्ड की समयसीमाएं अलग-अलग होनी चाहिए.इसका मतलब है कि कोई भी समयसीमा, दूसरी समयसीमा के साथ ओवरलैप नहीं होनी चाहिए और न ही उसके आस-पास होनी चाहिए. साथ ही, उन्हें क्रम से लगाया जाना चाहिए.
|
end_time_windows[] |
वह समयावधि जिसके दौरान वाहन अपनी मंज़िल पर पहुँच सकता है. ये ग्लोबल टाइम लिमिट के अंदर होने चाहिए ( बार-बार इस्तेमाल किए जाने वाले एक ही फ़ील्ड की समयसीमाएं अलग-अलग होनी चाहिए.इसका मतलब है कि कोई भी समयसीमा, दूसरी समयसीमा के साथ ओवरलैप नहीं होनी चाहिए और न ही उसके आस-पास होनी चाहिए. साथ ही, उन्हें क्रम से लगाया जाना चाहिए.
|
unloading_policy |
वाहन पर सामान उतारने की नीति लागू की गई है. |
load_limits |
वाहन की क्षमताएं (उदाहरण के लिए, वज़न, वॉल्यूम, पैलेट की संख्या). मैप में मौजूद कुंजियां, लोड के टाइप के आइडेंटिफ़ायर होती हैं. ये |
cost_per_hour |
वाहन की लागत: सभी लागतें जोड़ दी जाती हैं और वे वाहन के रास्ते पर हर घंटे की लागत. यह लागत, रास्ते में लगने वाले कुल समय पर लागू होती है. इसमें यात्रा में लगने वाला समय, इंतज़ार का समय, और विज़िट का समय शामिल होता है. सिर्फ़ |
cost_per_traveled_hour |
वाहन के रास्ते में लगने वाले हर घंटे की लागत. यह लागत सिर्फ़ रास्ते में लगने वाले यात्रा में लगने वाला समय पर लागू होती है.यानी, |
cost_per_kilometer |
वाहन के रास्ते के हिसाब से, प्रति किलोमीटर का शुल्क. यह शुल्क, |
fixed_cost |
अगर इस वाहन का इस्तेमाल शिपमेंट को मैनेज करने के लिए किया जाता है, तो तय की गई लागत लागू होती है. |
used_if_route_is_empty |
यह फ़ील्ड सिर्फ़ उन वाहनों पर लागू होता है जिनके रूट पर कोई शिपमेंट नहीं होता. इससे पता चलता है कि इस मामले में वाहन को इस्तेमाल किया गया माना जाना चाहिए या नहीं. अगर यह वैल्यू सही है, तो वाहन अपनी शुरुआती जगह से आखिरी जगह तक जाता है. भले ही, वह कोई शिपमेंट न ले जाए. साथ ही, शुरुआती जगह से आखिरी जगह तक जाने में लगने वाले समय और दूरी के हिसाब से शुल्क लिया जाता है. इसके अलावा, यह वाहन अपनी शुरुआती जगह से आखिरी जगह तक नहीं जाता है. साथ ही, इस वाहन के लिए कोई |
route_duration_limit |
वाहन के पूरे रास्ते की अवधि पर लागू सीमा. किसी |
travel_duration_limit |
वाहन के रूट की यात्रा की अवधि पर लागू होने वाली सीमा. किसी दिए गए |
route_distance_limit |
वाहन के रास्ते की कुल दूरी पर लागू सीमा. किसी |
extra_visit_duration_for_visit_type |
यह विज़िट टाइप की स्ट्रिंग से अवधि तक का मैप तय करता है. समयावधि, अगर किसी विज़िट के अनुरोध में कई तरह की समस्याएं हैं, तो मैप में हर समस्या के लिए अवधि जोड़ दी जाएगी. |
break_rule |
इस वाहन पर लागू होने वाले ब्रेक के शेड्यूल के बारे में बताता है. अगर यह खाली है, तो इस वाहन के लिए कोई ब्रेक शेड्यूल नहीं किया जाएगा. |
label |
इससे इस वाहन के लिए लेबल तय किया जाता है. इस लेबल को रिस्पॉन्स में, इससे जुड़े |
ignore |
अगर यह वैल्यू सही है, तो अगर अगर |
travel_duration_multiple |
यह एक ऐसा मल्टीप्लिकेटिव फ़ैक्टर तय करता है जिसका इस्तेमाल, इस वाहन के यात्रा समय को बढ़ाने या घटाने के लिए किया जा सकता है. उदाहरण के लिए, इसे 2.0 पर सेट करने का मतलब है कि यह वाहन धीमा है और इसे यात्रा करने में उतना समय लगता है जितना सामान्य वाहनों को लगता है. इस मल्टीपल से, विज़िट की अवधि पर कोई असर नहीं पड़ता. अगर चेतावनी: इस मल्टीपल को लागू करने के बाद, यात्रा के समय को सबसे नज़दीकी सेकंड में बदल दिया जाएगा. हालांकि, ऐसा कोई भी संख्यात्मक ऑपरेशन करने से पहले किया जाएगा. इसलिए, छोटे मल्टीपल से सटीक जानकारी नहीं मिल सकती.
|
DurationLimit
यह किसी वाहन के रास्ते की ज़्यादा से ज़्यादा अवधि तय करने वाली सीमा होती है. यह हार्ड या सॉफ्ट हो सकता है.
सॉफ़्ट लिमिट फ़ील्ड तय किए जाने पर, सॉफ़्ट मैक्स थ्रेशोल्ड और उससे जुड़ी लागत, दोनों को एक साथ तय किया जाना चाहिए.
| फ़ील्ड | |
|---|---|
max_duration |
यह एक तय सीमा है, जिसके तहत अवधि को ज़्यादा से ज़्यादा max_duration तक सीमित किया जाता है. |
soft_max_duration |
सॉफ़्ट लिमिट में, ज़्यादा से ज़्यादा अवधि की सीमा लागू नहीं की जाती. हालांकि, इसका उल्लंघन करने पर, रूट पर शुल्क लगता है. यह लागत, मॉडल में बताई गई अन्य लागतों में जुड़ जाती है. इसकी यूनिट भी वही होती है. अगर |
quadratic_soft_max_duration |
सॉफ़्ट लिमिट में, ज़्यादा से ज़्यादा अवधि की सीमा लागू नहीं होती. हालांकि, इसका उल्लंघन करने पर, अवधि के हिसाब से रास्ते पर शुल्क लगता है. यह लागत, मॉडल में बताई गई अन्य लागतों में जुड़ जाती है. इसकी यूनिट भी वही होती है. अगर
|
cost_per_hour_after_soft_max |
किराया नेगेटिव नहीं होना चाहिए. |
cost_per_square_hour_after_quadratic_soft_max |
अगर अगर अवधि थ्रेशोल्ड से कम है, तो अतिरिक्त शुल्क नहीं लगता. अगर अवधि थ्रेशोल्ड से ज़्यादा है, तो शुल्क इस तरह से तय होता है: किराया नेगेटिव नहीं होना चाहिए. |
LoadLimit
यह किसी वाहन पर लागू होने वाली लोड लिमिट तय करता है. उदाहरण के लिए, "यह ट्रक सिर्फ़ 3,500 किलोग्राम तक का सामान ले जा सकता है". load_limits देखें.
| फ़ील्ड | |
|---|---|
soft_max_load |
लोड की एक सॉफ़्ट लिमिट. |
cost_per_unit_above_soft_max |
अगर इस वाहन के रूट पर कभी भी |
start_load_interval |
रास्ते की शुरुआत में, वाहन के लिए तय किया गया लोड इंटरवल. |
end_load_interval |
रास्ते के आखिर में, वाहन के लोड होने का सही समय. |
max_load |
ज़्यादा से ज़्यादा कितना लोड स्वीकार किया जा सकता है. |
cost_per_kilometer |
इस वाहन से एक किलोमीटर की दूरी तय करने पर, एक यूनिट लोड को ले जाने की लागत. इसका इस्तेमाल ईंधन की खपत के प्रॉक्सी के तौर पर किया जा सकता है: अगर लोड का वज़न (न्यूटन में) है, तो लोड*किलोमीटर में ऊर्जा का डाइमेंशन होता है. एक्सपेरिमेंट के तौर पर उपलब्ध: ज़्यादा जानकारी के लिए, https://developers.google.com/maps/tt/route-optimization/experimental/load-cost/make-request पर जाएं. |
cost_per_traveled_hour |
इस वाहन के लिए, एक घंटे में एक यूनिट लोड ले जाने की लागत. एक्सपेरिमेंट के तौर पर उपलब्ध: ज़्यादा जानकारी के लिए, https://developers.google.com/maps/tt/route-optimization/experimental/load-cost/make-request पर जाएं. |
इंटरवल
लोड की जा सकने वाली रकम का इंटरवल.
| फ़ील्ड | |
|---|---|
min |
कम से कम स्वीकार्य लोड. यह वैल्यू, 0 या उससे ज़्यादा होनी चाहिए. अगर दोनों वैल्यू दी गई हैं, तो |
max |
ज़्यादा से ज़्यादा स्वीकार्य लोड. यह वैल्यू, 0 या उससे ज़्यादा होनी चाहिए. अगर इस एट्रिब्यूट की वैल्यू नहीं दी जाती है, तो इस मैसेज से ज़्यादा से ज़्यादा लोड पर कोई पाबंदी नहीं लगती. अगर दोनों वैल्यू दी गई हैं, तो |
LoadCost
Transition के दौरान, एक यूनिट लोड को ले जाने की लागत. किसी लोड के लिए, लागत दो हिस्सों का योग होती है:
- min(load,
load_threshold) *cost_per_unit_below_threshold - max(0, load -
load_threshold) *cost_per_unit_above_threshold
इस लागत के साथ, समाधान पहले ज़्यादा मांग वाले प्रॉडक्ट डिलीवर करते हैं या ज़्यादा मांग वाले प्रॉडक्ट को आखिर में पिकअप करते हैं. उदाहरण के लिए, अगर किसी वाहन में
load_limit {
key: "weight"
value {
cost_per_kilometer {
load_threshold: 15
cost_per_unit_below_threshold: 2.0
cost_per_unit_above_threshold: 10.0
}
}
}
और इसका रूट, ट्रांज़िशन के साथ इस तरह से है: शुरू करें, पिकअप करें, पिकअप करें, डिलीवरी करें, डिलीवरी करें, खत्म करें:
transition { vehicle_load['weight'] { amount: 0 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 20 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 0 }
travel_distance_meters: 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 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 0 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 10 }
travel_distance_meters: 1000.0 }
transition { vehicle_load['weight'] { amount: 0 }
travel_distance_meters: 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 पर जाएं.
| फ़ील्ड | |
|---|---|
load_threshold |
लोड की वह मात्रा जिसके बाद, लोड की एक यूनिट को ले जाने की लागत, cost_per_unit_below_threshold से बदलकर cost_per_unit_above_threshold हो जाती है. यह वैल्यू, 0 से ज़्यादा या इसके बराबर होनी चाहिए. |
cost_per_unit_below_threshold |
लोड की एक यूनिट को ले जाने की लागत. यह लागत, 0 और थ्रेशोल्ड के बीच की हर यूनिट के लिए होती है. यह एक सीमित वैल्यू होनी चाहिए और >= 0 होनी चाहिए. |
cost_per_unit_above_threshold |
थ्रेशोल्ड से ऊपर की हर यूनिट के लिए, लोड की एक यूनिट को ले जाने की लागत. खास मामले में, थ्रेशोल्ड = 0 होने पर, यह प्रति यूनिट तय की गई लागत होती है. यह एक सीमित वैल्यू होनी चाहिए और >= 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 |
चलकर जाने के रास्ते की जानकारी के लिए यात्रा का मोड. |
UnloadingPolicy
वाहन से सामान उतारने के तरीके के बारे में नीति. यह सिर्फ़ उन शिपमेंट पर लागू होता है जिनमें पिकअप और डिलीवरी, दोनों की सुविधा उपलब्ध है.
unloading_policy के अलावा, अन्य शिपमेंट को रूट पर कहीं भी डिलीवर किया जा सकता है.
| Enums | |
|---|---|
UNLOADING_POLICY_UNSPECIFIED |
सामान उतारने की नीति के बारे में जानकारी नहीं दी गई है. डिलीवरी, पिकअप के बाद ही होनी चाहिए. |
LAST_IN_FIRST_OUT |
डिलीवरी, पिकअप के उल्टे क्रम में होनी चाहिए |
FIRST_IN_FIRST_OUT |
डिलीवरी, पिकअप के क्रम में ही होनी चाहिए |
VehicleFullness
VehicleFullness एक मेट्रिक है. इससे यह पता चलता है कि वाहन में कितनी जगह खाली है. हर VehicleFullness फ़ील्ड की वैल्यू 0 से 1 के बीच होती है. इसकी गिनती, कैप की गई मेट्रिक फ़ील्ड (जैसे, AggregatedMetrics.travel_distance_meters) और उससे जुड़ी वाहन की सीमा (जैसे, Vehicle.route_distance_limit) के अनुपात के तौर पर की जाती है. हालांकि, ऐसा तब होता है, जब वाहन की सीमा मौजूद हो. ऐसा न करने पर, फ़ुलनेस रेशियो सेट नहीं होता. अगर सीमा 0 है, तो फ़ील्ड को 1 पर सेट किया जाता है. ध्यान दें: जब किसी रास्ते पर ट्रैफ़िक की वजह से यात्रा करना मुश्किल हो जाता है, तो कुछ मामलों में, बस में यात्रियों की संख्या का अनुपात 1.0 से ज़्यादा हो सकता है. उदाहरण के लिए, बस तय की गई दूरी से ज़्यादा चल सकती है. ऐसे मामलों में, हम फ़ुलनेस वैल्यू को 1.0 पर सीमित कर देते हैं.
| फ़ील्ड | |
|---|---|
max_fullness |
इस मैसेज में मौजूद अन्य सभी फ़ील्ड की ज़्यादा से ज़्यादा वैल्यू. |
distance |
|
travel_duration |
[AggregatedMetrics.travel_duration_seconds][] और |
active_duration |
[AggregatedMetrics.total_duration_seconds][] और |
max_load |
सभी तरह के [AggregatedMetrics.max_load][] और उनके |
active_span |
किसी वाहन के लिए, यह अनुपात (vehicle_end_time - vehicle_start_time) / (latest_vehicle_end_time - earliest_vehicle_start_time) होता है. अगर डिनॉमिनेटर मौजूद नहीं है, तो इसके बजाय ( |
वेपॉइंट
यह एक वेपॉइंट को शामिल करता है. वेपॉइंट, VisitRequest के पहुंचने और जाने की जगहों के साथ-साथ वाहनों के शुरू और खत्म होने की जगहों को मार्क करते हैं.
| फ़ील्ड | |
|---|---|
side_of_road |
ज़रूरी नहीं. इससे पता चलता है कि इस वेपॉइंट की जगह पर, वाहन को सड़क के किसी खास किनारे पर रोकने को प्राथमिकता दी जानी चाहिए. इस वैल्यू को सेट करने पर, रास्ता उस जगह से होकर गुज़रेगा. इससे वाहन, सड़क के उस किनारे पर रुक सकेगा जहां वह जगह सड़क के बीच से ज़्यादा करीब है. यह विकल्प, 'पैदल चलना' यात्रा मोड के लिए काम नहीं करता. |
vehicle_stopover |
इससे पता चलता है कि वेपॉइंट पर वाहन को रुकना है, ताकि यात्रियों को पिक अप या ड्रॉप ऑफ़ किया जा सके. यह विकल्प सिर्फ़ 'DRIVING' ट्रैवल मोड के लिए काम करता है. साथ ही, यह तब काम करता है, जब 'location_type' की वैल्यू 'location' हो. एक्सपेरिमेंट के तौर पर उपलब्ध: इस फ़ील्ड के काम करने के तरीके या इसकी उपलब्धता में आने वाले समय में बदलाव हो सकता है. |
यूनियन फ़ील्ड location_type. किसी जगह की जानकारी दिखाने के अलग-अलग तरीके. location_type इनमें से सिर्फ़ एक हो सकता है: |
|
location |
भौगोलिक निर्देशांकों का इस्तेमाल करके तय किया गया पॉइंट. इसमें एक वैकल्पिक हेडिंग भी शामिल होती है. |
place_id |
रास्ते के किसी पॉइंट से जुड़ा POI प्लेस आईडी. VisitRequest के लिए, किसी जगह पर पहुंचने या वहां से निकलने की जगह के बारे में बताने के लिए, किसी ऐसे प्लेस आईडी का इस्तेमाल करें जो उस जगह के लिए नेविगेशन की LatLng लोकेशन तय करने के लिए काफ़ी सटीक हो. उदाहरण के लिए, किसी इमारत की जगह का आईडी इस्तेमाल किया जा सकता है. हालांकि, किसी सड़क की जगह का आईडी इस्तेमाल करने का सुझाव नहीं दिया जाता. |