اصلاح کردن میانای کاربر پیمایش

بااستفاده از «کیت توسعه نرم‌افزار پیمایش برای iOS»، می‌توانید تجربه کاربر را با نقشه خودتان تغییر دهید و تعیین کنید کدام‌یک از عناصر و کنترل‌های میانای کاربر داخلی در نقشه نشان داده شود و کدام‌یک از اشاره‌ها را مجاز می‌کنید. همچنین می‌توانید ظاهر دیداری «میانای کاربر پیمایش» را تغییر دهید. برای دستورالعمل‌های مربوط به تغییرات قابل‌قبول در «واسط کاربر پیمایش»، به صفحه خط‌مشی‌ها مراجعه کنید.

کنترل‌های میانای کاربر نقشه

کیت توسعه نرم‌افزار ناوبری برخی‌از کنترل‌های میانای کاربر داخلی را ارائه می‌دهد که مشابه کنترل‌های موجود در برنامه Google Maps برای iOS است. می‌توانید رؤیت‌پذیری این کنترل‌ها را بااستفاده از کلاس GMSUISettings تغییر دهید. تغییراتی که در این کلاس ایجاد می‌کنید بلافاصله در نقشه منعکس می‌شود.

قطب‌نما

«کیت توسعه نرم‌افزار ناوبری» گرافیک قطب‌نمایی ارائه می‌دهد که در شرایط خاصی و فقط زمانی که فعال باشد در گوشه بالای نقشه ظاهر می‌شود. وقتی کاربر روی قطب‌نما کلیک می‌کند، دوربین به موقعیتی با زاویه صفر (جهت‌گیری پیش‌فرض) برمی‌گردد و قطب‌نما کمی بعد محو می‌شود.

اگر پیمایش فعال باشد و حالت دوربین روی «دنبال کردن» تنظیم شده باشد، قطب‌نما قابل‌مشاهده می‌ماند و با تک‌ضرب زدن روی قطب‌نما بین چشم‌اندازهای دوربین کج‌شده و نمای کلی جابه‌جا می‌شوید.

برای جلوگیری از حواس‌پرتی راننده، اگر سرصفحه (در حالت عمودی) گسترش یابد و با موقعیت پیش‌فرض قطب‌نما تداخل داشته باشد، قطب‌نما در همان موقعیت باقی می‌ماند. اگر کنترل سفارشی سرایند ثانویه یا نمای لوازم جانبی سرایند اضافه کنید، قطب‌نما پنهان می‌شود تا از تداخل میانای کاربر جلوگیری شود.

قطب‌نما از حالت‌های روز و شب و همچنین حالت تاریک پشتیبانی می‌کند.

قطب‌نما به‌طور پیش‌فرض در نسخه ۱۱.۰.۰ و بالاتر فعال است. می‌توانید قطب‌نما را با تنظیم ویژگی compassButton GMSUISettings روی false غیرفعال کنید.

Swift

mapView.settings.compassButton = false

آبجکتیو-سی

mapView.settings.compassButton = NO;

دکمه «مکان من»

دکمه «مکان من» در گوشه پایین سمت چپ صفحه فقط زمانی ظاهر می‌شود که دکمه «مکان من» فعال باشد. وقتی کاربر روی دکمه کلیک می‌کند، دوربین متحرک می‌شود تا روی مکان فعلی کاربر تمرکز کند، اگر مکان کاربر مشخص باشد. با تنظیم کردن myLocationButton خصوصیت GMSUISettings روی true می‌توانید دکمه را فعال کنید.

Swift

mapView.settings.myLocationButton = true

آبجکتیو-سی

mapView.settings.myLocationButton = YES;

دکمه بازمرکزیابی

وقتی پیمایش فعال باشد، دکمه «مرکز کردن مجدد» زمانی که کاربر نمای نقشه را پیمایش می‌کند ظاهر می‌شود و زمانی که کاربر برای مرکز کردن مجدد نقشه ضربه می‌زند ناپدید می‌شود. برای اینکه دکمه بازمرکز کردن نشان داده شود، ویژگی recenterButtonEnabled GMSUISettings را روی true تنظیم کنید. برای جلوگیری از نمایش دکمه «مرکز کردن مجدد»، recenterButtonEnabled را روی false تنظیم کنید.

Swift

mapView.settings.isRecenterButtonEnabled = true

آبجکتیو-سی

mapView.settings.recenterButtonEnabled = YES;

لوازم جانبی میانای کاربر نقشه

کیت توسعه نرم‌افزار پیمایش لوازم جانبی واسط کاربری را ارائه می‌دهد که درطول پیمایش ظاهر می‌شوند و شبیه به مواردی هستند که در برنامه Google Maps برای iOS یافت می‌شوند. می‌توانید رؤیت‌پذیری یا ظاهر بصری این کنترل‌ها را همان‌طور که در این بخش شرح داده شده است تنظیم کنید. تغییراتی که در اینجا ایجاد می‌کنید در سفر بعدی کاربر منعکس می‌شود.

درطول پیمایش، سرصفحه پیمایش در بالای صفحه و پاصفحه پیمایش در پایین صفحه نشان داده می‌شود. سرصفحه پیمایش نام خیابان و جهت پیچ بعدی در مسیر و همچنین جهت پیچ بعدی را نشان می‌دهد. پانویس ناوبری زمان و فاصله تخمینی تا مقصد و همچنین زمان تخمینی رسیدن را نشان می‌دهد.

می‌توانید رؤیت‌پذیری سرصفحه و پانویس پیمایش را تغییر دهید و رنگ‌های آن را به‌صورت برنامه‌نویسی‌شده بااستفاده از ویژگی‌های زیر تنظیم کنید:

نمونه کد زیر نشان می‌دهد که چگونه نمایان بودن سرصفحه و پاصفحه را روشن کنید، سپس navigationHeaderPrimaryBackgroundColor را به آبی و navigationHeaderSecondaryBackgroundColor را به قرمز تنظیم کنید.

Swift

mapView.settings.isNavigationHeaderEnabled = true
mapView.settings.isNavigationFooterEnabled = true
mapView.settings.navigationHeaderPrimaryBackgroundColor = .blue
mapView.settings.navigationHeaderSecondaryBackgroundColor = .red

آبجکتیو-سی

mapView.settings.navigationHeaderEnabled = YES;
mapView.settings.navigationFooterEnabled = YES;
mapView.settings.navigationHeaderPrimaryBackgroundColor = [UIColor blueColor];
mapView.settings.navigationHeaderSecondaryBackgroundColor = [UIColor redColor];

می‌توانید با جایگزین کردن نمای سرصفحه پیمایش ثانویه با نمای لوازم جانبی سفارشی‌شده خودتان، برنامه‌تان را سفارشی‌سازی کنید. این کار را با ایجاد نمایی انجام می‌دهید که پروتکل GMSNavigationAccessoryView را پیاده‌سازی می‌کند. این پروتکل یک روش الزامی دارد: -heightForAccessoryViewConstrainedToSize:onMapView:. حداکثر اندازه دردسترس برای نمای شما در mapView داده‌شده به شما ارائه می‌شود و باید ارتفاعی را که نمای شما نیاز دارد ارائه دهید.

سپس می‌توانید این نما را با فراخوانی setHeaderAccessoryView: به mapView ارسال کنید. mapView هر نمای فعلی را پویانمایی می‌کند و سپس نمای سفارشی شما را پویانمایی می‌کند. سرصفحه پیمایش باید نمایان باشد تا نمای سفارشی شما بتواند نمایش داده شود.

برای برداشتن نمای لوازم جانبی سرصفحه سفارشی، nil را به setHeaderAccessoryView: منتقل کنید.

اگر نمای شما باید در هر زمانی تغییر اندازه دهد، می‌توانید invalidateLayoutForAccessoryView: را فراخوانی کنید و نمایی را که باید تغییر اندازه دهد ارسال کنید.

مثال

نمونه کد زیر نمای سفارشی‌ای را نشان می‌دهد که پروتکل GMSNavigationAccessoryView را پیاده‌سازی می‌کند. سپس از این نمای سفارشی برای تنظیم نمای لوازم جانبی سرصفحه پیمایش سفارشی استفاده می‌شود.

Swift

class MyCustomView: UIView, GMSNavigationAccessoryView {
…
  func heightForAccessoryViewConstrained(to size: CGSize, on mapView: GMSMapView) -> CGFloat {
    // viewHeight gets calculated as the height your view needs.
    return viewHeight
  }
…
}

let customView = MyCustomView(...)
mapView.setHeaderAccessory(customView)

// At some later point customView changes size.
mapView.invalidateLayout(forAccessoryView: customView)

// Remove the custom header accessory view.
mapView.setHeaderAccessory(nil)

آبجکتیو-سی

@interface MyCustomView : UIView <GMSNavigationAccessoryView>
…
@end

@implementation MyCustomView
…
- (CGFloat)heightForAccessoryViewConstrainedToSize:(CGSize)size onMapView:(GMSMapView *)mapView {
  // viewHeight gets calculated as the height your view needs.
  return viewHeight;
}
…
@end

MyCustomView *customView = [[MyCustomView alloc] init…];
[_mapView setHeaderAccessoryView:customView];

// At some later point customView changes size.
[_mapView invalidateLayoutForAccessoryView:customView];

// Remove the custom header accessory view.
[_mapView setHeaderAccessoryView:nil];

رنگ‌های سرصفحه حالت کم‌نور

Navigation SDK for iOS حالت روشنایی پیشنهادی را براساس زمان روز و مکان فعلی دستگاه محاسبه می‌کند و وقتی حالت پیشنهادی تغییر می‌کند (مثلاً هنگام طلوع یا غروب آفتاب)، روش شنونده GMSNavigatorListener.didChangeSuggestedLightingMode را فراخوانی می‌کند. می‌توانید رفتار حالت نور کم را به‌صورت برنامه‌ریزی‌شده به روش‌های زیر تغییر دهید:

فهرست مسیرها

می‌توانید در برنامه‌تان مسیرهای گام‌به‌گام ارائه دهید. مثال زیر یکی از روش‌های ممکن برای انجام این کار را نشان می‌دهد. این مراحل ممکن است بسته به پیاده‌سازی شما متفاوت باشد.

  1. دکمه نقطه ورود پس‌از setDestinations در GMSNavigator (پیمایشگر) باموفقیت تکمیل شد و guidanceActive در پیمایشگر فعال شد.
  2. وقتی کاربری روی دکمه نقطه ورودی تک‌ضرب می‌زند، GMSNavigationDirectionsListController (کنترل‌کننده) را با پیمایشگر مرتبط با GMSMapView (mapView) ایجاد کنید.
  3. کنترل‌کننده را به نمونه‌ای از UIViewController (کنترل‌کننده نما) اضافه کنید، و directionsListView را به‌عنوان نمای فرعی کنترل‌کننده نما اضافه کنید. روش‌های reloadData و invalidateLayout در کنترل‌کننده باید به‌همان روشی که با UICollectionView انجام می‌شود فراخوانی شوند.
  4. کنترل‌کننده نما را به سلسله مراتب کنترل‌کننده نمای برنامه فشار دهید.

نمونه کد زیر افزودن DirectionsListViewController را نشان می‌دهد.

Swift

override func viewDidLoad() {
  super.viewDidLoad()
  // Add the directionsListView to the host view controller's view.
  let directionsListView = directionsListController.directionsListView
  directionsListView.frame = self.view.frame
  self.view.addSubview(directionsListView)
  directionsListView.translatesAutoresizingMaskIntoConstraints = false
  directionsListView.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true
  directionsListView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor).isActive = true
  directionsListView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor).isActive = true
  directionsListView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true
  ...
}

override func viewWillAppear(_ animated: Bool) {
  super.viewWillAppear(animated)
  // Make sure data is fresh when the view appears.
  directionsListController.reloadData()
  ...
}

override func willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator) {
  super.willTransition(to: newCollection, with: coordinator)
  // Invalidate the layout during rotation.
  coordinator.animate(alongsideTransition: {_ in
    self.directionsListController.invalidateLayout()
  })
  ...
}

آبجکتیو-سی

- (void)viewDidLoad {
  [super viewDidLoad];
  // Add the directionsListView to the host view controller's view.
  UIView *directionsListView = _directionsListController.directionsListView;
  directionsListView.frame = self.view.bounds;
  [self.view addSubview:directionsListView];
  directionsListView.translatesAutoresizingMaskIntoConstraints = NO;
  [directionsListView.topAnchor constraintEqualToAnchor:self.view.topAnchor].active = YES;
  [directionsListView.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor].active = YES;
  [directionsListView.trailingAnchor constraintEqualToAnchor:self.view.trailingAnchor].active = YES;
  [directionsListView.bottomAnchor constraintEqualToAnchor:self.view.bottomAnchor].active = YES;
  ...
}

- (void)viewWillAppear:(BOOL)animated {
  [super viewWillAppear:animated];
  // Make sure data is fresh when the view appears.
  [_directionsListController reloadData];
  ...
}

- (void)willTransitionToTraitCollection:(UITraitCollection *)newCollection
              withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
  [super willTransitionToTraitCollection:newCollection withTransitionCoordinator:coordinator];
  void(^animationBlock)(id <UIViewControllerTransitionCoordinatorContext>context) =
      ^void(id <UIViewControllerTransitionCoordinatorContext>context) {
    [_directionsListController invalidateLayout];
  };
  // Invalidate the layout during rotation.
  [coordinator animateAlongsideTransition:animationBlock
                               completion:nil];
  ...
}

...

نوار پیشرفت سفر

نوار پیشرفت سفر به پیمایش اضافه شد.

نوار پیشرفت سفر نوار عمودی‌ای است که هنگام شروع ناوبری در سمت شروع/پیشرو نقشه ظاهر می‌شود. وقتی فعال باشد، نمای کلی کل سفر را به‌همراه مقصد و موقعیت فعلی کاربر نمایش می‌دهد.

این نمای کلی به کاربران امکان می‌دهد بدون نیاز به بزرگ‌نمایی، به‌سرعت هرگونه مشکل آتی، مانند ترافیک، را پیش‌بینی کنند. سپس درصورت لزوم می‌توانند مسیر سفر را تغییر دهند. اگر کاربر مسیر سفر را تغییر دهد، نوار پیشرفت بازنشانی می‌شود انگار سفر جدیدی از آن نقطه شروع شده است.

نوار پیشرفت سفر نشانگرهای وضعیت زیر را نمایش می‌دهد:

  • وضعیت ترافیک—وضعیت ترافیک پیش‌رو.

  • مکان کنونی—مکان کنونی راننده در سفر.

  • مسیر طی‌شده—بخش طی‌شده سفر.

با تنظیم کردن دارایی navigationTripProgressBarEnabled در GMSUISettings، نوار پیشرفت سفر را فعال کنید.

Swift

mapView.settings.isNavigationTripProgressBarEnabled = true

آبجکتیو-سی

mapView.settings.navigationTripProgressBarEnabled = YES;

جای نوار پیشرفت سفر

  • سمت چپ نوار تقریباً با سمت چپ سرعت‌سنج، نشان‌واره Google، و دکمه «مرکز کردن مجدد» (وقتی نمایان باشد) تراز می‌شود. عرض ۱۲ نقطه است.
  • نوار پیشرفت سفر به‌طور پویا به فضای عمودی روی صفحه‌نمایش پاسخ می‌دهد. پایین نوار در فاصله ۲۱۰ نقطه از پایین صفحه قرار دارد. بالای نوار پیشرفت سفر حداقل ۱۷۰ نقطه از بالای صفحه فاصله دارد و حداکثر ارتفاع نوار ۴۰۰ نقطه است.
  • اگر نوار پیشرفت سفر با سرصفحه پیمایش یا دیگر عناصر میانای کاربر پیمایش هم‌پوشانی داشته باشد، زیر آن عناصر دیگر نشان داده می‌شود.

Prompt Visibility API (آزمایشی)

«میانای برنامه‌سازی کاربردی رؤیت‌پذیری پیام‌واره» به شما امکان می‌دهد با افزودن یک شنونده برای دریافت یک برگشت تماس قبل‌از اینکه عنصر میانای کاربر «کیت توسعه نرم‌افزار پیمایش» ظاهر شود و به‌محض اینکه عنصر برداشته شود، از تعارض بین عناصر میانای کاربر تولیدشده توسط «کیت توسعه نرم‌افزار پیمایش» و عناصر میانای کاربر سفارشی خودتان جلوگیری کنید. برای اطلاعات بیشتر، ازجمله نمونه‌های کد، به بخش Prompt Visibility API در صفحه پیکربندی اختلالات بی‌درنگ مراجعه کنید.

کنترل سرعت‌سنج

وقتی پیمایش فعال باشد و حالت سفر روی رانندگی تنظیم شده باشد، Navigation SDK for iOS کنترل محدودیت سرعت را در گوشه پایین نقشه نمایش می‌دهد که محدودیت سرعت فعلی را نشان می‌دهد. وقتی راننده از حد مجاز سرعت فراتر می‌رود، کنترل ازهم باز می‌شود تا سرعت‌سنج دومی با سرعت فعلی راننده نمایش دهد.

می‌توانید سطوح هشدار را تنظیم کنید تا قالب‌بندی نمایش سرعت‌سنج را وقتی راننده از حد مجاز سرعت به میزان مشخصی فراتر می‌رود تغییر دهید. برای مثال، می‌توانید مشخص کنید که وقتی راننده ۵ مایل در ساعت از حد مجاز سرعت فراتر می‌رود، سرعت فعلی با رنگ نوشتار قرمز نمایش داده شود و وقتی راننده ۱۰ مایل در ساعت از حد مجاز سرعت فراتر می‌رود، سرعت فعلی با رنگ پس‌زمینه قرمز نمایش داده شود.

برای نمایش کنترل محدودیت سرعت، ویژگی shouldDisplaySpeedometer GMSUISettings را روی true تنظیم کنید. برای غیرفعال کردن نمایش کنترل محدودیت سرعت، shouldDisplaySpeedometer را روی false تنظیم کنید.

Swift

mapView.settings.shouldDisplaySpeedometer = true

آبجکتیو-سی

mapView.settings.shouldDisplaySpeedometer = YES;

برای اطلاعات بیشتر درباره تنظیم هشدار برای سرعت‌سنج، به پیکربندی هشدارهای سرعت‌سنج مراجعه کنید.

نشانگرهای مقصد

می‌توانید با تنظیم کردن ویژگی showsDestinationMarkers GMSUISettings، نشانگرهای مقصد را برای مسیر مشخصی نشان دهید یا پنهان کنید. مثال زیر نحوه خاموش کردن نشانگرهای مقصد را نشان می‌دهد.

Swift

mapView.settings.showsDestinationMarkers = false

آبجکتیو-سی

mapView.settings.showsDestinationMarkers = NO;

ویژگی‌های تجربه نقشه

کیت توسعه نرم‌افزار پیمایش به شما امکان می‌دهد سفارشی‌سازی‌های بیشتری در تجربه پیمایش برای کاربرانتان ایجاد کنید. تغییراتی که در نمونه‌تان ایجاد می‌کنید در به‌روزرسانی بعدی برنامه شما توسط کاربر منعکس می‌شود.

برجسته‌سازی مقصد و ورودی‌ها

برجسته‌سازی مقصد و ورودی‌ها

وقتی مقصدی با placeID ایجاد می‌شود، ساختمان مقصد برجسته می‌شود و درصورت امکان، نماد ورودی نشان داده می‌شود. این نشانه‌های بصری به کاربران کمک می‌کند تا مقصد موردنظرشان را تشخیص دهند و به آن پیمایش کنند.

برای ایجاد مقصد با placeID، از یکی از مقداردهی‌های اولیه GMSNavigationWaypoint که placeID را می‌پذیرد استفاده کنید. برای مثال، مقصدهای ایجادشده در آموزش پیمایش مسیر شامل برجسته‌سازی مقصد و برچسب‌های ورودی (درصورت دردسترس بودن) است.

نمایش ساختمان سه‌بعدی درطول ناوبری

نمایش ساختمان سه‌بعدی درطول ناوبری

ساختمان‌های سه‌بعدی به‌طور پیش‌فرض درطول ناوبری نمایش داده می‌شوند. برای غیرفعال کردن این ویژگی، buildingsEnabled را روی false (Swift) یا NO (Objective-C) تنظیم کنید.

غیرفعال کردن اشاره‌های پیش‌فرض نقشه

می‌توانید اشاره‌های پیش‌فرض را در نقشه با تنظیم کردن ویژگی‌های کلاس GMSUISettings غیرفعال کنید، که به‌عنوان ویژگی GMSMapView دردسترس است. اشاره‌های زیر را می‌توان به‌صورت برنامه‌ریزی‌شده فعال و غیرفعال کرد. توجه داشته باشید که غیرفعال کردن اشاره، دسترسی برنامه‌ای به تنظیمات دوربین را محدود نمی‌کند.

  • scrollGestures — کنترل می‌کند که اشاره‌های پیمایش فعال یا غیرفعال باشند. اگر فعال باشد، کاربران می‌توانند برای حرکت دادن دوربین تند بکشند.
  • zoomGestures — کنترل می‌کند که اشاره‌های بزرگ‌نمایی فعال یا غیرفعال باشند. اگر فعال باشد، کاربران می‌توانند برای بزرگ‌نمایی دوربین، دو بار تک‌ضرب بزنند، با دو انگشت تک‌ضرب بزنند، یا نیشگون لمسی انجام دهند. توجه داشته باشید که دو تک‌ضرب زدن یا نیشگون گرفتن هنگام فعال بودن scrollGestures ممکن است دوربین را به نقطه مشخص‌شده حرکت دهد.
  • tiltGestures — کنترل می‌کند که اشاره‌های کج کردن فعال یا غیرفعال باشند. اگر فعال باشد، کاربران می‌توانند با تند کشیدن دو انگشت به‌صورت عمودی به بالا یا پایین، دوربین را کج کنند.
  • rotateGestures — کنترل می‌کند که آیا اشاره‌های چرخش فعال یا غیرفعال هستند. اگر فعال باشد، کاربران می‌توانند از اشاره چرخش با دو انگشت برای چرخاندن دوربین استفاده کنند.

در این مثال، هر دو اشاره حرکت و بزرگ‌نمایی غیرفعال شده‌اند.

Swift

mapView.settings.scrollGestures = false
mapView.settings.zoomGestures = false

آبجکتیو-سی

mapView.settings.scrollGestures = NO;
mapView.settings.zoomGestures = NO;

کنترل‌های موقعیت و عناصر میانای کاربر

می‌توانید کنترل‌ها و دیگر عناصر میانای کاربر را نسبت به موقعیت سرصفحه و پاصفحه پیمایش بااستفاده از ویژگی‌های زیر قرار دهید:

  • navigationHeaderLayoutGuide
  • navigationFooterLayoutGuide
  • bottomTrailingButtonsLayoutGuide

نمونه کد زیر نحوه استفاده از راهنمای چیدمان برای قرار دادن یک جفت برچسب در نمای نقشه را نشان می‌دهد:

Swift

/* Add a label to the top left, positioned below the header. */
let topLabel = UILabel()
topLabel.text = "Top Left"
mapView.addSubview(topLabel)
topLabel.translatesAutoresizingMaskIntoConstraints = false
topLabel.topAnchor.constraint(equalTo: mapView.navigationHeaderLayoutGuide.bottomAnchor).isActive = true
topLabel.leadingAnchor.constraint(equalTo: mapView.leadingAnchor).isActive = true

/* Add a label to the bottom right, positioned above the footer. */
let bottomLabel = UILabel()
bottomLabel.text = "Bottom Right"
mapView.addSubview(bottomLabel)
bottomLabel.translatesAutoresizingMaskIntoConstraints = false
bottomLabel.bottomAnchor.constraint(equalTo: mapView.navigationFooterLayoutGuide.topAnchor).isActive = true
bottomLabel.trailingAnchor.constraint(equalTo: mapView.trailingAnchor).isActive = true

آبجکتیو-سی

/* Add a label to the top left, positioned below the header. */
UILabel *topLabel = [[UILabel alloc] init];
topLabel.text = @"Top Left";
[view addSubview:topLabel];
topLabel.translatesAutoresizingMaskIntoConstraints = NO;
[topLabel.topAnchor
    constraintEqualToAnchor:mapView.navigationHeaderLayoutGuide.bottomAnchor].active = YES;
[topLabel.leadingAnchor constraintEqualToAnchor:mapView.leadingAnchor].active = YES;

/* Add a label to the bottom right, positioned above the footer. */
UILabel *bottomLabel = [[UILabel alloc] init];
bottomLabel.text = @"Bottom Right";
[view addSubview:bottomLabel];
bottomLabel.translatesAutoresizingMaskIntoConstraints = NO;
[bottomLabel.bottomAnchor
    constraintEqualToAnchor:mapView.navigationFooterLayoutGuide.topAnchor].active = YES;
[bottomLabel.trailingAnchor constraintEqualToAnchor:mapView.trailingAnchor].active = YES;

برای نمونه‌ای از نحوه استفاده از bottomTrailingButtonsLayoutGuide، برای قرار دادن دکمه گزارش اختلالات هم‌زمان، به پیکربندی اختلالات هم‌زمان مراجعه کنید.

پنهان کردن مسیرهای جایگزین

وقتی میانای کاربر با اطلاعات بیش‌ازحد شلوغ می‌شود، می‌توانید با نمایش دادن مسیرهای جایگزین کمتر از مقدار پیش‌فرض (دو) یا با نمایش ندادن هیچ مسیر جایگزینی، شلوغی را کاهش دهید. می‌توانید این گزینه را قبل‌از واکشی مسیرها با پیکربندی GMSNavigationRoutingOptions و تنظیم alternateRoutesStrategy با یکی از مقادیر شمارشی زیر پیکربندی کنید:

مقدار فهرستشرح
GMSNavigationAlternateRoutesStrategyAll پیش‌فرض. حداکثر دو مسیر جایگزین را نمایش می‌دهد.
GMSNavigationAlternateRoutesStrategyOne یک مسیر جایگزین را نمایش می‌دهد (اگر وجود داشته باشد).
GMSNavigationAlternateRoutesStrategyNone مسیرهای جایگزین را پنهان می‌کند.

مثال

نمونه کد زیر نشان می‌دهد که چگونه مسیرهای جایگزین را به‌طور کامل پنهان کنید.

Swift

let routingOptions = GMSNavigationRoutingOptions(alternateRoutesStrategy: .none)
navigator?.setDestinations(destinations,
                           routingOptions: routingOptions) { routeStatus in
  ...
}

آبجکتیو-سی

GMSNavigationRoutingOptions *routingOptions = [[GMSNavigationRoutingOptions alloc] initWithAlternateRoutesStrategy:GMSNavigationAlternateRoutesStrategyNone];
[navigator setDestinations:destinations
            routingOptions:routingOptions
                  callback:^(GMSRouteStatus routeStatus){...}];