অ্যান্ড্রয়েড এসডিকে (কোটলিন/জাভা) এ আপনার চারপাশের ভবন এবং ভূখণ্ড ব্যবহার করুন

স্ট্রিটস্কেপ জ্যামিতি 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 একটি বিল্ডিং সম্পর্কে তথ্য রয়েছে:

বিল্ডিং 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 বিরুদ্ধে একটি হিট-পরীক্ষা করুন

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)
  }
}

ভূ-স্থানিক গভীরতা সক্ষম করুন

ভূ-স্থানিক গভীরতা গভীরতার ডেটা উন্নত করতে স্থানীয় সেন্সর ইনপুটের সাথে স্ট্রিটস্কেপ জ্যামিতিকে একত্রিত করে। যখন ভূ-স্থানিক গভীরতা সক্ষম করা হয়, আউটপুট গভীরতা এবং কাঁচা গভীরতার চিত্রগুলিকে স্থানীয়ভাবে পর্যবেক্ষণ করা গভীরতার পাশাপাশি রাস্টারাইজড স্ট্রিটস্কেপ জ্যামিতি অন্তর্ভুক্ত করার জন্য পরিবর্তন করা হয়। এটি গভীরতা ব্যবহার করে ভঙ্গির নির্ভুলতা উন্নত করতে পারে।