স্ট্রিটস্কেপ জ্যামিতি API একটি দৃশ্যে ভূখণ্ড, ভবন বা অন্যান্য কাঠামোর জ্যামিতি প্রদান করে। জ্যামিতিটি হিট-টেস্ট API-এর মাধ্যমে আটকানো, রেন্ডারিং বা AR সামগ্রী রাখার জন্য ব্যবহার করা যেতে পারে। স্ট্রিটস্কেপ জ্যামিতি ডেটা Google রাস্তার দৃশ্য চিত্রের মাধ্যমে প্রাপ্ত করা হয়।
নমুনা চেষ্টা করুন
geospatial_java নমুনা অ্যাপটি দেখায় কিভাবে স্ট্রিটস্কেপ জ্যামিতি প্রাপ্ত এবং রেন্ডার করা যায়।
Geospatial API সেট আপ করুন
স্ট্রিটস্কেপ জ্যামিতি ব্যবহার করতে, আপনাকে আপনার প্রকল্পে জিওস্পেশিয়াল API সেট আপ করতে হবে। জিওস্পেশিয়াল এপিআই সেট আপ করতে জিওস্পেশিয়াল এপিআই সক্ষম করার নির্দেশাবলী অনুসরণ করুন।
স্ট্রিটস্কেপ জ্যামিতি সক্ষম করুন
যখন GeospatialMode
GeospatialMode.ENABLED
এ সেট করা হয় এবং StreetscapeGeometryMode
StreetscapeGeometryMode.ENABLED
এ সেট করা হয় তখন Geospatial API Streetscape জ্যামিতি ডেটা পায়।
জাভা
Config config = session.getConfig(); // Streetscape Geometry requires the Geospatial API to be enabled. config.setGeospatialMode(Config.GeospatialMode.ENABLED); // Enable Streetscape Geometry. config.setStreetscapeGeometryMode(Config.StreetscapeGeometryMode.ENABLED); session.configure(config);
কোটলিন
session.configure( session.config.apply { // Streetscape Geometry requires the Geospatial API to be enabled. geospatialMode = Config.GeospatialMode.ENABLED // Enable Streetscape Geometry. streetscapeGeometryMode = Config.StreetscapeGeometryMode.ENABLED } )
একটি ARCore সেশনে স্ট্রিটস্কেপ জ্যামিতি পান
Session.getAllTrackables()
ব্যবহার করুন এবং ফলাফল ফিল্টার করতে StreetscapeGeometry.class
ব্যবহার করুন।জাভা
session.getAllTrackables(StreetscapeGeometry.class);
কোটলিন
session.getAllTrackables(StreetscapeGeometry::class.java)
StreetscapeGeometry
বুঝুন
StreetscapeGeometry
একটি বিল্ডিং সম্পর্কে তথ্য রয়েছে:
-
StreetscapeGeometry.getType()
স্ট্রিটস্কেপ জ্যামিতিকে ভূখণ্ড বা বিল্ডিং হিসাবে চিহ্নিত করে। -
StreetscapeGeometry.getMesh()
একটি বহুভুজMesh
পান যা এই ভূখণ্ড বা ভবনের সাথে মিলে যায়। -
StreetscapeGeometry.getMeshPose()
জ্যামিতির উৎপত্তি বর্ণনা করে।Mesh
সমস্ত পয়েন্টStreetscapeGeometry.getMeshPose()
দ্বারা রূপান্তরিত করা উচিত। -
StreetscapeGeometry.getQuality()
জাল ডেটার গুণমান সরবরাহ করে। সিটিজিএমএল 2.0 স্ট্যান্ডার্ডে বিশদ স্তরগুলি বর্ণনা করা হয়েছে।
বিল্ডিং LOD 1
StreetscapeGeometry.Quality.BUILDING_LOD_1
বিল্ডিং পায়ের ছাপ একটি সমতল শীর্ষে উপরের দিকে বের করে নিয়ে গঠিত। বিল্ডিং উচ্চতা ভুল হতে পারে.
বিল্ডিং LOD 2
StreetscapeGeometry.Quality.BUILDING_LOD_2
এর উচ্চতর বিশ্বস্ত জ্যামিতি থাকবে। জাল দেয়াল এবং ছাদগুলি বিল্ডিংয়ের আকারের সাথে আরও ঘনিষ্ঠভাবে মিলবে। চিমনি বা ছাদের ভেন্টের মতো ছোট বৈশিষ্ট্যগুলি এখনও জালের বাইরে খোঁচা দিতে পারে।
Mesh
বুঝুন
Mesh
হল একটি বহুভুজ জাল যা স্ট্রিটস্কেপ জ্যামিতির একটি পৃষ্ঠ পুনর্গঠনের প্রতিনিধিত্ব করে। প্রতিটি Mesh
একটি শীর্ষবিন্দু বাফার এবং সূচক বাফার অন্তর্ভুক্ত করে:
-
Mesh.getVertexListSize()
এই জালের শীর্ষবিন্দুর সংখ্যা পুনরুদ্ধার করে। -
Mesh.getVertexList()
StreetscapeGeometry.getMeshPose()
এর সাপেক্ষে স্থানাঙ্কে, জাল শীর্ষবিন্দুর সংযুক্ত অবস্থানগুলি পান। -
Mesh.getIndexListSize()
এই জালের মধ্যে সূচকের সংখ্যা পুনরুদ্ধার করে। -
Mesh.getIndexList()
একটি মুখ তৈরি করে এমন শীর্ষবিন্দুগুলির সূচীগুলি পান৷
একটি StreetscapeGeometry
এআর সামগ্রী সংযুক্ত করুন
স্ট্রিটস্কেপ জ্যামিতিতে এআর সামগ্রী সংযুক্ত করার দুটি উপায় রয়েছে:- ভূ-স্থানিক গভীরতা সক্ষম করুন এবং একটি গভীরতা হিট-পরীক্ষা ব্যবহার করুন৷ এটি সুপারিশকৃত এবং সহজ পদ্ধতি।
- একটি
StreetscapeGeometry
এর সাথে সংযুক্ত একটি প্রদত্ত ভঙ্গিতে একটি অ্যাঙ্কর তৈরি করতেTrackable.createAnchor()
ব্যবহার করুন। এই অ্যাঙ্করটি এর ট্র্যাকিং অবস্থার উত্তরাধিকারী হবে মূলStreetscapeGeometry
থেকে।
StreetscapeGeometry
বিরুদ্ধে একটি হিট-পরীক্ষা করুন
Frame.hitTest()
Streetscape জ্যামিতির বিরুদ্ধে হিট-টেস্ট করতে ব্যবহার করা যেতে পারে। যদি ছেদগুলি পাওয়া যায়, HitResult
হিট অবস্থান সম্পর্কে পোজ তথ্যের পাশাপাশি StreetscapeGeometry
একটি রেফারেন্স রয়েছে যা হিট হয়েছিল৷ এই স্ট্রিটস্কেপ জ্যামিতিটি Trackable.createAnchor()
এর সাথে সংযুক্ত একটি অ্যাঙ্কর তৈরি করতে পাস করা যেতে পারে।
জাভা
for (HitResult hit : frame.hitTest(singleTapEvent)) { if (hit.getTrackable() instanceof StreetscapeGeometry) { Pose hitPose = hit.getHitPose(); hit.getTrackable().createAnchor(hitPose); } }
কোটলিন
for (hit in frame.hitTest(singleTapEvent)) { if (hit.trackable is StreetscapeGeometry) { val hitPose = hit.hitPose hit.trackable.createAnchor(hitPose) } }
ভূ-স্থানিক গভীরতা সক্ষম করুন
ভূ-স্থানিক গভীরতা গভীরতার ডেটা উন্নত করতে স্থানীয় সেন্সর ইনপুটের সাথে স্ট্রিটস্কেপ জ্যামিতিকে একত্রিত করে। যখন ভূ-স্থানিক গভীরতা সক্ষম করা হয়, আউটপুট গভীরতা এবং কাঁচা গভীরতার চিত্রগুলিকে স্থানীয়ভাবে পর্যবেক্ষণ করা গভীরতার পাশাপাশি রাস্টারাইজড স্ট্রিটস্কেপ জ্যামিতি অন্তর্ভুক্ত করার জন্য পরিবর্তন করা হয়। এটি গভীরতা ব্যবহার করে ভঙ্গির নির্ভুলতা উন্নত করতে পারে।