Dostosowywanie interfejsu Androida

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().