वेपॉइंट मैनेज करें

इस दस्तावेज़ में बताया गया है कि दो सुविधाओं का इस्तेमाल करके, अपने ऐप्लिकेशन के लिए रास्ते के पड़ाव की सेटिंग कैसे मैनेज की जा सकती है:

  • सड़क की किनारे के हिसाब से रास्ता तय करने की प्राथमिकताएं
  • स्टॉपओवर

iOS के लिए Navigation SDK, डिफ़ॉल्ट रूप से किसी वॉयपॉइंट तक का सबसे तेज़ रास्ता ढूंढता है. हालांकि, इससे यह गारंटी नहीं मिलती कि उपयोगकर्ता सड़क की सही साइड पर पहुंच जाएगा. उदाहरण के लिए, सड़क की वह साइड जहां राईडशेयर ड्राइवर का ग्राहक इंतज़ार कर रहा है. सड़क की साइड के हिसाब से रूटिंग की प्राथमिकता की सुविधा की मदद से, यह पक्का किया जा सकता है कि वाहन सड़क की सही साइड पर पहुंच जाए.

यह कैसे काम करता है

किसी स्टॉप के लिए वेपॉइंट बनाते समय, सड़क की किसी खास साइड पर पहुंचने की प्राथमिकता सेट की जा सकती है. अपनी प्राथमिकता दो तरीकों से बताई जा सकती है.

सड़क की एक ही तरफ़ चलना

आपने वेपॉइंट के भौगोलिक निर्देशांक दिए हैं. इसके बाद, एक फ़्लैग preferSameSideOfRoad सेट किया है. इससे पता चलता है कि आपको सड़क के उसी हिस्से पर पहुंचना है जहां वेपॉइंट है. यह हिस्सा, सड़क के किनारे मौजूद फ़ुटपाथ पर होना चाहिए.

(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
                                  title:(NSString *)title
                   preferSameSideOfRoad:(BOOL)preferSameSideOfRoad;

पहुंचने का हेडिंग सेट करना

आपको व्यूपॉइंट के भौगोलिक निर्देशांक देने होंगे. इसके बाद, पहुंचने की वह दिशा preferredSegmentHeading डालनी होगी जो सड़क की उसी तरफ़ के ट्रैफ़िक की दिशा से मेल खाती हो जहां डेस्टिनेशन है.

(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
                                  title:(NSString *)title
                preferredSegmentHeading:(int32_t)preferredSegmentHeading;

Navigation SDK, व्यूपॉइंट के सबसे नज़दीक सड़क का सेगमेंट चुनता है. इस सेगमेंट में मौजूद लेन की दिशा, उस सड़क की दिशा से +/- 55 डिग्री के अंदर होनी चाहिए जिस पर व्यूपॉइंट मौजूद है.

स्टॉपओवर की प्राथमिकता सेट करना

कुछ जगहों पर, उपयोगकर्ता सुरक्षित तरीके से गाड़ी नहीं रोक सकते. जैसे, ऊंचे इलाके, फ़ेरी, अंडरग्राउंड लोकेशन, और सीमित ऐक्सेस वाली अन्य जगहें. स्टॉपओवर सुविधा, व्यूपॉइंट को आस-पास की किसी जगह पर ले जाती है. ऐसा तब किया जाता है, जब व्यूपॉइंट की जगह, उपयोगकर्ता के लिए स्टॉप करने के लिहाज़ से सही न हो. vehicleStopover को YES पर सेट करने पर, रास्ते का हिसाब लगाने के दौरान, वैकल्पिक जगह उपलब्ध होने पर, रास्ते के बीच में मौजूद पॉइंट अपने-आप बदल जाता है.

यह कैसे काम करता है

किसी स्टॉप के लिए वेपॉइंट बनाते समय, स्टॉपओवर की प्राथमिकता सेट की जाती है. ऐसा करने के लिए, GMSNavigationMutableWaypoint पर स्टॉपओवर की प्राथमिकता सेट करें, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:

let location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20)
let waypoint = GMSNavigationMutableWaypoint(location: location, title: "waypoint from location")!
waypoint.vehicleStopover = true
mapView.navigator?.setDestinations([waypoint], routingOptions: routingOptions, callback: {...})

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationMutableWaypoint *waypoint =
    [[GMSNavigationMutableWaypoint alloc] initWithLocation:location
                                                     title:@"waypoint from location"];
waypoint.vehicleStopover = YES;
[_mapView.navigator setDestinations:@[waypoint1]
                     routingOptions:routingOptions
                           callback:^(GMSRouteStatus routeStatus){...}];