مهاجرت برای Android Consumer SDK v1.0 سفارشی سازی

سفارشی سازی نشانگر

در نسخه‌های قبلی Consumer SDK، از شی MarkerStyleOptions از Consumer SDK برای سفارشی کردن ویژگی‌های سبک نشانگر استفاده می‌کردید. در Consumer SDK v1.0، شما مستقیماً از شی MarkerOptions از 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 گزینه‌های سبک پیش‌فرض تعیین‌شده توسط SDK را برای یک نوع نشانگر مشخص برمی‌گرداند، اگر سبک هنوز تنظیم نشده باشد یا اگر گزینه‌های سبک روی 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);

اگر نمی خواهید یک سبک جدید از ابتدا ایجاد کنید، می توانید سبک پیش فرض را تغییر دهید. مثال زیر فقط نماد پیکاپ را تغییر می‌دهد و از تنظیمات پیش‌فرض 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));

سفارشی سازی Polyline

در نسخه‌های قبلی Consumer SDK، از شی PolylineStyleOptions Consumer SDK برای سفارشی کردن ویژگی‌های سبک چند خطی استفاده می‌کردید. در Consumer SDK v1.0، از شی PolylineOptions از Maps SDK برای سفارشی کردن ویژگی های سبک چند خطی پایه و شی TrafficStyle برای سفارشی کردن رنگ های ترافیک چند خطی استفاده می کنید.

چند خطوط ترافیک در نوع آلفای Consumer SDK v1.0 در دسترس هستند اگر ترافیک قابل مشاهده باشد، رنگ چندخط پایه توسط رنگ های ترافیک لغو می شود. ترافیک به طور پیش فرض قابل مشاهده نیست. فیلدهایی در 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);

ConsumerMapStyle گزینه‌های سبک پیش‌فرض SDK را برای یک نوع چند خط معین برمی‌گرداند، اگر هنوز هیچ کدام تنظیم نشده باشد، یا اگر گزینه‌های سبک روی null تنظیم شده باشد. این هم برای 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));