Android के लिए Navigation SDK टूल, वेपॉइंट या नेविगेशन पॉइंट तय करने के बेहतर तरीके उपलब्ध कराता है. इससे ज़्यादा सटीक रूटिंग और बेहतर तरीके से मंज़िल तक पहुंचने में मदद मिलती है. खास तौर पर, उन जगहों के लिए जहां कई रास्ते हैं या नेविगेशन के लिए खास पॉइंट हैं. navigationPointToken का इस्तेमाल करके, सटीक जगहों पर रूट किया जा सकता है. यह एक स्ट्रिंग होती है, जो किसी जगह और रूट के बारे में अतिरिक्त जानकारी को एन्कोड करती है. ज़्यादा जानकारी के लिए, अक्षांश और देशांतर के निर्देशांकों को जगह के आईडी के साथ भी जोड़ा जा सकता है.
बैकग्राउंड
v7.4 से पहले, अक्षांश और देशांतर के कोऑर्डिनेट या जगह के आईडी का इस्तेमाल करके, Waypoint तय किया जा सकता था. कभी-कभी, सिर्फ़ अक्षांश और देशांतर के हिसाब से रूट तय करने से, पिक-अप या ड्रॉप-ऑफ़ के लिए सही जगह नहीं मिल पाती. ऐसा खास तौर पर बड़े-बड़े स्टेडियम, पार्क या कई दरवाज़ों वाली इमारतों के मामले में होता है. ऐसा हो सकता है कि नतीजा, सड़क के सबसे नज़दीकी हिस्से पर स्नैप हो जाए. यह नेविगेशन के लिए सबसे सही या सुविधाजनक पॉइंट नहीं हो सकता.
बेहतर वेपॉइंट विकल्पों की मदद से, इस समस्या को हल किया जा सकता है. इससे ज़्यादा जानकारी दी जा सकती है.
नेविगेशन पॉइंट टोकन का इस्तेमाल करना
अगर आपको किसी खास नेविगेशन पॉइंट, जैसे कि प्रवेश द्वार, लोडिंग डॉक या पिक-अप के लिए तय की गई जगह पर सबसे सटीक तरीके से पहुंचने का रास्ता चाहिए, तो navigationPointToken का इस्तेमाल करें. यह टोकन, Geocoding API के destinations
तरीके को कॉल करके मिलता है. यह किसी जगह से जुड़ा एक खास नेविगेशन पॉइंट दिखाता है.
नेविगेशन पॉइंट टोकन तय करने के लिए:
- Geocoding API के Destinations तरीके से मिले रिस्पॉन्स से
navigationPointTokenपाएं. - बिल्डर में
setNavigationPointToken()तरीके का इस्तेमाल करके,Waypointबनाएं.
ध्यान दें: setNavigationPointToken() का इस्तेमाल करते समय, setLatLng() या setPlaceIdString() का एक साथ इस्तेमाल नहीं किया जा सकता. ये तरीके, setNavigationPointToken() के साथ काम नहीं करते.
// Assuming 'navPointToken' is a String obtained from the destinations method of the Geocoding API
// Assuming 'destinationName' is a String title for the waypoint
Waypoint waypointWithToken = Waypoint.builder()
.setTitle(destinationName)
.setNavigationPointToken(navPointToken)
.build();
// Use this waypoint in navigator.setDestinations()
नेविगेशन पॉइंट टोकन और रास्ते के टोकन का इस्तेमाल करना
Geocoding API की मदद से नेविगेशन पॉइंट टोकन और Routes API की मदद से रूट टोकन को वापस पाया जा सकता है. इसके बाद, नेविगेशन पॉइंट टोकन और रूट टोकन, दोनों को Navigation SDK को पास किया जा सकता है. यह सुविधा, राइडशेयर या डिलीवरी जैसे मामलों में काम आती है. इनमें Routes API का इस्तेमाल करके यात्रा के किराये का हिसाब लगाया जाता है. साथ ही, आपको नेविगेशन पॉइंट टोकन की सटीक जानकारी चाहिए होती है.
रास्ते के टोकन से, Navigation SDK टूल को उस रास्ते को चुनने में मदद मिलती है जिसका इस्तेमाल कीमत तय करने के लिए किया गया था. इससे यात्रा के लिए लंबे या छोटे रास्तों का इस्तेमाल किए जाने का जोखिम कम हो जाता है. इससे "किराये में अचानक बढ़ोतरी" हो सकती है.
नेविगेशन पॉइंट टोकन का इस्तेमाल करके जगह की जानकारी देने और रास्ते का टोकन बनाने के बारे में ज़्यादा जानने के लिए, Routes API का दस्तावेज़ देखें. रूट टोकन का इस्तेमाल करके रूट प्लान करने का तरीका जानने के लिए, "रूट प्लान करना" लेख पढ़ें.
इस डायग्राम में दिखाया गया है कि राइडशेयर या डिलीवरी ऐप्लिकेशन, नेविगेशन पॉइंट टोकन और रूट टोकन का एक साथ इस्तेमाल कैसे करेगा:
जगह के आईडी और अक्षांश और देशांतर को एक साथ इस्तेमाल करना
v7.4 से, Waypoint बनाते समय, जगह का आईडी के साथ-साथ अक्षांश और देशांतर के निर्देशांक दोनों दिए जा सकते हैं. यह तरीका तब काम आता है, जब आपको किसी सटीक पॉइंट (अक्षांश/देशांतर) की जानकारी देनी हो. साथ ही, आपको उस जगह के बारे में भी जानकारी देनी हो (जगह का आईडी). इससे Navigation SDK को, डेस्टिनेशन बिल्डिंग को हाइलाइट करके या Place ID से जुड़ी आस-पास की लोकप्रिय जगहों को दिखाकर, पहुंचने का बेहतर अनुभव देने में मदद मिलती है.
// Assuming 'placeId' is the Place ID String
// Assuming 'lat' and 'lng' are the double values for latitude and longitude
// Assuming 'destinationName' is a String title for the waypoint
Waypoint waypointWithPlaceIdAndLatLng = Waypoint.builder()
.setTitle(destinationName)
.setPlaceIdString(placeId)
.setLatLng(lat, lng)
.build();
// Use this waypoint in navigator.setDestinations()
ज़रूरी बातें
placeId और latlng, दोनों उपलब्ध कराने पर:
- यह रूट मुख्य रूप से, बताए गए
latlngको टारगेट करता है. placeIdका इस्तेमाल, कॉन्टेक्स्ट के तौर पर किया जाता है, ताकि आपको बेहतर अनुभव मिल सके.- फ़ॉलबैक: अगर एसडीके को लगता है कि दी गई
placeId,latlngसे बहुत दूर है, तोplaceIdको अनदेखा कर दिया जाएगा. इस स्थिति में, रूटिंग सिर्फ़latlngपर की जाएगी. साथ ही, जगह के हिसाब से यात्रा के अनुभव को बेहतर बनाने वाली सुविधाएँ उपलब्ध नहीं होंगी.
मान्य वेपॉइंट कॉन्फ़िगरेशन की खास जानकारी
| तरीका | setLatLng() |
setPlaceIdString() |
setNavigationPointToken() |
रूटिंग का तरीका | डेस्टिनेशन को हाइलाइट करना |
|---|---|---|---|---|---|
| सिर्फ़ अक्षांश/देशांतर के कोऑर्डिनेट | सेट करो | अनुपस्थित | अनुपस्थित | तय किए गए निर्देशांकों के सबसे नज़दीकी सड़क के हिस्से तक पहुंचने के रास्ते | यह तब दिखता है, जब जगह की जानकारी का सटीक अनुमान लगाया जा सकता है |
| सिर्फ़ जगह का आईडी | अनुपस्थित | सेट करो | अनुपस्थित | जगह के आईडी के लिए, डिफ़ॉल्ट नेविगेशन पॉइंट तक पहुंचने के रास्ते | जगह के आईडी से |
| सिर्फ़ नेविगेशन पॉइंट टोकन | अनुपस्थित | अनुपस्थित | सेट करो | टोकन से दिखाए गए सटीक नेविगेशन पॉइंट तक पहुंचने के रास्ते | Geocoding API के destinations तरीके के अनुरोध में तय किए गए डेस्टिनेशन से |
| अक्षांश/देशांतर के कोऑर्डिनेट और जगह का आईडी एक साथ | सेट करो | सेट करो | अनुपस्थित | तय किए गए निर्देशांकों के सबसे नज़दीकी सड़क के हिस्से तक पहुंचने के रास्ते | जगह के आईडी से. हालांकि, अगर जगह का आईडी अक्षांश/देशांतर निर्देशांकों से बहुत दूर है, तो इसे नहीं दिखाया जाता |