Klasa ConsumerMapStyle
ma metody ustawiania i pobierania, które umożliwiają dynamiczne dostosowywanie znaczników i linii łamanych. Ta klasa jest wyświetlana asynchronicznie za pomocą metody ConsumerController.getConsumerMapStyle()
.
Dostosowanie interfejsu pozostaje aktywne między rotacjami urządzeń i nie zmienia się do czasu odłączenia ConsumerController
.
Znaczniki niestandardowe
Metoda ustawiania typu i właściwości znacznika to ConsumerMapStyle.setMarkerStyleOptions()
. Opcje znaczników niestandardowych zastępują wartości domyślne podane przez pakiet SDK klienta.
Aby przywrócić wartości domyślne, wywołaj funkcję setMarkerStyleOptions()
z wartością null dla parametru MarkerOptions
. Pobierz aktywny MarkerOptions
za pomocą getMarkerStyleOptions()
.
Typy znaczników
Dostępne są następujące znaczniki:
TRIP_PICKUP_POINT
TRIP_DROPOFF_POINT
TRIP_INTERMEDIATE_DESTINATION
TRIP_VEHICLE
Podczas monitorowania podróży wyświetlają się opcje TRIP_PICKUP_POINT
i TRIP_DROPOFF_POINT
.
Podczas monitorowania podróży wyświetla się TRIP_VEHICLE
. Ikona znacznika nie zmienia się
w zależności od rzeczywistego typu pojazdu na trasie. Pakiet SDK dla konsumentów aktualizuje ustawienie obrotu ikony TRIP_VEHICLE
podczas monitorowania podróży, aby naśladować zachowanie rzeczywistego pojazdu podczas pokonywania trasy.
Opcje znacznika
Dostosowywane właściwości dostępne dla każdego znacznika to zestaw właściwości dostarczonych przez Mapy Google MarkerOptions
.
Element MarkerOptions
został utworzony przy użyciu swojego konstruktora, a dostosowane właściwości są określane przy użyciu metod stylu „Setter”.
Wartości domyślne są podawane dla każdej usługi, więc wystarczy, że podasz tylko wartości niestandardowe.
Aby wyłączyć znacznik, ustaw visible
na false
.
Należy dostarczyć wystarczającą ilość danych, aby można było zamiast niego użyć własnego elementu interfejsu.
Przykład
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)
Niestandardowe linie łamane
Dostosowanie linii łamanej jest ustawiane za pomocą metody ConsumerMapStyle.setPolylineStyleOptions
. Ustawienie opcji niestandardowych linii łamanych zastępuje wartości domyślne dostarczone przez pakiet SDK klienta. Wartości domyślne można przywrócić, wywołując dla parametru PolylineOptions
wywołanie setPolylineStyleOptions
z wartością null. Aktywny PolylineOptions
można pobrać za pomocą metody getPolylineStyleOptions
.
Typy linii łamanych
Dostępne są następujące typy linii łamanych:
ACTIVE_ROUTE
REMAINING_ROUTE
Wartości ACTIVE_ROUTE
i REMAINING_ROUTE
są wyświetlane podczas monitorowania podróży i odzwierciedlają trasę pojazdu.
Właściwości linii łamanej
Właściwości możliwe do dostosowania dostępne dla każdej linii łamanej są dostarczane przez Mapy Google PolylineOptions
.
Element PolylineOptions
został utworzony przy użyciu swojego konstruktora, a dostosowane właściwości są określane przy użyciu metod stylu „Setter”. Wartości domyślne są podawane dla każdej usługi, więc wystarczy, że podasz tylko wartości niestandardowe.
Aby wyłączyć linię łamaną, ustaw visible
na false
.
Przykład
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)
Trasa aktywna i pozostała
Gdy włączysz postępy podróży i zamówień, Twoja aplikacja może dostosować obsługę klienta za pomocą linii łamanych pokazujących pojazdy aktywne i pozostałą trasę.
Aktywna trasa to ścieżka, którą obecnie przemierza pojazd, aby dotrzeć do następnego punktu pośredniego w aktywnej podróży klienta. Pozostała trasa to trasa, którą pojazd będzie pokonywać obok aktywnej trasy. Jeśli aktywny punkt na trasie jest ostatnim punktem na trasie, pozostała trasa nie istnieje.
Aktywne i pozostałe linie łamane można dostosowywać, a widoczność można kontrolować przez aplikację. Domyślnie aktywna trasa jest widoczna, a pozostała trasa niewidoczna.
Przykład
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)
Linie łamane uwzględniające ruch
Warstwa ruchu linii łamanej jest domyślnie wyłączona. Po jego włączeniu segmenty reprezentujące fragmenty nienormalnego ruchu są rysowane nad linią łamaną trasy w metodzie z-index PolylineOptions.getZIndex() oraz z przesunięciem w zależności od warunków na drodze.
Warunki na drodze są przedstawiane jako jeden z 4 typów prędkości. Możesz dostosować kolor dla każdego typu szybkości.
Aby włączyć „linie łamane uwzględniające ruch”, musisz utworzyć obiekt TrafficStyle
, który zostanie następnie przekazany do ConsumerMapStyle
przez wywołanie setPolylineTrafficStyle()
.
Przykład
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)
Dostosowuję powiększenie aparatu, aby skupić się na podróży
Domyślny przycisk Moja lokalizacja wbudowany w pakiet SDK Map Google wyśrodkowuje kamerę na lokalizacji urządzenia. Jeśli masz aktywną sesję Podróż i Postęp zamówienia, możesz wyśrodkować kamerę, aby skupiła się na ścieżce, a nie na lokalizacji urządzenia.
Wbudowane rozwiązanie SDK dla klientów indywidualnych na Androida: AutoCamera
Aby umożliwić Ci skupienie się na podróży, a nie na lokalizacji urządzenia, pakiet SDK klienta udostępnia funkcję automatycznego aparatu, która jest domyślnie włączona. Kamera robi powiększenie, aby pokazać trasę podróży i realizacji zamówienia oraz następny punkt na trasie.
Dostosowywanie działania kamery
Jeśli chcesz mieć większą kontrolę nad działaniem kamery, możesz wyłączyć lub włączyć Automatyczny aparat, korzystając z funkcji ConsumerController.setAutoCameraEnabled()
.
ConsumerController.getCameraUpdate()
zwraca zalecane wartości graniczne kamery w danym momencie. Następnie możesz podać tę CameraUpdate
jako argument do GoogleMap.moveCamera()
lub GoogleMap.animateCamera()
.