ट्रैफ़िक की चुनी गई प्राथमिकताओं के आधार पर, रास्ते की जानकारी की सटीकता और अनुरोध की परफ़ॉर्मेंस को दो तरीकों से बैलेंस किया जाता है:
- ट्रैफ़िक की जानकारी के साथ: सबसे सटीक नतीजे दिखाता है (ज़्यादा इंतज़ार करना पड़ सकता है).
- ट्रैफ़िक की जानकारी नहीं है: नतीजे जल्द से जल्द दिखाएं (सबसे कम समय में).
अनुरोध करते समय, यह तय करें कि सबसे सटीक नतीजे दिखाना बेहतर है या नतीजे जल्द से जल्द दिखाना बेहतर है. Routes लाइब्रेरी, ऐसे विकल्प उपलब्ध कराती है जिनकी मदद से, जवाब के डेटा की क्वालिटी और जवाब मिलने में लगने वाले समय को कंट्रोल किया जा सकता है.
ट्रैफ़िक लेवल और ट्रैफ़िक मॉडल सेट करना
ट्रैफ़िक लेवल तय करने के लिए, ComputeRoutesRequest पर routingPreference सेट करें. यहां दी गई सूची में, उपलब्ध routingPreference विकल्प दिखाए गए हैं:
TRAFFIC_UNAWARE(डिफ़ॉल्ट): इससे सबसे कम समय में नतीजे मिलते हैं. हालांकि, इसमें रूटिंग की अनुमानित जानकारी होती है.TRAFFIC_AWARE: इससे ट्रैफ़िक के रीयल-टाइम डेटा का इस्तेमाल करके, ज़्यादा सटीक नतीजे मिलते हैं. हालांकि, इसमें ज़्यादा समय लगता है.TRAFFIC_AWARE_OPTIMAL: यह विकल्प, ट्रैफ़िक के रीयल-टाइम डेटा का इस्तेमाल करके, सबसे सटीक नतीजे देता है. हालांकि, इसमें सबसे ज़्यादा समय लगता है.
TRAFFIC_MODEL
प्रॉपर्टी, ट्रैफ़िक में लगने वाले समय का अनुमान लगाने के लिए इस्तेमाल किए जाने वाले अनुमानों को दिखाती है (
TrafficModel.BEST_GUESS (डिफ़ॉल्ट),
TrafficModel.OPTIMISTIC,
TrafficModel.PESSIMISTIC).
ट्रैफ़िक की जानकारी के हिसाब से रास्ता चुनने की सुविधा को चालू करने का तरीका
ट्रैफ़िक की जानकारी के हिसाब से रास्ते का अनुरोध करने के लिए, यह तरीका अपनाएं:
-
travelModeप्रॉपर्टी कोDRIVINGपर सेट करें. -
routingPreferenceप्रॉपर्टी को इनमें से किसी एक पर सेट करें:TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL
ध्यान दें:
TRAFFIC_UNAWAREडिफ़ॉल्ट सेटिंग है. -
trafficModelप्रॉपर्टी को इनमें से किसी एक पर सेट करें: -
extraComputationsप्रॉपर्टी कोTRAFFIC_ON_POLYLINEपर सेट करें. -
path,speedPaths, औरrouteLabelsफ़ील्ड के लिए अनुरोध करें.
यहां दिए गए अनुरोध के उदाहरण में, ट्रैफ़िक की जानकारी देने वाले रास्ते का अनुरोध करने का तरीका बताया गया है. इससे पॉलीलाइन पर ट्रैफ़िक का डेटा दिखता है:
// Define a traffic aware routes request with polylines. const requestWithTraffic = { origin: '200 King St San Francisco, CA 94107', destination: 'Pier 41, San Francisco, CA 94133', travelMode: 'DRIVING', routingPreference: 'TRAFFIC_AWARE_OPTIMAL', trafficModel: 'optimistic', extraComputations: ['TRAFFIC_ON_POLYLINE'], fields: ['speedPaths'], };
ट्रैफ़िक का हाल
ट्रैफ़िक की स्थिति से, ट्रैफ़िक के फ़्लो की दर का पता चलता है:
- सामान्य ट्रैफ़िक: ट्रैफ़िक सामान्य रफ़्तार से चल रहा है और कोई रुकावट नहीं है.
- हल्का से सामान्य ट्रैफ़िक: ट्रैफ़िक बढ़ रहा है और वाहनों की स्पीड कम हो रही है.
- भारी ट्रैफ़िक: बहुत ज़्यादा ट्रैफ़िक है और वाहनों की रफ़्तार बहुत कम हो गई है.
ट्रैफ़िक की जानकारी नहीं है
TRAFFIC_UNAWARE डिफ़ॉल्ट सेटिंग है. इस राउटिंग प्राथमिकता का इस्तेमाल तब करें, जब आपको जवाब तुरंत चाहिए हों और राउटिंग की अनुमानित जानकारी आपके लिए काफ़ी हो.
TRAFFIC_UNAWARE रास्तों का हिसाब लगाते समय, मौजूदा ट्रैफ़िक की
स्थितियों को ध्यान में नहीं रखा जाता. इस राउटिंग सेटिंग से, अनुरोध का जवाब सबसे कम समय में मिलता है (सबसे कम इंतज़ार का समय).
TRAFFIC_UNAWARE चुनने पर, रास्ते और अवधि का अनुमान सड़क नेटवर्क और ट्रैफ़िक की सामान्य स्थिति के आधार पर लगाया जाता है. इसमें सड़क की मौजूदा स्थिति को ध्यान में नहीं रखा जाता.
इसलिए, रास्तों में ऐसी सड़कें भी शामिल हो सकती हैं जो कुछ समय के लिए बंद हैं. सड़क नेटवर्क में हुए बदलावों, ट्रैफ़िक की मौजूदा स्थितियों के अपडेट, और सेवा के डिस्ट्रिब्यूटेड नेचर की वजह से, किसी अनुरोध के नतीजे समय के साथ अलग-अलग हो सकते हैं. नतीजे, किसी भी समय या फ़्रीक्वेंसी पर, लगभग एक जैसे रास्तों के बीच भी अलग-अलग हो सकते हैं.
आपको ये जवाब दिखेंगे:
duration: इसमें रास्ते के लिए पहुंचने का अनुमानित समय शामिल होता है.staticDuration: सिर्फ़ ट्रैफ़िक के इतिहास की जानकारी के आधार पर, रास्ते के लिए ईटीए.TRAFFIC_UNAWAREके लिए, इसमें वही वैल्यू होती है जोdurationमें होती है.
ट्रैफ़िक की जानकारी देने वाली सुविधा
इस राउटिंग सेटिंग का इस्तेमाल तब करें, जब आपको TRAFFIC_UNAWARE की तुलना में राउटिंग की ज़्यादा सटीक जानकारी चाहिए हो. साथ ही, आपको इस बात से कोई फ़र्क़ नहीं पड़ता कि जवाबों को कुछ समय बाद भेजा जाता है.
TRAFFIC_AWARE राउटिंग की प्राथमिकता सेट करने पर, सेवा मौजूदा ट्रैफ़िक की स्थितियों को ध्यान में रखकर रूट का हिसाब लगाती है. इस वजह से, रास्ते और रास्ते की जानकारी से, रीयल लाइफ़ की स्थितियों के बारे में ज़्यादा सटीक जानकारी मिलती है. डेटा क्वालिटी में यह बढ़ोतरी, रिस्पॉन्स में लगने वाले समय की वजह से होती है. इसलिए, परफ़ॉर्मेंस ऑप्टिमाइज़ेशन लागू किए जाते हैं, ताकि रिस्पॉन्स में लगने वाले समय को कम किया जा सके.
आपको ये जवाब दिखेंगे:
duration: रीयल-टाइम ट्रैफ़िक की जानकारी के हिसाब से ईटीए.staticDuration: सिर्फ़ ट्रैफ़िक के इतिहास की जानकारी के आधार पर, रास्ते के लिए ईटीए.
ट्रैफ़िक के हिसाब से सबसे अच्छा
इस राउटिंग प्राथमिकता का इस्तेमाल तब करें, जब आपको सबसे अच्छी क्वालिटी वाले नतीजे चाहिए हों. इस बात से कोई फ़र्क़ नहीं पड़ता कि जवाब मिलने में कितना समय लगता है. इस राउटिंग सेटिंग में जवाब मिलने में सबसे ज़्यादा समय लगता है (सबसे ज़्यादा लेटेन्सी).
TRAFFIC_AWARE_OPTIMAL राउटिंग की प्राथमिकता सेट करने पर, सेवा मौजूदा ट्रैफ़िक की स्थितियों को ध्यान में रखकर रास्ते का हिसाब लगाती है. हालांकि, इसमें परफ़ॉर्मेंस ऑप्टिमाइज़ेशन लागू नहीं किए जाते. इस मोड में, सर्वर सबसे सही रास्ता ढूंढने के लिए, सड़क नेटवर्क की ज़्यादा बारीकी से खोज करता है.
TRAFFIC_AWARE_OPTIMAL रास्तों के लिए प्राथमिकता तय करने की सुविधा, maps.google.com और Google Maps के मोबाइल ऐप्लिकेशन में इस्तेमाल किए जाने वाले मोड के बराबर है.
computeRouteMatrix के साथ इस विकल्प का इस्तेमाल करने पर, किसी अनुरोध में मौजूद एलिमेंट की संख्या (ओरिजन की संख्या × डेस्टिनेशन की संख्या) 25 से ज़्यादा नहीं हो सकती.
आपको ये जवाब दिखेंगे:
duration: रीयल-टाइम ट्रैफ़िक की जानकारी के हिसाब से, रास्ते के लिए ईटीए.staticDuration: सिर्फ़ ट्रैफ़िक के इतिहास की जानकारी के आधार पर, रास्ते के लिए ईटीए.
जाने का समय सेट करना (ज़रूरी नहीं)
इस प्रॉपर्टी का इस्तेमाल सिर्फ़ उन अनुरोधों के लिए करें जिनमें ट्रैफ़िक की जानकारी शामिल होती है. साथ ही, जिनमें यात्रा शुरू करने का समय आने वाले समय का होना चाहिए. departureTime प्रॉपर्टी सेट न करने पर, यह डिफ़ॉल्ट रूप से उस समय पर सेट हो जाती है जब आपने अनुरोध किया था.
जब आपको किसी रास्ते को चुनते समय, सेवा के ट्रैफ़िक का अनुमान लगाने के तरीके में बदलाव करना हो, तब TRAFFIC_AWARE और TRAFFIC_AWARE_OPTIMAL विकल्पों के साथ departureTime प्रॉपर्टी का इस्तेमाल करें.
TRAFFIC_UNAWARE: सुझाया नहीं जाता, क्योंकि रास्ते और अवधि का चुनाव सड़क नेटवर्क और समय से अलग ट्रैफ़िक की औसत स्थितियों के आधार पर किया जाता है.TRAFFIC_AWAREऔरTRAFFIC_AWARE_OPTIMAL: यह विकल्प उन लोगों के लिए सुझाया जाता है जो आने वाले समय में यात्रा करने वाले हैं. ऐसा इसलिए, क्योंकि इन विकल्पों में लाइव ट्रैफ़िक की स्थितियों को ध्यान में रखा जाता है. लाइव ट्रैफ़िक की जानकारी,departureTimeके मौजूदा समय के जितना करीब होगी उतनी ही ज़्यादा सटीक और काम की होगी. यात्रा शुरू करने का समय जितना बाद का होगा, रास्तों को चुनते समय ट्रैफ़िक की पुरानी स्थितियों को उतना ही ज़्यादा ध्यान में रखा जाएगा.
रूट टोकन पाना
रास्ते के टोकन, वेब के लिए सुरक्षित और base64-एनकोडेड फ़ॉर्मैट में होते हैं. Navigation SDK के साथ रूट शेयर करने के लिए, रूट टोकन का इस्तेमाल करें. एसडीके इस टोकन का इस्तेमाल, रास्ते को फिर से बनाने के लिए करता है. साथ ही, इससे नेविगेशन के ओरिजनल इंटेंट को बनाए रखने में मदद मिलती है. ऐसा तब भी होता है, जब रास्ते में बदलाव किया जाता है.
रास्ते का टोकन पाने के लिए, यह तरीका अपनाएं:
- travelMode को
DRIVINGपर सेट करें. routingPreferenceकोTRAFFIC_AWAREयाTRAFFIC_AWARE_OPTIMALपर सेट करें.routeTokenफ़ील्ड के लिए अनुरोध करें.
यहां दिए गए अनुरोध के उदाहरण में, रूट टोकन का अनुरोध करने का तरीका बताया गया है:
// Define a traffic aware routes request with a route token. const requestWithRouteToken = { origin: '200 King St San Francisco, CA 94107', destination: 'Pier 41, San Francisco, CA 94133', travelMode: 'DRIVING', routingPreference: 'TRAFFIC_AWARE', fields: ['path', 'speedPaths', 'routeLabels', 'routeToken'], };