Personalización de marcadores
En versiones anteriores del Consumer SDK, se utilizaba el objeto MarkerStyleOptions del Consumer SDK para personalizar las propiedades de estilo del marcador. En Consumer SDK v1.0, se utiliza directamente el objeto MarkerOptions del Maps SDK.
// 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 estilo predeterminadas especificadas por el SDK para un tipo de marcador dado si el estilo aún no se ha establecido o si las opciones de estilo se han establecido 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 estilo nuevo desde cero, puedes modificar el estilo predeterminado. El siguiente ejemplo modifica únicamente el icono de recogida y utiliza 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 Consumer SDK, se utilizaba el objeto PolylineStyleOptions del Consumer SDK para personalizar las propiedades de estilo de 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 para consumidores v1.0. Si el tráfico es visible, el color base de la polilínea se reemplaza por los colores del tráfico. El tráfico no es visible por defecto. Los campos en TrafficStyle que no están definidos se rellenan 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 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 a la base PolylineOptions 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 estilo nuevo desde cero, puedes modificar el estilo predeterminado. El siguiente ejemplo modifica únicamente el color de la polilínea de ruta activa base y utiliza la configuración de estilo predeterminada del SDK para el resto de las opciones del marcador.
// Only customize the remaining route polyline color.
PolylineOptions remainingRouteStyleOptions =
consumerMapStyle.getPolylineStyleOptions(PolylineType.REMAINING_ROUTE);
consumerMapStyle.setPolylineStyleOptions(
remainingRouteStyleOptions.color(Color.DARK_BLUE));