নতুন ARCore Geospatial API ব্যবহার করে একটি অগমেন্টেড রিয়েলিটি (AR) অ্যাপ তৈরি করুন

1. সংক্ষিপ্ত বিবরণ

স্মার্টফোনে অগমেন্টেড রিয়েলিটি অভিজ্ঞতা তৈরির জন্য ARCore হল Google-এর কাঠামো। নতুন ARCore Geospatial API অগমেন্টেড রিয়েলিটিকে একটি নতুন দিক প্রদান করে, যা আপনাকে বাস্তব-বিশ্বের ল্যান্ডমার্কগুলির চারপাশে অবস্থান-নির্দিষ্ট অগমেন্টেড রিয়েলিটি ওয়েপয়েন্ট স্থাপন করার অনুমতি দেয়।

তুমি কী তৈরি করবে

এই কোডল্যাবে, আপনি ARCore Geospatial API দিয়ে শুরু করবেন। আপনি আবিষ্কার করবেন যে Geospatial API আপনার সামগ্রিক AR অভিজ্ঞতায় কী তথ্য প্রদান করতে পারে এবং কীভাবে এই ডেটা একটি সহজ AR ওয়েফাইন্ডিং অভিজ্ঞতাকে শক্তিশালী করতে ব্যবহার করা যেতে পারে।

তুমি কি শিখবে

  • জিওস্পেশিয়াল এপিআই ব্যবহার করে এমন একটি ARCore প্রকল্প কীভাবে সেট আপ করবেন।
  • জিওস্পেশিয়াল এপিআই থেকে ভৌগোলিক তথ্য কীভাবে অনুরোধ করবেন এবং গুগল ম্যাপ ব্যবহার করে তা প্রদর্শন করবেন।
  • বাস্তব জগতের কোনও স্থানে সংযুক্ত অ্যাঙ্কর কীভাবে স্থাপন করবেন।

তোমার যা লাগবে

2. আপনার উন্নয়ন পরিবেশ সেট আপ করুন

অ্যান্ড্রয়েড স্টুডিও সেট আপ করুন

জিওস্পেশিয়াল এপিআই শুরু করার জন্য, আমরা একটি স্টার্টার প্রজেক্ট প্রদান করেছি যাতে গুগল ম্যাপস এসডিকে-র সাথে ইন্টিগ্রেটেড একটি ARCore প্রজেক্টের মূল বিষয়গুলি অন্তর্ভুক্ত রয়েছে। এটি আপনাকে জিওস্পেশিয়াল এপিআই দ্রুত শুরু করার সুযোগ দেয়।

  1. অ্যান্ড্রয়েড স্টুডিও শুরু করুন এবং VCS থেকে একটি প্রকল্প আমদানি করুন।
    • যদি আপনার ইতিমধ্যেই একটি প্রকল্প খোলা থাকে, তাহলে সংস্করণ নিয়ন্ত্রণ থেকে ফাইল > নতুন > প্রকল্প ব্যবহার করুন...।
    • যদি আপনি "অ্যান্ড্রয়েড স্টুডিওতে স্বাগতম" উইন্ডোটি দেখতে পান, তাহলে Get from VCS ব্যবহার করুন। VCS অবস্থান থেকে পান
  2. Git নির্বাচন করুন, এবং প্রকল্পটি আমদানি করতে https://github.com/google-ar/codelab-geospatial.git URL ব্যবহার করুন।

একটি গুগল ক্লাউড প্রজেক্ট সেট আপ করুন

জিওস্পেশিয়াল এপিআই, ওরিয়েন্টেশন মান উন্নত করতে ডিভাইসের ম্যাগনেটোমিটার এবং ক্যামেরা সেন্সর তথ্যের সাথে স্ট্রিটভিউ চিত্রাবলী ব্যবহার করে। এই পরিষেবাটি ব্যবহার করার জন্য, আপনাকে একটি গুগল ক্লাউড প্রজেক্ট সেট আপ করতে হবে।

  1. গুগল ক্লাউড কনসোলে একটি প্রকল্প তৈরি করুন:
  2. প্রয়োজনীয় API গুলি সক্ষম করুন:
    • সাইডবারে, APIs & Services নির্বাচন করুন, তারপর Library নির্বাচন করুন।
    • ARCore API অনুসন্ধান করুন।
    • সক্রিয় করুন ক্লিক করুন।
    • লাইব্রেরি -এ ফেরত যান।
    • অ্যান্ড্রয়েডের জন্য ম্যাপস SDK অনুসন্ধান করুন।
    • সক্রিয় করুন ক্লিক করুন।
  3. API কী শংসাপত্র তৈরি করুন:
    • APIs & Services এর অধীনে, Credentials নির্বাচন করুন।
    • উপরের বারে, Create Credentials এ ক্লিক করুন, তারপর API Key নির্বাচন করুন।
    • পরবর্তী ধাপের জন্য আপনার প্রয়োজনে তৈরি করা চাবিটি নোট করে রাখুন। যদি আপনার এটি পুনরুদ্ধার করার প্রয়োজন হয় তাহলে শংসাপত্র পৃষ্ঠায় ফিরে যান।

এই ধাপগুলির মাধ্যমে, আপনি API কী অনুমোদন সহ একটি Google ক্লাউড প্রকল্প তৈরি করেছেন এবং আপনি Geospatial API ব্যবহার করার জন্য প্রস্তুত।

অ্যান্ড্রয়েড স্টুডিও প্রকল্পের সাথে API কী একীভূত করুন

গুগল ক্লাউড থেকে API কী আপনার প্রকল্পের সাথে সংযুক্ত করতে, অ্যান্ড্রয়েড স্টুডিওতে আপনার তৈরি প্রকল্পটি খুলুন এবং API কীগুলি পরিবর্তন করুন:

  1. অ্যাপ খুলুন > src > AndroidManifest.xml
  2. নিম্নলিখিত 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" />
    
  3. আপনার Google ক্লাউড প্রোজেক্টে তৈরি করা API কী দিয়ে PLACEHOLDER_API_KEY প্রতিস্থাপন করুন।

com.google.android.ar.API_KEY তে সংরক্ষিত মান এই অ্যাপটিকে Geospatial API ব্যবহার করার অনুমতি দেয় এবং com.google.android.geo.API_KEY তে সংরক্ষিত মান এই অ্যাপটিকে Google Maps SDK ব্যবহার করার অনুমতি দেয়।

আপনার প্রকল্প যাচাই করুন

নিশ্চিত করুন যে আপনার প্রোজেক্টটি ব্যবহারের জন্য সম্পূর্ণ প্রস্তুত। অ্যান্ড্রয়েড স্টুডিওতে, আপনার অ্যাপটি চালান। আপনি স্ক্রিনের নীচে একটি ক্যামেরা ভিউ এবং একটি কার্যকরী মানচিত্র দেখতে পাবেন।

বয়লারপ্লেট প্রকল্প

৩. ব্যবহারকারীর অবস্থান নির্ধারণ করুন

এই ধাপে, আপনি জিওস্পেশিয়াল এপিআই শুরু করার জন্য নমুনা প্রকল্পে কোড যোগ করবেন।

জিওস্পেশিয়াল এপিআই ব্যবহার করার জন্য ARCore সেশন কনফিগার করুন

জিওস্পেশিয়াল ডেটা পেতে, আপনাকে জিওস্পেশিয়াল API সক্ষম করতে হবে। HelloGeoActivity.ktconfigureSession ফাংশনটি পরিবর্তন করে আপনার সেশন কনফিগারেশনে 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.

এর নিচে, Earth অবজেক্টটি ব্যবহারের জন্য উপলব্ধ কিনা তা পরীক্ষা করুন। তখনই এটিতে 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
)

এটি জিওস্পেশিয়াল এপিআই থেকে প্রাপ্ত মান ব্যবহার করে মানচিত্রের অবস্থান ক্রমাগত আপডেট করে।

চেষ্টা করে দেখো

Android Studio-তে, Play এ ক্লিক করুন। আপনার ডিভাইসটি উপরে ধরে রাখুন এবং ARCore-কে ট্র্যাকিং স্থাপনে সহায়তা করার জন্য এটিকে ঘোরান। কিছুক্ষণ পরে, আপনি মানচিত্রে একটি সবুজ মার্কার দেখতে পাবেন। আপনার চারপাশের পরিবেশ দেখার সাথে সাথে এই মার্কারটি ঘোরে। এটি সঠিক দিকেও নির্দেশ করা উচিত: যখন আপনি শারীরিকভাবে উত্তর দিকে মুখ করে থাকেন, তখন তীরটিও উত্তর দিকে নির্দেশ করে।

সবুজ তীরটি আপনার অবস্থান এবং শিরোনাম অনুসরণ করে।

৪. আর্থ স্থানাঙ্ক ব্যবহার করে একটি নোঙ্গর স্থাপন করুন

জিওস্পেশিয়াল এপিআই বাস্তব জগতে যেকোনো স্থানাঙ্ক জোড়া এবং ঘূর্ণনে অ্যাঙ্কর স্থাপন করতে পারে। এটি আপনার ব্যবহারকারীদের নির্দিষ্ট স্থান পরিদর্শনের সময় অ্যাঙ্কর করা সামগ্রী দেখতে দেয়।

এই ধাপে, আপনি মানচিত্রে ট্যাপ করে একটি অ্যাঙ্কর স্থাপনের একটি উপায় যোগ করবেন।

মানচিত্রে ট্যাপ করা হলে একটি অ্যাকশন সেট করুন

এই প্রকল্পটিতে একটি onMapClick ফাংশন রয়েছে, যা মানচিত্রের অংশে ক্লিক করলে অক্ষাংশ এবং দ্রাঘিমাংশের সাথে ডাকা হয়। HelloGeoRenderer.ktonMapClick ফাংশনটি খুঁজুন।

নিশ্চিত করুন যে আর্থ অবজেক্টটি ব্যবহার করা যেতে পারে।

পৃথিবীতে অ্যাঙ্কর তৈরি করার আগে, নিশ্চিত করুন যে Earth অবজেক্টের TrackingState হল TRACKING , অর্থাৎ পৃথিবীর অবস্থান জানা আছে। এছাড়াও নিশ্চিত করুন যে এর EarthState ENABLED , অর্থাৎ Geospatial API-তে কোনও সমস্যা হয়নি। onMapClick ভিতরে এই লাইনগুলি যোগ করুন:

val earth = session?.earth ?: return
if (earth.trackingState != TrackingState.TRACKING) {
  return
}

নতুন অ্যাঙ্করের অবস্থান নির্ধারণ করুন

Earth অবজেক্টটি ট্র্যাকিং করছে কিনা তা নিশ্চিত করার পর, পূর্ববর্তী 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
}

চেষ্টা করে দেখো

অ্যান্ড্রয়েড স্টুডিওতে, Play এ ক্লিক করুন। আপনার ডিভাইসটি ধরে রাখুন এবং ARCore কে ট্র্যাকিং স্থাপনে সহায়তা করার জন্য এটিকে ঘোরান। কিছুক্ষণ পরে, আপনি মানচিত্রে একটি সবুজ মার্কার দেখতে পাবেন যা আপনার বর্তমান অবস্থান নির্দেশ করে।

মানচিত্রে ট্যাপ করলে জিওস্পেশিয়াল এপিআই ব্যবহার করে একটি অ্যাঙ্কর স্থাপন করা হয়, যা বাস্তব জগতের একটি অবস্থানে স্থির থাকে। অ্যাঙ্করটিকে আপনার বর্তমান অবস্থানের কাছাকাছি রাখার চেষ্টা করুন যাতে আপনি এটি AR ভিউতে দেখতে পারেন। আপনার পরিবেশ নেভিগেট করার সময় এটি স্থিতিশীল থাকা উচিত।

মানচিত্রে ট্যাপ করে একটি মার্কার রাখুন।

৫. উপসংহার

এই কোডল্যাবে, আপনি শিখেছেন কিভাবে জিওস্পেশিয়াল এপিআই ব্যবহার করে বাস্তব জগতের সাথে সংযুক্ত একটি সহজ এআর অভিজ্ঞতা তৈরি করতে হয়।

মানচিত্রে ট্যাপ করে একটি মার্কার রাখুন।

আমরা যা কভার করেছি

  • জিওস্পেশিয়াল এপিআই সক্ষম করে কীভাবে একটি গুগল ক্লাউড প্রকল্প সেট আপ করবেন।
  • কিভাবে একটি ARCore প্রকল্পে ভূ-স্থানিক তথ্য সংগ্রহ করবেন এবং এটি একটি মানচিত্রে প্রদর্শন করবেন।
  • ভৌগোলিক অবস্থান ব্যবহার করে বাস্তব জগতে অবস্থিত একটি নোঙ্গর কীভাবে স্থাপন করবেন।

অতিরিক্ত সম্পদ

এই কোডল্যাবে ব্যবহৃত ভৌগোলিক ধারণা এবং SDK সম্পর্কে আরও বিস্তারিত জানার জন্য, এই অতিরিক্ত সংস্থানগুলি দেখুন: