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

1. ওভারভিউ

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

আপনি কি নির্মাণ করবেন

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

আপনি কি শিখবেন

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

আপনি কি প্রয়োজন হবে

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

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

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

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

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

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

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

এই পদক্ষেপগুলির সাথে, আপনি API কী অনুমোদন সহ একটি Google ক্লাউড প্রকল্প তৈরি করেছেন এবং আপনি ভূ-স্থানীয় API ব্যবহার করতে প্রস্তুত৷

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

আপনার প্রকল্পের সাথে Google ক্লাউড থেকে API কী সংযুক্ত করতে, Android স্টুডিওতে আপনার তৈরি করা প্রকল্পটি খুলুন এবং 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. 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.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.

এটির নীচে, আর্থ অবজেক্টটি ব্যবহারের জন্য উপলব্ধ কিনা তা পরীক্ষা করুন। এটি যখন 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.ktonMapClick ফাংশন খুঁজুন।

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

পৃথিবীতে অ্যাঙ্কর তৈরি করার আগে, নিশ্চিত করুন যে আর্থ অবজেক্টের 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 সম্পর্কে আরও বিশদ বিবরণের জন্য, এই অতিরিক্ত সংস্থানগুলি দেখুন: