Migración de SDK de Android Consumer SDK v1.0

Personalización de marcadores

En versiones anteriores del SDK para consumidores, usabas el objeto MarkerStyleOptions del SDK de consumidores para personalizar las propiedades de diseño de los marcadores. En la versión 1.0 del SDK para consumidores, se usa directamente el objeto MarkerOptions del SDK de 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 muestra las opciones de diseño predeterminadas que especifica el SDK para un tipo de marcador determinado si aún no se establecieron estas opciones o si se establecieron en 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);

Si no quieres crear un diseño nuevo desde cero, puedes modificar el diseño predeterminado. En el siguiente ejemplo, solo se modifica el ícono de retiro y se usa la configuración predeterminada del SDK para el resto de las opciones del 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));

Personalización de polilíneas

En versiones anteriores del SDK para consumidores, usabas el objeto PolylineStyleOptions del SDK de consumidores para personalizar las propiedades de diseño de polilínea. En la versión 1.0 del SDK de consumidor, se usa el objeto PolylineOptions del SDK de Maps para personalizar las propiedades de diseño de polilínea básica y el objeto TrafficStyle para personalizar los colores del tráfico de polilíneas.

Las polilíneas de tráfico están disponibles en la variante alfa de la versión 1.0 del SDK para consumidores. Si el tráfico es visible, los colores del tráfico anulan el color de la polilínea base. El tráfico no es visible de forma predeterminada. Los campos en TrafficStyle que no se configuran se completan con valores predeterminados especificados por el 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 muestra las opciones de diseño predeterminadas del SDK para un tipo de polilínea determinado si aún no se configuró ninguno o si las opciones de diseño se establecieron en null. Esto se aplica tanto a la PolylineOptions base como a la 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);

Si no quieres crear un diseño nuevo desde cero, puedes modificar el diseño predeterminado. En el siguiente ejemplo, solo se modifica el color de polilínea de ruta activa base y se usa la configuración de diseño predeterminada del SDK para el resto de las opciones de marcadores.

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