Antes de personalizar las polilíneas (o marcadores) de las rutas, primero debes inicializar las opciones de personalización de la IU.
Inicializa las opciones de personalización de la IU
La devolución de llamada recomendada que se usa para configurar inicialmente las opciones de personalización de la IU
se declara en el GMTCMapViewDelegate
. El mapViewDidInitialize
La devolución de llamada se activa cuando el objeto GMTCMapView
está listo para renderizar el mapa.
Se inicializa el coordinador de estilo, pero no hay elementos de la IU.
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.
}
Personalizar polilíneas
La personalización de polilíneas se establece
GMTCConsumerMapStyleCoordinator#setPolylineStyleOptions(_:polylineType:)
En el siguiente ejemplo, se muestra cómo establecer las opciones de diseño de polilínea:
Tipos de polilínea
Puedes personalizar los siguientes tipos de polilíneas:
GMTCPolylineType.activeRoute
: Es la ruta que sigue el vehículo hasta el el siguiente punto del pasajero, ya sea el punto de partida o el destino.GMTCPolylineType.remainingRoute
: Es el tramo del viaje que queda. después de que el vehículo complete elGMTCPolylineType.activeRoute
.
Ambos tipos se muestran a lo largo de un recorrido compartido.
Propiedades de polilínea
Las propiedades que puedes personalizar para cada polilínea son un subconjunto de las
propiedades proporcionadas en Google Maps
PolylineOptions
El SDK para consumidores
GMTCPolylineStyleOptions
propiedades tienen las siguientes características:
- Se compila con un inicializador.
- Puede ser inmutable o mutable si deseas proporcionar valores personalizados para cualquier propiedad.
- Tienen valores predeterminados.
Puedes personalizar las siguientes propiedades:
color
width
isVisible
: Para inhabilitar una polilínea, estableceisVisible
enfalse
.isTrafficEnabled
: Esta propiedad se establece enfalse
de forma predeterminada.
Ejemplo
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];
}
Polilíneas adaptadas al tráfico
La capa de tráfico de la polilínea está inhabilitada de forma predeterminada. Cuando la habilitas
con polylineStyleOptions.isTrafficEnabled = true
, los segmentos que representan
los tramos de tráfico no normal se dibujan como la ruta.
Las condiciones de tráfico se representan como una de las siguientes cuatro velocidades:
GMTSSpeedType.noData
GMTSSpeedType.normal
GMTSSpeedType.slow
GMTSSpeedType.trafficJam
Puedes personalizar el color que representa cada una de esas clasificaciones de velocidad.
mediante setTrafficColorFor(_:color:)
.