iOS के लिए Navigation SDK टूल, वेपॉइंट या नेविगेशन पॉइंट तय करने के बेहतर तरीके उपलब्ध कराता है. इससे ज़्यादा सटीक रूटिंग और मंज़िल तक पहुंचने का बेहतर अनुभव मिलता है. खास तौर पर, उन जगहों के लिए जहां कई एंट्री पॉइंट या खास नेविगेशन पॉइंट होते हैं. navigationPointToken का इस्तेमाल करके, जगह की सटीक जानकारी पर पहुंचा जा सकता है. यह एक स्ट्रिंग होती है, जो किसी जगह और रास्ते के बारे में ज़्यादा जानकारी को कोड में बदलती है. अक्षांश और देशांतर के निर्देशांकों को जगह के आईडी के साथ भी जोड़ा जा सकता है, ताकि ज़्यादा जानकारी मिल सके.
बैकग्राउंड
v10.10 से पहले, Waypoint को जगह के निर्देशांकों या जगह के आईडी का इस्तेमाल करके तय किया जा सकता था. कभी-कभी, सिर्फ़ अक्षांश और देशांतर के हिसाब से रूट तय करने से, ड्रॉप-ऑफ़ या पिक-अप पॉइंट सही नहीं मिलते. ऐसा खास तौर पर बड़ी जगहों, पार्कों या कई दरवाज़ों वाली इमारतों के लिए होता है. नतीजा, सबसे नज़दीकी सड़क के सेगमेंट पर स्नैप हो सकता है. हालांकि, हो सकता है कि यह सबसे सुविधाजनक या सही ऐक्सेस पॉइंट न हो.
वेपॉइंट के बेहतर विकल्पों की मदद से, ज़्यादा जानकारी दी जा सकती है.
नेविगेशन पॉइंट टोकन का इस्तेमाल करना
एंट्री पॉइंट, लोडिंग डॉक या पिक-अप के लिए तय की गई जगहों जैसे खास ऐक्सेस पॉइंट पर सबसे सटीक रूटिंग के लिए, navigationPointToken का इस्तेमाल किया जा सकता है.
यह टोकन, Geocoding API के Destinations तरीके को कॉल करके मिलता है. यह किसी जगह से जुड़े खास और रूट किए जा सकने वाले नेविगेशन पॉइंट को दिखाता है.
नेविगेशन पॉइंट टोकन की जानकारी देने के लिए:
Geocoding API के डेस्टिनेशन मेथड से मिले रिस्पॉन्स से,
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 का दस्तावेज़ देखें. रूट टोकन का इस्तेमाल करके रूट प्लान करने का तरीका जानने के लिए, "रूट प्लान करना" लेख पढ़ें.
इस डायग्राम में दिखाया गया है कि राइडशेयर या डिलीवरी ऐप्लिकेशन, नेविगेशन पॉइंट टोकन और रूट टोकन का एक साथ इस्तेमाल कैसे करेगा:
जगह के आईडी और जगह की जानकारी को जोड़ना
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का इस्तेमाल, कॉन्टेक्स्ट के तौर पर किया जाता है, ताकि पिक-अप की जगह पर पहुंचने के अनुभव को बेहतर बनाया जा सके.- फ़ॉलबैक: अगर एसडीके को पता चलता है कि दिया गया
placeId, किसी ऐसी सुविधा से मेल खाता है जो दिए गएlocationसे काफ़ी दूर है, तोplaceIdको अनदेखा कर दिया जाएगा. इस मामले में, रूटिंग सिर्फ़locationतक होगी. साथ ही, जगह के हिसाब से पहुंचने के अनुभव को बेहतर बनाने की सुविधा उपलब्ध नहीं होगी.
मान्य वेपॉइंट कॉन्फ़िगरेशन की खास जानकारी
| खास जानकारी | location |
placeID |
navigationPointToken |
रूटिंग का तरीका | मंज़िल को हाइलाइट करना |
|---|---|---|---|---|---|
| सिर्फ़ जगह के निर्देशांक | सेट करो | अनुपस्थित | अनुपस्थित | तय किए गए निर्देशांकों के सबसे नज़दीकी सड़क के सेगमेंट तक पहुंचने के रास्ते | यह तब दिखता है, जब मंज़िल का अनुमान काफ़ी सटीक हो |
| सिर्फ़ जगह का आईडी | अनुपस्थित | सेट करो | अनुपस्थित | जगह के आईडी के लिए, डिफ़ॉल्ट नेविगेशन पॉइंट के रूट | जगह के आईडी से |
| सिर्फ़ नेविगेशन पॉइंट टोकन | अनुपस्थित | अनुपस्थित | सेट करो | टोकन से दिखाए गए सटीक नेविगेशन पॉइंट के रूट | Geocoding API के डेस्टिनेशन मेथड के मूल अनुरोध में तय किए गए डेस्टिनेशन से |
| जगह के निर्देशांक और जगह का आईडी, दोनों | se | सेट करो | अनुपस्थित | तय किए गए निर्देशांकों के सबसे नज़दीकी सड़क के सेगमेंट तक पहुंचने के रास्ते | जगह के आईडी से. हालांकि, अगर जगह का आईडी, अक्षांश/देशांतर निर्देशांकों से बहुत दूर है, तो यह नहीं दिखाया जाता |