1. আপনি শুরু করার আগে
ARCore হল স্মার্টফোনে অগমেন্টেড রিয়েলিটি (AR) অভিজ্ঞতা তৈরির জন্য Google-এর কাঠামো। জিওস্পেশিয়াল স্ট্রিটস্কেপ জ্যামিতি এবং রুফটপ অ্যাঙ্কর এপিআই আপনার ব্যবহারকারীদের আশেপাশের বিল্ডিংগুলি বুঝতে আপনার AR অভিজ্ঞতাগুলিকে সাহায্য করে।
এই কোডল্যাবে, আপনি একটি AR অ্যাপ তৈরি করেন যা আপনার এলাকার রাস্তার দৃশ্যের জ্যামিতি কল্পনা করে এবং আপনাকে এর পাশ সাজাতে দেয়। তারপর, আপনি আপনার চারপাশের ছাদের শীর্ষে একটি সজ্জা যোগ করতে ছাদ নোঙ্গর ব্যবহার করুন।

পূর্বশর্ত
- AR এর প্রাথমিক জ্ঞান
- ARCore Geospatial API- এর প্রাথমিক জ্ঞান
আপনি কি শিখবেন
- কীভাবে একটি Google ক্লাউড প্রকল্প সেট আপ করবেন যা ARCore জিওস্পেশিয়াল API ব্যবহার করতে পারে।
- Geospatial API থেকে রাস্তার দৃশ্য জ্যামিতি কিভাবে প্রাপ্ত করা যায়।
- রাস্তার দৃশ্য জ্যামিতি থেকে প্রাপ্ত বিল্ডিং এবং ভূখণ্ডগুলি কীভাবে কল্পনা করা যায়।
- প্রাপ্ত বহুভুজ উপর মৌলিক গণনা কিভাবে সঞ্চালন.
- কিভাবে জ্যামিতি একটি হিট-পরীক্ষা সঞ্চালন.
- ভবনের শীর্ষে বিষয়বস্তু সংযুক্ত করতে ছাদের নোঙ্গরগুলি কীভাবে ব্যবহার করবেন।
আপনি কি প্রয়োজন হবে
- একটি সমর্থিত ARCore অ্যান্ড্রয়েড ডিভাইস যা আপনার ডেভেলপমেন্ট মেশিনের সাথে একটি USB কেবলের সাথে সংযুক্ত এবং USB ডিবাগিংয়ের সাথে কনফিগার করা হয়েছে৷
- Android ডেভেলপমেন্ট ডিভাইসে AR 1.37 বা উচ্চতর সংস্করণের জন্য Google Play পরিষেবা ইনস্টল করা আছে।
- অ্যান্ড্রয়েড স্টুডিও ইনস্টল এবং অ্যান্ড্রয়েড অ্যাপ তৈরি করতে কনফিগার করা হয়েছে।
2. আপনার পরিবেশ সেট আপ করুন
কোটলিন এবং অ্যান্ড্রয়েড স্টুডিওর সাথে ভূ-স্থানীয় API ব্যবহার করতে, আপনার একটি Google ক্লাউড প্রকল্প এবং আমাদের স্টার্টার প্রকল্প প্রয়োজন৷
একটি Google ক্লাউড প্রকল্প সেট আপ করুন৷
ARCore জিওস্পেশিয়াল এপিআই Google ক্লাউডের সাথে সংযোগ করে যাতে Google এর ভিজ্যুয়াল পজিশনিং সিস্টেম (VPS) থেকে Google রাস্তার দৃশ্যের আওতাভুক্ত এলাকায় স্থানীয়করণের তথ্য প্রদান করা হয়।
আপনার প্রকল্পে এই সার্ভারটি ব্যবহার করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- গুগল ক্লাউডে একটি প্রকল্প তৈরি করুন।

- প্রকল্পের নাম ক্ষেত্রে, একটি উপযুক্ত নাম লিখুন, যেমন
ARCore Geospatial API project, এবং যেকোনো অবস্থান বেছে নিন। - তৈরি করুন ক্লিক করুন।
- প্রকল্প-নির্বাচক পৃষ্ঠায় Google ক্লাউড কনসোলে , প্রকল্প তৈরি করুন ক্লিক করুন।
- এই প্রকল্পের জন্য ARCore API দেখতে নিম্নলিখিত লিঙ্কে ক্লিক করুন এবং সক্ষম ক্লিক করুন:
- আপনার প্রকল্পের জন্য একটি API কী তৈরি করুন:
- API এবং পরিষেবার অধীনে, শংসাপত্র নির্বাচন করুন।
- শংসাপত্র তৈরি করুন ক্লিক করুন এবং API কী নির্বাচন করুন।
- চাবিটি নোট করুন কারণ আপনার এটি পরে প্রয়োজন।
আপনি API-কী অনুমোদন সহ একটি Google ক্লাউড প্রকল্প তৈরি করেছেন এবং আপনি নমুনা প্রকল্পে ভূ-স্থানীয় API ব্যবহার করতে প্রস্তুত৷
অ্যান্ড্রয়েড স্টুডিও সেট আপ করুন
জিওস্পেশিয়াল এপিআই দিয়ে শুরু করার জন্য, আমরা একটি স্টার্টার প্রজেক্ট প্রদান করেছি যেটিতে জিওস্পেশিয়াল এপিআই-এর সাথে একীভূত একটি ARCore প্রোজেক্টের বেসিক রয়েছে।
অ্যান্ড্রয়েড স্টুডিও সেট আপ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- অ্যান্ড্রয়েড স্টুডিও খুলুন এবং নিম্নলিখিতগুলির মধ্যে একটি করুন:
- আপনার যদি ইতিমধ্যেই একটি প্রকল্প খোলা থাকে তবে সংস্করণ নিয়ন্ত্রণ থেকে ফাইল > নতুন > প্রকল্পে ক্লিক করুন।
- আপনি যদি অ্যান্ড্রয়েড স্টুডিওতে স্বাগতম উইন্ডো দেখতে পান তবে ভিসিএস থেকে পান ক্লিক করুন।

- গিট নির্বাচন করুন এবং প্রকল্প আমদানি করতে
https://github.com/google-ar/codelab-streetscape-geometry-rooftop-anchors.gitলিখুন।
অ্যান্ড্রয়েড স্টুডিও প্রকল্পের সাথে API কী একীভূত করুন
আপনার প্রকল্পের সাথে Google ক্লাউড থেকে API কী সংযুক্ত করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- অ্যান্ড্রয়েড স্টুডিওতে, অ্যাপ > src-এ ক্লিক করুন এবং
AndroidManifest.xmlডাবল-ক্লিক করুন। - নিম্নলিখিত
meta-dataএন্ট্রি খুঁজুন:<meta-data android:name="com.google.android.ar.API_KEY" android:value="API_KEY" /> API_KEYপ্লেসহোল্ডারটিকে API কী দিয়ে প্রতিস্থাপন করুন যা আপনি আপনার Google ক্লাউড প্রকল্পে তৈরি করেছেন ।com.google.android.ar.API_KEYএ সঞ্চিত মান এই অ্যাপটিকে ভূ-স্থানীয় API ব্যবহার করার অনুমোদন দেয়।
আপনার প্রকল্প যাচাই করুন
- আপনার প্রকল্প যাচাই করতে, আপনার ডেভেলপমেন্ট ডিভাইসে আপনার অ্যাপ চালান। আপনি পর্দার শীর্ষে একটি ক্যামেরা ভিউ এবং ভূ-স্থানিক ডিবাগ তথ্য দেখতে পাবেন। আপনি এমন বোতাম এবং নিয়ন্ত্রণগুলিও দেখতে পাবেন যেগুলির কার্যকারিতা নেই বলে মনে হয়; আপনি এই কোডল্যাব জুড়ে আপনার প্রকল্পে সেই কার্যকারিতা প্রোগ্রাম করুন।

3. রাস্তার দৃশ্য-জ্যামিতি ডেটা কল্পনা করুন
আপনার ডিভাইসে Geospatial API কাজ করে তা নিশ্চিত করার পরে, আপনি Geospatial API থেকে রাস্তার দৃশ্য জ্যামিতি পাবেন।
রাস্তার দৃশ্য জ্যামিতি সক্ষম করুন৷
-
StreetscapeGeometryActivity.ktফাইলে, নিম্নলিখিত লাইনটি খুঁজুন:// TODO: Enable Streetscape Geometry. - এই লাইনের পরে, রাস্তার দৃশ্য-জ্যামিতি মোড সক্ষম করুন:
যখন Geospatial API এবং স্ট্রিটস্কেপ-জ্যামিতি মোড সক্রিয় থাকে, তখন আপনার অ্যাপ ব্যবহারকারীর চারপাশে রাস্তার দৃশ্য-জ্যামিতি তথ্য পেতে পারে।streetscapeGeometryMode = Config.StreetscapeGeometryMode.ENABLED
রাস্তার দৃশ্য জ্যামিতি প্রাপ্ত
-
StreetscapeGeometryActivity.ktফাইলে, নিম্নলিখিত লাইনটি খুঁজুন:// TODO: Obtain Streetscape Geometry. - এই লাইনের পরে, সমস্ত
Trackableবস্তু পেয়ে এবংStreetscapeGeometryদ্বারা ফিল্টার করে স্ট্রিটস্কেপ জ্যামিতি প্রাপ্ত করুন: আপনি এই জ্যামিতিগুলিকে একটি সাধারণ ভিজ্যুয়ালাইজেশনে ব্যবহার করেন যা নমুনা প্রকল্পে দেওয়া হয়েছে। এই ভিজ্যুয়ালাইজেশন প্রতিটি বিল্ডিং বা ভূখণ্ডের বহুভুজকে ভিন্ন রঙে প্রদর্শন করে।val streetscapeGeometry = session.getAllTrackables(StreetscapeGeometry::class.java) - পরবর্তী লাইনে, নিম্নলিখিত কোড যোগ করুন:
streetscapeGeometryRenderer.render(render, streetscapeGeometry) - আপনার অ্যাপটি চালান এবং আপনার এলাকার একটি বিল্ডিং দেখুন।
- ভূ-স্থানিক স্থানীয়করণ সম্পন্ন হওয়ার পরে, আলতো চাপুন
সেটিংস এবং স্ট্রিটস্কেপ-জ্যামিতি ভিজ্যুয়ালাইজেশন সক্ষম করুন। - এআর-এর একটি বিল্ডিং দেখুন। প্রতিটি বিভক্ত বিল্ডিংয়ের নিজস্ব রঙ রয়েছে এবং কেন্দ্রের জ্যামিতির
QualityএবংTypeএনামগুলি প্রদর্শিত হয়।

4. স্ট্রিটস্কেপ-জ্যামিতি ডেটা সহ একটি হিট-টেস্ট করুন৷
এখন আপনি রাস্তার দৃশ্যের জ্যামিতি দেখতে পাচ্ছেন, আপনি বিল্ডিংটি সাজানোর জন্য একটি হিট-টেস্ট ব্যবহার করতে পারেন। একটি হিট-পরীক্ষা ভার্চুয়াল জ্যামিতি এবং একটি রশ্মির মধ্যে একটি ছেদ খুঁজে পায়৷ আপনি জ্যামিতি খুঁজে পেতে একটি হিট-টেস্ট ব্যবহার করেন যার উপর একজন ব্যবহারকারী ট্যাপ করে।
একটি হিট পরীক্ষা সঞ্চালন
এই বিভাগে, ব্যবহারকারী যখন তার জ্যামিতিতে ট্যাপ করে তখন আপনি বিল্ডিংয়ের সম্মুখভাগে একটি তারকা স্থাপন করেন। আপনি বিশ্বে ব্যবহারকারীর দৃষ্টিকোণ থেকে একটি হিট-টেস্টের মাধ্যমে এটি করেন এবং বের হওয়ার পথে কোন AR অবজেক্টের মুখোমুখি হয় তা নিবন্ধন করুন। ব্যবহারকারী একটি বিল্ডিং বহুভুজ ট্যাপ করেছে কিনা তা পরীক্ষা করতে আপনি এই তথ্যটি ব্যবহার করুন।
-
StreetscapeCodelabRenderer.ktফাইলে, নিম্নলিখিত লাইনটি খুঁজুন:// TODO: determine the Streetscape Geometry at the center of the viewport - এই লাইনের পরে, নিম্নলিখিত কোড যোগ করুন:
এই কোডটি একটি বিল্ডিং যা রাস্তার দৃশ্যের জ্যামিতি খুঁজে পেতে কেন্দ্র স্থানাঙ্ক ব্যবহার করে। আপনি সজ্জা যোগ করতে এই ফলাফল ব্যবহার করুন.val centerHits = frame.hitTest(centerCoords[0], centerCoords[1]) val hit = centerHits.firstOrNull { val trackable = it.trackable trackable is StreetscapeGeometry && trackable.type == StreetscapeGeometry.Type.BUILDING } ?: return
একটি ট্যাপ উপর একটি তারকা সজ্জা যোগ করুন
-
StreetscapeCodelabRenderer.ktফাইলে, নিম্নলিখিত লাইনটি খুঁজুন:// TODO: Create an anchor for a star, and add it to the starAnchors object. - এই লাইনের পরে, নিম্নলিখিত কোড যোগ করুন:
val transformedPose = ObjectPlacementHelper.createStarPose(hit.hitPose) val anchor = hit.trackable.createAnchor(transformedPose) starAnchors.add(anchor)ObjectPlacementHelperক্লাস হিট পোজ দেখে আপনার তারকা বসানোর জন্য একটি উপযুক্ত অবস্থান নির্ধারণ করে।starAnchorsঅবজেক্টটি AR ভিউতে তারাকে রেন্ডার করতে ব্যবহৃত হয়।
চেষ্টা করে দেখুন
- আপনার অ্যাপটি চালান এবং আপনার এলাকার একটি বিল্ডিং দেখুন।
- ভূ-স্থানিক স্থানীয়করণ সম্পূর্ণ হওয়ার পরে, আপনার ক্যামেরাটি বিল্ডিংয়ের দিকে লক্ষ্য করুন এবং স্ক্রিনে আলতো চাপুন। আপনি পর্দার কেন্দ্রে বিল্ডিংটিতে একটি তারকা দেখতে পাবেন।

5. ছাদ-নোঙ্গর ডেটা ব্যবহার করুন
অবশেষে, আপনি বিল্ডিংয়ের শীর্ষে সজ্জা যোগ করতে ছাদের নোঙ্গর ব্যবহার করেন। ছাদের নোঙ্গরগুলি আপনাকে অক্ষাংশ এবং দ্রাঘিমাংশ সহ বিল্ডিংয়ের শীর্ষে AR অ্যাঙ্কর সংযুক্ত করতে সহায়তা করে। আপনি ব্যবহারকারীর চারপাশের বিল্ডিংগুলিতে বেলুন সংযুক্ত করতে এই অ্যাঙ্করগুলি ব্যবহার করেন।
বেলুন মোডে আচরণ যোগ করুন
প্রকল্পটির দুটি সম্পদ-স্থাপন মোড রয়েছে: সূর্যমুখী মোড যা আপনি ইতিমধ্যে ব্যবহার করেছেন এবং বেলুন মোড৷
বেলুন মোডের জন্য আচরণ প্রোগ্রাম করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
-
StreetscapeCodelabRenderer.ktফাইলে, নিম্নলিখিত লাইনটি খুঁজুন:// TODO: Create an anchor for a balloon and add it to the balloonAnchors object. - আপনার বেলুনের জন্য একটি দুর্দান্ত জায়গা তৈরি করতে হিট পোজটি ব্যবহার করুন:
val transformedPose = ObjectPlacementHelper.createBalloonPose(frame.camera.pose, hit.hitPose) -
transformedPoseপোজ ভেরিয়েবলটিকে একটি ভূ-স্থানিক ভঙ্গিতে রূপান্তর করুন:val earth = session?.earth ?: return val geospatialPose = earth.getGeospatialPose(transformedPose) - রূপান্তরিত অক্ষাংশ এবং দ্রাঘিমাংশ সহ একটি ছাদ নোঙ্গর তৈরি করুন:
earth.resolveAnchorOnRooftopAsync( geospatialPose.latitude, geospatialPose.longitude, 0.0, transformedPose.qx(), transformedPose.qy(), transformedPose.qz(), transformedPose.qw() ) { anchor, state -> if (!state.isError) { balloonAnchors.add(anchor) } }
চেষ্টা করে দেখুন
- আপনার অ্যাপটি চালান এবং আপনার এলাকার একটি বিল্ডিং দেখুন।
- ভূ-স্থানিক স্থানীয়করণ সম্পূর্ণ হওয়ার পরে, বেলুন মোডে পরিবর্তন করুন এবং একটি বিল্ডিং আলতো চাপুন। আপনি বিল্ডিংয়ের শীর্ষে একটি বেলুন দেখতে পাচ্ছেন।

6. উপসংহার
অভিনন্দন! আপনি একটি AR অ্যাপ তৈরি করেছেন যা আপনার এলাকার রাস্তার দৃশ্য জ্যামিতি কল্পনা করে এবং আপনাকে তারা দিয়ে এর পাশ সাজাতে দেয়। আপনার চারপাশের ছাদের উপরে একটি বেলুন যোগ করতে আপনি ছাদের নোঙ্গরগুলিও ব্যবহার করেছেন৷
