ปรับแต่งเส้นประกอบเส้นทาง

เลือกแพลตฟอร์ม: Android iOS JavaScript

ก่อนที่จะปรับแต่งโพลีไลน์ (หรือมาร์กเกอร์) ของเส้นทาง คุณต้องเริ่มต้นตัวเลือกการปรับแต่ง 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 พร็อพเพอร์ตี้ GMTCPolylineStyleOptions ของ Consumer SDK มีลักษณะดังนี้

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

คุณปรับแต่งพร็อพเพอร์ตี้ต่อไปนี้ได้

  • 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 ระบบจะวาดส่วนที่แสดงถึงการจราจรที่ไม่ปกติเป็นเส้นทาง

ระบบจะแสดงสภาพการจราจรเป็นความเร็ว 1 ใน 4 ระดับ ดังนี้

  • GMTSSpeedType.noData
  • GMTSSpeedType.normal
  • GMTSSpeedType.slow
  • GMTSSpeedType.trafficJam

คุณปรับแต่งสีที่แสดงถึงการจัดประเภทความเร็วแต่ละระดับได้โดยใช้ setTrafficColorFor(_:color:)