একটি মানচিত্র সেট আপ করুন

প্ল্যাটফর্ম নির্বাচন করুন: অ্যান্ড্রয়েড আইওএস

আপনার কনজিউমার অ্যাপে কোনও ট্রিপ অনুসরণ করতে, আপনাকে প্রথমে একটি মানচিত্র সংজ্ঞায়িত করতে হবে এবং প্রয়োজনে ভেক্টর মানচিত্রের জন্য সমর্থন যোগ করতে হবে।

আপনার অ্যাপে একটি মানচিত্র সেট আপ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. একটি ভ্রমণ অনুসরণ করার জন্য একটি মানচিত্রের খণ্ড সংজ্ঞায়িত করুন
  2. একটি মানচিত্র বেস স্তর এবং ভিউ কন্ট্রোলারের জন্য সমর্থন যোগ করুন
  3. প্রয়োজনে ভেক্টর ম্যাপ প্রদর্শনের জন্য অ্যান্ড্রয়েড ভেক্টর গ্রাফিক্সের জন্য সাপোর্ট যোগ করুন

একটি মানচিত্র সংজ্ঞায়িত করার পরে, আপনি ভিজ্যুয়াল অভিজ্ঞতা কাস্টমাইজ করতে অতিরিক্ত দৃশ্য এবং ক্যামেরা নিয়ন্ত্রণ যোগ করতে পারেন। আরও বিস্তারিত জানার জন্য, একটি মানচিত্রের স্টাইল দেখুন।

ধাপ ১: একটি ভ্রমণ অনুসরণ করার জন্য একটি মানচিত্রের খণ্ড সংজ্ঞায়িত করুন

আপনার গ্রাহক অ্যাপে আপনি যেখানে অন-ডিমান্ড ট্রিপ শেয়ার করেন সেখানে মানচিত্র তৈরি করার জন্য একটি মানচিত্রের টুকরো বা দৃশ্য যোগ করে একটি মানচিত্র সংজ্ঞায়িত করতে পারেন। আপনার মানচিত্র সংজ্ঞায়িত করতে, এই পদ্ধতিগুলির মধ্যে একটি অনুসরণ করুন:

  • ConsumerMapFragment : আপনার মানচিত্রকে Fragment দিয়ে সংজ্ঞায়িত করতে ব্যবহার করুন।

  • ConsumerMapView : View সহ একটি মানচিত্র সংজ্ঞায়িত করতে ব্যবহার করুন।

উভয় পদ্ধতির বৈশিষ্ট্য একই, তাই আপনার অ্যাপ্লিকেশনের জন্য কোন পদ্ধতিটি সবচেয়ে ভালো তা বেছে নিন।

উভয় পদ্ধতিই পরবর্তী বিভাগে আরও বিশদে ব্যাখ্যা করা হয়েছে।

একটি মানচিত্রের টুকরো বা দৃশ্য যোগ করুন

অ্যান্ড্রয়েড ফ্র্যাগমেন্ট অথবা ভিউ ব্যবহার করে ভ্রমণের অগ্রগতি প্রদর্শনের জন্য একটি মানচিত্র তৈরি করতে, এই ধাপগুলি অনুসরণ করুন এবং কোড উদাহরণগুলি দেখুন।

  1. /res/layout এ অবস্থিত আপনার অ্যাপ্লিকেশন লেআউট XML ফাইলে একটি ফ্র্যাগমেন্ট বা ভিউ সংজ্ঞায়িত করুন। ট্রিপ ম্যাপটিকে হয় ConsumerMapFragment ব্যবহার করে একটি ফ্র্যাগমেন্ট হিসেবে, অথবা ConsumerMapView ব্যবহার করে একটি ভিউ হিসেবে সংজ্ঞায়িত করুন।

    তারপর সেই টুকরো বা ভিউটি আপনার অ্যাপটি যে ট্রিপ ম্যাপটি অ্যাক্সেস এবং পরিবর্তন করতে পারে তাতে অ্যাক্সেস প্রদান করে। মানচিত্রটি ConsumerController জন্য একটি হ্যান্ডেলও প্রদান করে, যা আপনার অ্যাপটিকে গ্রাহক অভিজ্ঞতা নিয়ন্ত্রণ এবং কাস্টমাইজ করতে দেয়।

  2. আপনার onCreate() পদ্ধতি থেকে, getConsumerGoogleMapAsync(callback) কল করুন, যা কলব্যাকে ConsumerGoogleMap অ্যাসিঙ্ক্রোনাসভাবে ফেরত পাঠায়।

  3. ভ্রমণের অগ্রগতি প্রদর্শন করতে এবং প্রয়োজনে আপডেট করতে ConsumerGoogleMap ব্যবহার করুন।

ConsumerMapFragment কীভাবে যোগ করবেন তার উদাহরণ

  1. আপনার অ্যাপ্লিকেশন লেআউট XML ফাইলের খণ্ডটি সংজ্ঞায়িত করুন, যেমনটি নিম্নলিখিত কোড উদাহরণে দেখানো হয়েছে।

    <fragment
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:name="com.google.android.libraries.mapsplatform.transportation.consumer.view.ConsumerMapFragment"
        android:id="@+id/consumer_map_fragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    
  2. onCreate() পদ্ধতি থেকে getConsumerGoogleMapAsync() এ কল করুন।

জাভা

 public class SampleAppActivity extends AppCompatActivity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {

     // Find the ConsumerMapFragment.
     ConsumerMapFragment consumerMapFragment =
         (ConsumerMapFragment) fragmentManager.findFragmentById(R.id.consumer_map_fragment);

     // Initiate the callback that returns the map.
     if (consumerMapFragment != null) {
       consumerMapFragment.getConsumerGoogleMapAsync(
           new ConsumerMapReadyCallback() {
             // The map returned in the callback is used to access the ConsumerController.
             @Override
             public void onConsumerMapReady(@NonNull ConsumerGoogleMap consumerGoogleMap) {
               ConsumerController consumerController = consumerGoogleMap.getConsumerController();
             }
           });
     }
   }

 }

কোটলিন

 class SampleAppActivity : AppCompatActivity() {
   override fun onCreate(savedInstanceState: Bundle?) {
     // Find the ConsumerMapFragment.
     val consumerMapFragment =
       fragmentManager.findFragmentById(R.id.consumer_map_fragment) as ConsumerMapFragment

     consumerMapFragment.getConsumerGoogleMapAsync(
       object : ConsumerMapReadyCallback() {
         override fun onConsumerMapReady(consumerGoogleMap: ConsumerGoogleMap) {
           val consumerController = consumerGoogleMap.getConsumerController()!!
         }
       }
     )
   }
 }

ConsumerMapView কীভাবে যোগ করবেন তার উদাহরণ

  1. আপনার XML ফাইলে সংজ্ঞায়িতভাবে, একটি খণ্ডে অথবা একটি কার্যকলাপে ভিউ ব্যবহার করুন।

     <com.google.android.libraries.mapsplatform.transportation.consumer.view.ConsumerMapView
         xmlns:android="http://schemas.android.com/apk/res/android"
         android:id="@+id/consumer_map_view"
         android:layout_width="match_parent"
         android:layout_height="match_parent" />
    
  2. onCreate() থেকে getConsumerGoogleMapAsync() এ কল করুন। কলব্যাক প্যারামিটার ছাড়াও, নিম্নলিখিত বিবরণগুলি অন্তর্ভুক্ত করুন:

    • ধারণকারী কার্যকলাপ বা খণ্ড। কার্যকলাপ বা খণ্ড বেস ক্লাসটি অবশ্যই একটি FragmentActivity অথবা একটি সমর্থন Fragment (যথাক্রমে) হতে হবে, কারণ তারা এর জীবনচক্রের অ্যাক্সেস প্রদান করে।

    • GoogleMapOptions (যা null হতে পারে), যাতে MapView এর জন্য কনফিগারেশন বৈশিষ্ট্য রয়েছে।

জাভা

public class SampleAppActivity extends AppCompatActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    ConsumerMapView mapView = findViewById(R.id.consumer_map_view);

    if (mapView != null) {
      mapView.getConsumerGoogleMapAsync(
          new ConsumerMapReadyCallback() {
            // The map returned in the callback is used to access the ConsumerController.
            @Override
            public void onConsumerMapReady(@NonNull ConsumerGoogleMap consumerGoogleMap) {
              ConsumerController consumerController = consumerGoogleMap.getConsumerController();
            }
          }, this, null);
    }
  }

}

কোটলিন

class SampleAppActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    val mapView = findViewById(R.id.consumer_map_view) as ConsumerMapView

    mapView.getConsumerGoogleMapAsync(
      object : ConsumerMapReadyCallback() {
        // The map returned in the callback is used to access the ConsumerController.
        override fun onConsumerMapReady(consumerGoogleMap: ConsumerGoogleMap) {
          val consumerController = consumerGoogleMap.getConsumerController()!!
        }
      },
      /* fragmentActivity= */ this,
      /* googleMapOptions= */ null,
    )
  }
}

একটি ফ্র্যাগমেন্টে থাকা MapView একটি অ্যাক্টিভিটিতে থাকা MapView এর পূর্ববর্তী উদাহরণের মিল, তবে ফ্র্যাগমেন্টটি onCreateView() মেথডে থাকা MapView লেআউটকে ফুলে তোলে।

জাভা

public class MapViewInFragment extends Fragment {

  @Override
  public View onCreateView(
      @NonNull LayoutInflater layoutInflater,
      @Nullable ViewGroup viewGroup,
      @Nullable Bundle bundle) {
    return layoutInflater.inflate(R.layout.consumer_map_view, viewGroup, false);
  }

}

কোটলিন

class MapViewInFragment : Fragment() {
  override fun onCreateView(
    layoutInflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?,
  ): View {
    return layoutInflater.inflate(R.layout.consumer_map_view, viewGroup, false)
  }
}

ধাপ ২: একটি মানচিত্র বেস স্তর এবং ভিউ কন্ট্রোলারের জন্য সমর্থন যোগ করুন

আপনার অ্যাপে ভ্রমণের অগ্রগতি শেয়ার করতে, আপনার অ্যাপে নিম্নলিখিত ক্লাসগুলি যোগ করুন: ConsumerGoogleMap এবং ConsumerController

  • ConsumerMapFragment অথবা ConsumerMapView থেকে ConsumerGoogleMap পান, উভয়ই ConsumerMapReadyCallback এ অ্যাসিঙ্ক্রোনাসভাবে ConsumerGoogleMap ফেরত দেয়।

    ConsumerGoogleMap হল GoogleMap ক্লাসের জন্য একটি র‍্যাপার ক্লাস। এটি GoogleMap এর সমতুল্য একটি API ব্যবহার করে যাতে আপনার অ্যাপটি মানচিত্রের সাথে ইন্টারঅ্যাক্ট করতে পারে। এইভাবে, আপনার অ্যাপটি একই অন্তর্নিহিত Google ম্যাপের সাথে নির্বিঘ্নে ইন্টারঅ্যাক্ট করতে পারে। উদাহরণস্বরূপ, GoogleMap শুধুমাত্র একটি একক কলব্যাক নিবন্ধনের অনুমতি দেয়, কিন্তু ConsumerGoogleMap দ্বৈত নিবন্ধিত কলব্যাক সমর্থন করে। এই কলব্যাকগুলি আপনার অ্যাপকে ক্রমানুসারে কল করা কলব্যাক নিবন্ধন করতে দেয়।

  • getConsumerController() -এ ConsumerGoogleMap থেকে ConsumerController পান।

    ConsumerController ট্রিপ শেয়ারিং বৈশিষ্ট্যগুলিতে অ্যাক্সেস প্রদান করে যেমন মনিটর ট্রিপ, নিয়ন্ত্রণ ট্রিপ স্ট্যাটাস এবং সেট লোকেশন।

জাভা এবং কোটলিনে আপনার অ্যাপে ConsumerGoogleMap এবং ConsumerController কীভাবে যোগ করবেন তার জন্য নিম্নলিখিত উদাহরণগুলি দেখুন।

জাভা

private ConsumerGoogleMap consumerGoogleMap;
private ConsumerController consumerController;
private ConsumerMapView consumerMapView;

consumerMapView.getConsumerGoogleMapAsync(
    new ConsumerMapReadyCallback() {
      @Override
      public void onConsumerMapReady(@NonNull ConsumerGoogleMap consumerMap) {
        consumerGoogleMap = consumerMap;
        consumerController = consumerMap.getConsumerController();
      }
    },
    this, null);

কোটলিন

var consumerGoogleMap: ConsumerGoogleMap
var consumerController: ConsumerController
val consumerMapView = findViewById(R.id.consumer_map_view) as ConsumerMapView

consumerMapView.getConsumerGoogleMapAsync(
  object : ConsumerMapReadyCallback() {
    override fun onConsumerMapReady(consumerMap: ConsumerGoogleMap) {
      consumerGoogleMap = consumerMap
      consumerController = consumerMap.getConsumerController()
    },
    /* fragmentActivity= */ this,
    /* googleMapOptions= */ null,
  }
)

ধাপ ৩: অ্যান্ড্রয়েড ভেক্টর গ্রাফিক্সের জন্য সমর্থন যোগ করুন

যদি আপনার অ্যাপ ডিজাইনের জন্য ভেক্টর গ্রাফিক্সের জন্য সমর্থন প্রয়োজন হয়, তাহলে এই ধাপগুলি ব্যবহার করে অ্যান্ড্রয়েড ডিভাইস এবং ভেক্টর ড্রয়েবলের জন্য সমর্থন যোগ করুন:

  1. আপনার Activity-তে নিম্নলিখিত কোডটি যোগ করুন। এই কোডগুলি Consumer SDK-তে Vector drawables ব্যবহার করার জন্য AppCompatActivity প্রসারিত করে।

জাভা

// ...
import android.support.v7.app.AppCompatActivity;

// ...

public class ConsumerTestActivity extends AppCompatActivity {
  // ...
}

কোটলিন

// ...
import android.support.v7.app.AppCompatActivity

// ...

class ConsumerTestActivity : AppCompatActivity() {
  // ...
}

এরপর কি?

অ্যান্ড্রয়েডে একটি ট্রিপ অনুসরণ করুন

মানচিত্র স্টাইল করুন