
এই পৃষ্ঠাটি 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 ম্যাপ রেন্ডার করে। নিম্নলিখিত পদক্ষেপগুলি উপাদান যুক্ত করে এবং ক্যামেরার অবস্থান এবং সম্পর্কিত বৈশিষ্ট্য সহ মানচিত্রের প্রাথমিক অবস্থা কনফিগার করে:
আপনার প্রধান কার্যকলাপের লেআউট ফাইলটি খুলুন, যা সাধারণত
app/src/main/res/layout/activity_main.xmlএ অবস্থিত।রুট
ConstraintLayout(বা আপনার রুট লেআউট উপাদান),map3dXML নামস্থান যোগ করুন:xmlns:map3d="http://schemas.android.com/apk/res-auto"ডিফল্ট
<TextView>মুছুন যা "হ্যালো ওয়ার্ল্ড!" প্রদর্শন করে।আপনার লেআউটে
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 উপাদানটিকে আরম্ভ করে এবং উপাদান জীবনচক্র ইভেন্টগুলি পরিচালনা করে:
আপনার
MainActivity.ktফাইলটি খুলুন, যা সাধারণতapp/src/main/java/com/example/yourpackagename/MainActivity.ktএ অবস্থিত।Android এর জন্য Maps 3D SDK-এর জন্য প্রয়োজনীয় আমদানি যোগ করুন:
import com.google.android.gms.maps3d.GoogleMap3D import com.google.android.gms.maps3d.Map3DView import com.google.android.gms.maps3d.OnMap3DViewReadyCallbackOnMap3DViewReadyCallbackবাস্তবায়ন করতেMainActivityক্লাস পরিবর্তন করুন:class MainActivity : AppCompatActivity(), OnMap3DViewReadyCallback {Map3DViewএবংGoogleMap3Dজন্য ভেরিয়েবল ঘোষণা করুন:private lateinit var map3DView: Map3DView private var googleMap3D: GoogleMap3D? = nullonCreateপদ্ধতিতে,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) }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 { ... }) }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 মানচিত্র দৃশ্য দেখতে অ্যাপটি তৈরি করতে এবং চালাতে পারেন।
Gradle এর সাথে আপনার প্রজেক্ট সিঙ্ক করতে, File > Sync Project with Gradle Files নির্বাচন করুন।
একটি এমুলেটর বা একটি ফিজিক্যাল ডিভাইসে আপনার অ্যাপ তৈরি এবং চালাতে, রান > রান নির্বাচন করুন।
সবকিছু সঠিকভাবে কনফিগার করা থাকলে, আপনার অ্যাপ্লিকেশানে প্রদর্শিত একটি 3D মানচিত্র দেখতে হবে, যা আপনার activity_main.xml এ নির্দিষ্ট স্থানাঙ্কগুলির কাছে কেন্দ্রীভূত হবে।
পরবর্তী পদক্ষেপ
এখন আপনি আপনার অ্যাপে একটি মৌলিক 3D মানচিত্র যোগ করেছেন, আপনি Android এর জন্য Maps 3D SDK-এর আরও উন্নত বৈশিষ্ট্য যেমন ক্যামেরা পাথ অ্যানিমেশন , 3D মার্কার বা বহুভুজগুলি অন্বেষণ করতে পারেন৷