Personalización de marcadores
En versiones anteriores del SDK de Consumer, usabas el objeto MarkerStyleOptions
del SDK de Consumer para personalizar las propiedades de estilo de los marcadores. En la versión 1.0 del SDK para el consumidor, 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
devuelve las opciones de diseño predeterminadas especificadas por el SDK para un tipo de marcador determinado si aún no se estableció el diseño o si las opciones de diseño 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 nuevo diseño 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 de marcadores.
// 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 de Consumer, usabas el objeto PolylineStyleOptions
del SDK de Consumer para personalizar las propiedades de estilo de la polilínea. En la versión 1.0 del SDK para el consumidor, se usa el objeto PolylineOptions
del SDK de Maps para personalizar las propiedades de diseño de la polilínea base y el objeto TrafficStyle
para personalizar los colores del tráfico de la polilínea.
Las polilíneas de tráfico están disponibles en la variante alfa del SDK de Consumer v1.0. Si el tráfico es visible, los colores del tráfico anulan el color base de la polilínea. El tráfico no es visible de forma predeterminada. Los campos de TrafficStyle
que no se configuran se completan con los 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
devuelve las opciones de diseño predeterminadas del SDK para un tipo de polilínea determinado si aún no se configuró ninguna o si las opciones de diseño se establecieron en null
. Esto se aplica tanto al PolylineOptions
base como al 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 nuevo diseño desde cero, puedes modificar el diseño predeterminado. En el siguiente ejemplo, solo se modifica el color base de la polilínea de la ruta activa y se usan los parámetros de configuración de estilo predeterminados 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));