La classe ConsumerMapStyle
include metodi setter e getter che offrono una personalizzazione dinamica
per indicatori e polilinee. Questa classe viene esposta in modo asincrono utilizzando il metodo ConsumerController.getConsumerMapStyle()
.
La personalizzazione dell'interfaccia utente viene applicata a tutte le rotazioni dei dispositivi e rimane attiva fino a quando ConsumerController
non viene scollegato.
Indicatori personalizzati
Il metodo per impostare il tipo di indicatore e le sue proprietà è ConsumerMapStyle.setMarkerStyleOptions()
. Le opzioni degli indicatori personalizzati sostituiscono i valori predefiniti forniti dall'SDK consumer.
Per ripristinare i valori predefiniti, chiama setMarkerStyleOptions()
utilizzando null per il parametro MarkerOptions
. Recupera i MarkerOptions
attivi
utilizzando
getMarkerStyleOptions()
.
Tipi di indicatori
I seguenti indicatori sono disponibili per la personalizzazione:
TRIP_PICKUP_POINT
TRIP_DROPOFF_POINT
TRIP_INTERMEDIATE_DESTINATION
TRIP_VEHICLE
Display di TRIP_PICKUP_POINT
e TRIP_DROPOFF_POINT
durante il monitoraggio della corsa.
Display di TRIP_VEHICLE
durante il monitoraggio della corsa. L'icona dell'indicatore non cambia
in base al tipo di veicolo effettivo per la corsa. L'SDK per i consumatori aggiorna
la rotazione dell'icona TRIP_VEHICLE
durante il monitoraggio del viaggio per simulare il
comportamento del veicolo effettivo mentre percorre il percorso.
Opzioni indicatore
Le proprietà personalizzabili disponibili per ogni indicatore sono l'insieme di
proprietà fornite da Google Maps
MarkerOptions
.
MarkerOptions
viene creato usando il suo costruttore e le proprietà personalizzate vengono specificate usando i metodi di stile "Setter".
Per ogni proprietà vengono forniti valori predefiniti, quindi devi solo specificare valori personalizzati.
Puoi disattivare un indicatore impostando visible
su false
.
È necessario fornire dati sufficienti per consentirti di utilizzare al suo posto il tuo elemento UI.
Esempio
Java
// Initializing marker options.
consumerController
.getConsumerMapStyle()
.addOnSuccessListener(
consumerMapStyle -> {
consumerMapStyle.setMarkerStyleOptions(
MarkerType.TRIP_VEHICLE,
new MarkerOptions()
.visible(false));
});
// Reset marker options to default values.
consumerMapStyle.setMarkerStyleOptions(MarkerType.TRIP_VEHICLE, null);
Kotlin
// Initializing marker options.
consumerController
.getConsumerMapStyle()
.addOnSuccessListener({ consumerMapStyle ->
consumerMapStyle.setMarkerStyleOptions(MarkerType.TRIP_VEHICLE, MarkerOptions().visible(false))
})
// Reset marker options to default values.
consumerMapStyle.setMarkerStyleOptions(MarkerType.TRIP_VEHICLE, null)
Polilinee personalizzate
La personalizzazione della polilinea viene impostata utilizzando il metodo ConsumerMapStyle.setPolylineStyleOptions
. L'impostazione di opzioni personalizzate per la polilinea esegue l'override dei valori predefiniti forniti dall'SDK consumer. I valori predefiniti
possono essere ripristinati chiamando setPolylineStyleOptions
con null per il parametro PolylineOptions
. Il valore PolylineOptions
attivo può essere recuperato utilizzando il metodo getPolylineStyleOptions
.
Tipi di polilinea
Sono disponibili per la personalizzazione i seguenti tipi di polilinee:
ACTIVE_ROUTE
REMAINING_ROUTE
ACTIVE_ROUTE
e REMAINING_ROUTE
vengono visualizzati durante il monitoraggio della corsa e
rappresentano il percorso del veicolo.
Proprietà polilinea
Le proprietà personalizzabili disponibili per ogni polilinea sono fornite da Google Maps PolylineOptions
.
PolylineOptions
viene creato usando il suo costruttore e le proprietà personalizzate vengono specificate usando i metodi di stile "Setter". Per ogni proprietà vengono forniti valori predefiniti, quindi devi solo specificare valori personalizzati.
Puoi disattivare la polilinea impostando visible
su false
.
Esempio
Java
// Initializing polyline style options.
consumerController
.getConsumerMapStyle()
.addOnSuccessListener(
consumerMapStyle -> {
consumerMapStyle.setPolylineStyleOptions(
PolylineType.ACTIVE_ROUTE,
new PolylineOptions()
.visible(false));
});
// Reset polyline options to default values.
consumerMapStyle.setPolylineStyleOptions(PolylineType.ACTIVE_ROUTE, null);
Kotlin
// Initializing polyline options.
consumerController
.getConsumerMapStyle()
.addOnSuccessListener({ consumerMapStyle ->
consumerMapStyle.setPolylineStyleOptions(
PolylineType.ACTIVE_ROUTE,
PolylineOptions().visible(false)
)
})
// Reset polyline options to default values.
consumerMapStyle.setPolylineStyleOptions(PolylineType.ACTIVE_ROUTE, null)
Percorso attivo e rimanente
Se le funzionalità Trip and Order Progress sono abilitate, la tua app può personalizzare l'esperienza dell'utente utilizzando le polilinee che mostrano i veicoli attivi e il percorso rimanente.
Il percorso attivo è il percorso che il veicolo sta attualmente per raggiungere il waypoint successivo nella corsa attiva del consumatore. Il percorso rimanente è quello che il veicolo supererà il percorso attivo. Se il waypoint del percorso attivo è l'ultimo waypoint del percorso, il percorso rimanente non esiste.
Le polilinee attive e rimanenti possono essere personalizzate e la visibilità può essere controllata dalla tua app. Per impostazione predefinita, la route attiva è visibile, mentre quella rimanente non è visibile.
Esempio
Java
// Initializing polyline options.
consumerController
.getConsumerMapStyle()
.addOnSuccessListener(
consumerMapStyle -> {
consumerMapStyle.setPolylineStyleOptions(
PolylineType.ACTIVE_ROUTE,
new PolylineOptions()
.color(Color.BLUE));
consumerMapStyle.setPolylineStyleOptions(
PolylineType.REMAINING_ROUTE,
new PolylineOptions()
.color(Color.BLACK)
.width(5)
.visible(true));
});
// Reset polyline options to default values.
consumerMapStyle.setPolylineStyleOptions(PolylineType.ACTIVE_ROUTE, null);
consumerMapStyle.setPolylineStyleOptions(PolylineType.REMAINING_ROUTE, null);
Kotlin
// Initializing polyline options.
consumerController
.getConsumerMapStyle()
.addOnSuccessListener({ consumerMapStyle ->
{
consumerMapStyle.setPolylineStyleOptions(
PolylineType.ACTIVE_ROUTE,
PolylineOptions().color(Color.BLUE)
)
consumerMapStyle.setPolylineStyleOptions(
PolylineType.REMAINING_ROUTE,
PolylineOptions().color(Color.BLACK).width(5).visible(true)
)
}
})
// Reset polyline options to default values.
consumerMapStyle.setPolylineStyleOptions(PolylineType.ACTIVE_ROUTE, null)
consumerMapStyle.setPolylineStyleOptions(PolylineType.REMAINING_ROUTE, null)
Polilinee sensibili al traffico
Il livello di traffico della polilinea è disattivato per impostazione predefinita. Quando è abilitata, i segmenti che rappresentano tratti di traffico non normale vengono tracciati sopra la polilinea del percorso in z-index PolylineOptions.getZIndex() più un offset in base alle condizioni del traffico.
Le condizioni del traffico sono rappresentate da uno dei quattro tipi di velocità. Puoi personalizzare il colore per ogni tipo di velocità.
Per abilitare le "polilinee sensibili al traffico", devi creare un oggetto TrafficStyle
che verrà passato a ConsumerMapStyle
chiamando setPolylineTrafficStyle()
.
Esempio
Java
// TrafficStyle is part of the Consumer SDK.
TrafficStyle trafficStyle = TrafficStyle.builder()
.setTrafficVisibility(true)
.setTrafficColor(SpeedType.NO_DATA, Color.GREY)
.setTrafficColor(SpeedType.NORMAL_VALUE, Color.BLUE)
.setTrafficColor(SpeedType.SLOW_VALUE, Color.ORANGE)
.setTrafficColor(SpeedType.TRAFFIC_JAM, Color.RED)
.build();
consumerMapStyle.setPolylineTrafficStyle(PolylineType.ACTIVE_ROUTE, trafficStyle);
Kotlin
// TrafficStyle is part of the Consumer SDK.
val trafficStyle =
TrafficStyle.builder()
.setTrafficVisibility(true)
.setTrafficColor(SpeedType.NO_DATA, Color.GREY)
.setTrafficColor(SpeedType.NORMAL_VALUE, Color.BLUE)
.setTrafficColor(SpeedType.SLOW_VALUE, Color.ORANGE)
.setTrafficColor(SpeedType.TRAFFIC_JAM, Color.RED)
.build()
consumerMapStyle.setPolylineTrafficStyle(PolylineType.ACTIVE_ROUTE, trafficStyle)
Regolare lo zoom della fotocamera per mettere a fuoco un viaggio
Il pulsante La mia posizione predefinito in Maps SDK centra la fotocamera sulla posizione del dispositivo. Se è attiva una sessione Viaggio e stato dell'ordine, puoi centrare la videocamera in modo che si concentri sul percorso anziché sulla posizione del dispositivo.
SDK consumer per soluzione integrata per Android: AutoFotocamera
Per consentirti di concentrarti sul percorso anziché sulla posizione del dispositivo, l'SDK per i consumatori fornisce una funzionalità AutoFotocamera abilitata per impostazione predefinita. La fotocamera aumenta lo zoom per mettere a fuoco il percorso Viaggio e ordine e il waypoint successivo della corsa.
Personalizzazione del comportamento della videocamera
Se hai bisogno di un maggiore controllo sul comportamento della videocamera, puoi disattivare o attivare
AutoFotocamera utilizzando ConsumerController.setAutoCameraEnabled()
.
ConsumerController.getCameraUpdate()
restituisce i limiti della fotocamera consigliati in quel momento. Puoi quindi
fornire questo CameraUpdate
come argomento a
GoogleMap.moveCamera()
o GoogleMap.animateCamera()
.