একটি মানচিত্র কনফিগার করুন

প্ল্যাটফর্ম নির্বাচন করুন: Android iOS

Android এর জন্য Maps SDK ব্যবহার করে একটি Android অ্যাপে যোগ করা একটি মানচিত্র কীভাবে কনফিগার করতে হয় তা এই বিষয়টি বর্ণনা করে।

ওভারভিউ

মানচিত্র সেটিংস কনফিগার করা Kyto এর একটি মানচিত্রের স্ক্রিনশট। আপনি আপনার অ্যাপে একটি মানচিত্র যোগ করার পরে, আপনি মানচিত্রের প্রাথমিক এবং রানটাইম সেটিংস কনফিগার করতে পারেন। আপনি মানচিত্র ধারক ( SupportMapFragment বা MapView ) স্থিরভাবে বা গতিশীলভাবে যুক্ত করেছেন কিনা তার উপর ভিত্তি করে প্রাথমিক সেটিংস কনফিগার করা প্রয়োজন৷ যদি মানচিত্র ধারকটি স্থিরভাবে যোগ করা হয়, আপনি বিন্যাস ফাইলে প্রাথমিক মানচিত্র সেটিংস কনফিগার করতে পারেন। যদি এটি গতিশীলভাবে যোগ করা হয়, আপনি একটি GoogleMapOptions অবজেক্টের সাথে OnCreate কলব্যাকের প্রাথমিক সেটিংস কনফিগার করতে পারেন।

একটি মানচিত্র ধারক যোগ করার বিষয়ে বিস্তারিত জানার জন্য, একটি মানচিত্র যোগ করুন দেখুন।

প্রাথমিক মানচিত্র সেটিংস নিম্নলিখিত অন্তর্ভুক্ত:

রানটাইমে আপনি onMapReady কলব্যাকে GoogleMap অবজেক্ট আপডেট করে এই সেটিংস এবং কিছু সংযোজন সেটিংস কনফিগার করতে পারেন। অতিরিক্ত সেটিংস GoogleMap ক্লাসের পদ্ধতির মাধ্যমে কনফিগার করা হয়, যেমন যেগুলি ট্রাফিক স্তর এবং মানচিত্র প্যাডিং কনফিগার করে।

উদাহরণ

নীচের উদাহরণ কোডে এবং উপরের স্ক্রিনশটটিতে , মানচিত্রটি নিম্নলিখিত সেটিংসের সাথে কনফিগার করা হয়েছে৷

প্রাথমিক সেটিংস লেআউট ফাইলে কনফিগার করা হয়েছে:

  • জুম নিয়ন্ত্রণ সক্ষম করুন।
  • ঘোরানো অঙ্গভঙ্গি নিয়ন্ত্রণ সক্ষম করুন।
  • মানচিত্র টিল্ট 30 এ সেট করুন।

রানটাইম সেটিংস:

  • কিয়োটো জাপানে ক্যামেরা কেন্দ্রীভূত করুন।
  • হাইব্রিড মানচিত্রের ধরন সক্ষম করুন।
  • ট্র্যাফিক স্তর চালু করুন।

প্রাথমিক সেটিংস


<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    map:uiZoomControls="true"
    map:uiRotateGestures="true"
    map:cameraTilt="30" />
    

রানটাইম সেটিংস

package com.example.mapsetup;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);

    }

    // Update the map configuration at runtime.
    @Override
    public void onMapReady(GoogleMap googleMap) {
        // Set the map coordinates to Kyoto Japan.
        LatLng kyoto = new LatLng(35.00116, 135.7681);
        // Set the map type to Hybrid.
        googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
        // Add a marker on the map coordinates.
        googleMap.addMarker(new MarkerOptions()
                .position(kyoto)
                .title("Kyoto"));
        // Move the camera to the map coordinates and zoom in closer.
        googleMap.moveCamera(CameraUpdateFactory.newLatLng(kyoto));
        googleMap.moveCamera(CameraUpdateFactory.zoomTo(15));
        // Display traffic.
        googleMap.setTrafficEnabled(true);

    }
}

তুমি শুরু করার আগে

আপনি শুরু করার আগে, আপনি একটি প্রকল্প সেট আপ করতে পারেন এবং নিম্নলিখিত বিকল্পগুলির মাধ্যমে একটি মৌলিক মানচিত্র যোগ করতে পারেন:

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

  • SDK-এর জন্য ম্যানুয়ালি আপনার প্রোজেক্ট কনফিগার করুন এবং একটি মৌলিক মানচিত্র যোগ করুন । এটি আপনাকে যেকোনো অ্যান্ড্রয়েড টেমপ্লেট ব্যবহার করতে এবং বিদ্যমান অ্যাপে একটি মানচিত্র যোগ করতে দেয়।

স্ট্যাটিকভাবে যোগ করার পর একটি মানচিত্র কনফিগার করুন

আপনি যদি আপনার লেআউট ফাইলে স্ট্যাটিকভাবে যোগ করেন তাহলে ম্যাপের প্রাথমিক অবস্থা কীভাবে সেট করবেন তা এই বিভাগে বর্ণনা করে।

অ্যান্ড্রয়েডের জন্য মানচিত্র SDK একটি SupportMapFragment বা একটি MapView জন্য কাস্টম XML বৈশিষ্ট্যগুলির একটি সেট সংজ্ঞায়িত করে যা আপনি সরাসরি বিন্যাস ফাইল থেকে মানচিত্রের প্রাথমিক অবস্থা কনফিগার করতে ব্যবহার করতে পারেন৷ নিম্নলিখিত বৈশিষ্ট্যগুলি বর্তমানে সংজ্ঞায়িত করা হয়েছে:

  • mapType — প্রদর্শন করার জন্য মানচিত্রের ধরন। বৈধ মানগুলির মধ্যে রয়েছে: none , normal , hybrid , satellite এবং terrain

  • cameraTargetLat , cameraTargetLng , cameraZoom , cameraBearing , cameraTilt — প্রাথমিক ক্যামেরা অবস্থান। বিস্তারিত জানার জন্য ক্যামেরা এবং ভিউ গাইড দেখুন।

  • uiZoomControls , uiCompass — জুম নিয়ন্ত্রণ এবং কম্পাস প্রদর্শিত হবে কিনা তা নির্দিষ্ট করে। বিস্তারিত জানার জন্য UiSettings দেখুন।

  • uiZoomGestures , uiScrollGestures , uiRotateGestures , uiTiltGestures — নির্দিষ্ট অঙ্গভঙ্গিগুলি সক্ষম করা আছে কিনা তা নির্দিষ্ট করে৷ বিস্তারিত জানার জন্য UiSettings দেখুন।

  • zOrderOnTop — ম্যাপ ভিউয়ের সারফেস ম্যাপ উইন্ডো, ম্যাপ কন্ট্রোল এবং উইন্ডোতে যেকোন বস্তুর উপরে প্রদর্শিত হবে কিনা তা নির্দেশ করে। বিস্তারিত জানার জন্য SurfaceView.setZOrderOnTop(বুলিয়ান) দেখুন।

  • useViewLifecycle — শুধুমাত্র একটি SupportMapFragment অবজেক্টের সাথে বৈধ। মানচিত্রের জীবনচক্রটি খণ্ডের দৃশ্যের সাথে বা খণ্ডটি নিজেই বাঁধা উচিত কিনা তা নির্দিষ্ট করে৷ বিস্তারিত জানার জন্য এখানে দেখুন.

  • liteModeলাইট মোড সক্রিয় করতে true ; অন্যথায়, false

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

xmlns:map="http://schemas.android.com/apk/res-auto"

তারপরে আপনি একটি map: আপনার লেআউট ফাইলে উপসর্গ।

নিম্নলিখিত লেআউট ফাইলটি কাস্টম মানচিত্র বৈশিষ্ট্য সহ একটি SupportMapFragment অবজেক্ট কনফিগার করে। একই গুণাবলী একটি MapView বস্তুতেও প্রয়োগ করা যেতে পারে।

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:map="http://schemas.android.com/apk/res-auto"
  android:name="com.google.android.gms.maps.SupportMapFragment"
  android:id="@+id/map"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  map:cameraBearing="112.5"
  map:cameraTargetLat="-33.796923"
  map:cameraTargetLng="150.922433"
  map:cameraTilt="30"
  map:cameraZoom="13"
  map:mapType="normal"
  map:uiCompass="false"
  map:uiRotateGestures="true"
  map:uiScrollGestures="false"
  map:uiTiltGestures="true"
  map:uiZoomControls="false"
  map:uiZoomGestures="true"/>

গতিশীলভাবে যোগ করার পরে একটি মানচিত্র কনফিগার করুন

আপনি যদি গতিশীলভাবে আপনার অ্যাপে এটি যুক্ত করেন তবে কীভাবে মানচিত্রের প্রাথমিক অবস্থা সেট করবেন তা এই বিভাগে বর্ণনা করে।

আপনি যদি একটি SupportMapFragment বা MapView গতিশীলভাবে যোগ করেন, তাহলে আপনি একটি GoogleMapOptions অবজেক্টে মানচিত্রের প্রাথমিক অবস্থা সেট করতে পারেন। উপলব্ধ বিকল্পগুলি একই বিকল্প যা লেআউট ফাইলে উপলব্ধ। আপনি নিম্নরূপ একটি GoogleMapOptions তৈরি করতে পারেন:

কোটলিন



val options = GoogleMapOptions()

      

জাভা


GoogleMapOptions options = new GoogleMapOptions();

      

এবং তারপরে এটি নিম্নরূপ কনফিগার করুন:

কোটলিন



options.mapType(GoogleMap.MAP_TYPE_SATELLITE)
    .compassEnabled(false)
    .rotateGesturesEnabled(false)
    .tiltGesturesEnabled(false)

      

জাভা


options.mapType(GoogleMap.MAP_TYPE_SATELLITE)
    .compassEnabled(false)
    .rotateGesturesEnabled(false)
    .tiltGesturesEnabled(false);

      

আপনি যখন একটি মানচিত্র তৈরি করছেন তখন এই বিকল্পগুলি প্রয়োগ করতে, নিম্নলিখিতগুলির মধ্যে একটি করুন:

  • আপনি যদি একটি SupportMapFragment ব্যবহার করেন, SupportMapFragment.newInstance(GoogleMapOptions options) স্ট্যাটিক ফ্যাক্টরি পদ্ধতিটি ব্যবহার করুন টুকরোটি তৈরি করতে এবং আপনার সেটিংসে পাস করুন৷
  • আপনি যদি একটি MapView ব্যবহার করেন, MapView(Context, GoogleMapOptions) কনস্ট্রাক্টর ব্যবহার করুন এবং আপনার সেটিংসে পাস করুন।

ট্র্যাফিক স্তর সেট আপ করুন

আপনি ট্র্যাফিক স্তর সক্ষম করে আপনার মানচিত্রে ট্র্যাফিক ডেটা প্রদর্শন করতে পারেন৷ আপনি setTrafficEnabled() পদ্ধতিতে কল করে ট্র্যাফিক স্তর সক্রিয় এবং নিষ্ক্রিয় করতে পারেন এবং isTrafficEnabled() পদ্ধতিতে কল করে ট্র্যাফিক স্তরটি বর্তমানে চালু আছে কিনা তা নির্ধারণ করতে পারেন। নিম্নলিখিত স্ক্রিনশটটি ট্র্যাফিক স্তর সক্ষম সহ একটি মানচিত্র প্রদর্শন করে৷

মানচিত্রের ধরন সেট করুন

মানচিত্রের ধরন সেট করতে, setMapType পদ্ধতিতে কল করুন। উদাহরণস্বরূপ, একটি উপগ্রহ মানচিত্র প্রদর্শন করতে:

কোটলিন



// Sets the map type to be "hybrid"
map.mapType = GoogleMap.MAP_TYPE_HYBRID

      

জাভা


// Sets the map type to be "hybrid"
map.setMapType(GoogleMap.MAP_TYPE_HYBRID);

      

নিম্নলিখিত চিত্রটি সাধারণ, হাইব্রিড এবং ভূখণ্ডের মানচিত্র প্রকারের তুলনা করে:

MapType Comparison

3D বিল্ডিং সেট আপ করুন

অনেক শহর, কাছাকাছি দেখা হলে, 3D বিল্ডিংগুলি দৃশ্যমান হবে, যা ভ্যাঙ্কুভার, কানাডার নীচের ছবিতে দেখা যাবে৷ আপনি GoogleMap.setBuildingsEnabled(false) কল করে 3d বিল্ডিং নিষ্ক্রিয় করতে পারেন।

ভ্যাঙ্কুভার, কানাডার একটি মানচিত্র

ইনডোর ম্যাপ সেটিংস সেট আপ করুন

উচ্চ জুম স্তরে, মানচিত্রটি বিমানবন্দর, শপিং মল, বড় খুচরা দোকান এবং ট্রানজিট স্টেশনগুলির মতো অন্দর স্থানগুলির জন্য ফ্লোর প্ল্যান দেখায়৷ এই ফ্লোর প্ল্যানগুলি, যাকে ইনডোর মানচিত্র বলা হয়, 'স্বাভাবিক' এবং 'স্যাটেলাইট' মানচিত্র প্রকারের জন্য প্রদর্শিত হয় ( GoogleMap.MAP_TYPE_NORMAL এবং GoogleMap.MAP_TYPE_SATELLITE )৷ ব্যবহারকারী যখন জুম ইন করে তখন সেগুলি স্বয়ংক্রিয়ভাবে সক্ষম হয় এবং মানচিত্রটি জুম আউট করার সময় সেগুলি বিবর্ণ হয়ে যায়৷

অবচয় বিজ্ঞপ্তি: ভবিষ্যতে প্রকাশে, অভ্যন্তরীণ মানচিত্রগুলি শুধুমাত্র normal মানচিত্রের প্রকারে উপলব্ধ হবে৷ সেই ভবিষ্যৎ প্রকাশ থেকে, অন্দর মানচিত্র satellite , terrain বা hybrid মানচিত্রে সমর্থিত হবে না। এমনকি যেখানে ইনডোর সমর্থিত নয়, সেখানেও isIndoorEnabled() setIndoorEnabled() এর মাধ্যমে সেট করা মান ফেরত দিতে থাকবে, যেমনটি এখন করে। ডিফল্টরূপে, setIndoorEnabled trueরিলিজ নোটগুলি আপনাকে জানাবে যখন অভ্যন্তরীণ সমর্থন সেই মানচিত্র প্রকারগুলিতে অনুপলব্ধ হয়ে যায়৷

Indoor map example

এখানে এপিআই-এ ইনডোর ম্যাপের কার্যকারিতার একটি সারসংক্ষেপ রয়েছে:

  • আপনি GoogleMap.setIndoorEnabled(false) কল করে অভ্যন্তরীণ মানচিত্র নিষ্ক্রিয় করতে পারেন। ডিফল্টরূপে, ইনডোর মানচিত্র সক্রিয় করা হয়। ইনডোর মানচিত্র একবারে একটি মানচিত্রে প্রদর্শিত হয়। ডিফল্টরূপে এটি আপনার অ্যাপে যোগ করা প্রথম মানচিত্র। একটি ভিন্ন মানচিত্রে অভ্যন্তরীণ মানচিত্র প্রদর্শন করতে, সেগুলিকে প্রথম মানচিত্রে অক্ষম করুন, তারপরে দ্বিতীয় মানচিত্রে setIndoorEnabled(true) কল করুন৷
  • ডিফল্ট লেভেল পিকার (ফ্লোর পিকার) অক্ষম করতে, GoogleMap.getUiSettings().setIndoorLevelPickerEnabled(false) কল করুন। আরও বিশদ বিবরণের জন্য, মানচিত্রের সাথে ইন্টারঅ্যাক্ট করা দেখুন।
  • OnIndoorStateChangeListener — শ্রোতাদের সংজ্ঞায়িত করে যেগুলি শনাক্ত করে যখন একটি বিল্ডিং ফোকাসে আসে, বা একটি বিল্ডিংয়ে একটি স্তর সক্রিয় করা হয়। বিস্তারিত জানার জন্য, মানচিত্রের সাথে ইন্টারঅ্যাকটিং দেখুন।
  • getFocusedBuilding — ফোকাসে থাকা বিল্ডিং পুনরুদ্ধার করে। তারপর আপনি IndoorBuilding.getActiveLevelIndex() কল করে সক্রিয় স্তরটি খুঁজে পেতে পারেন।
  • বেস ম্যাপ স্টাইল করা ইনডোর ম্যাপকে প্রভাবিত করে না।

মানচিত্র প্যাডিং সেট আপ করুন

এই ভিডিওটি মানচিত্র প্যাডিংয়ের একটি উদাহরণ দেখায়।

একটি Google মানচিত্র তার ধারক উপাদান দ্বারা সংজ্ঞায়িত সমগ্র অঞ্চলটি পূরণ করার জন্য ডিজাইন করা হয়েছে, সাধারণত একটি MapView বা SupportMapFragment । মানচিত্রটি কীভাবে প্রদর্শিত হয় এবং আচরণ করে তার বেশ কয়েকটি দিক এর ধারকটির মাত্রা দ্বারা সংজ্ঞায়িত করা হয়:

  • ক্যামেরার লক্ষ্য প্যাডেড অঞ্চলের কেন্দ্র প্রতিফলিত করবে।
  • মানচিত্র নিয়ন্ত্রণগুলি মানচিত্রের প্রান্তের সাথে সম্পর্কিত।
  • আইনি তথ্য, যেমন কপিরাইট বিবৃতি বা Google লোগো মানচিত্রের নীচের প্রান্তে প্রদর্শিত হয়।

আপনি GoogleMap ব্যবহার করে মানচিত্রের প্রান্তের চারপাশে প্যাডিং যোগ করতে পারেন। setPadding() পদ্ধতি। মানচিত্রটি সম্পূর্ণ ধারকটি পূরণ করতে থাকবে, তবে পাঠ্য এবং নিয়ন্ত্রণ অবস্থান, মানচিত্রের অঙ্গভঙ্গি এবং ক্যামেরার গতিবিধি এমন আচরণ করবে যেন এটি একটি ছোট জায়গায় স্থাপন করা হয়েছে। এর ফলে নিম্নলিখিত পরিবর্তনগুলি ঘটে:

  • API কল বা বোতাম প্রেসের মাধ্যমে ক্যামেরার গতিবিধি (যেমন, কম্পাস, আমার অবস্থান, জুম বোতাম) প্যাডেড অঞ্চলের সাথে আপেক্ষিক।
  • getCameraPosition পদ্ধতি প্যাডেড অঞ্চলের কেন্দ্র ফেরত দেয়।
  • Projection এবং getVisibleRegion পদ্ধতি প্যাডেড অঞ্চল ফিরিয়ে দেয়।
  • UI নিয়ন্ত্রণগুলি নির্দিষ্ট সংখ্যক পিক্সেল দ্বারা কন্টেইনারের প্রান্ত থেকে অফসেট করা হয়।

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

Map Padding