আপনার অ্যাপে Geospatial API ব্যবহার করতে, Google Cloud-এ ARCore API অ্যাক্সেস করার জন্য আপনার অ্যাপ সেট-আপ করতে হবে। এই API-তে ভিজ্যুয়াল পজিশনিং সার্ভিস আছে যা Google Street View থেকে পাওয়া ডেটা ব্যবহার করে সঠিক পজিশন প্রদান করে।
এই নির্দেশিকা আপনাকে একটি Google Cloud প্রোজেক্ট সেট-আপ করতে সাহায্য করে যা সঠিক API এবং API অ্যাক্সেস করার জন্য অনুমোদন পদ্ধতি চালু করেছে।
Google Cloud প্রোজেক্ট সেট-আপ করুন অথবা আগে থেকে আছে এমন প্রোজেক্ট ব্যবহার করুন
আপনার আগে থেকে কোনও Google Cloud প্রোজেক্ট থাকলে, সেটি বেছে নিন।
আপনার আগে থেকে কোনও প্রোজেক্ট না থাকলে, একটি তৈরি করুন।
ARCore API চালু করুন
ARCore API ব্যবহার করতে, আপনার প্রোজেক্টে এটি চালু করতে হবে।
Google Cloud-এর জন্য অনুমোদন সেট-আপ করুন
একটি Android অ্যাপ্লিকেশন দুটি ভিন্ন অনুমোদন পদ্ধতি ব্যবহার করে ARCore API-এর সাথে যোগাযোগ করতে পারে: 'কী' ছাড়া অনুমোদন (OAuth 2.0), যা হল প্রস্তাবিত পদ্ধতি এবং API 'কী' অনুমোদন:
- 'কী' ছাড়া অনুমোদনের ক্ষেত্রে, আপনার অ্যাপ্লিকেশন অনুমোদন করার জন্য, অ্যাপ্লিকেশনের প্যাকেজের নাম এবং সাইনিং 'কী'-এর ফিঙ্গারপ্রিন্টের কম্বিনেশন ব্যবহার করা হয়।
API key হল একটি স্ট্রিং যা Google Cloud প্রোজেক্ট শনাক্ত করে। API কী সাধারণত সুরক্ষিত বলে বিবেচিত হয় না কারণ সেগুলি সাধারণত ক্লায়েন্টদের অ্যাক্সেসযোগ্য। ARCore API-এর সাথে যোগাযোগ করতে 'কী' ছাড়া অনুমোদন ব্যবহার করার কথা বিবেচনা করুন।
'কী' ছাড়া অনুমোদন
কীলেস যাচাইকরণ ব্যবহার করে আপনার অ্যাপকে অনুমোদন করতে, OAuth 2.0 ক্লায়েন্ট আইডি তৈরি করুন।
Google Cloud-এ, ক্রেডেনশিয়াল পৃষ্ঠায় যান।
ক্রেডেনশিয়াল তৈরি করুন বিকল্পে ক্লিক করুন এবং তারপরে মেনু থেকে OAuth ক্লায়েন্ট আইডি বেছে নিন।
নিম্নলিখিতভাবে প্রয়োজনীয় ফিল্ড পূরণ করুন:
- অ্যাপ্লিকেশনের ধরন: Android বেছে নিন।
- প্যাকেজের নাম: আপনার
AndroidManifest.xml-এ যেভাবে ঘোষণা করা হয়েছে সেইভাবে প্যাকেজের নাম ব্যবহার করুন। - SHA-1 সার্টিফিকেট ফিঙ্গারপ্রিন্ট: ক্লায়েন্ট যাচাইকরণ-এ দেওয়া নির্দেশাবলী ব্যবহার করে SHA-1 সার্টিফিকেট ফিঙ্গারপ্রিন্ট পান।
তৈরি করুন বিকল্পে প্রেস করুন।
API Key
এইসব ধাপ অনুসরণ করে Google Cloud Console থেকে API key তৈরি করুন:
Google Cloud কনসোলে, ক্রেডেনশিয়াল পৃষ্ঠায় যান:
ক্রেডেনশিয়াল তৈরি করুন বিকল্পে ক্লিক করে মেনু থেকে API কী বেছে নিন।
ARCore API-এর জন্য API সংক্রান্ত বিধিনিষেধ যোগ করুন। আরও তথ্যের জন্য, API কী সংক্রান্ত বিধিনিষেধ প্রয়োগ করুন দেখুন।
তৈরি করুন বিকল্পে ক্লিক করুন। API key তৈরি করা হয়েছে ডায়ালগ আপনার নতুন তৈরি করা কী-এর জন্য স্ট্রিং দেখায়।
Android Studio-তে, আপনার প্রোজেক্টে নতুন API key যোগ করুন। আপনার অ্যাপের AndroidManifest.xml-এর
<application> এলিমেন্টের
<meta-data> এলিমেন্টে
API key যোগ করুন:
<meta-data
android:name="com.google.android.ar.API_KEY"
android:value="API_KEY"/>
প্রয়োজনীয় অনুমতির জন্য অনুরোধ করুন
Jetpack XR-এর সাথে ARCore-এ Geospatial API ব্যবহার করতে, আপনার অ্যাপকে নিম্নলিখিত রানটাইম অনুমতি অনুরোধ করতে হবে:
ACCESS_FINE_LOCATION: ব্যবহারকারীর সুনির্দিষ্ট লোকেশন নির্ধারণ করার জন্য প্রয়োজন।
মোবাইল ডিভাইসে, Geospatial API-এর জন্য নিম্নলিখিত অনুমতিও প্রয়োজন:
android.permission.CAMERA: ডিভাইসের ক্যামেরা অ্যাক্সেস করার জন্য প্রয়োজন।android.permission.INTERNET: Google Cloud পরিষেবার সাথে যোগাযোগ করার জন্য প্রয়োজন।
সেশন অ্যাক্সেস করা
Jetpack XR রানটাইম Session-এর মাধ্যমে জিওস্পেশিয়াল তথ্য অ্যাক্সেস করুন,
যা আপনার অ্যাপকে অবশ্যই তৈরি করতে হবে।
সেশন কনফিগার করুন
XR সেশনে Geospatial API ডিফল্ট হিসেবে চালু করা থাকে না। আপনার অ্যাপকে অবশ্যই
Session-এ GeospatialMode কনফিগার করার মাধ্যমে এটি স্পষ্টভাবে চালু করতে হবে। নিম্নলিখিত
মোডগুলি উপলভ্য:
GeospatialMode.SPATIAL: Geospatial API চালু করা আছে। Geospatial API, ডিভাইসের জিওস্পেশিয়াল পোজ নির্ধারণ করতে ভিজ্যুয়াল পজিশনিং সিস্টেম (VPS), গ্লোবাল পজিশনিং সিস্টেম (GPS) ডেটা এবং ডিভাইসের মোশন সেন্সর ব্যবহার করে। এই মোডটি ইন্টেলিজেন্ট আইওয়্যার ডিভাইসে উপলভ্য নয়।GeospatialMode.INERTIAL: Geospatial API কম-পাওয়ার মোডে চালু করা আছে। Geospatial API শুধুমাত্র জিপিএস এবং ডিভাইসের মোশন সেন্সর ব্যবহার করে ডিভাইসের জিওস্পেশিয়াল পোজ নির্ধারণ করে। এই মোড শুধুমাত্র ইন্টেলিজেন্ট আইওয়্যার ডিভাইসে উপলভ্য।GeospatialMode.DISABLED: Geospatial API বন্ধ করা আছে; অন্য মোড থেকে এই মোডে ট্রানজিশন করার সময়, Geospatial API সব অ্যাকোয়ার করা রিসোর্স রিলিজ করে এবং ট্র্যাক করা বন্ধ করে দেয়।
সব ডিভাইসে সব জিওস্পেশিয়াল মোড কাজ করে না। আরও তথ্যের জন্য
GeospatialMode দেখুন। প্রদত্ত GeospatialMode কাজ করে কিনা তা জানতে
XrDevice.isGeospatialSupported ব্যবহার করুন।
Session.configure ব্যবহার করে কীভাবে GeospatialMode সেট করতে হয় তা নিম্নলিখিত কোড স্যাম্পেল থেকে জানতে পারবেন।
// Define the configuration object to enable Geospatial features. val newConfig = Config.Builder(session.config) .setGeospatial(GeospatialMode.SPATIAL) .build() // Apply the configuration to the session. try { when (val configResult = session.configure(newConfig)) { is SessionConfigureSuccess -> { // The session is now configured to use the Geospatial API. } else -> { // Handle other configuration errors (e.g., missing library dependencies). } } } catch (e: UnsupportedOperationException) { // Handle configuration failure if the mode is not supported. }
ডিভাইস ডেটা ব্যবহার করার অনুমতি দেওয়ার জন্য ব্যবহারকারীকে প্রম্পট করুন
Jetpack XR-এর জন্য ARCore-এর সাথে Geospatial API ব্যবহার করে এমন অ্যাপকে অবশ্যই ব্যবহারকারীকে তার ডিভাইস থেকে ডেটা ব্যবহারের অনুমতি দিতে এবং স্বীকার করতে একটি প্রম্পট দেখাতে হবে। আরও তথ্যের জন্য ব্যবহারকারীর গোপনীয়তা সংক্রান্ত প্রয়োজনীয়তা দেখুন।
জিওস্পেশিয়াল অবজেক্ট ব্যবহার করা
সেশন কনফিগার করা হয়ে গেলে, Geospatial.getInstance ব্যবহার করে
Geospatial অবজেক্ট পান। Geospatial অবজেক্টের স্ট্যাটাস
GeospatialTrackingState.RUNNING হলে তবেই সেটি ব্যবহার করুন।
নিম্নলিখিত কোড স্যাম্পেল থেকে জানা যায় যে কীভাবে
Geospatial.state ব্যবহার করে জিওস্পেশিয়াল স্টেট মনিটর করতে হয়।
Compose XR
val geospatial = remember { Geospatial.getInstance(session) } val geospatialState by geospatial.state.collectAsStateWithLifecycle() if (geospatialState.geospatialTrackingState == Geospatial.GeospatialTrackingState.RUNNING) { // Queries to the Geospatial API are only valid when the state is RUNNING. }
SceneCore
val geospatial = Geospatial.getInstance(session) lifecycleScope.launch { geospatial.state.collect { geospatialState -> if (geospatialState == Geospatial.GeospatialTrackingState.RUNNING) { // Queries to the Geospatial API are only valid when the state is RUNNING. } } }
নির্ভুলতার মান বোঝা
Geospatial API চালু থাকাকালীন, এটি তিনটি অ্যাকুরেসি ভ্যালু প্রদান করে: হরাইজন্টাল, ভার্টিক্যাল এবং ওরিয়েন্টেশন অ্যাকুরেসি। এইসব নির্ভুলতার মান সময়ের সাথে সাথে আপডেট করা হয় এবং আরও ডেটা পাওয়া গেলে আরও নিখুঁত করা যেতে পারে। বড় ভ্যালু কম নির্ভুলতা নির্দেশ করে এবং ৬৮% কনফিডেন্স লেভেলের ব্যাসার্ধ হিসেবে সংজ্ঞায়িত করা হয়। অন্যভাবে বলতে গেলে, ৬৮% সম্ভাবনা আছে যে মূল ভ্যালু অনুমান করা ভ্যালুর প্রদত্ত ব্যাসার্ধের মধ্যে আছে।
বর্তমান নির্ভুলতার মান পেতে
Geospatial.State.horizontalAccuracy,
verticalAccuracy এবং
orientationYawAccuracy ব্যবহার করুন।
সঠিকভাবে কাজ করার জন্য আপনার অ্যাপের নির্দিষ্ট লেভেলের সুনির্দিষ্ট লোকেশন প্রয়োজন হতে পারে। যেমন, ভার্চুয়াল কন্টেন্ট রেন্ডার করার আগে আপনার অ্যাপ হয়ত অনুভূমিক অ্যাকুরেসি ৫ মিটারের কম হওয়া পর্যন্ত
অপেক্ষা করতে চাইবে। আরও নির্ভুল ডেটা পাওয়ার সম্ভাবনা বাড়াতে, আপনার অ্যাপের উচিত ব্যবহারকারীকে তার আশেপাশের এলাকা, বিশেষ করে Google Street View-তে আছে এমন বিল্ডিং বা অন্যান্য ফিচার যা খুব ভালোভাবে দেখা যায়, সেগুলি দেখতে বলা। প্রদত্ত লোকেশনে VPS উপলভ্য কিনা তা নির্ধারণ করতে
Geospatial.checkVpsAvailability
ব্যবহার করুন।
এর পরে কী করতে হবে
আপনার অ্যাপে Geospatial API সঠিকভাবে সেট-আপ করা থাকলে, আপনার অ্যাপ নিম্নলিখিত কাজগুলি করতে পারবে:
- ডিভাইস-লোকাল পোজ এবং জিওস্পেশিয়াল পোজের মধ্যে কনভার্ট করা,
- জিওস্পেশিয়াল পোজ অনুযায়ী কন্টেন্ট রেন্ডার করা