GeospatialPose পৃথিবীর সাপেক্ষে মহাকাশে কোনও অবস্থানকে
বর্ণনা করে। এটি নিম্নলিখিত উপাদানগুলি নিয়ে গঠিত:
- অক্ষাংশ ও দ্রাঘিমাংশ, যা WGS84 স্পেসিফিকেশন দ্বারা সংজ্ঞায়িত ডিগ্রি হিসেবে নির্দিষ্ট করা হয়।
- উচ্চতা, যা WGS84 উপবৃত্তাকার থেকে মিটারে নির্দিষ্ট করা হয়, বা মোটামুটি সমুদ্রপৃষ্ঠ থেকে মিটারের সমতুল্য।
- ওরিয়েন্টেশন, যা EUS কোঅর্ডিনেট সিস্টেমে পোজের আনুমানিক দিক নির্দেশ করে। EUS কোঅর্ডিনেট সিস্টেমে X+ পূর্ব দিকে, Y+ উপরের দিকে এবং Z+ দক্ষিণ দিকে নির্দেশ করে।
Geospatial API ডিভাইসের জিওস্পেশিয়াল পোজ অ্যাক্সেস করার সুবিধা দেয় এবং জিওস্পেশিয়াল পোজ ও ডিভাইস-লোকাল পোজ-এর মধ্যে কনভার্ট করার সুবিধা দেয়।
পূর্বশর্ত
জিওস্পেশিয়াল পোজ পেতে ও কনভার্ট করতে, আপনার অ্যাপকে অবশ্যই জিওস্পেশিয়াল API ব্যবহার করার জন্য
সেট-আপ করতে হবে। Geospatial API-এর RUNNING স্ট্যাটাস থাকলে
তবেই Geospatial পোজ পাওয়া যাবে।
ডিভাইস-লোকাল পোজকে জিওস্পেশিয়াল পোজে কনভার্ট করা
ডিভাইস-লোকাল Pose-কে GeospatialPose-এ পরিবর্তন করা যেতে পারে, যেমন, পৃথিবীর সাপেক্ষে ব্যবহারকারীর ডিভাইসের অবস্থান নির্ধারণ করতে। এটি আপনাকে সাহায্য
করতে পারে:
- পারসিস্টেন্ট AR কন্টেন্ট তৈরি করুন, যেখানে ব্যবহারকারীর প্লেস করা ভার্চুয়াল অবজেক্ট সঠিকভাবে গ্লোবাল লোকেশনে অ্যাঙ্কর করা হয় যাতে পরে তা খুঁজে পাওয়া যায়।
- রিয়েল-টাইম নেভিগেশন বা জিও-ফেন্সড গেমপ্লে চালু করতে, ম্যাপে ব্যবহারকারীর অবস্থান ক্রমাগত আপডেট করার মাধ্যমে লোকেশন-ভিত্তিক অভিজ্ঞতা ট্রিগার করুন।
- লোকেশন-প্রাসঙ্গিক অ্যাপ্লিকেশন লজিক ট্রিগার করার জন্য ব্যবহারকারীর সুনির্দিষ্ট বাস্তব-জগতের প্রসঙ্গ নির্ধারণ করুন।
নিচের কোড স্যাম্পেল থেকে বোঝা যায় যে কীভাবে Geospatial.createGeospatialPoseFromPose() ব্যবহার করে
Pose-কে
GeospatialPose-এ পরিবর্তন করা যায়।
val devicePose = ArDevice.getInstance(session).state.value.devicePose // Convert the device Pose into a GeospatialPose. when (val result = geospatial.createGeospatialPoseFromPose(devicePose)) { is CreateGeospatialPoseFromPoseSuccess -> { val geoPose = result.pose val lat = geoPose.latitude val lon = geoPose.longitude val alt = geoPose.altitude // Orientation is in the EUS (East-Up-South) coordinate system. val orientation = geoPose.eastUpSouthQuaternion } is CreateGeospatialPoseFromPoseNotTracking -> { // Geospatial is not currently tracking. } else -> { // A newer exception was added, but your app is using an old version of the library } }
একটি জিওস্পেশিয়াল পোজকে ডিভাইস-লোকাল পোজে কনভার্ট করুন
এছাড়াও, আপনি GeospatialPose-কে ডিভাইস-লোকাল Pose-এ পরিবর্তন করতে পারবেন। এই
ট্রান্সফর্মেশন, ল্যান্ডমার্কের লোকেশন, নেভিগেশন পাথ বা স্থায়ী AR কন্টেন্টের মতো
বাস্তব-জগতের কোঅর্ডিনেট দ্বারা সংজ্ঞায়িত তথ্য নেয় এবং
ব্যবহারকারীর ডিভাইসের সঠিক ভিজ্যুয়াল স্পেসে এটি কনভার্ট করে।
নিম্নলিখিত কোড স্যাম্পেল থেকে জানা যায় যে কীভাবে
Geospatial.createPoseFromGeospatialPose()
ব্যবহার করে জিওস্পেশিয়াল পোজকে ডিভাইস-লোকাল পোজে পরিবর্তন করা যায়।
// Convert a GeospatialPose (lat/long/alt) back to a device-space Pose. when (val result = geospatial.createPoseFromGeospatialPose(geoPose)) { is CreatePoseFromGeospatialPoseSuccess -> { val devicePose: Pose = result.pose // devicePose is now ready to be used relative to the tracking origin. } is CreatePoseFromGeospatialPoseNotTracking -> { // Geospatial is not currently tracking. } is CreatePoseFromGeospatialPoseInternalError -> { // An internal error occurred. } else -> { // A newer exception was added, but your app is using an old version of the library } }