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

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

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

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

เข็มทิศ

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

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

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

Swift

mapView.settings.compassButton = true

Objective-C

mapView.settings.compassButton = YES;

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

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

Swift

mapView.settings.myLocationButton = true

Objective-C

mapView.settings.myLocationButton = YES;

ปุ่มจัดกึ่งกลางใหม่

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

Swift

mapView.settings.isRecenterButtonEnabled = true

Objective-C

mapView.settings.recenterButtonEnabled = YES;

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

Navigation SDK มีอุปกรณ์เสริมสำหรับ UI ที่ปรากฏในระหว่างการนำทาง ในลักษณะเดียวกับที่อยู่ในแอปพลิเคชัน Google แผนที่สำหรับ 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: มุมมองใน MapsView มีขนาดถึงขีดจำกัดสูงสุดที่ให้แล้ว และคุณต้องระบุความสูงเท่าที่มุมมองต้องการ

จากนั้นคุณจะส่งผ่านมุมมองนี้ไปยัง MapsView ได้โดยเรียก setHeaderAccessoryView: MapsView จะเคลื่อนไหวมุมมองปัจจุบัน จากนั้นสร้างภาพเคลื่อนไหวในมุมมองที่กำหนดเอง คุณต้องเห็นส่วนหัวของการนำทางเพื่อให้มุมมองที่กำหนดเองแสดงได้

หากต้องการนำมุมมองอุปกรณ์เสริมส่วนหัวที่กำหนดเองออก ให้ส่ง 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 (ตัวนำทาง) เสร็จสมบูรณ์แล้ว และเปิดใช้ guidanceActive ในตัวนำทางแล้ว
  2. เมื่อผู้ใช้แตะปุ่มจุดแรกเข้า ให้สร้าง GMSNavigationDirectionsListController (ตัวควบคุม) ที่มีตัวนำทางที่เชื่อมโยงกับ GMSMapView (mapView)
  3. เพิ่มตัวควบคุมลงในอินสแตนซ์ของ UIViewController (View Controller) และเพิ่ม 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 = YES;
mapView.settings.showsStopSigns = YES;

Objective-C

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

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

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

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

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

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 นิ้ว แตะ หรือบีบเพื่อซูมกล้อง โปรดทราบว่าการแตะสองครั้งหรือบีบนิ้วเมื่อเปิดใช้ 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 ด้วยค่าการแจงนับค่าใดค่าหนึ่งต่อไปนี้

ค่าการแจงนับคำอธิบาย
GMSการนำทางทางเลือกเส้นทางกลยุทธ์ทั้งหมด ค่าเริ่มต้น แสดงเส้นทางเลือกได้สูงสุด 2 เส้นทาง
GMSNavigationAlternativeRoutesStrategy1 แสดงเส้นทางสำรอง 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){...}];