سفارشی کردن چند خطوط مسیر

پلتفرم را انتخاب کنید: Android iOS JavaScript

قبل از اینکه چند خطوط مسیر (یا نشانگرها) را سفارشی کنید، ابتدا باید گزینه های سفارشی سازی رابط کاربری را مقداردهی اولیه کنید.

گزینه های سفارشی سازی UI را راه اندازی کنید

تماس پیشنهادی مورد استفاده برای تنظیم اولیه گزینه‌های سفارشی‌سازی رابط کاربری در GMTCMapViewDelegate اعلام می‌شود. زمانی که شیء GMTCMapView برای ارائه نقشه آماده باشد، callback mapViewDidInitialize فعال می شود. هماهنگ کننده سبک مقداردهی اولیه شده است، اما هیچ عنصر رابط کاربری وجود ندارد.

سویفت

/** ViewController.swift */

class ViewController: UIViewController, GMTCMapViewDelegate {

  // MARK: - GMTCMapViewDelegate

  func mapViewDidInitialize(_ mapview: GMTCMapView) {
    // Set the UI customization options here.
  }
}

هدف-C

/** ViewController.m */

@interface ViewController () <GMTCMapViewDelegate>

#pragma mark GMTCMapViewDelegate

- (void)mapViewDidInitialize:(GMTCMapView *)mapview {
  // Set the UI customization options here.
}

سفارشی کردن چند خط

سفارشی‌سازی Polyline با استفاده از GMTCConsumerMapStyleCoordinator#setPolylineStyleOptions(_:polylineType:) تنظیم می‌شود.

مثال زیر نحوه تنظیم گزینه های سبک چند خطی را نشان می دهد:

انواع پلی لاین

می توانید انواع چند خط زیر را سفارشی کنید:

  • GMTCPolylineType.activeRoute : مسیری که وسیله نقلیه تا نقطه بعدی سوارکار طی می‌کند، چه پیکاپ باشد و چه پیاده‌روی.
  • GMTCPolylineType.remainingRoute : بخشی از سفر که پس از تکمیل وسیله نقلیه GMTCPolylineType.activeRoute باقی می ماند.

هر دوی این انواع در طول یک سفر مشترک نمایش داده می شوند.

خواص پلی لاین

ویژگی هایی که می توانید برای هر چند خط سفارشی کنید، زیرمجموعه ای از ویژگی های ارائه شده در Google Maps PolylineOptions هستند. ویژگی های Consumer SDK GMTCPolylineStyleOptions دارای ویژگی های زیر است:

  • با استفاده از یک اولیه ساز ساخته شده است.
  • اگر می‌خواهید مقادیر سفارشی برای هر ویژگی ارائه کنید، می‌تواند تغییرناپذیر یا قابل تغییر باشد.
  • مقادیر پیش فرض داشته باشید.

می توانید ویژگی های زیر را سفارشی کنید:

  • color
  • width
  • isVisible : برای غیرفعال کردن چند خط، isVisible را روی false قرار دهید.
  • isTrafficEnabled : این ویژگی به طور پیش فرض روی false تنظیم شده است.

مثال

سویفت

/** 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)
}

هدف-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 فعال می‌کنید، بخش‌هایی که بخش‌هایی از ترافیک غیرعادی را نشان می‌دهند به عنوان مسیر ترسیم می‌شوند.

شرایط ترافیک به عنوان یکی از چهار سرعت نشان داده می شود:

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

با استفاده از setTrafficColorFor(_:color:) می توانید رنگی را که هر یک از آن دسته بندی های سرعت را نشان می دهد سفارشی کنید.