Wear OS এ Maps API

পরিধানযোগ্য ডিভাইসে একটি মানচিত্র

Android এর জন্য Maps SDK ব্যবহার করে, আপনি একটি মানচিত্র-ভিত্তিক পরিধানযোগ্য অ্যাপ তৈরি করতে পারেন যা সরাসরি Wear OS by Google ডিভাইসে চলে। আপনার অ্যাপের ব্যবহারকারীরা তাদের কব্জির দিকে তাকিয়ে মানচিত্রে তাদের অবস্থান দেখতে পারে। তারা একটি রুটে তাদের অবস্থান প্লট করতে পারে, উদাহরণস্বরূপ, তারপর বিশদ বিবরণের জন্য জুম ইন করুন, বা আপনার অ্যাপ দ্বারা সরবরাহ করা তথ্য উইন্ডো দেখতে একটি মার্কার ট্যাপ করুন৷

এই পৃষ্ঠাটি পরিধানের ডিভাইসে উপলব্ধ API কার্যকারিতা বর্ণনা করে এবং আপনাকে আপনার অ্যাপ তৈরি করা শুরু করতে সহায়তা করে।

Wear OS-এ শুরু করা হচ্ছে

অ্যান্ড্রয়েডের জন্য মানচিত্র SDK দিয়ে একটি পরিধানযোগ্য অ্যাপ তৈরি করা মৌলিকভাবে অন্য যেকোনো অ্যান্ড্রয়েড ডিভাইসের জন্য একটি Google মানচিত্র অ্যাপ তৈরি করার মতো। পার্থক্যটি পরিধানযোগ্য ডিভাইসের ছোট ফর্ম ফ্যাক্টরের জন্য, অ্যাপের ব্যবহারযোগ্যতা এবং কর্মক্ষমতা অপ্টিমাইজ করার জন্য আপনার ডিজাইনের মধ্যে রয়েছে।

Android স্টুডিও Wear OS ডেভেলপমেন্টের জন্য প্রস্তাবিত টুল, কারণ এটি প্রোজেক্ট সেটআপ, লাইব্রেরি অন্তর্ভুক্তি এবং প্যাকেজিং সুবিধা প্রদান করে।

পরিধানযোগ্য অ্যাপ ডিজাইনে সাধারণ সাহায্যের জন্য, Wear OS ডিজাইন নির্দেশিকা পড়ুন। আপনার প্রথম পরিধানযোগ্য অ্যাপ তৈরিতে সহায়তার জন্য, পরিধানযোগ্য অ্যাপ তৈরির নির্দেশিকা দেখুন।

Wear OS-এ আপনার প্রথম ম্যাপ অ্যাপ তৈরি করা

এই দ্রুত নির্দেশিকাটি অনুমান করে যে আপনি Android এর জন্য Maps SDK-এর সাথে পরিচিত, আপনি আপনার অ্যাপে একটি পরিধানযোগ্য মডিউল তৈরি করতে Wear OS গাইডগুলি অনুসরণ করেছেন এবং আপনি এখন পরিধানযোগ্য মডিউলে একটি মানচিত্র যুক্ত করতে চান৷

আপনার পরিধান মডিউল জন্য নির্ভরতা যোগ করা

আপনার অ্যাপের Wear OS মডিউলের build.gradle.kts ফাইলে নিম্নলিখিত নির্ভরতাগুলি অন্তর্ভুক্ত রয়েছে তা নিশ্চিত করুন:

dependencies {
    // ...
    compileOnly("com.google.android.wearable:wearable:2.9.0")
    implementation("com.google.android.support:wearable:2.9.0")
    implementation("com.google.android.gms:play-services-maps:19.0.0")

    // This dependency is necessary for ambient mode
    implementation("androidx.wear:wear:1.3.0")
}

নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, আপনার বিদ্যমান প্রকল্পে একটি Wear OS মডিউল যুক্ত করার নির্দেশিকাটি দেখুন।

একটি সোয়াইপ-টু-খারিজ অঙ্গভঙ্গি প্রয়োগ করা এবং প্রাথমিক পটভূমির রঙ সেট করা

পরিধানযোগ্য ডিভাইসে মানচিত্র প্রদর্শন করতে আপনি একটি SwipeDismissFrameLayout ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। SwipeDismissFrameLayout ক্লাস ব্যবহার করে, আপনি সোয়াইপ-টু-ডিমিস ইঙ্গিত প্রয়োগ করতে পারেন যা ব্যবহারকারীদের স্ক্রিনের বাম প্রান্ত থেকে সোয়াইপ করে অ্যাপ থেকে প্রস্থান করার উপায় দেয়।

একটি কাস্টম প্রাথমিক পটভূমি রঙ সেট করতে, প্রকৃত মানচিত্র টাইলস লোড না হওয়া পর্যন্ত প্রদর্শনের জন্য রঙ নির্ধারণ করতে map:backgroundColor XML বৈশিষ্ট্য ব্যবহার করুন।

SupportMapFragment এর ধারক হিসাবে আপনার লেআউট সংজ্ঞাতে SwipeDismissFrameLayout এবং backgroundColor উপাদান যোগ করুন:

  <androidx.wear.widget.SwipeDismissFrameLayout
      android:id="@+id/map_container"
      android:layout_width="match_parent"
      android:layout_height="match_parent">
    <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        map:backgroundColor="#fff0b2dd" />
  </androidx.wear.widget.SwipeDismissFrameLayout>

যখন আপনি আপনার কার্যকলাপে SwipeDismissFrameLayout অবজেক্ট পাবেন, তখন একটি কলব্যাক যোগ করুন এবং নীচে দেখানো হিসাবে প্রয়োজনীয় খারিজ ক্রিয়া সম্পাদন করতে কলব্যাকের আচরণ সেট করুন:

কোটলিন

class MainActivity : AppCompatActivity(), OnMapReadyCallback,
                     AmbientModeSupport.AmbientCallbackProvider {


    public override fun onCreate(savedState: Bundle?) {
        super.onCreate(savedState)

        // Set the layout. It only contains a SupportMapFragment and a DismissOverlay.
        setContentView(R.layout.activity_main)

        // Enable ambient support, so the map remains visible in simplified, low-color display
        // when the user is no longer actively using the app but the app is still visible on the
        // watch face.
        val controller = AmbientModeSupport.attach(this)
        Log.d(MainActivity::class.java.simpleName, "Is ambient enabled: " + controller.isAmbient)

        // Retrieve the containers for the root of the layout and the map. Margins will need to be
        // set on them to account for the system window insets.
        val mapFrameLayout = findViewById<SwipeDismissFrameLayout>(R.id.map_container)
        mapFrameLayout.addCallback(object : SwipeDismissFrameLayout.Callback() {
            override fun onDismissed(layout: SwipeDismissFrameLayout) {
                onBackPressed()
            }
        })

        // Obtain the MapFragment and set the async listener to be notified when the map is ready.
        mapFragment = supportFragmentManager
            .findFragmentById(R.id.map) as SupportMapFragment
        mapFragment.getMapAsync(this)
    }

    // ...
}

      

জাভা

public class MainActivity extends AppCompatActivity implements OnMapReadyCallback,
    AmbientModeSupport.AmbientCallbackProvider {


    public void onCreate(Bundle savedState) {
        super.onCreate(savedState);

        // Set the layout. It only contains a SupportMapFragment and a DismissOverlay.
        setContentView(R.layout.activity_main);

        // Enable ambient support, so the map remains visible in simplified, low-color display
        // when the user is no longer actively using the app but the app is still visible on the
        // watch face.
        AmbientModeSupport.AmbientController controller = AmbientModeSupport.attach(this);
        Log.d(MainActivity.class.getSimpleName(), "Is ambient enabled: " + controller.isAmbient());

        // Retrieve the containers for the root of the layout and the map. Margins will need to be
        // set on them to account for the system window insets.
        final SwipeDismissFrameLayout mapFrameLayout = (SwipeDismissFrameLayout) findViewById(
            R.id.map_container);
        mapFrameLayout.addCallback(new SwipeDismissFrameLayout.Callback() {
            @Override
            public void onDismissed(SwipeDismissFrameLayout layout) {
                onBackPressed();
            }
        });

        // Obtain the MapFragment and set the async listener to be notified when the map is ready.
        mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    // ...
}

      

একটি মানচিত্র যোগ করা হচ্ছে

GoogleMap অবজেক্টে একটি হ্যান্ডেল পেতে, যথারীতি onMapReady(GoogleMap) কলব্যাক পদ্ধতিটি ব্যবহার করুন৷ মানচিত্র ব্যবহার করার জন্য প্রস্তুত হলে কলব্যাক ট্রিগার হয়। কলব্যাক পদ্ধতিতে, আপনি মানচিত্রে মার্কার বা পলিলাইন যোগ করতে পারেন, শ্রোতা যোগ করতে পারেন বা ক্যামেরা সরাতে পারেন। নীচের উদাহরণটি সিডনি অপেরা হাউসের কাছে একটি মার্কার যুক্ত করেছে:

কোটলিন

private val sydney = LatLng(-33.85704, 151.21522)

override fun onMapReady(googleMap: GoogleMap) {
    // Add a marker with a title that is shown in its info window.
    googleMap.addMarker(
        MarkerOptions().position(sydney)
            .title("Sydney Opera House")
    )

    // Move the camera to show the marker.
    googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney, 10f))
}

      

জাভা

private static final LatLng SYDNEY = new LatLng(-33.85704, 151.21522);

@Override
public void onMapReady(@NonNull GoogleMap googleMap) {
    // Add a marker with a title that is shown in its info window.
    googleMap.addMarker(new MarkerOptions().position(SYDNEY)
        .title("Sydney Opera House"));

    // Move the camera to show the marker.
    googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(SYDNEY, 10));
}

      

অ্যাম্বিয়েন্ট মোড সক্ষম করা হচ্ছে

অ্যান্ড্রয়েডের জন্য মানচিত্র SDK পরিধানযোগ্য অ্যাপগুলির জন্য পরিবেষ্টিত মোড সমর্থন করে৷ অ্যাম্বিয়েন্ট মোড সমর্থন করে এমন অ্যাপগুলিকে কখনও কখনও অ্যাপ্লিকেশানগুলিতে সর্বদা কল করা হয়। অ্যাম্বিয়েন্ট মোড সক্রিয় হয় যখন ব্যবহারকারী আর সক্রিয়ভাবে অ্যাপটি ব্যবহার করেন না এবং অ্যাপটিকে পরিধানযোগ্য ডিভাইসে দৃশ্যমান থাকার অনুমতি দেয়।

অ্যান্ড্রয়েডের জন্য মানচিত্র SDK পরিবেষ্টিত মোডে ব্যবহারের জন্য মানচিত্রের একটি সরলীকৃত, নিম্ন-রঙের রেন্ডারিং প্রদান করে এবং যখন ডিভাইসটি ইন্টারেক্টিভ থেকে পরিবেষ্টিত মোডে অদলবদল হয় তখন মানচিত্র শৈলী স্বয়ংক্রিয়ভাবে সামঞ্জস্য করে। সমস্ত মার্কার, অবজেক্ট এবং UI নিয়ন্ত্রণ পরিবেষ্টিত মোডে অদৃশ্য হয়ে যায়। এটি আপনার অ্যাপের পাওয়ার খরচ কমায় এবং ঘড়ির মুখের মতো অন্যান্য পরিবেষ্টিত অ্যাপগুলির সাথে সামঞ্জস্যপূর্ণ চেহারা এবং অনুভূতি নিশ্চিত করে।

আপনার অ্যাপটি মানচিত্রের পরিবেষ্টিত মোড ব্যবহার করছে তা নিশ্চিত করতে নিম্নলিখিত পদক্ষেপগুলি নিন:

  1. Android 6.0 (API 23) বা উচ্চতর প্ল্যাটফর্ম অন্তর্ভুক্ত করতে আপনার Android SDK আপডেট করুন, যা API গুলি প্রদান করে যা কার্যকলাপগুলিকে পরিবেষ্টিত মোডে যেতে দেয়৷ কিভাবে আপনার SDK আপডেট করবেন সে সম্পর্কে তথ্যের জন্য, SDK প্যাকেজ যোগ করার বিষয়ে Android ডকুমেন্টেশন দেখুন।
  2. অ্যাপ ম্যানিফেস্টে targetSdkVersion 23 বা উচ্চতর সেট করে নিশ্চিত করুন যে আপনার প্রোজেক্টটি Android 6.0 বা উচ্চতরকে লক্ষ্য করে।
  3. আপনার অ্যাপের build.gradle.kts ফাইলে পরিধানযোগ্য নির্ভরতা যোগ করুন। এই পৃষ্ঠায় নমুনা দেখুন।
  4. পরিধানযোগ্য অ্যাপ ম্যানিফেস্টে পরিধানযোগ্য শেয়ার্ড লাইব্রেরি এন্ট্রি যোগ করুন, যেমন আপনার অ্যাপকে দৃশ্যমান রাখার বিষয়ে Android প্রশিক্ষণ ক্লাসে বর্ণনা করা হয়েছে।
  5. হ্যান্ডহেল্ড এবং পরিধানযোগ্য অ্যাপ ম্যানিফেস্টে WAKE_LOCK অনুমতি যোগ করুন, যেমন আপনার অ্যাপটিকে দৃশ্যমান রাখার বিষয়ে Android প্রশিক্ষণ ক্লাসে বর্ণনা করা হয়েছে।
  6. আপনার কার্যকলাপের onCreate() পদ্ধতিতে, AmbientModeSupport.attach() পদ্ধতিতে কল করুন। এটি অপারেটিং সিস্টেমকে বলে যে অ্যাপ্লিকেশনটি সর্বদা চালু থাকে, যাতে ডিভাইসটি বন্ধ হয়ে গেলে এটি ঘড়ির মুখে ফিরে না গিয়ে পরিবেষ্টিত মোডে প্রবেশ করা উচিত।
  7. আপনার কার্যকলাপে AmbientModeSupport.AmbientCallbackProvider ইন্টারফেস প্রয়োগ করুন যাতে এটি পরিবেষ্টিত মোড অবস্থার পরিবর্তনগুলি পেতে পারে।
  8. পরিবেষ্টিত মোড সমর্থন করার জন্য আপনার মানচিত্র সেট করুন। আপনি কার্যকলাপের XML লেআউট ফাইলে অ্যাট্রিবিউট map:ambientEnabled="true" সেট করে এটি করতে পারেন, অথবা GoogleMapOptions.ambientEnabled(true) সেট করে প্রোগ্রাম্যাটিকভাবে এটি করতে পারেন। এই সেটিং এপিআইকে জানায় যে এটিকে অবশ্যই পরিবেষ্টিত মোডে ব্যবহারের জন্য প্রয়োজনীয় মানচিত্র টাইলস প্রি-লোড করতে হবে।
  9. যখন কার্যকলাপ পরিবেষ্টিত মোডে স্যুইচ করে, সিস্টেমটি আপনার প্রদান করা AmbientCallbackonEnterAmbient() পদ্ধতিতে কল করে। onEnterAmbient() ওভাররাইড করুন এবং SupportMapFragment.onEnterAmbient(ambientDetails) অথবা MapView.onEnterAmbient(ambientDetails) কল করুন। API একটি নন-ইন্টারেক্টিভ এবং মানচিত্রের কম রঙের রেন্ডারিং-এ অদলবদল করে।
  10. একইভাবে, onExitAmbient()SupportMapFragment.onExitAmbient() অথবা MapView.onExitAmbient() কল করুন। API ম্যাপের স্বাভাবিক রেন্ডারিং-এ অদলবদল করে।

নিম্নলিখিত কোড নমুনা কার্যকলাপে পরিবেষ্টিত মোড সক্ষম করে:

কোটলিন

class AmbientActivity : AppCompatActivity(), AmbientModeSupport.AmbientCallbackProvider {

    private lateinit var mapFragment: SupportMapFragment

    public override fun onCreate(savedState: Bundle?) {
        super.onCreate(savedState)

        // Set the layout. It only contains a SupportMapFragment and a DismissOverlay.
        setContentView(R.layout.activity_main)

        // Enable ambient support, so the map remains visible in simplified, low-color display
        // when the user is no longer actively using the app but the app is still visible on the
        // watch face.
        val controller = AmbientModeSupport.attach(this)
        Log.d(AmbientActivity::class.java.simpleName, "Is ambient enabled: " + controller.isAmbient)

        // Obtain the MapFragment and set the async listener to be notified when the map is ready.
        mapFragment = supportFragmentManager
            .findFragmentById(R.id.map) as SupportMapFragment
    }

    override fun getAmbientCallback(): AmbientModeSupport.AmbientCallback {
        return object : AmbientModeSupport.AmbientCallback() {
            /**
             * Starts ambient mode on the map.
             * The API swaps to a non-interactive and low-color rendering of the map when the user is no
             * longer actively using the app.
             */
            override fun onEnterAmbient(ambientDetails: Bundle) {
                super.onEnterAmbient(ambientDetails)
                mapFragment.onEnterAmbient(ambientDetails)
            }

            /**
             * Exits ambient mode on the map.
             * The API swaps to the normal rendering of the map when the user starts actively using the app.
             */
            override fun onExitAmbient() {
                super.onExitAmbient()
                mapFragment.onExitAmbient()
            }
        }
    }
}

      

জাভা

public class AmbientActivity extends AppCompatActivity implements
    AmbientModeSupport.AmbientCallbackProvider {

    private SupportMapFragment mapFragment;

    public void onCreate(Bundle savedState) {
        super.onCreate(savedState);

        // Set the layout. It only contains a SupportMapFragment and a DismissOverlay.
        setContentView(R.layout.activity_main);

        // Enable ambient support, so the map remains visible in simplified, low-color display
        // when the user is no longer actively using the app but the app is still visible on the
        // watch face.
        AmbientModeSupport.AmbientController controller = AmbientModeSupport.attach(this);
        Log.d(AmbientActivity.class.getSimpleName(), "Is ambient enabled: " + controller.isAmbient());

        // Obtain the MapFragment and set the async listener to be notified when the map is ready.
        mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    }

    @Override
    public AmbientCallback getAmbientCallback() {
        return new AmbientCallback() {
            /**
             * Starts ambient mode on the map.
             * The API swaps to a non-interactive and low-color rendering of the map when the user is no
             * longer actively using the app.
             */
            @Override
            public void onEnterAmbient(Bundle ambientDetails) {
                super.onEnterAmbient(ambientDetails);
                mapFragment.onEnterAmbient(ambientDetails);
            }

            /**
             * Exits ambient mode on the map.
             * The API swaps to the normal rendering of the map when the user starts actively using the app.
             */
            @Override
            public void onExitAmbient() {
                super.onExitAmbient();
                mapFragment.onExitAmbient();
            }
        };
    }
}

      

অ্যাপটি অ্যাম্বিয়েন্ট মোডে থাকা অবস্থায় আপনি স্ক্রিন আপডেট করতে পারবেন। বিষয়বস্তু আপডেট করা এবং সাধারণভাবে পরিবেষ্টিত মোড সম্পর্কে আরও বিশদ বিবরণের জন্য, আপনার অ্যাপকে দৃশ্যমান রাখার বিষয়ে Android প্রশিক্ষণ ক্লাস দেখুন।

Wear OS-এ রাস্তার দৃশ্য ব্যবহার করা

পরিধানযোগ্য ডিভাইসে রাস্তার দৃশ্য সম্পূর্ণরূপে সমর্থিত।

একটি রাস্তার দৃশ্য প্যানোরামা দেখার সময় ব্যবহারকারীদের অ্যাপ থেকে প্রস্থান করার অনুমতি দিতে, একটি দীর্ঘ-ক্লিক অঙ্গভঙ্গি শুনতে StreetViewPanorama.OnStreetViewPanoramaLongClickListener ইন্টারফেসটি ব্যবহার করুন৷ যখন একজন ব্যবহারকারী রাস্তার দৃশ্য চিত্রের কোথাও দীর্ঘ-ক্লিক করেন, তখন আপনি একটি onStreetViewPanoramaLongClick(StreetViewPanoramaOrientation) ইভেন্ট পাবেন। একটি প্রস্থান বোতাম প্রদর্শন করতে DismissOverlayView.show() এ কল করুন।

নমুনা কোড

GitHub- এ একটি নমুনা অ্যাপ পাওয়া যায়, যা আপনি আপনার অ্যাপের শুরুর পয়েন্ট হিসেবে ব্যবহার করতে পারেন। নমুনা আপনাকে দেখায় কিভাবে Wear OS-এ একটি মৌলিক Google Map সেট আপ করতে হয়।

Wear OS-এ Maps API-এ সমর্থিত কার্যকারিতা

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

কার্যকারিতা
সম্পূর্ণ ইন্টারেক্টিভ মোড এবং লাইট মোড

আপনি সম্পূর্ণ ইন্টারেক্টিভ মোডে বা লাইট মোডে Android এর জন্য Maps SDK ব্যবহার করতে পারেন৷ আপনি যদি পরিধানযোগ্য ডিভাইসে পারফরম্যান্স অপ্টিমাইজ করতে চান তাহলে লাইট মোড বিবেচনা করুন এবং আপনার অ্যাপটিকে অঙ্গভঙ্গি, বা ম্যাপ প্যানিং এবং জুম করার মতো ইন্টারঅ্যাকশন সমর্থন করার প্রয়োজন নেই৷

লাইট মোডে, ব্যবহারকারী যখন ম্যাপে ট্যাপ করে তখন Google Maps মোবাইল অ্যাপ চালু করার অভিপ্রায় অক্ষম থাকে এবং পরিধানযোগ্য ডিভাইসে চালু করা যায় না।

লাইট মোড এবং সম্পূর্ণ ইন্টারেক্টিভ মোডের মধ্যে পার্থক্যের সম্পূর্ণ তালিকার জন্য, লাইট মোড ডকুমেন্টেশন দেখুন।

মানচিত্র টুলবার মানচিত্র টুলবার অক্ষম করা হয়েছে এবং পরিধানযোগ্য ডিভাইসে সক্ষম করা যাবে না।
UI নিয়ন্ত্রণ পরিধানযোগ্য ডিভাইসগুলিতে UI নিয়ন্ত্রণগুলি ডিফল্টরূপে অক্ষম করা হয়৷ এর মধ্যে রয়েছে জুম, কম্পাস এবং আমার অবস্থান নিয়ন্ত্রণ। আপনি যথারীতি UiSettings ক্লাস ব্যবহার করে তাদের সক্ষম করতে পারেন।
অঙ্গভঙ্গি একক-স্পর্শ অঙ্গভঙ্গি প্রত্যাশিত হিসাবে কাজ করে। উদাহরণগুলি হল মানচিত্রটি প্যান করতে স্পর্শ করুন এবং টেনে আনুন, জুম ইন করতে ডবল-ট্যাপ করুন এবং জুম আউট করতে দুই আঙুলে ট্যাপ করুন৷ ব্যবহারকারীর ডিভাইসের উপর নির্ভর করে মাল্টি-টাচ অঙ্গভঙ্গির জন্য সমর্থন পরিবর্তিত হয়। মাল্টি-টাচ অঙ্গভঙ্গির উদাহরণগুলির মধ্যে রয়েছে মানচিত্রটি কাত করতে দুই-আঙ্গুলের পুশ, জুম করতে চিমটি করা এবং দুই-আঙ্গুলের ঘূর্ণন।
অন্দর মানচিত্র এবং ভবন পরিধানযোগ্য ডিভাইসে অভ্যন্তরীণ মানচিত্রগুলি ডিফল্টরূপে অক্ষম করা হয়৷ আপনি GoogleMap.setIndoorEnabled(true) কল করে তাদের সক্ষম করতে পারেন। অভ্যন্তরীণ মানচিত্র সক্ষম করা থাকলে, মানচিত্রটি ডিফল্ট তল স্তর দেখাবে৷ লেভেল পিকার UI উপাদান পরিধানযোগ্য ডিভাইসে সমর্থিত নয়।
টালি ওভারলে পরিধানযোগ্য ডিভাইসে টাইল ওভারলে সমর্থিত নয়

Wear OS-এ Maps API-এর সাথে ডেভেলপ করার জন্য সর্বোত্তম অনুশীলন

কীভাবে আপনার অ্যাপে সেরা ব্যবহারকারীর অভিজ্ঞতা প্রদান করবেন:

  • মানচিত্রটি পর্দার একটি বড় অনুপাত দখল করা উচিত। পরিধানযোগ্য ডিভাইসের ছোট ফর্ম ফ্যাক্টরে মানচিত্রের ব্যবহারযোগ্যতা অপ্টিমাইজ করার জন্য এটি প্রয়োজনীয়।
  • আপনার অ্যাপের ব্যবহারকারীর অভিজ্ঞতা ডিজাইন করার সময়, পরিধানযোগ্য ডিভাইসের কম ব্যাটারি পাওয়ার বিষয়টি বিবেচনা করুন। পর্দা সক্রিয় রাখা এবং মানচিত্র দৃশ্যমান ব্যাটারি কর্মক্ষমতা প্রভাবিত করবে.
,
পরিধানযোগ্য ডিভাইসে একটি মানচিত্র

Android এর জন্য Maps SDK ব্যবহার করে, আপনি একটি মানচিত্র-ভিত্তিক পরিধানযোগ্য অ্যাপ তৈরি করতে পারেন যা সরাসরি Wear OS by Google ডিভাইসে চলে। আপনার অ্যাপের ব্যবহারকারীরা তাদের কব্জির দিকে তাকিয়ে মানচিত্রে তাদের অবস্থান দেখতে পারে। তারা একটি রুটে তাদের অবস্থান প্লট করতে পারে, উদাহরণস্বরূপ, তারপর বিশদ বিবরণের জন্য জুম ইন করুন, বা আপনার অ্যাপ দ্বারা সরবরাহ করা তথ্য উইন্ডো দেখতে একটি মার্কার ট্যাপ করুন৷

এই পৃষ্ঠাটি পরিধানের ডিভাইসে উপলব্ধ API কার্যকারিতা বর্ণনা করে এবং আপনাকে আপনার অ্যাপ তৈরি করা শুরু করতে সহায়তা করে।

Wear OS-এ শুরু করা হচ্ছে

অ্যান্ড্রয়েডের জন্য মানচিত্র SDK দিয়ে একটি পরিধানযোগ্য অ্যাপ তৈরি করা মৌলিকভাবে অন্য যেকোনো অ্যান্ড্রয়েড ডিভাইসের জন্য একটি Google মানচিত্র অ্যাপ তৈরি করার মতো। পার্থক্যটি পরিধানযোগ্য ডিভাইসের ছোট ফর্ম ফ্যাক্টরের জন্য, অ্যাপের ব্যবহারযোগ্যতা এবং কর্মক্ষমতা অপ্টিমাইজ করার জন্য আপনার ডিজাইনের মধ্যে রয়েছে।

Android স্টুডিও Wear OS ডেভেলপমেন্টের জন্য প্রস্তাবিত টুল, কারণ এটি প্রোজেক্ট সেটআপ, লাইব্রেরি অন্তর্ভুক্তি এবং প্যাকেজিং সুবিধা প্রদান করে।

পরিধানযোগ্য অ্যাপ ডিজাইনে সাধারণ সাহায্যের জন্য, Wear OS ডিজাইন নির্দেশিকা পড়ুন। আপনার প্রথম পরিধানযোগ্য অ্যাপ তৈরিতে সহায়তার জন্য, পরিধানযোগ্য অ্যাপ তৈরির নির্দেশিকা দেখুন।

Wear OS-এ আপনার প্রথম ম্যাপ অ্যাপ তৈরি করা

এই দ্রুত নির্দেশিকাটি অনুমান করে যে আপনি Android এর জন্য Maps SDK-এর সাথে পরিচিত, আপনি আপনার অ্যাপে একটি পরিধানযোগ্য মডিউল তৈরি করতে Wear OS গাইডগুলি অনুসরণ করেছেন এবং আপনি এখন পরিধানযোগ্য মডিউলে একটি মানচিত্র যুক্ত করতে চান৷

আপনার পরিধান মডিউল জন্য নির্ভরতা যোগ করা

আপনার অ্যাপের Wear OS মডিউলের build.gradle.kts ফাইলে নিম্নলিখিত নির্ভরতাগুলি অন্তর্ভুক্ত রয়েছে তা নিশ্চিত করুন:

dependencies {
    // ...
    compileOnly("com.google.android.wearable:wearable:2.9.0")
    implementation("com.google.android.support:wearable:2.9.0")
    implementation("com.google.android.gms:play-services-maps:19.0.0")

    // This dependency is necessary for ambient mode
    implementation("androidx.wear:wear:1.3.0")
}

নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, আপনার বিদ্যমান প্রকল্পে একটি Wear OS মডিউল যুক্ত করার নির্দেশিকাটি দেখুন।

একটি সোয়াইপ-টু-খারিজ অঙ্গভঙ্গি প্রয়োগ করা এবং প্রাথমিক পটভূমির রঙ সেট করা

পরিধানযোগ্য ডিভাইসে মানচিত্র প্রদর্শন করতে আপনি একটি SwipeDismissFrameLayout ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। SwipeDismissFrameLayout ক্লাস ব্যবহার করে, আপনি সোয়াইপ-টু-ডিমিস ইঙ্গিত প্রয়োগ করতে পারেন যা ব্যবহারকারীদের স্ক্রিনের বাম প্রান্ত থেকে সোয়াইপ করে অ্যাপ থেকে প্রস্থান করার উপায় দেয়।

একটি কাস্টম প্রাথমিক পটভূমি রঙ সেট করতে, প্রকৃত মানচিত্র টাইলস লোড না হওয়া পর্যন্ত প্রদর্শনের জন্য রঙ নির্ধারণ করতে map:backgroundColor XML বৈশিষ্ট্য ব্যবহার করুন।

SupportMapFragment এর ধারক হিসাবে আপনার লেআউট সংজ্ঞাতে SwipeDismissFrameLayout এবং backgroundColor উপাদান যোগ করুন:

  <androidx.wear.widget.SwipeDismissFrameLayout
      android:id="@+id/map_container"
      android:layout_width="match_parent"
      android:layout_height="match_parent">
    <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        map:backgroundColor="#fff0b2dd" />
  </androidx.wear.widget.SwipeDismissFrameLayout>

যখন আপনি আপনার কার্যকলাপে SwipeDismissFrameLayout অবজেক্ট পাবেন, তখন একটি কলব্যাক যোগ করুন এবং নীচে দেখানো হিসাবে প্রয়োজনীয় খারিজ ক্রিয়া সম্পাদন করতে কলব্যাকের আচরণ সেট করুন:

কোটলিন

class MainActivity : AppCompatActivity(), OnMapReadyCallback,
                     AmbientModeSupport.AmbientCallbackProvider {


    public override fun onCreate(savedState: Bundle?) {
        super.onCreate(savedState)

        // Set the layout. It only contains a SupportMapFragment and a DismissOverlay.
        setContentView(R.layout.activity_main)

        // Enable ambient support, so the map remains visible in simplified, low-color display
        // when the user is no longer actively using the app but the app is still visible on the
        // watch face.
        val controller = AmbientModeSupport.attach(this)
        Log.d(MainActivity::class.java.simpleName, "Is ambient enabled: " + controller.isAmbient)

        // Retrieve the containers for the root of the layout and the map. Margins will need to be
        // set on them to account for the system window insets.
        val mapFrameLayout = findViewById<SwipeDismissFrameLayout>(R.id.map_container)
        mapFrameLayout.addCallback(object : SwipeDismissFrameLayout.Callback() {
            override fun onDismissed(layout: SwipeDismissFrameLayout) {
                onBackPressed()
            }
        })

        // Obtain the MapFragment and set the async listener to be notified when the map is ready.
        mapFragment = supportFragmentManager
            .findFragmentById(R.id.map) as SupportMapFragment
        mapFragment.getMapAsync(this)
    }

    // ...
}

      

জাভা

public class MainActivity extends AppCompatActivity implements OnMapReadyCallback,
    AmbientModeSupport.AmbientCallbackProvider {


    public void onCreate(Bundle savedState) {
        super.onCreate(savedState);

        // Set the layout. It only contains a SupportMapFragment and a DismissOverlay.
        setContentView(R.layout.activity_main);

        // Enable ambient support, so the map remains visible in simplified, low-color display
        // when the user is no longer actively using the app but the app is still visible on the
        // watch face.
        AmbientModeSupport.AmbientController controller = AmbientModeSupport.attach(this);
        Log.d(MainActivity.class.getSimpleName(), "Is ambient enabled: " + controller.isAmbient());

        // Retrieve the containers for the root of the layout and the map. Margins will need to be
        // set on them to account for the system window insets.
        final SwipeDismissFrameLayout mapFrameLayout = (SwipeDismissFrameLayout) findViewById(
            R.id.map_container);
        mapFrameLayout.addCallback(new SwipeDismissFrameLayout.Callback() {
            @Override
            public void onDismissed(SwipeDismissFrameLayout layout) {
                onBackPressed();
            }
        });

        // Obtain the MapFragment and set the async listener to be notified when the map is ready.
        mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    // ...
}

      

একটি মানচিত্র যোগ করা হচ্ছে

GoogleMap অবজেক্টে একটি হ্যান্ডেল পেতে, যথারীতি onMapReady(GoogleMap) কলব্যাক পদ্ধতিটি ব্যবহার করুন৷ মানচিত্র ব্যবহার করার জন্য প্রস্তুত হলে কলব্যাক ট্রিগার হয়। কলব্যাক পদ্ধতিতে, আপনি মানচিত্রে মার্কার বা পলিলাইন যোগ করতে পারেন, শ্রোতা যোগ করতে পারেন বা ক্যামেরা সরাতে পারেন। নীচের উদাহরণটি সিডনি অপেরা হাউসের কাছে একটি মার্কার যুক্ত করেছে:

কোটলিন

private val sydney = LatLng(-33.85704, 151.21522)

override fun onMapReady(googleMap: GoogleMap) {
    // Add a marker with a title that is shown in its info window.
    googleMap.addMarker(
        MarkerOptions().position(sydney)
            .title("Sydney Opera House")
    )

    // Move the camera to show the marker.
    googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney, 10f))
}

      

জাভা

private static final LatLng SYDNEY = new LatLng(-33.85704, 151.21522);

@Override
public void onMapReady(@NonNull GoogleMap googleMap) {
    // Add a marker with a title that is shown in its info window.
    googleMap.addMarker(new MarkerOptions().position(SYDNEY)
        .title("Sydney Opera House"));

    // Move the camera to show the marker.
    googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(SYDNEY, 10));
}

      

অ্যাম্বিয়েন্ট মোড সক্ষম করা হচ্ছে

অ্যান্ড্রয়েডের জন্য মানচিত্র SDK পরিধানযোগ্য অ্যাপগুলির জন্য পরিবেষ্টিত মোড সমর্থন করে৷ অ্যাম্বিয়েন্ট মোড সমর্থন করে এমন অ্যাপগুলিকে কখনও কখনও অ্যাপ্লিকেশানগুলিতে সর্বদা কল করা হয়। অ্যাম্বিয়েন্ট মোড সক্রিয় হয় যখন ব্যবহারকারী আর সক্রিয়ভাবে অ্যাপটি ব্যবহার করেন না এবং অ্যাপটিকে পরিধানযোগ্য ডিভাইসে দৃশ্যমান থাকার অনুমতি দেয়।

অ্যান্ড্রয়েডের জন্য মানচিত্র SDK পরিবেষ্টিত মোডে ব্যবহারের জন্য মানচিত্রের একটি সরলীকৃত, নিম্ন-রঙের রেন্ডারিং প্রদান করে এবং যখন ডিভাইসটি ইন্টারেক্টিভ থেকে পরিবেষ্টিত মোডে অদলবদল হয় তখন মানচিত্র শৈলী স্বয়ংক্রিয়ভাবে সামঞ্জস্য করে। সমস্ত মার্কার, অবজেক্ট এবং UI নিয়ন্ত্রণ পরিবেষ্টিত মোডে অদৃশ্য হয়ে যায়। এটি আপনার অ্যাপের পাওয়ার খরচ কমায় এবং ঘড়ির মুখের মতো অন্যান্য পরিবেষ্টিত অ্যাপগুলির সাথে সামঞ্জস্যপূর্ণ চেহারা এবং অনুভূতি নিশ্চিত করে।

আপনার অ্যাপটি মানচিত্রের পরিবেষ্টিত মোড ব্যবহার করছে তা নিশ্চিত করতে নিম্নলিখিত পদক্ষেপগুলি নিন:

  1. Android 6.0 (API 23) বা উচ্চতর প্ল্যাটফর্ম অন্তর্ভুক্ত করতে আপনার Android SDK আপডেট করুন, যা API গুলি প্রদান করে যা কার্যকলাপগুলিকে পরিবেষ্টিত মোডে যেতে দেয়৷ কিভাবে আপনার SDK আপডেট করবেন সে সম্পর্কে তথ্যের জন্য, SDK প্যাকেজ যোগ করার বিষয়ে Android ডকুমেন্টেশন দেখুন।
  2. অ্যাপ ম্যানিফেস্টে targetSdkVersion 23 বা উচ্চতর সেট করে নিশ্চিত করুন যে আপনার প্রোজেক্টটি Android 6.0 বা উচ্চতরকে লক্ষ্য করে।
  3. আপনার অ্যাপের build.gradle.kts ফাইলে পরিধানযোগ্য নির্ভরতা যোগ করুন। এই পৃষ্ঠায় নমুনা দেখুন।
  4. পরিধানযোগ্য অ্যাপ ম্যানিফেস্টে পরিধানযোগ্য শেয়ার্ড লাইব্রেরি এন্ট্রি যোগ করুন, যেমন আপনার অ্যাপকে দৃশ্যমান রাখার বিষয়ে Android প্রশিক্ষণ ক্লাসে বর্ণনা করা হয়েছে।
  5. হ্যান্ডহেল্ড এবং পরিধানযোগ্য অ্যাপ ম্যানিফেস্টে WAKE_LOCK অনুমতি যোগ করুন, যেমন আপনার অ্যাপটিকে দৃশ্যমান রাখার বিষয়ে Android প্রশিক্ষণ ক্লাসে বর্ণনা করা হয়েছে।
  6. আপনার কার্যকলাপের onCreate() পদ্ধতিতে, AmbientModeSupport.attach() পদ্ধতিতে কল করুন। এটি অপারেটিং সিস্টেমকে বলে যে অ্যাপ্লিকেশনটি সর্বদা চালু থাকে, যাতে ডিভাইসটি বন্ধ হয়ে গেলে এটি ঘড়ির মুখে ফিরে না গিয়ে পরিবেষ্টিত মোডে প্রবেশ করা উচিত।
  7. আপনার কার্যকলাপে AmbientModeSupport.AmbientCallbackProvider ইন্টারফেস প্রয়োগ করুন যাতে এটি পরিবেষ্টিত মোড অবস্থার পরিবর্তনগুলি পেতে পারে।
  8. পরিবেষ্টিত মোড সমর্থন করার জন্য আপনার মানচিত্র সেট করুন। আপনি কার্যকলাপের XML লেআউট ফাইলে অ্যাট্রিবিউট map:ambientEnabled="true" সেট করে এটি করতে পারেন, অথবা GoogleMapOptions.ambientEnabled(true) সেট করে প্রোগ্রাম্যাটিকভাবে এটি করতে পারেন। এই সেটিং এপিআইকে জানায় যে এটিকে অবশ্যই পরিবেষ্টিত মোডে ব্যবহারের জন্য প্রয়োজনীয় মানচিত্র টাইলস প্রি-লোড করতে হবে।
  9. যখন কার্যকলাপ পরিবেষ্টিত মোডে স্যুইচ করে, সিস্টেমটি আপনার প্রদান করা AmbientCallbackonEnterAmbient() পদ্ধতিতে কল করে। onEnterAmbient() ওভাররাইড করুন এবং SupportMapFragment.onEnterAmbient(ambientDetails) অথবা MapView.onEnterAmbient(ambientDetails) কল করুন। API একটি নন-ইন্টারেক্টিভ এবং মানচিত্রের কম রঙের রেন্ডারিং-এ অদলবদল করে।
  10. একইভাবে, onExitAmbient()SupportMapFragment.onExitAmbient() অথবা MapView.onExitAmbient() কল করুন। API ম্যাপের স্বাভাবিক রেন্ডারিং-এ অদলবদল করে।

নিম্নলিখিত কোড নমুনা কার্যকলাপে পরিবেষ্টিত মোড সক্ষম করে:

কোটলিন

class AmbientActivity : AppCompatActivity(), AmbientModeSupport.AmbientCallbackProvider {

    private lateinit var mapFragment: SupportMapFragment

    public override fun onCreate(savedState: Bundle?) {
        super.onCreate(savedState)

        // Set the layout. It only contains a SupportMapFragment and a DismissOverlay.
        setContentView(R.layout.activity_main)

        // Enable ambient support, so the map remains visible in simplified, low-color display
        // when the user is no longer actively using the app but the app is still visible on the
        // watch face.
        val controller = AmbientModeSupport.attach(this)
        Log.d(AmbientActivity::class.java.simpleName, "Is ambient enabled: " + controller.isAmbient)

        // Obtain the MapFragment and set the async listener to be notified when the map is ready.
        mapFragment = supportFragmentManager
            .findFragmentById(R.id.map) as SupportMapFragment
    }

    override fun getAmbientCallback(): AmbientModeSupport.AmbientCallback {
        return object : AmbientModeSupport.AmbientCallback() {
            /**
             * Starts ambient mode on the map.
             * The API swaps to a non-interactive and low-color rendering of the map when the user is no
             * longer actively using the app.
             */
            override fun onEnterAmbient(ambientDetails: Bundle) {
                super.onEnterAmbient(ambientDetails)
                mapFragment.onEnterAmbient(ambientDetails)
            }

            /**
             * Exits ambient mode on the map.
             * The API swaps to the normal rendering of the map when the user starts actively using the app.
             */
            override fun onExitAmbient() {
                super.onExitAmbient()
                mapFragment.onExitAmbient()
            }
        }
    }
}

      

জাভা

public class AmbientActivity extends AppCompatActivity implements
    AmbientModeSupport.AmbientCallbackProvider {

    private SupportMapFragment mapFragment;

    public void onCreate(Bundle savedState) {
        super.onCreate(savedState);

        // Set the layout. It only contains a SupportMapFragment and a DismissOverlay.
        setContentView(R.layout.activity_main);

        // Enable ambient support, so the map remains visible in simplified, low-color display
        // when the user is no longer actively using the app but the app is still visible on the
        // watch face.
        AmbientModeSupport.AmbientController controller = AmbientModeSupport.attach(this);
        Log.d(AmbientActivity.class.getSimpleName(), "Is ambient enabled: " + controller.isAmbient());

        // Obtain the MapFragment and set the async listener to be notified when the map is ready.
        mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    }

    @Override
    public AmbientCallback getAmbientCallback() {
        return new AmbientCallback() {
            /**
             * Starts ambient mode on the map.
             * The API swaps to a non-interactive and low-color rendering of the map when the user is no
             * longer actively using the app.
             */
            @Override
            public void onEnterAmbient(Bundle ambientDetails) {
                super.onEnterAmbient(ambientDetails);
                mapFragment.onEnterAmbient(ambientDetails);
            }

            /**
             * Exits ambient mode on the map.
             * The API swaps to the normal rendering of the map when the user starts actively using the app.
             */
            @Override
            public void onExitAmbient() {
                super.onExitAmbient();
                mapFragment.onExitAmbient();
            }
        };
    }
}

      

অ্যাপটি অ্যাম্বিয়েন্ট মোডে থাকা অবস্থায় আপনি স্ক্রিন আপডেট করতে পারবেন। বিষয়বস্তু আপডেট করা এবং সাধারণভাবে পরিবেষ্টিত মোড সম্পর্কে আরও বিশদ বিবরণের জন্য, আপনার অ্যাপকে দৃশ্যমান রাখার বিষয়ে Android প্রশিক্ষণ ক্লাস দেখুন।

Wear OS-এ রাস্তার দৃশ্য ব্যবহার করা

পরিধানযোগ্য ডিভাইসে রাস্তার দৃশ্য সম্পূর্ণরূপে সমর্থিত।

একটি রাস্তার দৃশ্য প্যানোরামা দেখার সময় ব্যবহারকারীদের অ্যাপ থেকে প্রস্থান করার অনুমতি দিতে, একটি দীর্ঘ-ক্লিক অঙ্গভঙ্গি শুনতে StreetViewPanorama.OnStreetViewPanoramaLongClickListener ইন্টারফেসটি ব্যবহার করুন৷ যখন একজন ব্যবহারকারী রাস্তার দৃশ্য চিত্রের কোথাও দীর্ঘ-ক্লিক করেন, তখন আপনি একটি onStreetViewPanoramaLongClick(StreetViewPanoramaOrientation) ইভেন্ট পাবেন। একটি প্রস্থান বোতাম প্রদর্শন করতে DismissOverlayView.show() এ কল করুন।

নমুনা কোড

GitHub- এ একটি নমুনা অ্যাপ পাওয়া যায়, যা আপনি আপনার অ্যাপের শুরুর পয়েন্ট হিসেবে ব্যবহার করতে পারেন। নমুনা আপনাকে দেখায় কিভাবে Wear OS-এ একটি মৌলিক Google Map সেট আপ করতে হয়।

Wear OS-এ Maps API-এ সমর্থিত কার্যকারিতা

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

কার্যকারিতা
সম্পূর্ণ ইন্টারেক্টিভ মোড এবং লাইট মোড

আপনি সম্পূর্ণ ইন্টারেক্টিভ মোডে বা লাইট মোডে Android এর জন্য Maps SDK ব্যবহার করতে পারেন৷ আপনি যদি পরিধানযোগ্য ডিভাইসে পারফরম্যান্স অপ্টিমাইজ করতে চান তাহলে লাইট মোড বিবেচনা করুন এবং আপনার অ্যাপটিকে অঙ্গভঙ্গি, বা ম্যাপ প্যানিং এবং জুম করার মতো ইন্টারঅ্যাকশন সমর্থন করার প্রয়োজন নেই৷

লাইট মোডে, ব্যবহারকারী যখন ম্যাপে ট্যাপ করে তখন Google Maps মোবাইল অ্যাপ চালু করার অভিপ্রায় অক্ষম থাকে এবং পরিধানযোগ্য ডিভাইসে চালু করা যায় না।

লাইট মোড এবং সম্পূর্ণ ইন্টারেক্টিভ মোডের মধ্যে পার্থক্যের সম্পূর্ণ তালিকার জন্য, লাইট মোড ডকুমেন্টেশন দেখুন।

মানচিত্র টুলবার মানচিত্র টুলবার অক্ষম করা হয়েছে এবং পরিধানযোগ্য ডিভাইসে সক্ষম করা যাবে না।
UI নিয়ন্ত্রণ পরিধানযোগ্য ডিভাইসগুলিতে UI নিয়ন্ত্রণগুলি ডিফল্টরূপে অক্ষম করা হয়৷ এর মধ্যে রয়েছে জুম, কম্পাস এবং আমার অবস্থান নিয়ন্ত্রণ। আপনি যথারীতি UiSettings ক্লাস ব্যবহার করে তাদের সক্ষম করতে পারেন।
অঙ্গভঙ্গি একক-স্পর্শ অঙ্গভঙ্গি প্রত্যাশিত হিসাবে কাজ করে। উদাহরণগুলি হল মানচিত্রটি প্যান করতে স্পর্শ করুন এবং টেনে আনুন, জুম ইন করতে ডবল-ট্যাপ করুন এবং জুম আউট করতে দুই আঙুলে ট্যাপ করুন৷ ব্যবহারকারীর ডিভাইসের উপর নির্ভর করে মাল্টি-টাচ অঙ্গভঙ্গির জন্য সমর্থন পরিবর্তিত হয়। মাল্টি-টাচ অঙ্গভঙ্গির উদাহরণগুলির মধ্যে রয়েছে মানচিত্রটি কাত করতে দুই-আঙ্গুলের পুশ, জুম করতে চিমটি করা এবং দুই-আঙ্গুলের ঘূর্ণন।
অন্দর মানচিত্র এবং ভবন পরিধানযোগ্য ডিভাইসে অভ্যন্তরীণ মানচিত্রগুলি ডিফল্টরূপে অক্ষম করা হয়৷ আপনি GoogleMap.setIndoorEnabled(true) কল করে তাদের সক্ষম করতে পারেন। অভ্যন্তরীণ মানচিত্র সক্ষম করা থাকলে, মানচিত্রটি ডিফল্ট তল স্তর দেখাবে৷ লেভেল পিকার UI উপাদান পরিধানযোগ্য ডিভাইসে সমর্থিত নয়।
টালি ওভারলে পরিধানযোগ্য ডিভাইসে টাইল ওভারলে সমর্থিত নয়

Wear OS-এ Maps API-এর সাথে ডেভেলপ করার জন্য সর্বোত্তম অনুশীলন

কীভাবে আপনার অ্যাপে সেরা ব্যবহারকারীর অভিজ্ঞতা প্রদান করবেন:

  • মানচিত্রটি পর্দার একটি বড় অনুপাত দখল করা উচিত। পরিধানযোগ্য ডিভাইসের ছোট ফর্ম ফ্যাক্টরে মানচিত্রের ব্যবহারযোগ্যতা অপ্টিমাইজ করার জন্য এটি প্রয়োজনীয়।
  • আপনার অ্যাপের ব্যবহারকারীর অভিজ্ঞতা ডিজাইন করার সময়, পরিধানযোগ্য ডিভাইসের কম ব্যাটারি পাওয়ার বিষয়টি বিবেচনা করুন। পর্দা সক্রিয় রাখা এবং মানচিত্র দৃশ্যমান ব্যাটারি কর্মক্ষমতা প্রভাবিত করবে.
,
পরিধানযোগ্য ডিভাইসে একটি মানচিত্র

Android এর জন্য Maps SDK ব্যবহার করে, আপনি একটি মানচিত্র-ভিত্তিক পরিধানযোগ্য অ্যাপ তৈরি করতে পারেন যা সরাসরি Wear OS by Google ডিভাইসে চলে। আপনার অ্যাপের ব্যবহারকারীরা তাদের কব্জির দিকে তাকিয়ে মানচিত্রে তাদের অবস্থান দেখতে পারে। তারা একটি রুটে তাদের অবস্থান প্লট করতে পারে, উদাহরণস্বরূপ, তারপর বিশদ বিবরণের জন্য জুম ইন করুন, বা আপনার অ্যাপ দ্বারা সরবরাহ করা তথ্য উইন্ডো দেখতে একটি মার্কার ট্যাপ করুন৷

এই পৃষ্ঠাটি পরিধানের ডিভাইসে উপলব্ধ API কার্যকারিতা বর্ণনা করে এবং আপনাকে আপনার অ্যাপ তৈরি করা শুরু করতে সহায়তা করে।

Wear OS-এ শুরু করা হচ্ছে

অ্যান্ড্রয়েডের জন্য মানচিত্র SDK দিয়ে একটি পরিধানযোগ্য অ্যাপ তৈরি করা মৌলিকভাবে অন্য যেকোনো অ্যান্ড্রয়েড ডিভাইসের জন্য একটি Google মানচিত্র অ্যাপ তৈরি করার মতো। পার্থক্যটি পরিধানযোগ্য ডিভাইসের ছোট ফর্ম ফ্যাক্টরের জন্য, অ্যাপের ব্যবহারযোগ্যতা এবং কর্মক্ষমতা অপ্টিমাইজ করার জন্য আপনার ডিজাইনের মধ্যে রয়েছে।

Android স্টুডিও Wear OS ডেভেলপমেন্টের জন্য প্রস্তাবিত টুল, কারণ এটি প্রোজেক্ট সেটআপ, লাইব্রেরি অন্তর্ভুক্তি এবং প্যাকেজিং সুবিধা প্রদান করে।

পরিধানযোগ্য অ্যাপ ডিজাইনে সাধারণ সাহায্যের জন্য, Wear OS ডিজাইন নির্দেশিকা পড়ুন। আপনার প্রথম পরিধানযোগ্য অ্যাপ তৈরিতে সহায়তার জন্য, পরিধানযোগ্য অ্যাপ তৈরির নির্দেশিকা দেখুন।

Wear OS-এ আপনার প্রথম ম্যাপ অ্যাপ তৈরি করা

এই দ্রুত নির্দেশিকাটি অনুমান করে যে আপনি Android এর জন্য Maps SDK-এর সাথে পরিচিত, আপনি আপনার অ্যাপে একটি পরিধানযোগ্য মডিউল তৈরি করতে Wear OS গাইডগুলি অনুসরণ করেছেন এবং আপনি এখন পরিধানযোগ্য মডিউলে একটি মানচিত্র যুক্ত করতে চান৷

আপনার পরিধান মডিউল জন্য নির্ভরতা যোগ করা

আপনার অ্যাপের Wear OS মডিউলের build.gradle.kts ফাইলে নিম্নলিখিত নির্ভরতাগুলি অন্তর্ভুক্ত রয়েছে তা নিশ্চিত করুন:

dependencies {
    // ...
    compileOnly("com.google.android.wearable:wearable:2.9.0")
    implementation("com.google.android.support:wearable:2.9.0")
    implementation("com.google.android.gms:play-services-maps:19.0.0")

    // This dependency is necessary for ambient mode
    implementation("androidx.wear:wear:1.3.0")
}

নির্ভরতা সম্পর্কে আরও তথ্যের জন্য, আপনার বিদ্যমান প্রকল্পে একটি Wear OS মডিউল যুক্ত করার নির্দেশিকাটি দেখুন।

একটি সোয়াইপ-টু-খারিজ অঙ্গভঙ্গি প্রয়োগ করা এবং প্রাথমিক পটভূমির রঙ সেট করা

পরিধানযোগ্য ডিভাইসে মানচিত্র প্রদর্শন করতে আপনি একটি SwipeDismissFrameLayout ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। SwipeDismissFrameLayout ক্লাস ব্যবহার করে, আপনি সোয়াইপ-টু-ডিমিস ইঙ্গিত প্রয়োগ করতে পারেন যা ব্যবহারকারীদের স্ক্রিনের বাম প্রান্ত থেকে সোয়াইপ করে অ্যাপ থেকে প্রস্থান করার উপায় দেয়।

একটি কাস্টম প্রাথমিক পটভূমি রঙ সেট করতে, প্রকৃত মানচিত্র টাইলস লোড না হওয়া পর্যন্ত প্রদর্শনের জন্য রঙ নির্ধারণ করতে map:backgroundColor XML বৈশিষ্ট্য ব্যবহার করুন।

SupportMapFragment এর ধারক হিসাবে আপনার লেআউট সংজ্ঞাতে SwipeDismissFrameLayout এবং backgroundColor উপাদান যোগ করুন:

  <androidx.wear.widget.SwipeDismissFrameLayout
      android:id="@+id/map_container"
      android:layout_width="match_parent"
      android:layout_height="match_parent">
    <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        map:backgroundColor="#fff0b2dd" />
  </androidx.wear.widget.SwipeDismissFrameLayout>

যখন আপনি আপনার কার্যকলাপে SwipeDismissFrameLayout অবজেক্ট পাবেন, তখন একটি কলব্যাক যোগ করুন এবং নীচে দেখানো হিসাবে প্রয়োজনীয় খারিজ ক্রিয়া সম্পাদন করতে কলব্যাকের আচরণ সেট করুন:

কোটলিন

class MainActivity : AppCompatActivity(), OnMapReadyCallback,
                     AmbientModeSupport.AmbientCallbackProvider {


    public override fun onCreate(savedState: Bundle?) {
        super.onCreate(savedState)

        // Set the layout. It only contains a SupportMapFragment and a DismissOverlay.
        setContentView(R.layout.activity_main)

        // Enable ambient support, so the map remains visible in simplified, low-color display
        // when the user is no longer actively using the app but the app is still visible on the
        // watch face.
        val controller = AmbientModeSupport.attach(this)
        Log.d(MainActivity::class.java.simpleName, "Is ambient enabled: " + controller.isAmbient)

        // Retrieve the containers for the root of the layout and the map. Margins will need to be
        // set on them to account for the system window insets.
        val mapFrameLayout = findViewById<SwipeDismissFrameLayout>(R.id.map_container)
        mapFrameLayout.addCallback(object : SwipeDismissFrameLayout.Callback() {
            override fun onDismissed(layout: SwipeDismissFrameLayout) {
                onBackPressed()
            }
        })

        // Obtain the MapFragment and set the async listener to be notified when the map is ready.
        mapFragment = supportFragmentManager
            .findFragmentById(R.id.map) as SupportMapFragment
        mapFragment.getMapAsync(this)
    }

    // ...
}

      

জাভা

public class MainActivity extends AppCompatActivity implements OnMapReadyCallback,
    AmbientModeSupport.AmbientCallbackProvider {


    public void onCreate(Bundle savedState) {
        super.onCreate(savedState);

        // Set the layout. It only contains a SupportMapFragment and a DismissOverlay.
        setContentView(R.layout.activity_main);

        // Enable ambient support, so the map remains visible in simplified, low-color display
        // when the user is no longer actively using the app but the app is still visible on the
        // watch face.
        AmbientModeSupport.AmbientController controller = AmbientModeSupport.attach(this);
        Log.d(MainActivity.class.getSimpleName(), "Is ambient enabled: " + controller.isAmbient());

        // Retrieve the containers for the root of the layout and the map. Margins will need to be
        // set on them to account for the system window insets.
        final SwipeDismissFrameLayout mapFrameLayout = (SwipeDismissFrameLayout) findViewById(
            R.id.map_container);
        mapFrameLayout.addCallback(new SwipeDismissFrameLayout.Callback() {
            @Override
            public void onDismissed(SwipeDismissFrameLayout layout) {
                onBackPressed();
            }
        });

        // Obtain the MapFragment and set the async listener to be notified when the map is ready.
        mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    // ...
}

      

একটি মানচিত্র যোগ করা হচ্ছে

GoogleMap অবজেক্টে একটি হ্যান্ডেল পেতে, যথারীতি onMapReady(GoogleMap) কলব্যাক পদ্ধতিটি ব্যবহার করুন৷ মানচিত্র ব্যবহার করার জন্য প্রস্তুত হলে কলব্যাক ট্রিগার হয়। কলব্যাক পদ্ধতিতে, আপনি মানচিত্রে মার্কার বা পলিলাইন যোগ করতে পারেন, শ্রোতা যোগ করতে পারেন বা ক্যামেরা সরাতে পারেন। নীচের উদাহরণটি সিডনি অপেরা হাউসের কাছে একটি মার্কার যুক্ত করেছে:

কোটলিন

private val sydney = LatLng(-33.85704, 151.21522)

override fun onMapReady(googleMap: GoogleMap) {
    // Add a marker with a title that is shown in its info window.
    googleMap.addMarker(
        MarkerOptions().position(sydney)
            .title("Sydney Opera House")
    )

    // Move the camera to show the marker.
    googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney, 10f))
}

      

জাভা

private static final LatLng SYDNEY = new LatLng(-33.85704, 151.21522);

@Override
public void onMapReady(@NonNull GoogleMap googleMap) {
    // Add a marker with a title that is shown in its info window.
    googleMap.addMarker(new MarkerOptions().position(SYDNEY)
        .title("Sydney Opera House"));

    // Move the camera to show the marker.
    googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(SYDNEY, 10));
}

      

অ্যাম্বিয়েন্ট মোড সক্ষম করা হচ্ছে

অ্যান্ড্রয়েডের জন্য মানচিত্র SDK পরিধানযোগ্য অ্যাপগুলির জন্য পরিবেষ্টিত মোড সমর্থন করে৷ অ্যাম্বিয়েন্ট মোড সমর্থন করে এমন অ্যাপগুলিকে কখনও কখনও অ্যাপ্লিকেশানগুলিতে সর্বদা কল করা হয়। অ্যাম্বিয়েন্ট মোড সক্রিয় হয় যখন ব্যবহারকারী আর সক্রিয়ভাবে অ্যাপটি ব্যবহার করেন না এবং অ্যাপটিকে পরিধানযোগ্য ডিভাইসে দৃশ্যমান থাকার অনুমতি দেয়।

অ্যান্ড্রয়েডের জন্য মানচিত্র SDK পরিবেষ্টিত মোডে ব্যবহারের জন্য মানচিত্রের একটি সরলীকৃত, নিম্ন-রঙের রেন্ডারিং প্রদান করে এবং যখন ডিভাইসটি ইন্টারেক্টিভ থেকে পরিবেষ্টিত মোডে অদলবদল হয় তখন মানচিত্র শৈলী স্বয়ংক্রিয়ভাবে সামঞ্জস্য করে। সমস্ত মার্কার, অবজেক্ট এবং UI নিয়ন্ত্রণ পরিবেষ্টিত মোডে অদৃশ্য হয়ে যায়। এটি আপনার অ্যাপের পাওয়ার খরচ কমায় এবং ঘড়ির মুখের মতো অন্যান্য পরিবেষ্টিত অ্যাপগুলির সাথে সামঞ্জস্যপূর্ণ চেহারা এবং অনুভূতি নিশ্চিত করে।

আপনার অ্যাপটি মানচিত্রের পরিবেষ্টিত মোড ব্যবহার করছে তা নিশ্চিত করতে নিম্নলিখিত পদক্ষেপগুলি নিন:

  1. Android 6.0 (API 23) বা উচ্চতর প্ল্যাটফর্ম অন্তর্ভুক্ত করতে আপনার Android SDK আপডেট করুন, যা API গুলি প্রদান করে যা কার্যকলাপগুলিকে পরিবেষ্টিত মোডে যেতে দেয়৷ কিভাবে আপনার SDK আপডেট করবেন সে সম্পর্কে তথ্যের জন্য, SDK প্যাকেজ যোগ করার বিষয়ে Android ডকুমেন্টেশন দেখুন।
  2. অ্যাপ ম্যানিফেস্টে targetSdkVersion 23 বা উচ্চতর সেট করে নিশ্চিত করুন যে আপনার প্রোজেক্টটি Android 6.0 বা উচ্চতরকে লক্ষ্য করে।
  3. আপনার অ্যাপের build.gradle.kts ফাইলে পরিধানযোগ্য নির্ভরতা যোগ করুন। এই পৃষ্ঠায় নমুনা দেখুন।
  4. পরিধানযোগ্য অ্যাপ ম্যানিফেস্টে পরিধানযোগ্য শেয়ার্ড লাইব্রেরি এন্ট্রি যোগ করুন, যেমন আপনার অ্যাপকে দৃশ্যমান রাখার বিষয়ে Android প্রশিক্ষণ ক্লাসে বর্ণনা করা হয়েছে।
  5. হ্যান্ডহেল্ড এবং পরিধানযোগ্য অ্যাপ ম্যানিফেস্টে WAKE_LOCK অনুমতি যোগ করুন, যেমন আপনার অ্যাপটিকে দৃশ্যমান রাখার বিষয়ে Android প্রশিক্ষণ ক্লাসে বর্ণনা করা হয়েছে।
  6. আপনার কার্যকলাপের onCreate() পদ্ধতিতে, AmbientModeSupport.attach() পদ্ধতিতে কল করুন। এটি অপারেটিং সিস্টেমকে বলে যে অ্যাপ্লিকেশনটি সর্বদা চালু থাকে, যাতে ডিভাইসটি বন্ধ হয়ে গেলে এটি ঘড়ির মুখে ফিরে না গিয়ে পরিবেষ্টিত মোডে প্রবেশ করা উচিত।
  7. আপনার কার্যকলাপে AmbientModeSupport.AmbientCallbackProvider ইন্টারফেস প্রয়োগ করুন যাতে এটি পরিবেষ্টিত মোড অবস্থার পরিবর্তনগুলি পেতে পারে।
  8. পরিবেষ্টিত মোড সমর্থন করার জন্য আপনার মানচিত্র সেট করুন। আপনি কার্যকলাপের XML লেআউট ফাইলে অ্যাট্রিবিউট map:ambientEnabled="true" সেট করে এটি করতে পারেন, অথবা GoogleMapOptions.ambientEnabled(true) সেট করে প্রোগ্রাম্যাটিকভাবে এটি করতে পারেন। এই সেটিং এপিআইকে জানায় যে এটিকে অবশ্যই পরিবেষ্টিত মোডে ব্যবহারের জন্য প্রয়োজনীয় মানচিত্র টাইলস প্রি-লোড করতে হবে।
  9. যখন কার্যকলাপ পরিবেষ্টিত মোডে স্যুইচ করে, সিস্টেমটি আপনার প্রদান করা AmbientCallbackonEnterAmbient() পদ্ধতিতে কল করে। onEnterAmbient() ওভাররাইড করুন এবং SupportMapFragment.onEnterAmbient(ambientDetails) অথবা MapView.onEnterAmbient(ambientDetails) কল করুন। API একটি নন-ইন্টারেক্টিভ এবং মানচিত্রের কম রঙের রেন্ডারিং-এ অদলবদল করে।
  10. একইভাবে, onExitAmbient()SupportMapFragment.onExitAmbient() অথবা MapView.onExitAmbient() কল করুন। API ম্যাপের স্বাভাবিক রেন্ডারিং-এ অদলবদল করে।

নিম্নলিখিত কোড নমুনা কার্যকলাপে পরিবেষ্টিত মোড সক্ষম করে:

কোটলিন

class AmbientActivity : AppCompatActivity(), AmbientModeSupport.AmbientCallbackProvider {

    private lateinit var mapFragment: SupportMapFragment

    public override fun onCreate(savedState: Bundle?) {
        super.onCreate(savedState)

        // Set the layout. It only contains a SupportMapFragment and a DismissOverlay.
        setContentView(R.layout.activity_main)

        // Enable ambient support, so the map remains visible in simplified, low-color display
        // when the user is no longer actively using the app but the app is still visible on the
        // watch face.
        val controller = AmbientModeSupport.attach(this)
        Log.d(AmbientActivity::class.java.simpleName, "Is ambient enabled: " + controller.isAmbient)

        // Obtain the MapFragment and set the async listener to be notified when the map is ready.
        mapFragment = supportFragmentManager
            .findFragmentById(R.id.map) as SupportMapFragment
    }

    override fun getAmbientCallback(): AmbientModeSupport.AmbientCallback {
        return object : AmbientModeSupport.AmbientCallback() {
            /**
             * Starts ambient mode on the map.
             * The API swaps to a non-interactive and low-color rendering of the map when the user is no
             * longer actively using the app.
             */
            override fun onEnterAmbient(ambientDetails: Bundle) {
                super.onEnterAmbient(ambientDetails)
                mapFragment.onEnterAmbient(ambientDetails)
            }

            /**
             * Exits ambient mode on the map.
             * The API swaps to the normal rendering of the map when the user starts actively using the app.
             */
            override fun onExitAmbient() {
                super.onExitAmbient()
                mapFragment.onExitAmbient()
            }
        }
    }
}

      

জাভা

public class AmbientActivity extends AppCompatActivity implements
    AmbientModeSupport.AmbientCallbackProvider {

    private SupportMapFragment mapFragment;

    public void onCreate(Bundle savedState) {
        super.onCreate(savedState);

        // Set the layout. It only contains a SupportMapFragment and a DismissOverlay.
        setContentView(R.layout.activity_main);

        // Enable ambient support, so the map remains visible in simplified, low-color display
        // when the user is no longer actively using the app but the app is still visible on the
        // watch face.
        AmbientModeSupport.AmbientController controller = AmbientModeSupport.attach(this);
        Log.d(AmbientActivity.class.getSimpleName(), "Is ambient enabled: " + controller.isAmbient());

        // Obtain the MapFragment and set the async listener to be notified when the map is ready.
        mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    }

    @Override
    public AmbientCallback getAmbientCallback() {
        return new AmbientCallback() {
            /**
             * Starts ambient mode on the map.
             * The API swaps to a non-interactive and low-color rendering of the map when the user is no
             * longer actively using the app.
             */
            @Override
            public void onEnterAmbient(Bundle ambientDetails) {
                super.onEnterAmbient(ambientDetails);
                mapFragment.onEnterAmbient(ambientDetails);
            }

            /**
             * Exits ambient mode on the map.
             * The API swaps to the normal rendering of the map when the user starts actively using the app.
             */
            @Override
            public void onExitAmbient() {
                super.onExitAmbient();
                mapFragment.onExitAmbient();
            }
        };
    }
}

      

অ্যাপটি অ্যাম্বিয়েন্ট মোডে থাকা অবস্থায় আপনি স্ক্রিন আপডেট করতে পারবেন। বিষয়বস্তু আপডেট করা এবং সাধারণভাবে পরিবেষ্টিত মোড সম্পর্কে আরও বিশদ বিবরণের জন্য, আপনার অ্যাপকে দৃশ্যমান রাখার বিষয়ে Android প্রশিক্ষণ ক্লাস দেখুন।

Wear OS-এ রাস্তার দৃশ্য ব্যবহার করা

পরিধানযোগ্য ডিভাইসে রাস্তার দৃশ্য সম্পূর্ণরূপে সমর্থিত।

একটি রাস্তার দৃশ্য প্যানোরামা দেখার সময় ব্যবহারকারীদের অ্যাপ থেকে প্রস্থান করার অনুমতি দিতে, একটি দীর্ঘ-ক্লিক অঙ্গভঙ্গি শুনতে StreetViewPanorama.OnStreetViewPanoramaLongClickListener ইন্টারফেসটি ব্যবহার করুন৷ যখন একজন ব্যবহারকারী রাস্তার দৃশ্য চিত্রের কোথাও দীর্ঘ-ক্লিক করেন, তখন আপনি একটি onStreetViewPanoramaLongClick(StreetViewPanoramaOrientation) ইভেন্ট পাবেন। একটি প্রস্থান বোতাম প্রদর্শন করতে DismissOverlayView.show() এ কল করুন।

নমুনা কোড

GitHub- এ একটি নমুনা অ্যাপ পাওয়া যায়, যা আপনি আপনার অ্যাপের শুরুর পয়েন্ট হিসেবে ব্যবহার করতে পারেন। নমুনা আপনাকে দেখায় কিভাবে Wear OS-এ একটি মৌলিক Google Map সেট আপ করতে হয়।

Wear OS-এ Maps API-এ সমর্থিত কার্যকারিতা

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

কার্যকারিতা
সম্পূর্ণ ইন্টারেক্টিভ মোড এবং লাইট মোড

আপনি সম্পূর্ণ ইন্টারেক্টিভ মোডে বা লাইট মোডে Android এর জন্য Maps SDK ব্যবহার করতে পারেন৷ আপনি যদি পরিধানযোগ্য ডিভাইসে পারফরম্যান্স অপ্টিমাইজ করতে চান তাহলে লাইট মোড বিবেচনা করুন এবং আপনার অ্যাপটিকে অঙ্গভঙ্গি, বা ম্যাপ প্যানিং এবং জুম করার মতো ইন্টারঅ্যাকশন সমর্থন করার প্রয়োজন নেই৷

লাইট মোডে, ব্যবহারকারী যখন ম্যাপে ট্যাপ করে তখন Google Maps মোবাইল অ্যাপ চালু করার অভিপ্রায় অক্ষম থাকে এবং পরিধানযোগ্য ডিভাইসে চালু করা যায় না।

লাইট মোড এবং সম্পূর্ণ ইন্টারেক্টিভ মোডের মধ্যে পার্থক্যের সম্পূর্ণ তালিকার জন্য, লাইট মোড ডকুমেন্টেশন দেখুন।

মানচিত্র টুলবার মানচিত্র টুলবার অক্ষম করা হয়েছে এবং পরিধানযোগ্য ডিভাইসে সক্ষম করা যাবে না।
UI নিয়ন্ত্রণ পরিধানযোগ্য ডিভাইসগুলিতে UI নিয়ন্ত্রণগুলি ডিফল্টরূপে অক্ষম করা হয়৷ এর মধ্যে রয়েছে জুম, কম্পাস এবং আমার অবস্থান নিয়ন্ত্রণ। আপনি যথারীতি UiSettings ক্লাস ব্যবহার করে তাদের সক্ষম করতে পারেন।
অঙ্গভঙ্গি একক-স্পর্শ অঙ্গভঙ্গি প্রত্যাশিত হিসাবে কাজ করে। উদাহরণগুলি হল মানচিত্রটি প্যান করতে স্পর্শ করুন এবং টেনে আনুন, জুম ইন করতে ডবল-ট্যাপ করুন এবং জুম আউট করতে দুই আঙুলে ট্যাপ করুন৷ ব্যবহারকারীর ডিভাইসের উপর নির্ভর করে মাল্টি-টাচ অঙ্গভঙ্গির জন্য সমর্থন পরিবর্তিত হয়। মাল্টি-টাচ অঙ্গভঙ্গির উদাহরণগুলির মধ্যে রয়েছে মানচিত্রটি কাত করতে দুই-আঙ্গুলের পুশ, জুম করতে চিমটি করা এবং দুই-আঙ্গুলের ঘূর্ণন।
অন্দর মানচিত্র এবং ভবন একটি পরিধানযোগ্য ডিভাইসে অভ্যন্তরীণ মানচিত্রগুলি ডিফল্টরূপে অক্ষম করা হয়৷ আপনি GoogleMap.setIndoorEnabled(true) কল করে তাদের সক্ষম করতে পারেন। অভ্যন্তরীণ মানচিত্র সক্ষম করা থাকলে, মানচিত্রটি ডিফল্ট তল স্তর দেখাবে৷ লেভেল পিকার UI উপাদান পরিধানযোগ্য ডিভাইসে সমর্থিত নয়।
টালি ওভারলে পরিধানযোগ্য ডিভাইসে টাইল ওভারলে সমর্থিত নয়

Wear OS-এ Maps API-এর সাথে ডেভেলপ করার জন্য সর্বোত্তম অনুশীলন

কীভাবে আপনার অ্যাপে সেরা ব্যবহারকারীর অভিজ্ঞতা প্রদান করবেন:

  • মানচিত্রটি পর্দার একটি বড় অনুপাত দখল করা উচিত। পরিধানযোগ্য ডিভাইসের ছোট ফর্ম ফ্যাক্টরে মানচিত্রের ব্যবহারযোগ্যতা অপ্টিমাইজ করার জন্য এটি প্রয়োজনীয়।
  • আপনার অ্যাপের ব্যবহারকারীর অভিজ্ঞতা ডিজাইন করার সময়, পরিধানযোগ্য ডিভাইসের কম ব্যাটারি পাওয়ার বিষয়টি বিবেচনা করুন। পর্দা সক্রিয় রাখা এবং মানচিত্র দৃশ্যমান ব্যাটারি কর্মক্ষমতা প্রভাবিত করবে.