আপনার অ্যাপে একটি 3D মানচিত্র যোগ করুন

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

নিউ ইয়র্ক সিটি দেখানো একটি 3D মানচিত্র

এই পৃষ্ঠাটি Android এর জন্য Maps 3D SDK ব্যবহার করে একটি Android অ্যাপে কীভাবে একটি মৌলিক 3D মানচিত্র যোগ করতে হয় তার একটি উদাহরণ দিয়ে চলে। এই পৃষ্ঠার নির্দেশাবলী অনুমান করে যে আপনি ইতিমধ্যে সেটআপ পৃষ্ঠার পদক্ষেপগুলি সম্পূর্ণ করেছেন এবং নিম্নলিখিতগুলি রয়েছে:

  • Android এর জন্য Maps 3D SDK সহ একটি Google ক্লাউড প্রকল্প সক্ষম
  • Android এর জন্য Maps 3D SDK-এর সাথে ব্যবহারের জন্য একটি API কী কনফিগার করা হয়েছে
  • Android এর জন্য Maps 3D SDK-এর সাথে ব্যবহার করার জন্য একটি Android Studio প্রোজেক্ট সেট আপ করা হয়েছে

এই পূর্বশর্তগুলি সম্পর্কে আরও তথ্যের জন্য, সেটআপ দেখুন।

পার্ট 1: Map3DView কম্পোনেন্ট যোগ করতে লেআউট ফাইল ( activity_main.xml ) আপডেট করুন

Map3DView কম্পোনেন্ট হল সেই ভিউ যা অ্যাপের মধ্যে 3D ম্যাপ রেন্ডার করে। নিম্নলিখিত পদক্ষেপগুলি উপাদান যুক্ত করে এবং ক্যামেরার অবস্থান এবং সম্পর্কিত বৈশিষ্ট্য সহ মানচিত্রের প্রাথমিক অবস্থা কনফিগার করে:

  1. আপনার প্রধান কার্যকলাপের লেআউট ফাইলটি খুলুন, যা সাধারণত app/src/main/res/layout/activity_main.xml এ অবস্থিত।

  2. রুট ConstraintLayout (বা আপনার রুট লেআউট উপাদান), map3d XML নামস্থান যোগ করুন:

    xmlns:map3d="http://schemas.android.com/apk/res-auto"
    
  3. ডিফল্ট <TextView> মুছুন যা "হ্যালো ওয়ার্ল্ড!" প্রদর্শন করে।

  4. আপনার লেআউটে Map3DView উপাদান যোগ করুন। আপনি ক্যামেরা অবস্থান এবং অন্যান্য বৈশিষ্ট্য কাস্টমাইজ করতে পারেন:

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      xmlns:map3d="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"
      android:id="@+id/main"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      tools:context=".MainActivity">
    
      <com.google.android.gms.maps3d.Map3DView
        android:id="@+id/map3dView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        map3d:mode="hybrid"
        map3d:centerLat="38.544012"
        map3d:centerLng="-107.670428"
        map3d:centerAlt="2427.6"
        map3d:heading="310"
        map3d:tilt="63"
        map3d:range="8266"
        map3d:roll="0"
        map3d:minAltitude="0"
        map3d:maxAltitude="1000000"
        map3d:minHeading="0"
        map3d:maxHeading="360"
        map3d:minTilt="0"
        map3d:maxTilt="90"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    </androidx.constraintlayout.widget.ConstraintLayout>
    

পার্ট 2: MainActivity.kt আপডেট করুন

নিম্নলিখিত পদক্ষেপগুলি পার্ট 1-এ activity_main.xml ফাইলে যোগ করা Map3DView উপাদানটিকে আরম্ভ করে এবং উপাদান জীবনচক্র ইভেন্টগুলি পরিচালনা করে:

  1. আপনার MainActivity.kt ফাইলটি খুলুন, যা সাধারণত app/src/main/java/com/example/yourpackagename/MainActivity.kt এ অবস্থিত।

  2. Android এর জন্য Maps 3D SDK-এর জন্য প্রয়োজনীয় আমদানি যোগ করুন:

    import com.google.android.gms.maps3d.GoogleMap3D
    import com.google.android.gms.maps3d.Map3DView
    import com.google.android.gms.maps3d.OnMap3DViewReadyCallback
    
  3. OnMap3DViewReadyCallback বাস্তবায়ন করতে MainActivity ক্লাস পরিবর্তন করুন:

    class MainActivity : AppCompatActivity(), OnMap3DViewReadyCallback {
    
  4. Map3DView এবং GoogleMap3D জন্য ভেরিয়েবল ঘোষণা করুন:

    private lateinit var map3DView: Map3DView
    private var googleMap3D: GoogleMap3D? = null
    
  5. onCreate পদ্ধতিতে, setContentView(...) এবং ViewCompat.setOnApplyWindowInsetsListener ব্লকের পরে, map3DView শুরু করুন, এটির onCreate লাইফসাইকেল পদ্ধতিতে কল করুন এবং অসিঙ্ক্রোনাসভাবে মানচিত্রের অনুরোধ করুন:

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContentView(R.layout.activity_main)
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
            val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
            insets
        }
    
        map3DView = findViewById(R.id.map3dView)
        map3DView.onCreate(savedInstanceState)
        map3DView.getMap3DViewAsync(this)
    }
    
  6. onMap3DViewReady পদ্ধতি ওভাররাইড করুন। মানচিত্রটি ব্যবহারের জন্য প্রস্তুত হলে এই কলব্যাকটি ট্রিগার হয়:

    override fun onMap3DViewReady(googleMap3D: GoogleMap3D) {
        // Interact with the googleMap3D object here
        this.googleMap3D = googleMap3D
        // You can now make calls to the googleMap3D object, e.g.,
        // googleMap3D.cameraController.flyTo(camera { ... })
    }
    
  7. MainActivity তে নিম্নলিখিত ওভাররাইডগুলি যোগ করে আপনার কার্যকলাপ থেকে Map3DView এ জীবনচক্র ইভেন্টগুলি ফরওয়ার্ড করুন:

    override fun onStart() {
        super.onStart()
        map3DView.onStart()
    }
    
    override fun onResume() {
        super.onResume()
        map3DView.onResume()
    }
    
    override fun onPause() {
        map3DView.onPause()
        super.onPause()
    }
    
    override fun onStop() {
        map3DView.onStop()
        super.onStop()
    }
    
    override fun onDestroy() {
        map3DView.onDestroy()
        super.onDestroy()
    }
    
    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        map3DView.onSaveInstanceState(outState)
    }
    
    override fun onLowMemory() {
        super.onLowMemory()
        map3DView.onLowMemory()
    }
    

পার্ট 3: গ্রেডল সিঙ্ক করুন এবং রান করুন

এখন আপনি আপনার অ্যাপের লেআউট এবং কার্যকলাপ আপডেট করেছেন, আপনি 3D মানচিত্র দৃশ্য দেখতে অ্যাপটি তৈরি করতে এবং চালাতে পারেন।

  1. Gradle এর সাথে আপনার প্রজেক্ট সিঙ্ক করতে, File > Sync Project with Gradle Files নির্বাচন করুন।

  2. একটি এমুলেটর বা একটি ফিজিক্যাল ডিভাইসে আপনার অ্যাপ তৈরি এবং চালাতে, রান > রান নির্বাচন করুন।

সবকিছু সঠিকভাবে কনফিগার করা থাকলে, আপনার অ্যাপ্লিকেশানে প্রদর্শিত একটি 3D মানচিত্র দেখতে হবে, যা আপনার activity_main.xml এ নির্দিষ্ট স্থানাঙ্কগুলির কাছে কেন্দ্রীভূত হবে।

পরবর্তী পদক্ষেপ

এখন আপনি আপনার অ্যাপে একটি মৌলিক 3D মানচিত্র যোগ করেছেন, আপনি Android এর জন্য Maps 3D SDK-এর আরও উন্নত বৈশিষ্ট্য যেমন ক্যামেরা পাথ অ্যানিমেশন , 3D মার্কার বা বহুভুজগুলি অন্বেষণ করতে পারেন৷