iOS के लिए Navigation SDK, वेपॉइंट या नेविगेशन पॉइंट तय करने के बेहतर तरीके उपलब्ध कराता है. इससे, ज़्यादा सटीक रूटिंग और मंज़िल तक पहुंचने का बेहतर अनुभव मिलता है. खास तौर पर, उन मंज़िलों के लिए जहां कई एंट्री पॉइंट या खास नेविगेशन पॉइंट होते हैं. navigationPointToken का इस्तेमाल करके, जगह की सटीक जानकारी पर पहुंचा जा सकता है. यह एक स्ट्रिंग होती है, जो किसी जगह और रास्ते के बारे में ज़्यादा जानकारी को कोड में बदलती है. ज़्यादा जानकारी देने के लिए, अक्षांश और देशांतर के निर्देशांकों को जगह के आईडी के साथ भी जोड़ा जा सकता है.
बैकग्राउंड
v10.10 से पहले, जगह के निर्देशांकों या जगह के आईडी का इस्तेमाल करके, Waypoint को तय किया जा सकता था. कभी-कभी, सिर्फ़ अक्षांश और देशांतर के हिसाब से रूट तय करने से, ड्रॉप-ऑफ़ या पिक-अप पॉइंट सही नहीं मिलते. खास तौर पर, बड़ी जगहों, पार्कों या कई दरवाज़ों वाली इमारतों के लिए. नतीजा, सबसे नज़दीकी सड़क के सेगमेंट पर स्नैप हो सकता है. हालांकि, हो सकता है कि यह सबसे आसान या सही ऐक्सेस पॉइंट न हो.
वेपॉइंट के बेहतर विकल्पों की मदद से, ज़्यादा जानकारी दी जा सकती है.
नेविगेशन पॉइंट टोकन का इस्तेमाल करना
एंट्रेंस, लोडिंग डॉक या पिक-अप के लिए तय की गई जगहों जैसे खास ऐक्सेस पॉइंट के लिए, सबसे सटीक रूटिंग पाने के लिए, navigationPointToken का इस्तेमाल किया जा सकता है.
यह टोकन, Geocoding API के Destinations तरीके को कॉल करके मिलता है. यह किसी जगह से जुड़े खास और रूट किए जा सकने वाले नेविगेशन पॉइंट को दिखाता है.
नेविगेशन पॉइंट टोकन की जानकारी देने के लिए:
Geocoding API के रिस्पॉन्स के
SearchDestinationsतरीके सेnavigationPointTokenपाएं.GMSNavigationWaypointबनाते समय,navigationPointTokenतय करें.
Swift
// Create a waypoint using a navigation endpoint token
let waypointTwo = GMSNavigationWaypoint(
navigationPointToken: "ChIJALijSXPhQkARHmIozCCbXsASEgkFVjYHGH6PgBFrbM7wl3..",
title: "Sydney Opera House")
// Route to the waypoint
navigator.setDestinations([waypointTwo]) { [weak self] routeStatus in
self?.handleRouteCallback(status: routeStatus)
}
Objective-C
GMSNavigationWaypoint *waypointTwo =
[[GMSNavigationWaypoint alloc] initWithNavigationPointToken:@"sampleNavigationPointToken"
title:@"Sydney Opera House"];
नेविगेशन पॉइंट टोकन और रूट टोकन इस्तेमाल करना
Geocoding API की मदद से, नेविगेशन पॉइंट टोकन को वापस पाया जा सकता है. इसके बाद, रूट टोकन पाने के लिए, Routes API के अनुरोध में इसका इस्तेमाल किया जा सकता है. इसके बाद, Navigation SDK को सिर्फ़ रूट टोकन पास किया जा सकता है. रूट टोकन, नेविगेशन पॉइंट टोकन की सटीक जानकारी को बनाए रखता है. यह राइडशेयर या डिलीवरी जैसे मामलों में काम आता है. इनमें यात्रा की कीमत का हिसाब लगाने के लिए, Routes API का इस्तेमाल किया जाता है. साथ ही, आपको सटीक नेविगेशन पॉइंट टोकन चाहिए होता है.
रूट टोकन की मदद से, Navigation SDK उसी रूट पर नेविगेशन शुरू करता है जिसका इस्तेमाल आपने कीमत का हिसाब लगाने के लिए किया था. इससे यात्रा के लिए लंबे या छोटे रास्तों का इस्तेमाल करने का जोखिम कम हो जाता है. इससे "किराये में अचानक होने वाले बदलाव" से बचा जा सकता है.
Routes API में नेविगेशन पॉइंट टोकन और रूट टोकन के बारे में ज़्यादा जानने के लिए, किसी रास्ते के लिए जगहें तय करना और रूट टोकन पाना लेख पढ़ें. रूट टोकन का इस्तेमाल करके रूट प्लान करने का तरीका जानने के लिए, रूट प्लान करना लेख पढ़ें.
यहां दिए गए डायग्राम में दिखाया गया है कि राइड शेयरिंग या डिलीवरी ऐप्लिकेशन, नेविगेशन पॉइंट टोकन और रूट टोकन का एक साथ इस्तेमाल कैसे करेगा. वर्शन 11.3 से, ड्राइवर ऐप्लिकेशन सातवें चरण में Navigation SDK को सिर्फ़ रूट टोकन पास करता है.
जगह के आईडी और जगह की जानकारी को जोड़ना
v10.10 से, वेपॉइंट बनाते समय जगह का आईडी और जगह के निर्देशांक, दोनों दिए जा सकते हैं. यह तरीका तब काम आता है, जब आपको किसी जगह के आईडी के साथ-साथ, उस जगह की सटीक जानकारी देनी हो. इससे Navigation SDK, मंज़िल पर पहुंचने का बेहतर अनुभव दे पाता है. इसके लिए, वह मंज़िल की इमारत को हाइलाइट करता है या जगह के आईडी से जुड़ी, आस-पास की दिलचस्प जगहों को दिखाता है.
Swift
// Create a waypoint using both the latlng and placeID
let waypoint = GMSNavigationWaypoint(
location: CLLocationCoordinate2DMake(-33.85657945261524, 151.21535034203333),
placeID: "ChIJ3S-JXmauEmsRUcIaWtf4MzE",
title: "Sydney Opera House")
// Route to the waypoint
navigator.setDestinations([waypoint]) { [weak self] routeStatus in
self?.handleRouteCallback(status: routeStatus)
}
Objective-C
CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint = [[GMSNavigationWaypoint alloc] initWithLocation:placeID:coordinate title:@"waypoint from location and placeiD"];
ज़रूरी बातें
placeID और location, दोनों एट्रिब्यूट की वैल्यू सबमिट करने पर:
- रूट मुख्य रूप से, तय किए गए
locationको टारगेट करता है. placeIDसे, लोगों को बेहतर अनुभव मिलता है.- फ़ॉलबैक: अगर SDK टूल को पता चलता है कि दिया गया
placeID, किसी ऐसी सुविधा से जुड़ा है जो दिए गएlocationसे काफ़ी दूर है, तो वहplaceIDको अनदेखा कर देता है. इस मामले में, रूटिंग सिर्फ़locationपर होती है. साथ ही, जगह के हिसाब से पहुंचने के अनुभव को बेहतर बनाने की सुविधाएं उपलब्ध नहीं होती हैं.
मान्य वेपॉइंट कॉन्फ़िगरेशन की खास जानकारी
| खास जानकारी | location |
placeID |
navigationPointToken |
रूटिंग का तरीका | डेस्टिनेशन हाइलाइट करना |
|---|---|---|---|---|---|
| सिर्फ़ जगह के निर्देशांक | सेट करो | अनुपस्थित | अनुपस्थित | तय किए गए निर्देशांकों के सबसे नज़दीक मौजूद सड़क के हिस्से तक पहुंचने के रास्ते | यह तब दिखता है, जब मंज़िल का अनुमान पूरी तरह से लगाया जा सकता है |
| सिर्फ़ जगह का आईडी | अनुपस्थित | सेट करो | अनुपस्थित | जगह के आईडी के लिए, डिफ़ॉल्ट नेविगेशन पॉइंट के रूट | जगह के आईडी से |
| सिर्फ़ नेविगेशन पॉइंट टोकन | अनुपस्थित | अनुपस्थित | सेट करो | टोकन से दिखाए गए सटीक नेविगेशन पॉइंट के रूट | Geocoding API के डेस्टिनेशन मेथड के अनुरोध में तय किए गए ओरिजनल डेस्टिनेशन से |
| जगह के निर्देशांक और जगह का आईडी, दोनों | सेट करो | सेट करो | अनुपस्थित | तय किए गए निर्देशांकों के सबसे नज़दीक मौजूद सड़क के हिस्से तक पहुंचने के रास्ते | जगह के आईडी से. हालांकि, अगर जगह का आईडी, अक्षांश/देशांतर निर्देशांकों से बहुत दूर है, तो यह नहीं दिखाया जाता |