Prima di personalizzare le polilinee (o gli indicatori) del percorso, è necessario inizializzare le opzioni di personalizzazione della UI.
Inizializza le opzioni di personalizzazione dell'interfaccia utente
Il callback consigliato utilizzato per impostare inizialmente le opzioni di personalizzazione dell'interfaccia utente
è dichiarato in GMTCMapViewDelegate
. mapViewDidInitialize
Il callback viene attivato quando l'oggetto GMTCMapView
è pronto per il rendering della mappa.
Il coordinatore di stile è stato inizializzato, ma non sono presenti elementi 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.
}
Personalizza le polilinee
La personalizzazione del polilinea viene impostata utilizzando
GMTCConsumerMapStyleCoordinator#setPolylineStyleOptions(_:polylineType:)
.
L'esempio seguente mostra come impostare le opzioni di stile della polilinea:
Tipi di polilinea
Puoi personalizzare i seguenti tipi di polilinee:
GMTCPolylineType.activeRoute
: il percorso seguito dal veicolo fino al prossimo punto del tragitto del passeggero, che si tratti del punto di partenza o di arrivo.GMTCPolylineType.remainingRoute
: il tratto del viaggio che rimane dopo che il veicolo ha completato laGMTCPolylineType.activeRoute
.
Entrambi questi tipi vengono visualizzati durante un percorso condiviso.
Proprietà delle polilinee
Le proprietà che puoi personalizzare per ogni polilinea sono un sottoinsieme delle proprietà fornite su Google Maps
PolylineOptions
.
Le proprietà SDK consumer
GMTCPolylineStyleOptions
hanno le seguenti caratteristiche:
- Creata mediante un inizializzatore.
- Può essere immutabile o modificabile se vuoi fornire valori personalizzati per qualsiasi proprietà.
- Avere valori predefiniti.
Puoi personalizzare le seguenti proprietà:
color
width
isVisible
: per disattivare una polilinea, impostaisVisible
sufalse
.isTrafficEnabled
: questa proprietà è impostata sufalse
per impostazione predefinita.
Esempio
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];
}
Polilinee sensibili al traffico
Il livello di traffico della polilinea è disattivato per impostazione predefinita. Quando lo attivi utilizzando polylineStyleOptions.isTrafficEnabled = true
, i tratti di traffico non normale vengono rappresentati come percorso.
Le condizioni del traffico sono rappresentate da una di quattro velocità:
GMTSSpeedType.noData
GMTSSpeedType.normal
GMTSSpeedType.slow
GMTSSpeedType.trafficJam
Puoi personalizzare il colore che rappresenta ciascuna di queste classificazioni di velocità.
mediante setTrafficColorFor(_:color:)
.