नेविगेशन पॉइंट तक पहुंचने का रास्ता

Android के लिए Navigation SDK, वेपॉइंट या नेविगेशन पॉइंट तय करने के बेहतर तरीके उपलब्ध कराता है. इससे ज़्यादा सटीक रूटिंग और मंज़िल तक पहुंचने का बेहतर अनुभव मिलता है. खास तौर पर, उन जगहों के लिए जहां कई एंट्री पॉइंट या खास नेविगेशन पॉइंट होते हैं. navigationPointToken का इस्तेमाल करके, जगह की सटीक जानकारी पर पहुंचा जा सकता है. यह एक स्ट्रिंग होती है, जो किसी जगह और रास्ते के बारे में ज़्यादा जानकारी को कोड में बदलती है. अक्षांश और देशांतर के निर्देशांकों को जगह के आईडी के साथ भी जोड़ा जा सकता है, ताकि ज़्यादा जानकारी मिल सके.

बैकग्राउंड

v7.4 से पहले, अक्षांश और देशांतर निर्देशांक या जगह के आईडी का इस्तेमाल करके, Waypoint को तय किया जा सकता था. सिर्फ़ अक्षांश और देशांतर के हिसाब से रूट तय करने से, कभी-कभी ड्रॉप-ऑफ़ या पिक-अप पॉइंट सही नहीं मिलते. ऐसा खास तौर पर बड़ी जगहों, पार्कों या कई एंट्री पॉइंट वाली इमारतों के लिए होता है. हालांकि, कभी-कभी यह तरीका असरदार भी होता है. नतीजा, सबसे नज़दीकी सड़क के हिस्से पर स्नैप हो सकता है. हालांकि, हो सकता है कि यह सबसे सुविधाजनक या सही नेविगेशन पॉइंट न हो.

वेपॉइंट के बेहतर विकल्पों की मदद से, ज़्यादा जानकारी दी जा सकती है.

नेविगेशन पॉइंट टोकन का इस्तेमाल करना

एंट्रेंस, लोडिंग डॉक या पिक-अप के लिए तय की गई जगहों जैसे खास नेविगेशन पॉइंट के लिए, सबसे सटीक रास्ता पाने के लिए, navigationPointToken का इस्तेमाल किया जा सकता है. यह टोकन, Geocoding API के डेस्टिनेशन मेथड को कॉल करके मिलता है. यह किसी जगह से जुड़े खास और रूट किए जा सकने वाले नेविगेशन पॉइंट को दिखाता है.

नेविगेशन पॉइंट टोकन की जानकारी देने के लिए:

  1. Geocoding API के डेस्टिनेशन मेथड से मिले रिस्पॉन्स से navigationPointToken पाएं.
  2. बिल्डर में setNavigationPointToken() तरीके का इस्तेमाल करके, Waypoint बनाएं.
// 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, मंज़िल पर पहुंचने का बेहतर अनुभव दे पाता है. इसके लिए, वह मंज़िल की इमारत को हाइलाइट करता है या जगह के आईडी से जुड़ी आस-पास की लोकप्रिय जगहों को दिखाता है.

// 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 के डेस्टिनेशन मेथड के मूल अनुरोध में तय किए गए डेस्टिनेशन से
अक्षांश/देशांतर निर्देशांक और जगह का आईडी, दोनों सेट करो सेट करो अनुपस्थित तय किए गए निर्देशांकों के सबसे नज़दीकी सड़क के सेगमेंट तक पहुंचने के रास्ते जगह के आईडी से. हालांकि, अगर जगह का आईडी, अक्षांश/देशांतर निर्देशांकों से बहुत दूर है, तो यह नहीं दिखाया जाता