自訂標記
在舊版 Consumer SDK 中,您使用 Consumer SDK 的 MarkerStyleOptions
物件自訂標記樣式屬性。在 Consumer SDK 1.0 中,您可以直接使用 Maps SDK 中的 MarkerOptions
物件。
// 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);
如果尚未設定樣式,或樣式選項已設為 null
,ConsumerMapStyle
就會針對指定標記類型傳回 SDK 指定的預設樣式選項。
// 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);
如果您不想從頭開始建立新樣式,可以修改預設樣式。以下範例只修改接送地點圖示,並使用 SDK 的預設設定來處理其他標記選項。
// 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));
折線自訂功能
在舊版 Consumer SDK 中,您使用 Consumer SDK 的 PolylineStyleOptions
物件自訂多邊形樣式屬性。在 Consumer SDK 1.0 版中,您可以使用 Maps SDK 中的 PolylineOptions
物件自訂基本折線樣式屬性,並使用 TrafficStyle
物件自訂折線交通顏色。
在 Consumer SDK 1.0 的 Alpha 版本中,您可以使用交通折線。如果可見交通資訊,則基礎折線顏色會由交通顏色覆寫。根據預設,系統不會顯示流量。TrafficStyle
中未設定的欄位會填入 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);
如果尚未設定任何值,或樣式選項已設為 null
,ConsumerMapStyle
會傳回指定折線類型的 SDK 預設樣式選項。這適用於基礎 PolylineOptions
和 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);
如果您不想從頭開始建立新樣式,可以修改預設樣式。以下範例只會修改基本有效路線多邊形的顏色,並使用 SDK 的預設樣式設定來處理其他標記選項。
// Only customize the remaining route polyline color.
PolylineOptions remainingRouteStyleOptions =
consumerMapStyle.getPolylineStyleOptions(PolylineType.REMAINING_ROUTE);
consumerMapStyle.setPolylineStyleOptions(
remainingRouteStyleOptions.color(Color.DARK_BLUE));