ルートのポリラインをカスタマイズする

プラットフォームを選択: Android iOS JavaScript

ルート ポリライン(またはマーカー)をカスタマイズする前に、まず UI カスタマイズ オプションを初期化する必要があります。

UI カスタマイズ オプションを初期化する

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 を完了した後に残るルートのセグメント。

どちらのタイプも、共通のジャーニー全体を通じて表示されます。

ポリラインのプロパティ

各ポリラインでカスタマイズできるプロパティは、 Google マップに掲載されている宿泊施設 PolylineOptions。 Consumer SDK GMTCPolylineStyleOptions プロパティには次の特徴があります。

  • イニシャライザを使用して作成されたもの。
  • カスタム値を指定する場合は、不変または可変にすることができます。 指定することもできます。
  • デフォルト値が設定されている。

以下のプロパティをカスタマイズできます。

  • color
  • width
  • isVisible: ポリラインを無効にするには、isVisiblefalse に設定します。
  • 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:) を使用して、これらの速度分類を示す色をカスタマイズできます。