একটি মানচিত্র শৈলী

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

এই নির্দেশিকায় বর্ণনা করা হয়েছে, কোনো ভ্রমণ অনুসরণ করার সময় আপনার iOS অ্যাপে প্রদর্শিত মানচিত্রটিকে আপনি কীভাবে নিজের পছন্দমতো আকার দিতে পারেন।

শুরু করার আগে

একটি ম্যাপ স্টাইল করার আগে, আপনার একটি কনজিউমার অ্যাপ থাকতে হবে যেখানে নিম্নলিখিত বিষয়গুলো বাস্তবায়িত আছে:

কনজিউমার এসডিকে-র জন্য প্রয়োজনীয় ব্যাকএন্ড সার্ভিসগুলো এবং কনজিউমার এসডিকে-টিও আপনাকে সেট আপ করতে হবে। বিস্তারিত জানতে, ‘কনজিউমার এসডিকে সেট আপ করুন’ এবং ‘ফ্লিট ইঞ্জিন কী? ’ দেখুন।

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

যেসব কাস্টমাইজেশন করা যাবে, সেগুলো নিম্নরূপ:

  • ম্যাপের স্টাইল : আপনি ক্লাউড-ভিত্তিক ম্যাপ স্টাইলিং ব্যবহার করে ম্যাপের রঙ, পলিলাইন এবং অন্যান্য বৈশিষ্ট্য স্টাইল করতে পারেন। ম্যাপের স্টাইল দেখুন।

  • ক্যামেরার জুম অ্যাডজাস্ট করুন : কোনো যাত্রায় ফোকাস করার জন্য আপনি বিল্ট-ইন ফিচারটি ব্যবহার করতে পারেন অথবা নিজের মতো করে ক্যামেরার অপশন সেট করতে পারেন। কোনো ট্রিপে ফোকাস করার জন্য ক্যামেরার জুম অ্যাডজাস্ট করা দেখুন।

  • মার্কার এবং পলিলাইন কাস্টমাইজ করুন : আপনি আপনার অ্যাপ ডিজাইনে কাস্টম মার্কার এবং রুট পলিলাইন যোগ করতে পারেন। এই ডিজাইন উপাদানগুলো আপনার কনজিউমার অ্যাপকে গাড়ির রুটের একটি ডাইনামিক প্রিভিউ প্রদর্শন করতে সক্ষম করে। মার্কার কাস্টমাইজ করুন এবং পলিলাইন কাস্টমাইজ করুন দেখুন।

    SDK এই অপশনগুলো consumerMapStyleCoordinator প্রপার্টির মাধ্যমে প্রদান করে। এই প্রপার্টিটি GMTCMapView ক্লাসের মাধ্যমে পাওয়া যায়।

ক্লাউড-ভিত্তিক মানচিত্রের স্টাইলিং ব্যবহার করে মানচিত্রটি সাজান।

ক্লাউড-ভিত্তিক ম্যাপ স্টাইলিং ব্যবহার করে ম্যাপ কম্পোনেন্টের চেহারা ও অনুভূতি নিজের মতো করে সাজিয়ে নিন। আপনার কোডে কোনো পরিবর্তন না করেই, আপনি গুগল ম্যাপস ব্যবহারকারী যেকোনো অ্যাপের জন্য গুগল ক্লাউড কনসোলে ম্যাপ স্টাইল তৈরি ও সম্পাদনা করতে পারেন। আরও তথ্যের জন্য, ‘ক্লাউড-ভিত্তিক ম্যাপ স্টাইলিং’ থেকে আপনার প্ল্যাটফর্মটি নির্বাচন করুন।

ConsumerMapView এবং ConsumerMapFragment উভয় ক্লাসই ক্লাউড-ভিত্তিক ম্যাপ স্টাইলিং সমর্থন করে। ক্লাউড-ভিত্তিক ম্যাপ স্টাইলিং ব্যবহার করার জন্য, নিশ্চিত করুন যে নির্বাচিত ম্যাপ রেন্ডারারটি LATEST । নিম্নলিখিত বিভাগগুলিতে আপনার প্রোজেক্টে ক্লাউড-ভিত্তিক ম্যাপ স্টাইলিং কীভাবে ব্যবহার করবেন তার উদাহরণ দেখানো হয়েছে।

ConsumerMapView

ConsumerMapView তে ক্লাউড-ভিত্তিক ম্যাপের স্টাইলিং ব্যবহার করতে, GoogleMapOptions এর mapId ফিল্ডটি সেট করুন এবং getConsumerGoogleMapAsync(ConsumerMapReadyCallback, Fragment, GoogleMapOptions) অথবা getConsumerGoogleMapAsync(ConsumerMapReadyCallback, FragmentActivity, GoogleMapOptions) -এ GoogleMapOptions পাস করুন।

উদাহরণ

জাভা

public class SampleAppActivity extends AppCompatActivity {

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

    if (mapView != null) {
      GoogleMapOptions optionsWithMapId = new GoogleMapOptions().mapId("map-id");
      mapView.getConsumerGoogleMapAsync(
          new ConsumerMapReadyCallback() {
            @Override
            public void onConsumerMapReady(@NonNull ConsumerGoogleMap consumerGoogleMap) {
              // ...
            }
          },
          /* fragmentActivity= */ this,
          /* googleMapOptions= */ optionsWithMapId);
    }
  }
}

কোটলিন

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

    val optionsWithMapId = GoogleMapOptions().mapId("map-id")
    mapView.getConsumerGoogleMapAsync(
      object : ConsumerGoogleMap.ConsumerMapReadyCallback() {
        override fun onConsumerMapReady(consumerGoogleMap: ConsumerGoogleMap) {
          // ...
        }
      },
      /* fragmentActivity= */ this,
      /* googleMapOptions= */ optionsWithMapId)
  }
}

ConsumerMapFragment

ConsumerMapFragments-এ ক্লাউড-ভিত্তিক মানচিত্রের স্টাইলিং ব্যবহার করার দুটি উপায় রয়েছে:

  • XML-এর সাথে স্থিরভাবে।
  • newInstance এর সাথে গতিশীলভাবে।

XML দিয়ে স্থিরভাবে

ConsumerMapFragment এর XML-এ ক্লাউড-ভিত্তিক ম্যাপের স্টাইলিং ব্যবহার করতে, নির্দিষ্ট mapId সহ map:mapId XML অ্যাট্রিবিউটটি যোগ করুন। নিম্নলিখিত উদাহরণটি দেখুন:

<fragment
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:name="com.google.android.libraries.mapsplatform.transportation.consumer.view.ConsumerMapFragment"
    android:id="@+id/consumer_map_fragment"
    map:mapId="map-id"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

newInstance সাথে গতিশীলভাবে

ConsumerMapFragmentnewInstance সাথে ক্লাউড-ভিত্তিক ম্যাপের স্টাইলিং ব্যবহার করতে, GoogleMapOptions এর mapId ফিল্ডটি সেট করুন এবং GoogleMapOptions টি newInstance এ পাস করুন। নিচের উদাহরণটি দেখুন:

জাভা

public class SampleFragmentJ extends Fragment {

  @Override
  public View onCreateView(
      @NonNull LayoutInflater inflater,
      @Nullable ViewGroup container,
      @Nullable Bundle savedInstanceState) {

    final View view = inflater.inflate(R.layout.consumer_map_fragment, container, false);

    GoogleMapOptions optionsWithMapId = new GoogleMapOptions().mapId("map-id");
    ConsumerMapFragment consumerMapFragment = ConsumerMapFragment.newInstance(optionsWithMapId);

    getParentFragmentManager()
        .beginTransaction()
        .add(R.id.consumer_map_fragment, consumerMapFragment)
        .commit();

    consumerMapFragment.getConsumerGoogleMapAsync(
        new ConsumerMapReadyCallback() {
          @Override
          public void onConsumerMapReady(@NonNull ConsumerGoogleMap consumerGoogleMap) {
            // ...
          }
        });

    return view;
  }
}

কোটলিন

class SampleFragment : Fragment() {
  override fun onCreateView(
    inflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?): View? {

    val view = inflater.inflate(R.layout.consumer_map_fragment, container, false)

    val optionsWithMapId = GoogleMapOptions().mapId("map-id")
    val consumerMapFragment = ConsumerMapFragment.newInstance(optionsWithMapId)

    parentFragmentManager
      .beginTransaction()
      .add(R.id.consumer_map_fragment, consumerMapFragment)
      .commit()

    consumerMapFragment.getConsumerGoogleMapAsync(
      object : ConsumerMapReadyCallback() {
        override fun onConsumerMapReady(consumerGoogleMap: ConsumerGoogleMap) {
          // ...
        }
      })

    return view
  }
}

ভ্রমণের উপর ফোকাস করার জন্য ক্যামেরার জুম অ্যাডজাস্ট করুন।

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

  • AutoCamera : আপনি যদি AutoCamera ব্যবহার করতে চান, তাহলে আপনাকে কিছুই করতে হবে না। ক্যামেরাটি নিজে থেকেই ভ্রমণপথ অনুসরণ করবে।

  • ক্যামেরার আচরণ কাস্টমাইজ করুন : ক্যামেরার আচরণ কাস্টমাইজ করতে হলে, আপনাকে AutoCamera নিষ্ক্রিয় করতে হবে এবং তারপর আপনার পছন্দ অনুযায়ী পরিবর্তন করতে হবে।

AutoCamera ডিফল্টরূপে ক্যামেরাটিকে কেন্দ্রে রাখে।

কনজিউমার এসডিকে একটি AutoCamera ফিচার প্রদান করে, যা ম্যাপস এসডিকে-এর বিল্ট-ইন 'মাই লোকেশন' বাটনে ডিফল্টরূপে সক্রিয় থাকে। ক্যামেরাটি ট্রিপ রুট এবং পরবর্তী ট্রিপ ওয়েপয়েন্টের উপর ফোকাস করার জন্য জুম করে।

আপনি যদি AutoCamera ব্যবহার করতে চান, তবে নিশ্চিত করুন যে এটি সক্রিয় করা আছে। আরও বিস্তারিত জানতে, allowCameraAutoUpdate দেখুন।

অটো ক্যামেরা

Maps SDK-এর My Location বাটন সম্পর্কে বিস্তারিত জানতে, iOS-এর জন্য Maps SDK ডকুমেন্টেশনে My Location বাটন দেখুন।

ক্যামেরার আচরণ কাস্টমাইজ করুন

ক্যামেরার আচরণের উপর আরও বেশি নিয়ন্ত্রণ পেতে, আপনি AutoCamera নিষ্ক্রিয় করতে এবং ক্যামেরার আচরণ কাস্টমাইজ করতে পারেন।

AllowCameraAutoUpdate প্রপার্টি ব্যবহার করে AutoCamera নিষ্ক্রিয় বা সক্রিয় করুন।

ক্যামেরার আরও কাস্টমাইজেশনের জন্য, iOS-এর জন্য Maps SDK ডকুমেন্টেশনে "ক্যামেরা সরানো" অংশটি দেখুন।

এরপর কী?

iOS-এ একটি ভ্রমণ অনুসরণ করুন