Zanim dostosujesz polilinie (lub markery) trasy, musisz najpierw zainicjować opcje dostosowywania interfejsu.
Inicjowanie opcji dostosowywania interfejsu
Zalecane wywołanie zwrotne używane do początkowego ustawiania opcji dostosowywania interfejsu jest zadeklarowane w GMTCMapViewDelegate. Wywołanie zwrotne mapViewDidInitialize
jest aktywowane, gdy obiekt GMTCMapView jest gotowy do renderowania mapy.
Koordynator stylu został zainicjowany, ale nie ma żadnych elementów interfejsu.
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.
}
Dostosowywanie linii łamanych
Dostosowywanie polilinii odbywa się za pomocą parametru
GMTCConsumerMapStyleCoordinator#setPolylineStyleOptions(_:polylineType:).
Poniższy przykład pokazuje, jak ustawić opcje stylu polilinii:
Typy linii łamanych
Możesz dostosować te typy polilinii:
- GMTCPolylineType.activeRoute: trasa, którą pojazd pokonuje do następnego punktu pasażera, niezależnie od tego, czy jest to miejsce odbioru czy miejsce docelowe.
- GMTCPolylineType.remainingRoute: pozostała część przejazdu po zakończeniu- GMTCPolylineType.activeRoute.
Oba te typy są wyświetlane w ramach wspólnej podróży.
Właściwości linii łamanej
Właściwości, które możesz dostosować w przypadku każdej linii łamanej, to podzbiór właściwości dostępnych w Mapach GooglePolylineOptions.
Właściwości pakietu Consumer SDKGMTCPolylineStyleOptions mają te cechy:
- Utworzone za pomocą inicjatora.
- Może być niezmienny lub zmienny, jeśli chcesz podać niestandardowe wartości dowolnej usługi.
- mają wartości domyślne;
Możesz dostosować te właściwości:
- color
- width
- isVisible: Aby wyłączyć linię łamaną, ustaw wartość- isVisiblena- false.
- isTrafficEnabled: ta właściwość jest domyślnie ustawiona na- false.
Przykład
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];
}
Linie łamane uwzględniające ruch
Warstwa ruchu na polilinii jest domyślnie wyłączona. Gdy włączysz tę funkcję za pomocą polylineStyleOptions.isTrafficEnabled = true, segmenty reprezentujące odcinki nietypowego ruchu będą rysowane jako trasa.
Warunki na drodze są przedstawiane jako jedna z 4 prędkości:
- GMTSSpeedType.noData
- GMTSSpeedType.normal
- GMTSSpeedType.slow
- GMTSSpeedType.trafficJam
Kolor reprezentujący każdą z tych klasyfikacji prędkości możesz dostosować za pomocą pola setTrafficColorFor(_:color:).