ก่อนที่จะปรับแต่งเส้นหลายเส้น (หรือเครื่องหมาย) ของเส้นทาง คุณต้องเริ่มต้นตัวเลือกการปรับแต่ง UI ก่อน
เริ่มต้นตัวเลือกการปรับแต่ง UI
ประกาศ Callback ที่แนะนำซึ่งใช้ในการตั้งค่าตัวเลือกการปรับแต่ง UI ในตอนแรก
ใน GMTCMapViewDelegate mapViewDidInitialize
การเรียกกลับจะทริกเกอร์เมื่อออบเจ็กต์ GMTCMapView พร้อมแสดงแผนที่
เริ่มต้นตัวประสานงานสไตล์แล้ว แต่ไม่มีองค์ประกอบ UI
Swift
/** ViewController.swift */
class ViewController: UIViewController, GMTCMapViewDelegate {
  // MARK: - GMTCMapViewDelegate
  func mapViewDidInitialize(_ mapview: GMTCMapView) {
    // Set the UI customization options here.
  }
}
Objective-C
/** ViewController.m */
@interface ViewController () <GMTCMapViewDelegate>
#pragma mark GMTCMapViewDelegate
- (void)mapViewDidInitialize:(GMTCMapView *)mapview {
  // Set the UI customization options here.
}
ปรับแต่งโพลีไลน์
การปรับแต่งเส้นหลายเส้นจะตั้งค่าโดยใช้
GMTCConsumerMapStyleCoordinator#setPolylineStyleOptions(_:polylineType:)
ตัวอย่างต่อไปนี้แสดงวิธีตั้งค่าตัวเลือกรูปแบบเส้นหลายเส้น
ประเภทเส้นประกอบ
คุณปรับแต่งประเภทเส้นหลายส่วนต่อไปนี้ได้
- GMTCPolylineType.activeRoute: เส้นทางที่ยานพาหนะใช้ไปยังจุดถัดไปของผู้โดยสาร ไม่ว่าจะเป็นจุดรับหรือจุดส่ง
- GMTCPolylineType.remainingRoute: ส่วนของการเดินทางที่เหลืออยู่ หลังจากที่ยานพาหนะทำ- GMTCPolylineType.activeRouteเสร็จแล้ว
ทั้ง 2 ประเภทนี้จะแสดงตลอดเส้นทางที่แชร์
คุณสมบัติของโพลีไลน์
พร็อพเพอร์ตี้ที่คุณปรับแต่งได้สำหรับแต่ละเส้นประกอบคือชุดย่อยของ
พร็อพเพอร์ตี้ที่ระบุไว้ใน Google Maps
PolylineOptions
พร็อพเพอร์ตี้ของ Consumer SDK
GMTCPolylineStyleOptions
 มีลักษณะดังนี้
- สร้างขึ้นโดยใช้ตัวเริ่มต้น
- อาจเปลี่ยนแปลงไม่ได้หรือเปลี่ยนแปลงได้หากต้องการระบุค่าที่กำหนดเองสำหรับ พร็อพเพอร์ตี้ใดก็ได้
- มีค่าเริ่มต้น
คุณปรับแต่งพร็อพเพอร์ตี้ต่อไปนี้ได้
- color
- width
- isVisible: หากต้องการปิดใช้เส้นหลายเส้น ให้ตั้งค่า- isVisibleเป็น- false
- isTrafficEnabled: พร็อพเพอร์ตี้นี้ตั้งค่าเป็น- falseโดยค่าเริ่มต้น
ตัวอย่าง
Swift
/** MapViewController.swift */
private func updatePolylineUIOptions() {
  // Get the GMTCConsumerMapStyleCoordinator
  let consumerMapStyleCoordinator = mapView.consumerMapStyleCoordinator
  // The polyline type that you would like to set custom UI options for.
  let customizablePolylineType = GMTCPolylineType.activeRoute
  // Initializing polyline options with default values (immutable version).
  let polylineStyleOptions = GMTCPolylineStyleOptions()
  consumerMapStyleCoordinator.setPolylineStyleOptions(
    polylineStyleOptions, polylineType: customizablePolylineType)
  // Initializing polyline options with custom values (mutable version).
  let mutablePolylineStyleOptions = GMTCMutablePolylineStyleOptions()
  mutablePolylineStyleOptions.isVisible = true
  mutablepolylineStyleOptions.strokeWidth = 8.0
  mutablepolylineStyleOptions.strokeColor = .blue
  mutablepolylineStyleOptions.zIndex = 1000
  mutablepolylineStyleOptions.isGeodesic = true
  mutablePolylineStyleOptions.isTrafficEnabled = true
  mutablePolylineStyleOptions.setTrafficColorFor(.slow, color: .yellow)
  mutablePolylineStyleOptions.setTrafficColorFor(.trafficJam, color: .purple)
  consumerMapStyleCoordinator.setPolylineStyleOptions(
    mutablePolylineStyleOptions, polylineType: customizablePolylineType)
  // Reset polyline options to default values.
  consumerMapStyleCoordinator.setPolylineStyleOptions(
    nil, polylineType: customizablePolylineType)
}
Objective-C
/** MapViewController.m */
- (void)updatePolylineUIOptions {
  // Get the GMTCConsumerMapStyleCoordinator
  GMTCConsumerMapStyleCoordinator *consumerMapStyleCoordinator = [_mapView consumerMapStyleCoordinator];
  // The polyline type that you would like to set custom UI options for.
  GMTCPolylineType customizablePolylineType = GMTCPolylineTypeActiveRoute;
  // Initializing polyline options with default values (immutable version).
  GMTCPolylineStyleOptions *polylineStyleOptions = [[GMTCPolylineStyleOptions alloc] init];
  [consumerMapStyleCoordinator setPolylineStyleOptions:polylineStyleOptions
                               polylineType:customizablePolylineType];
  // Initializing polyline options with custom values (mutable version).
  GMTCMutablePolylineStyleOptions *mutablePolylineStyleOptions = [[GMTCMutablePolylineStyleOptions alloc] init];
  mutablePolylineStyleOptions.isVisible = YES;
  mutablepolylineStyleOptions.strokeWidth = 8.0;
  mutablepolylineStyleOptions.strokeColor = [UIColor blueColor];
  mutablepolylineStyleOptions.zIndex = 1000;
  mutablepolylineStyleOptions.isGeodesic = YES;
  mutablePolylineStyleOptions.isTrafficEnabled = YES;
  [mutablePolylineStyleOptions setTrafficColorForSpeed:GMTSSpeedTypeSlow color:[UIColor yellowColor]];
  [mutablePolylineStyleOptions setTrafficColorForSpeed:GMTSSpeedTypeTrafficJam color:[UIColor purpleColor]];
  [consumerMapStyleCoordinator setPolylineStyleOptions:mutablePolylineStyleOptions
                                          polylineType:customizablePolylineType];
  // Reset polyline options to default values.
  [consumerMapStyleCoordinator setPolylineStyleOptions:nil
                                          polylineType:customizablePolylineType];
}
เส้นประกอบที่รับรู้การจราจร
เลเยอร์การจราจรของเส้นหลายเส้นจะปิดใช้อยู่โดยค่าเริ่มต้น เมื่อเปิดใช้
โดยใช้ polylineStyleOptions.isTrafficEnabled = true ระบบจะวาดเส้นทางเป็นกลุ่มที่แสดง
ช่วงการรับส่งข้อมูลที่ไม่ปกติ
สภาพการจราจรจะแสดงเป็นความเร็ว 4 ระดับดังนี้
- GMTSSpeedType.noData
- GMTSSpeedType.normal
- GMTSSpeedType.slow
- GMTSSpeedType.trafficJam
คุณปรับแต่งสีที่แสดงถึงการจัดประเภทความเร็วแต่ละประเภทได้
โดยใช้ setTrafficColorFor(_:color:)