Dostosowanie pakietu SDK do Androida w wersji 1.0 do migracji

Dostosowywanie znaczników

W wcześniejszych wersjach pakietu Consumer SDK do dostosowywania właściwości stylu znacznika używa się obiektu MarkerStyleOptions. W pakiecie SDK dla konsumentów w wersji 1.0 obiekt MarkerOptions używasz bezpośrednio z pakietu SDK Maps.

// Centering the marker anchor at (0.5, 0.5) is recommended.
// For vehicle markers, set flat to true to allow the vehicle marker to freely
// rotate flat on the map (rather than always have it face the camera).
MarkerOptions vehicleMarkerOptions = new MarkerOptions()
    .flat(true)
    .anchor(0.5f, 0.5f)
    .icon(vehicleIcon)
    .zIndex(1.0f);
consumerMapStyle.setMarkerStyleOptions(MarkerType.TRIP_VEHICLE);

ConsumerMapStyle zwraca domyślne opcje stylu określone przez pakiet SDK dla danego typu znacznika, jeśli styl nie został jeszcze ustawiony lub jeśli opcje stylu mają wartość null.

// ConsumerMapStyle returns the SDK-set default style options if none has been set yet.
MarkerOptions defaultPickupPointStyleOptions = consumerMapStyle.getMarkerStyleOptions(MarkerType.PICKUP_POINT);

// Setting the style to null reverts the style back to the SDK-set default properties.
consumerMapStyle.setMarkerStyleOptions(MarkerType.PICKUP_POINT, /* markerStyleOptions= */ null);
MarkerOptions defaultPickupPointStyleOptions = consumerMapStyle.getMarkerStyleOptions(MarkerType.PICKUP_POINT);

Jeśli nie chcesz tworzyć nowego stylu od podstaw, możesz zmodyfikować domyślny styl. W tym przykładzie modyfikujemy tylko ikonę odbioru i używamy ustawień domyślnych pakietu SDK w przypadku pozostałych opcji znacznika.

// getMarkerStyleOptions returns the default pickup point style options, since
// the custom style hasn't been set yet.
MarkerOptions pickupPointStyleOptions =
  consumerMapStyle.getMarkerStyleOptions(MarkerType.PICKUP_POINT);
// Modify the icon value and set the style.
consumerMapStyle.setMarkerStyleOptions(
  pickupPointStyleOptions.icon(pickupPointIcon));

Personalizacja linii łamanej

W wcześniejszych wersjach pakietu Consumer SDK do dostosowywania właściwości stylu ścieżki wielokąta używano obiektu PolylineStyleOptions pakietu Consumer SDK. W pakiecie Consumer SDK w wersji 1.0 możesz używać obiektu PolylineOptions z pakietu Maps SDK, aby dostosowywać właściwości stylu linii podstawowej, oraz obiektu TrafficStyle, aby dostosowywać kolory ruchu na linii.

Linie łamane ruchu są dostępne w wersji alfa pakietu Consumer SDK 1.0. Jeśli ruch jest widoczny, kolor linii podstawowej jest zastępowany przez kolory ruchu. Domyślnie ruch nie jest widoczny. Pola w sekcji TrafficStyle, które nie są ustawione, są wypełniane wartościami domyślnymi określonymi w pakiecie SDK.

// PolylineOptions is from Maps SDK
PolylineOptions polylineOptions = new PolylineOptions()
  .color(color)
  .width(width)
  .geodesic(geodesic)
  .startCap(startCap)
  .endCap(endCap)
  .zIndex(zIndex);
consumerMapStyle.setPolylineStyleOptions(
  PolylineType.ACTIVE_ROUTE, polylineOptions);

// TrafficStyle is from ConsumerSDK
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);

Funkcja ConsumerMapStyle zwraca domyślne opcje stylu pakietu SDK dla danego typu polilinii, jeśli nie zostały jeszcze ustawione lub jeśli opcje stylu mają wartość null. Dotyczy to zarówno podstawowego znacznika PolylineOptions, jak i TrafficStyle.

// ConsumerMapStyle returns the SDK's default style options if none has been set yet.
PolylineOptions defaultActiveRouteStyleOptions = consumerMapStyle.getPolylineStyleOptions(PolylineType.ACTIVE_ROUTE);

// Setting the style to null reverts the style back to the SDK-set default properties.
consumerMapStyle.setPolylineStyleOptions(
  PolylineType.ACTIVE_ROUTE, /* polylineStyleOptions= */ null);
PolylineOptions defaultActiveRouteStyleOptions =
  consumerMapStyle.getPolylineStyleOptions(PolylineType.ACTIVE_ROUTE);

Jeśli nie chcesz tworzyć nowego stylu od podstaw, możesz zmodyfikować domyślny styl. W tym przykładzie modyfikowany jest tylko kolor podstawowej aktywnej ścieżki wielokąta, a ustawienia domyślne stylu w pakiecie SDK są używane w przypadku pozostałych opcji znacznika.

// Only customize the remaining route polyline color.
PolylineOptions remainingRouteStyleOptions =
     consumerMapStyle.getPolylineStyleOptions(PolylineType.REMAINING_ROUTE);
consumerMapStyle.setPolylineStyleOptions(
  remainingRouteStyleOptions.color(Color.DARK_BLUE));