Antes de personalizar as polilinhas (ou marcadores) de trajeto, você precisa inicializar as opções de personalização da interface.
Inicializar opções de personalização da interface
O callback recomendado usado para definir inicialmente as opções de personalização da interface
é declarado no GMTCMapViewDelegate
. O mapViewDidInitialize
o callback será acionado quando o objeto GMTCMapView
estiver pronto para renderizar o mapa.
O coordenador de estilo é inicializado, mas não há elementos de interface do usuário.
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 polilinhas
A personalização de polilinha é definida usando
GMTCConsumerMapStyleCoordinator#setPolylineStyleOptions(_:polylineType:)
.
O exemplo a seguir mostra como definir opções de estilo de polilinha:
Tipos de polilinha
É possível personalizar os seguintes tipos de poligonal:
GMTCPolylineType.activeRoute
: o trajeto que o veículo está até o próximo ponto do passageiro, seja o embarque ou o desembarque.GMTCPolylineType.remainingRoute
: o trecho da viagem que permanece depois que o veículo concluir aGMTCPolylineType.activeRoute
.
Os dois tipos são exibidos em uma jornada compartilhada.
Propriedades de polilinha
As propriedades que você pode personalizar para cada polilinha são um subconjunto da
propriedades fornecidas no Google Maps
PolylineOptions
O SDK do consumidor
GMTCPolylineStyleOptions
têm as seguintes características:
- Criada usando um inicializador.
- Pode ser imutável ou mutável se você quiser fornecer valores personalizados para qualquer propriedade.
- Ter valores padrão.
É possível personalizar as seguintes propriedades:
color
width
isVisible
: para desativar uma polilinha, definaisVisible
comofalse
.isTrafficEnabled
: essa propriedade é definida comofalse
por padrão.
Exemplo
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];
}
Polilinhas com informações de trânsito
A camada de tráfego da linha poligonal fica desativada por padrão. Quando você o ativa
usando polylineStyleOptions.isTrafficEnabled = true
, os segmentos que representam
trechos de tráfego fora do normal são desenhados como o trajeto.
As condições de trânsito são representadas como uma das quatro velocidades:
GMTSSpeedType.noData
GMTSSpeedType.normal
GMTSSpeedType.slow
GMTSSpeedType.trafficJam
É possível personalizar a cor que representa cada uma dessas classificações de velocidade
usando setTrafficColorFor(_:color:)
.