แก้ไข UI การนําทาง

เมื่อใช้ Navigation SDK สําหรับ iOS คุณจะปรับเปลี่ยนประสบการณ์ของผู้ใช้กับแผนที่ได้โดยการกําหนดตัวควบคุมและองค์ประกอบ UI ในตัวที่จะปรากฏบนแผนที่ รวมถึงท่าทางสัมผัสที่คุณอนุญาต นอกจากนี้ คุณยังแก้ไขลักษณะที่ปรากฏของ UI การนำทางได้ด้วย ดูหลักเกณฑ์เกี่ยวกับการแก้ไข UI การนําทางที่ยอมรับได้ที่หน้านโยบาย

ตัวควบคุม UI ของแผนที่

Navigation SDK มีการควบคุม UI ในตัวบางอย่างซึ่งคล้ายกับการควบคุมที่มีในแอปพลิเคชัน Google Maps สำหรับ iOS คุณสลับการแสดงผลของการควบคุมเหล่านี้ได้โดยใช้คลาส GMSUISettings การเปลี่ยนแปลงที่คุณทำในชั้นนี้จะแสดงในแผนที่ทันที

เข็มทิศ

Navigation SDK มีกราฟิกเข็มทิศซึ่งจะปรากฏที่มุมขวาบนของแผนที่ในบางกรณีและเมื่อเปิดใช้เท่านั้น เข็มทิศจะปรากฏขึ้นก็ต่อเมื่อกล้องหันไปในทิศทางที่มีทิศทางอื่นที่ไม่ใช่ทิศเหนือ (ทิศทางที่ไม่ใช่ 0) เมื่อผู้ใช้คลิกเข็มทิศ กล้องจะเคลื่อนไหวกลับไปยังตำแหน่งที่มีทิศทางเป็น 0 (การวางแนวเริ่มต้น) และเข็มทิศจะค่อยๆ หายไปหลังจากนั้นไม่นาน

หากเปิดใช้การนำทางและตั้งค่าโหมดกล้องเป็น "ติดตาม" เข็มทิศจะยังคงปรากฏอยู่ และการแตะเข็มทิศจะสลับระหว่างมุมมองกล้องแบบเอียงและแบบภาพรวม

เข็มทิศจะปิดอยู่โดยค่าเริ่มต้น คุณเปิดใช้เข็มทิศได้โดยตั้งค่าพร็อพเพอร์ตี้ compassButton ของ GMSUISettings เป็น true แต่คุณไม่สามารถบังคับให้เข็มทิศแสดงอยู่เสมอ

Swift

mapView.settings.compassButton = true

Objective-C

mapView.settings.compassButton = YES;

ปุ่มตำแหน่งของฉัน

ปุ่มตำแหน่งของฉันจะปรากฏที่มุมขวาล่างของหน้าจอเฉพาะเมื่อเปิดใช้ปุ่มตำแหน่งของฉัน เมื่อผู้ใช้คลิกปุ่ม กล้องจะเคลื่อนไหวเพื่อโฟกัสที่ตำแหน่งปัจจุบันของผู้ใช้ หากระบบทราบตำแหน่งของผู้ใช้ในขณะนั้น คุณเปิดใช้ปุ่มได้โดยการตั้งค่าพร็อพเพอร์ตี้ myLocationButton ของ GMSUISettings เป็น true

Swift

mapView.settings.myLocationButton = true

Objective-C

mapView.settings.myLocationButton = YES;

ปุ่มปรับศูนย์กลาง

เมื่อเปิดใช้การนําทาง ปุ่ม "จัดกึ่งกลางใหม่" จะปรากฏขึ้นเมื่อผู้ใช้เลื่อนมุมมองแผนที่ และหายไปเมื่อผู้ใช้แตะเพื่อจัดกึ่งกลางแผนที่ใหม่ หากต้องการอนุญาตให้ปุ่ม "จัดกึ่งกลางใหม่" ปรากฏขึ้น ให้ตั้งค่าพร็อพเพอร์ตี้ recenterButtonEnabled ของ GMSUISettings เป็น true หากไม่ต้องการให้ปุ่ม "จัดตำแหน่งใหม่" ปรากฏขึ้น ให้ตั้งค่า recenterButtonEnabled เป็น false

Swift

mapView.settings.isRecenterButtonEnabled = true

Objective-C

mapView.settings.recenterButtonEnabled = YES;

อุปกรณ์เสริม UI ของแผนที่

Navigation SDK มีอุปกรณ์เสริม UI ที่ปรากฏขึ้นระหว่างการนําทาง ซึ่งคล้ายกับอุปกรณ์เสริมที่อยู่ในแอปพลิเคชัน Google Maps สําหรับ iOS คุณสามารถปรับระดับการมองเห็นหรือลักษณะที่ปรากฏของตัวควบคุมเหล่านี้ได้ตามที่อธิบายไว้ในส่วนนี้ การเปลี่ยนแปลงที่คุณทำที่นี่จะแสดงในการเดินทางครั้งถัดไปของผู้ใช้

ในระหว่างการนําทาง ส่วนหัวการนําทางจะปรากฏที่ด้านบนของหน้าจอ ส่วนท้ายการนําทางจะปรากฏที่ด้านล่าง ส่วนหัวการนำทางจะแสดงชื่อถนนและทิศทางสำหรับการเลี้ยวถัดไปบนเส้นทาง รวมถึงทิศทางของการเลี้ยวถัดไป ส่วนท้ายของการนําทางจะแสดงเวลาและระยะทางโดยประมาณไปยังจุดหมาย รวมถึงเวลาถึงโดยประมาณ

คุณสลับการแสดงผลส่วนหัวและส่วนท้ายการนําทาง รวมถึงตั้งค่าสีแบบเป็นโปรแกรมได้โดยใช้พร็อพเพอร์ตี้ต่อไปนี้

  • navigationHeaderEnabled — ควบคุมว่าส่วนหัวการนําทางจะแสดงหรือไม่ (ค่าเริ่มต้นคือ true)
  • navigationFooterEnabled — ควบคุมว่าส่วนท้ายการนําทางจะแสดงหรือไม่ (ค่าเริ่มต้นคือ true)
  • navigationHeaderPrimaryBackgroundColor — กําหนดสีพื้นหลังหลักสําหรับส่วนหัวการนําทาง
  • navigationHeaderSecondaryBackgroundColor — กําหนดสีพื้นหลังรองสําหรับส่วนหัวการนําทาง

ตัวอย่างโค้ดต่อไปนี้แสดงการเปิดการแสดงผลสําหรับส่วนหัวและส่วนท้าย จากนั้นตั้งค่า navigationHeaderPrimaryBackgroundColor เป็นสีน้ำเงิน และ navigationHeaderSecondaryBackgroundColor เป็นสีแดง

Swift

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

Objective-C

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

คุณสามารถปรับแต่งแอปได้โดยแทนที่มุมมองส่วนหัวการนำทางรองด้วยมุมมองอุปกรณ์เสริมที่กําหนดเอง ซึ่งทำได้โดยการสร้างมุมมองที่ใช้โปรโตคอล GMSNavigationAccessoryView โปรโตคอลนี้มีเมธอดที่จําเป็น 1 รายการ ได้แก่ -heightForAccessoryViewConstrainedToSize:onMapView: คุณจะได้รับขนาดสูงสุดที่ใช้ได้สำหรับมุมมองใน mapView ที่ระบุ และจะต้องระบุความสูงที่มุมมองของคุณต้องใช้

จากนั้นคุณสามารถส่งมุมมองนี้ไปยัง mapView ได้โดยเรียกใช้ setHeaderAccessoryView: 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)

Objective-C

@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];

รายการเส้นทาง

คุณสามารถระบุวิธีการแบบทีละขั้นตอนในแอปได้ ตัวอย่างต่อไปนี้แสดงวิธีหนึ่งในการทำเช่นนั้น ขั้นตอนเหล่านี้อาจแตกต่างกันไปตามการติดตั้งใช้งานของคุณ

  1. เปิดใช้ปุ่มจุดแรกเข้าหลังจากที่ setDestinations ใน GMSNavigator (Navigator) เสร็จสมบูรณ์และเปิดใช้ guidanceActive ใน Navigator แล้ว
  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)
  // Ensure 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()
  })
  ...
}

Objective-C

- (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];
  // Ensure 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

Objective-C

mapView.settings.navigationTripProgressBarEnabled = YES;

สัญญาณไฟจราจรและป้ายหยุด

ป้ายหยุดและสัญญาณไฟจราจรที่แสดงระหว่างการนำทาง

คุณเปิดใช้สัญญาณไฟจราจรและป้ายหยุดได้ในmapView ฟีเจอร์นี้ช่วยให้ผู้ใช้เปิดใช้การแสดงไอคอนไฟจราจรหรือป้ายหยุดตลอดเส้นทางได้ ซึ่งจะให้บริบทที่ดีขึ้นเพื่อให้การเดินทางมีประสิทธิภาพและแม่นยำยิ่งขึ้น

โดยค่าเริ่มต้น สัญญาณไฟจราจรและป้ายหยุดจะถูกปิดใช้ใน Navigation SDK สำหรับ iOS หากต้องการเปิดใช้ฟีเจอร์นี้ ให้เรียกใช้การตั้งค่า GMSMapView สำหรับแต่ละตัวเลือกแยกกัน ดังนี้ showsTrafficLights และ showsStopSigns


Swift

mapView.settings.showsTrafficLights = true
mapView.settings.showsStopSigns = true

Objective-C

mapView.settings.showsTrafficLights = YES;
mapView.settings.showsStopSigns = YES;

การควบคุมมาตรวัดความเร็ว

เมื่อเปิดใช้การนําทางและตั้งค่าโหมดการเดินทางเป็น "ขับรถ" แล้ว Navigation SDK สําหรับ iOS จะแสดงตัวควบคุมขีดจํากัดความเร็วที่มุมล่างของแผนที่ซึ่งแสดงขีดจํากัดความเร็วปัจจุบัน เมื่อคนขับขับรถเร็วเกินขีดจำกัด การควบคุมจะขยายออกเพื่อแสดงมาตรวัดความเร็วที่ 2 พร้อมความเร็วปัจจุบันของคนขับ

คุณสามารถตั้งค่าระดับการแจ้งเตือนเพื่อเปลี่ยนการจัดรูปแบบของจอแสดงผลมาตรความเร็วได้เมื่อผู้ขับขี่ขับรถเร็วเกินขีดจำกัดที่กำหนด เช่น คุณสามารถระบุให้ความเร็วปัจจุบันแสดงด้วยสีข้อความสีแดงเมื่อผู้ขับขี่ขับรถเร็วกว่าขีดจำกัดความเร็ว 5 ไมล์ต่อชั่วโมง และมีพื้นหลังสีแดงเมื่อผู้ขับขี่ขับรถเร็วกว่าขีดจำกัดความเร็ว 10 ไมล์ต่อชั่วโมง

หากต้องการแสดงการควบคุมขีดจำกัดความเร็ว ให้ตั้งค่าพร็อพเพอร์ตี้ shouldDisplaySpeedometer ของ GMSUISettings เป็น true หากต้องการปิดใช้การแสดงการควบคุมความเร็ว ให้ตั้งค่า shouldDisplaySpeedometer เป็น false

Swift

mapView.shouldDisplaySpeedometer = true

Objective-C

mapView.shouldDisplaySpeedometer = YES;

ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าการแจ้งเตือนสำหรับมาตรความเร็วได้ที่หัวข้อกำหนดค่าการแจ้งเตือนมาตรความเร็ว

เครื่องหมายปลายทาง

คุณสามารถแสดงหรือซ่อนเครื่องหมายปลายทางของเส้นทางหนึ่งๆ ได้โดยการตั้งค่าพร็อพเพอร์ตี้ showsDestinationMarkers ของ GMSUISettings ตัวอย่างต่อไปนี้แสดงการปิดเครื่องหมายปลายทาง

Swift

mapView.settings.showsDestinationMarkers = false

Objective-C

mapView.settings.showsDestinationMarkers = NO;

ฟีเจอร์ประสบการณ์การใช้งานแผนที่

Navigation SDK ช่วยให้คุณปรับแต่งประสบการณ์การนําทางสําหรับผู้ใช้เพิ่มเติมได้ การเปลี่ยนแปลงที่คุณทำกับอินสแตนซ์จะแสดงในครั้งถัดไปที่ผู้ใช้อัปเดตแอป

ปิดใช้ท่าทางสัมผัสเริ่มต้นของแผนที่

คุณสามารถปิดใช้ท่าทางสัมผัสเริ่มต้นบนแผนที่ได้โดยการตั้งค่าพร็อพเพอร์ตี้ของคลาส GMSUISettings ซึ่งใช้เป็นพร็อพเพอร์ตี้ของ GMSMapView ได้ คุณเปิดและปิดใช้ท่าทางสัมผัสต่อไปนี้แบบเป็นโปรแกรมได้ โปรดทราบว่าการปิดใช้ท่าทางสัมผัสจะไม่จำกัดการเข้าถึงการตั้งค่ากล้องแบบเป็นโปรแกรม

  • scrollGestures — ควบคุมว่าจะเปิดหรือปิดใช้ท่าทางสัมผัสในการเลื่อน หากเปิดใช้ ผู้ใช้จะปัดเพื่อเลื่อนกล้องได้
  • zoomGestures — ควบคุมว่าจะเปิดหรือปิดใช้ท่าทางสัมผัสเพื่อซูม หากเปิดใช้ ผู้ใช้อาจแตะสองครั้ง แตะด้วย 2 นิ้ว หรือใช้ 2 นิ้วบีบเข้าเพื่อซูมกล้อง โปรดทราบว่าการแตะสองครั้งหรือการบีบนิ้วเมื่อเปิดใช้ scrollGestures อาจทำให้กล้องเลื่อนไปยังจุดที่ระบุ
  • tiltGestures — ควบคุมว่าจะเปิดหรือปิดใช้ท่าทางสัมผัสด้วยการเอียง หากเปิดใช้ ผู้ใช้อาจใช้ 2 นิ้วปัดขึ้นหรือลงในแนวตั้งเพื่อเอียงกล้อง
  • rotateGestures — ควบคุมว่าจะเปิดหรือปิดใช้ท่าทางสัมผัสในการหมุน หากเปิดใช้ ผู้ใช้อาจใช้ท่าทางสัมผัสหมุนด้วย 2 นิ้วเพื่อหมุนกล้องได้

ในตัวอย่างนี้ มีการปิดใช้ทั้งท่าทางสัมผัสในการเลื่อนและซูม

Swift

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

Objective-C

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

วางตัวควบคุมและองค์ประกอบ UI

คุณสามารถจัดตําแหน่งตัวควบคุมและองค์ประกอบ UI อื่นๆ โดยสัมพันธ์กับตําแหน่งของส่วนหัวและส่วนท้ายการนําทางได้โดยใช้พร็อพเพอร์ตี้ต่อไปนี้

  • navigationHeaderLayoutGuide
  • navigationFooterLayoutGuide

ตัวอย่างโค้ดต่อไปนี้แสดงการใช้คำแนะนำเลย์เอาต์เพื่อวางตำแหน่งคู่ป้ายกำกับในมุมมองแผนที่

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

Objective-C

/* 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;

ซ่อนเส้นทางอื่น

เมื่ออินเทอร์เฟซผู้ใช้มีข้อมูลมากเกินไป คุณสามารถลดความกระจัดกระจายได้โดยการแสดงเส้นทางอื่นน้อยกว่าค่าเริ่มต้น (2 เส้นทาง) หรือไม่แสดงเส้นทางอื่นเลย คุณสามารถกําหนดค่าตัวเลือกนี้ก่อนดึงข้อมูลเส้นทางได้โดยการกําหนดค่า GMSNavigationRoutingOptions และตั้งค่า alternateRoutesStrategy ด้วยค่าการแจกแจงค่าใดค่าหนึ่งต่อไปนี้

ค่าการแจกแจงคำอธิบาย
GMSNavigationAlternateRoutesStrategyAll ค่าเริ่มต้น แสดงเส้นทางอื่นได้สูงสุด 2 เส้นทาง
GMSNavigationAlternateRoutesStrategyOne แสดงเส้นทางอื่น 1 เส้นทาง (หากมี)
GMSNavigationAlternateRoutesStrategyNone ซ่อนเส้นทางอื่น

ตัวอย่าง

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีซ่อนเส้นทางอื่นทั้งหมด

Swift

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

Objective-C

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