เมื่อใช้ 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];
รายการเส้นทาง
คุณสามารถระบุเส้นทางแบบทีละขั้นตอนในแอปได้ ตัวอย่างต่อไปนี้แสดงวิธีหนึ่งในการทำเช่นนั้น ขั้นตอนเหล่านี้อาจแตกต่างกันไปตามการติดตั้งใช้งานของคุณ
- เปิดใช้ปุ่มจุดแรกเข้าหลังจากที่
setDestinations
ในGMSNavigator
(Navigator) เสร็จสมบูรณ์และเปิดใช้guidanceActive
ใน Navigator แล้ว - เมื่อผู้ใช้แตะปุ่มจุดแรก ให้สร้าง
GMSNavigationDirectionsListController
(ตัวควบคุม) ที่มีโปรแกรมนำทางซึ่งเชื่อมโยงกับGMSMapView
(mapView
) - เพิ่มตัวควบคุมลงในอินสแตนซ์ของ
UIViewController
(ตัวควบคุมมุมมอง) และเพิ่มdirectionsListView
เป็นมุมมองย่อยของตัวควบคุมมุมมอง ควรเรียกใช้เมธอดreloadData
และinvalidateLayout
ในคอนโทรลเลอร์เช่นเดียวกับที่ใช้กับUICollectionView
- พุชวิดเจ็ตควบคุมการแสดงผลไปยังลําดับชั้นวิดเจ็ตควบคุมการแสดงผลของแอป
ตัวอย่างโค้ดต่อไปนี้แสดงการเพิ่ม 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){...}];