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

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

در نسخه‌های قبلی Consumer SDK، شما از شیء MarkerStyleOptions مربوط به Consumer SDK برای سفارشی‌سازی ویژگی‌های سبک نشانگر استفاده می‌کردید. در Consumer SDK نسخه ۱.۰، شما مستقیماً از شیء 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));

سفارشی‌سازی چندخطی

در نسخه‌های قبلی Consumer SDK، از شیء PolylineStyleOptions مربوط به Consumer SDK برای سفارشی‌سازی ویژگی‌های سبک چندخطی استفاده می‌کردید. در Consumer SDK نسخه ۱.۰، از شیء 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));