Android Consumer SDK v1.0 কাস্টমাইজেশনের জন্য মাইগ্রেশন

মার্কার কাস্টমাইজেশন

কনজিউমার এসডিকে-র পূর্ববর্তী সংস্করণগুলিতে, মার্কার স্টাইলের বৈশিষ্ট্যগুলি কাস্টমাইজ করার জন্য কনজিউমার এসডিকে-র MarkerStyleOptions অবজেক্ট ব্যবহার করা হতো। কনজিউমার এসডিকে v1.0-এ, আপনি সরাসরি ম্যাপস এসডিকে-র 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));

পলিলাইন কাস্টমাইজেশন

কনজিউমার এসডিকে-র পূর্ববর্তী সংস্করণগুলিতে, পলিলাইনের স্টাইল প্রোপার্টি কাস্টমাইজ করার জন্য কনজিউমার এসডিকে-র PolylineStyleOptions অবজেক্ট ব্যবহার করা হতো। কনজিউমার এসডিকে v1.0-এ, বেস পলিলাইন স্টাইল প্রোপার্টি কাস্টমাইজ করার জন্য ম্যাপস এসডিকে-র PolylineOptions অবজেক্ট এবং পলিলাইনের ট্র্যাফিক কালার কাস্টমাইজ করার জন্য TrafficStyle অবজেক্ট ব্যবহার করা হয়।

কনজিউমার এসডিকে v1.0-এর আলফা সংস্করণে ট্র্যাফিক পলিলাইন উপলব্ধ আছে। যদি ট্র্যাফিক দৃশ্যমান হয়, তবে বেস পলিলাইনের রঙটি ট্র্যাফিকের রঙ দ্বারা প্রতিস্থাপিত হয়। ডিফল্টরূপে ট্র্যাফিক দৃশ্যমান থাকে না। TrafficStyle এর যে ফিল্ডগুলো সেট করা নেই, সেগুলো এসডিকে-নির্দিষ্ট ডিফল্ট মান দ্বারা পূরণ করা হয়।

// 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));