Migração para SDK de consumidor do Android v1.0 Personalização

Personalização de marcadores

Nas versões anteriores do SDK para consumidor, o objeto MarkerStyleOptions dele era usado para personalizar as propriedades de estilo do marcador. No SDK do consumidor v1.0, você usa diretamente o objeto MarkerOptions do SDK do 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 vai retornar as opções de estilo padrão especificadas pelo SDK para um determinado tipo de marcador se o estilo ainda não tiver sido definido ou se as opções tiverem sido definidas como 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);

Se não quiser criar um novo estilo do zero, você poderá modificar o estilo padrão. O exemplo a seguir modifica apenas o ícone de retirada e usa as configurações padrão do SDK para o restante das opções do marcador.

// 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));

Personalização de polilinha

Nas versões anteriores do SDK para consumidor, o objeto PolylineStyleOptions dele era usado para personalizar as propriedades de estilo da polilinha. No SDK do consumidor v1.0, você usa o objeto PolylineOptions do SDK do Maps para personalizar as propriedades de estilo de polilinha de base e o objeto TrafficStyle para personalizar as cores do trânsito de polilinha.

As polilinhas de tráfego estão disponíveis na variante Alfa do SDK do Consumer v1.0. Se o trânsito estiver visível, a cor da polilinha de base será substituída pelas cores do trânsito. O tráfego não fica visível por padrão. Os campos em TrafficStyle que não estão definidos são preenchidos por valores padrão especificados pelo 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);

ConsumerMapStyle vai retornar as opções de estilo padrão do SDK para um determinado tipo de polilinha se nenhuma ainda tiver sido definida ou se as opções de estilo estiverem definidas como null. Isso se aplica à PolylineOptions base e ao 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);

Se não quiser criar um novo estilo do zero, você poderá modificar o estilo padrão. O exemplo a seguir modifica apenas a cor da polilinha do trajeto ativo de base e usa as configurações de estilo padrão do SDK para o restante das opções do marcador.

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