1. ওভারভিউ
ARCore হল স্মার্টফোনে অগমেন্টেড রিয়েলিটি অভিজ্ঞতা তৈরির জন্য Google-এর কাঠামো। নতুন ARCore জিওস্পেশিয়াল এপিআই অগমেন্টেড রিয়েলিটির একটি নতুন দিক মঞ্জুর করে, যা আপনাকে বাস্তব-বিশ্বের ল্যান্ডমার্কের চারপাশে অবস্থান-নির্দিষ্ট অগমেন্টেড রিয়েলিটি ওয়েপয়েন্ট স্থাপন করার অনুমতি দেয়।
আপনি কি নির্মাণ করবেন
এই কোডল্যাবে, আপনি ARCore জিওস্পেশিয়াল API দিয়ে শুরু করুন। জিওস্পেশিয়াল এপিআই আপনার সামগ্রিক এআর অভিজ্ঞতার জন্য কী তথ্য দিতে পারে এবং কীভাবে এই ডেটা একটি সাধারণ এআর ওয়েফাইন্ডিং অভিজ্ঞতার জন্য ব্যবহার করা যেতে পারে তা আপনি আবিষ্কার করতে পারবেন।
আপনি কি শিখবেন
- জিওস্পেশিয়াল এপিআই ব্যবহার করে এমন একটি ARCore প্রজেক্ট কীভাবে সেট আপ করবেন।
- কিভাবে জিওস্পেশিয়াল এপিআই থেকে ভৌগলিক ডেটার অনুরোধ করা যায় এবং গুগল ম্যাপ ব্যবহার করে এটি প্রদর্শন করা যায়।
- একটি বাস্তব-বিশ্ব অবস্থানের সাথে সংযুক্ত একটি অ্যাঙ্কর কিভাবে স্থাপন করবেন।
আপনি কি প্রয়োজন হবে
- একটি সমর্থিত ARCore অ্যান্ড্রয়েড ডিভাইস , আপনার ডেভেলপমেন্ট মেশিনে একটি USB কেবল ব্যবহার করে সংযুক্ত, USB ডিবাগিংয়ের সাথে কনফিগার করা হয়েছে৷
- অ্যান্ড্রয়েড স্টুডিও ইনস্টল এবং অ্যান্ড্রয়েড অ্যাপ তৈরি করতে কনফিগার করা হয়েছে।
- AR 1.31 বা তার পরবর্তী সংস্করণের জন্য Google Play পরিষেবা , Android ডেভেলপমেন্ট ডিভাইসে ইনস্টল করা।
2. আপনার উন্নয়ন পরিবেশ সেট আপ করুন
অ্যান্ড্রয়েড স্টুডিও সেট আপ করুন
জিওস্পেশিয়াল এপিআই দিয়ে শুরু করার জন্য, আমরা একটি স্টার্টার প্রজেক্ট প্রদান করেছি যেটিতে Google Maps SDK-এর সাথে একীভূত একটি ARCore প্রোজেক্টের মৌলিক বিষয় রয়েছে। এটি আপনাকে জিওস্পেশিয়াল এপিআইয়ের সাথে একটি দ্রুত শুরু করে।
- অ্যান্ড্রয়েড স্টুডিও শুরু করুন এবং ভিসিএস থেকে একটি প্রকল্প আমদানি করুন।
- আপনার যদি ইতিমধ্যেই একটি প্রকল্প খোলা থাকে তবে সংস্করণ নিয়ন্ত্রণ থেকে ফাইল > নতুন > প্রকল্প ব্যবহার করুন...।
- আপনি যদি অ্যান্ড্রয়েড স্টুডিওতে স্বাগতম উইন্ডো দেখতে পান তবে ভিসিএস থেকে পান ব্যবহার করুন।
- Git নির্বাচন করুন, এবং প্রকল্পটি আমদানি করতে URL
https://github.com/google-ar/codelab-geospatial.git
ব্যবহার করুন।
একটি Google ক্লাউড প্রকল্প সেট আপ করুন৷
জিওস্পেশিয়াল এপিআই অভিযোজন মান উন্নত করতে ডিভাইসের ম্যাগনেটোমিটার এবং ক্যামেরা সেন্সর তথ্যের সাথে মিলিত স্ট্রিটভিউ চিত্র ব্যবহার করে। এই পরিষেবাটি ব্যবহার করতে, আপনাকে একটি Google ক্লাউড প্রকল্প সেট আপ করতে হবে৷
- Google ক্লাউড কনসোলে একটি প্রকল্প তৈরি করুন:
- Google ক্লাউড প্ল্যাটফর্মে একটি প্রকল্প তৈরি করুন দেখুন।
- একটি উপযুক্ত প্রকল্পের নাম লিখুন (উদাহরণস্বরূপ, "ARCore জিওস্পেশিয়াল এপিআই প্রকল্প"), এবং যেকোনো অবস্থান বেছে নিন।
- তৈরি করুন ক্লিক করুন।
- Google ক্লাউড প্ল্যাটফর্মে একটি প্রকল্প তৈরি করুন দেখুন।
- প্রয়োজনীয় API সক্রিয় করুন:
- সাইডবারে, APIs এবং পরিষেবাগুলি নির্বাচন করুন, তারপরে লাইব্রেরি ।
- ARCore API অনুসন্ধান করুন।
- সক্ষম করুন ক্লিক করুন।
- লাইব্রেরিতে ফিরে যান।
- Android এর জন্য মানচিত্র SDK অনুসন্ধান করুন৷
- সক্ষম করুন ক্লিক করুন।
- API কী শংসাপত্র তৈরি করুন:
এই পদক্ষেপগুলির সাথে, আপনি API কী অনুমোদন সহ একটি Google ক্লাউড প্রকল্প তৈরি করেছেন এবং আপনি ভূ-স্থানীয় API ব্যবহার করতে প্রস্তুত৷
অ্যান্ড্রয়েড স্টুডিও প্রকল্পের সাথে API কী একীভূত করুন
আপনার প্রকল্পের সাথে Google ক্লাউড থেকে API কী সংযুক্ত করতে, Android স্টুডিওতে আপনার তৈরি করা প্রকল্পটি খুলুন এবং API কীগুলি সংশোধন করুন:
- অ্যাপ খুলুন > src > AndroidManifest.xml ।
- নিম্নলিখিত
meta-data
এন্ট্রি খুঁজুন:<meta-data android:name="com.google.android.ar.API_KEY" android:value="PLACEHOLDER_API_KEY" /> <meta-data android:name="com.google.android.geo.API_KEY" android:value="PLACEHOLDER_API_KEY" />
PLACEHOLDER_API_KEY
API কী দিয়ে প্রতিস্থাপন করুন যা আপনি আপনার Google ক্লাউড প্রকল্পে তৈরি করেছেন ।
com.google.android.ar.API_KEY
এ সঞ্চিত মান এই অ্যাপটিকে ভূ-স্থানীয় API ব্যবহার করার অনুমোদন দেয় এবং com.google.android.geo.API_KEY
এ সঞ্চিত মান এই অ্যাপটিকে Google মানচিত্র SDK ব্যবহার করার অনুমোদন দেয়।
আপনার প্রকল্প যাচাই করুন
নিশ্চিত করুন যে আপনার প্রকল্পটি যেতে প্রস্তুত। অ্যান্ড্রয়েড স্টুডিওতে, আপনার অ্যাপ চালান। আপনি পর্দার নীচে একটি কাজের মানচিত্র সহ একটি ক্যামেরা ভিউ দেখতে সক্ষম হওয়া উচিত।
3. ব্যবহারকারীর অবস্থান নির্ধারণ করুন
এই ধাপে, আপনি Geospatial API দিয়ে শুরু করার জন্য নমুনা প্রকল্পে কোড যোগ করুন।
Geospatial API ব্যবহার করতে ARCore সেশন কনফিগার করুন
ভূ-স্থানিক ডেটা পেতে, আপনাকে ভূ-স্থানীয় API সক্ষম করতে হবে। HelloGeoActivity.kt
এ configureSession
ফাংশন পরিবর্তন করে আপনার সেশন কনফিগারেশনে GeospatialMode
পরিবর্তন করে ENABLED
:
fun configureSession(session: Session) {
session.configure(
session.config.apply {
// Enable Geospatial Mode.
geospatialMode = Config.GeospatialMode.ENABLED
}
)
}
ভূ-স্থানিক মোড ENABLED
থাকাকালীন, অ্যাপ্লিকেশনটি ভূ-স্থানিক তথ্য পেতে পারে।
জিওস্পেশিয়াল এপিআই থেকে ডেটার অনুরোধ করুন
HelloGeoRenderer.kt
এ, নিম্নলিখিত লাইনটি খুঁজুন:
// TODO: Obtain Geospatial information and display it on the map.
এটির নীচে, আর্থ অবজেক্টটি ব্যবহারের জন্য উপলব্ধ কিনা তা পরীক্ষা করুন। এটি যখন trackingState
TrackingState.ENABLED
থাকে।
val earth = session.earth
if (earth?.trackingState == TrackingState.TRACKING) {
// TODO: the Earth object may be used here.
}
TODO
নীচে, ARCore থেকে ভূ-স্থানিক তথ্যের জন্য অনুরোধ করুন। এই লাইন যোগ করুন:
val cameraGeospatialPose = earth.cameraGeospatialPose
এটি আপনাকে একটি GeospatialPose
দেয় যাতে এই তথ্য রয়েছে:
- অবস্থান, অক্ষাংশ এবং দ্রাঘিমাংশে প্রকাশ করা হয়েছে। অবস্থান নির্ভুলতার একটি অনুমান এছাড়াও সরবরাহ করা হয়.
- উচ্চতা, এবং উচ্চতার নির্ভুলতার একটি অনুমান।
- শিরোনাম, ডিভাইসটি যে দিকে মুখ করছে তার একটি আনুমানিক এবং শিরোনামের নির্ভুলতার একটি অনুমান।
মানচিত্রে অবস্থানগত তথ্য প্রদর্শন করুন
আপনি cameraGeospatialPose
সংরক্ষিত GeospatialPose
ব্যবহার করতে পারেন ম্যাপে একটি মার্কার সরাতে যা দেখায় যে ব্যবহারকারী কোথায় আছেন। আপনি যেখানে ছেড়েছিলেন সেখানে চালিয়ে যান এবং নিম্নলিখিত যোগ করুন:
activity.view.mapView?.updateMapPosition(
latitude = cameraGeospatialPose.latitude,
longitude = cameraGeospatialPose.longitude,
heading = cameraGeospatialPose.heading
)
এটি ভূ-স্থানীয় API থেকে প্রাপ্ত মানগুলি ব্যবহার করে ক্রমাগত মানচিত্রের অবস্থান আপডেট করে।
চেষ্টা করে দেখুন
অ্যান্ড্রয়েড স্টুডিওতে, প্লে এ ক্লিক করুন। ARCore ট্র্যাকিং স্থাপনে সহায়তা করতে আপনার ডিভাইসটি ধরে রাখুন এবং এটিকে চারপাশে নিয়ে যান। কিছুক্ষণ পরে, আপনি মানচিত্রে একটি সবুজ মার্কার দেখতে পাবেন। আপনি যখন আপনার চারপাশ দেখতে পান তখন এই মার্কারটি ঘোরে। এটি সঠিক দিকে নির্দেশ করা উচিত: যখন আপনি শারীরিকভাবে উত্তরের দিকে মুখ করেন, তীরটিও উত্তর নির্দেশ করে।
4. আর্থ স্থানাঙ্ক ব্যবহার করে একটি নোঙ্গর রাখুন
জিওস্প্যাশিয়াল এপিআই বাস্তব জগতের যেকোনো স্থানাঙ্ক জোড়া এবং ঘূর্ণনে অ্যাঙ্কর স্থাপন করতে পারে। এটি আপনার ব্যবহারকারীদের নোঙর করা সামগ্রী দেখতে দেয় যখন নির্দিষ্ট অবস্থানগুলি পরিদর্শন করা হয়৷
এই ধাপে, আপনি মানচিত্রে আলতো চাপ দিয়ে একটি অ্যাঙ্কর স্থাপন করার একটি উপায় যোগ করুন৷
ম্যাপ ট্যাপ করা হলে একটি অ্যাকশন সেট করুন
প্রকল্পটি একটি onMapClick
ফাংশনের সাথে আসে, যেটিকে একটি অক্ষাংশ এবং দ্রাঘিমাংশের সাথে বলা হয় যখন মানচিত্রের খণ্ডটি ক্লিক করা হয়। HelloGeoRenderer.kt
এ onMapClick
ফাংশন খুঁজুন।
নিশ্চিত করুন যে আর্থ অবজেক্ট ব্যবহার করা যেতে পারে
পৃথিবীতে অ্যাঙ্কর তৈরি করার আগে, নিশ্চিত করুন যে আর্থ অবজেক্টের TrackingState
TRACKING
, যার অর্থ পৃথিবীর অবস্থান জানা আছে। এছাড়াও নিশ্চিত করুন যে এটির EarthState
ENABLED
, যার অর্থ জিওস্পেশিয়াল API-এর সাথে কোনও সমস্যা হয়নি৷ onMapClick
ভিতরে এই লাইনগুলি যোগ করুন:
val earth = session?.earth ?: return
if (earth.trackingState != TrackingState.TRACKING) {
return
}
নতুন অ্যাঙ্করের অবস্থান নির্ধারণ করুন
আর্থ অবজেক্ট ট্র্যাক করছে তা নিশ্চিত করার পরে, পূর্ববর্তী earthAnchor
বিচ্ছিন্ন করুন, যদি একটি বিদ্যমান থাকে। আপনি পরবর্তী ধাপে earthAnchor
একটি নতুন অ্যাঙ্কর দিয়ে প্রতিস্থাপন করুন:
earthAnchor?.detach()
তারপরে, নতুন অ্যাঙ্করের জন্য উচ্চতা নির্ধারণ করতে cameraGeospatialPose
ব্যবহার করুন। অ্যাঙ্করের অবস্থান হিসাবে মানচিত্রটি ট্যাপ করা থেকে স্থানাঙ্ক জোড়া ব্যবহার করুন।
// Place the earth anchor at the same altitude as that of the camera to make it easier to view.
val altitude = earth.cameraGeospatialPose.altitude - 1
// The rotation quaternion of the anchor in the East-Up-South (EUS) coordinate system.
val qx = 0f
val qy = 0f
val qz = 0f
val qw = 1f
earthAnchor =
earth.createAnchor(latLng.latitude, latLng.longitude, altitude, qx, qy, qz, qw)
createAnchor
একটি প্রদত্ত ঘূর্ণনের সাথে জিওডেটিক স্থানাঙ্কে স্থির একটি Anchor
তৈরি করে। এই নোঙ্গরটি নির্দিষ্ট স্থানাঙ্ক এবং উচ্চতায় স্থিতিশীল এবং স্থির থাকার চেষ্টা করে।
মানচিত্রে স্থাপন করা মার্কারটি দেখান
অবশেষে, একটি নতুন মার্কার সরান যা নির্দেশ করে যে মার্কারটি কোথায় স্থাপন করা হয়েছিল:
activity.view.mapView?.earthMarker?.apply {
position = latLng
isVisible = true
}
চেষ্টা করে দেখুন
অ্যান্ড্রয়েড স্টুডিওতে, প্লে এ ক্লিক করুন। ARCore ট্র্যাকিং স্থাপনে সহায়তা করতে আপনার ডিভাইসটি ধরে রাখুন এবং এটিকে চারপাশে নিয়ে যান। কিছুক্ষণ পরে, আপনি মানচিত্রে একটি সবুজ মার্কার দেখতে পাবেন যা আপনার বর্তমান অবস্থান নির্দেশ করে।
ম্যাপে আলতো চাপলে একটি অ্যাঙ্কর স্থাপনের জন্য জিওস্পেশিয়াল API ব্যবহার করা হয়, যা একটি বাস্তব-বিশ্বের অবস্থানে স্থির করা হয়। অ্যাঙ্করটিকে আপনার বর্তমান অবস্থানের কাছাকাছি রাখার চেষ্টা করুন যাতে আপনি এটি AR ভিউতে দেখতে পারেন। আপনি আপনার পরিবেশে নেভিগেট করার সাথে সাথে এটি স্থিতিশীল থাকা উচিত।
5. উপসংহার
এই কোডল্যাবে, আপনি শিখেছেন কিভাবে জিওস্পেশিয়াল এপিআই ব্যবহার করে একটি সাধারণ এআর অভিজ্ঞতা তৈরি করতে হয় যা বাস্তব জগতের সাথে আবদ্ধ।
আমরা কভার করেছি কি
- জিওস্পেশিয়াল এপিআই সক্ষম করে কীভাবে একটি গুগল ক্লাউড প্রকল্প সেট আপ করবেন।
- কিভাবে একটি ARCore প্রকল্পে ভূ-স্থানিক তথ্য প্রাপ্ত করা যায় এবং এটি একটি মানচিত্রে প্রদর্শন করা যায়।
- ভৌগলিক পজিশনিং ব্যবহার করে বাস্তব জগতে অবস্থিত একটি নোঙ্গর কীভাবে স্থাপন করবেন।
অতিরিক্ত সম্পদ
এই কোডল্যাবে ব্যবহৃত ভৌগলিক ধারণা এবং SDK সম্পর্কে আরও বিশদ বিবরণের জন্য, এই অতিরিক্ত সংস্থানগুলি দেখুন: