Android SDK (Kotlin/Java) पर अपने आस-पास की इमारतों और इलाकों का इस्तेमाल करें

Streetscape Geometry API किसी सीन में इलाके, इमारतों या अन्य स्ट्रक्चर की ज्यामिति उपलब्ध कराता है. ज्यामिति का इस्तेमाल हिट-टेस्ट एपीआई की मदद से एआर कॉन्टेंट को शामिल करने, रेंडर करने या रखने के लिए किया जा सकता है. Streetscape ज्यामिति डेटा, Google Street View की तस्वीरों के ज़रिए लिया जाता है.

सैंपल आज़माएं

geospatial_java सैंपल ऐप्लिकेशन में, Streetscape की ज्यामिति पाने और उन्हें रेंडर करने का तरीका बताया गया है.

Geospatial API को सेट अप करना

Streetscape Geometry का इस्तेमाल करने के लिए, आपको अपने प्रोजेक्ट में Geospatial API को सेट अप करना होगा. Geospatial API को सेट अप करने के लिए, Geospatial API को चालू करने से जुड़े निर्देशों का पालन करें.

Streetscape ज्यामिति चालू करें

GeospatialMode को GeospatialMode.ENABLED और StreetscapeGeometryMode को StreetscapeGeometryMode.ENABLED पर सेट करने पर Geospatial API को Streetscape जियोमेट्री डेटा मिल जाता है.

Java

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

Kotlin

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 सेशन में Streetscape ज्यामिति पाएं

नतीजों को फ़िल्टर करने के लिए, Session.getAllTrackables() का इस्तेमाल करें. इसके बाद, StreetscapeGeometry.class का इस्तेमाल करें.

Java

session.getAllTrackables(StreetscapeGeometry.class);

Kotlin

session.getAllTrackables(StreetscapeGeometry::class.java)

StreetscapeGeometry के बारे में जानें

StreetscapeGeometry में किसी बिल्डिंग की जानकारी होती है:

बिल्डिंग का एलओडी 1

StreetscapeGeometry.Quality.BUILDING_LOD_1 में दीवार के ऊपरी हिस्से से बाहर की ओर बढ़ाए गए फ़ुटप्रिंट शामिल हैं. इमारत की ऊंचाई गलत हो सकती है.

बिल्डिंग एलओडी 2

StreetscapeGeometry.Quality.BUILDING_LOD_2 में हाई फ़िडेलिटी ज्यामिति होगी. मेश की दीवारें और छतें, इमारत के आकार से ज़्यादा मेल खाएंगी. चिमनी या छत के वेंट जैसी छोटी चीज़ें, अब भी मेश के बाहर दिख सकती हैं.

Mesh के बारे में जानें

Mesh एक पॉलीगॉन मेश है, जो Streetscape ज्यामिति का सरफ़ेस रीकंस्ट्रक्शन दिखाता है. हर Mesh में एक वर्टेक्स बफ़र और इंडेक्स बफ़र होता है:

  • Mesh.getVertexListSize()
    इस मेश में वर्टेक्स की संख्या का पता लगाता है.
  • Mesh.getVertexList()
    के सापेक्ष निर्देशांक में, मेश शीर्षों की जुड़ी हुई स्थिति पाएं StreetscapeGeometry.getMeshPose().
  • Mesh.getIndexListSize()
    इस मेश में इंडेक्स की संख्या की जानकारी हासिल करता है.
  • Mesh.getIndexList()
    चेहरे को बनाने वाले शीर्षों के इंडेक्स पाएं.

StreetscapeGeometry में एआर (ऑगमेंटेड रिएलिटी) कॉन्टेंट अटैच करें

Streetscape की ज्यामिति में एआर कॉन्टेंट अटैच करने के दो तरीके हैं:

StreetscapeGeometry के लिए हिट-टेस्ट करें

Frame.hitTest() का इस्तेमाल, Streetscape की ज्यामिति के साथ हिट-टेस्ट करने के लिए किया जा सकता है. अगर इंटरसेक्शन मिलते हैं, तो HitResult में हिट की गई जगह के बारे में पोज़ की जानकारी होती है. साथ ही, उस StreetscapeGeometry का रेफ़रंस भी होता है जिसे हिट किया गया था. इस Streetscape ज्यामिति को Trackable.createAnchor() को पास करके, उससे जुड़ा ऐंकर बनाया जा सकता है.

Java

for (HitResult hit : frame.hitTest(singleTapEvent)) {
  if (hit.getTrackable() instanceof StreetscapeGeometry) {
    Pose hitPose = hit.getHitPose();
    hit.getTrackable().createAnchor(hitPose);
  }
}

Kotlin

for (hit in frame.hitTest(singleTapEvent)) {
  if (hit.trackable is StreetscapeGeometry) {
    val hitPose = hit.hitPose
    hit.trackable.createAnchor(hitPose)
  }
}

जियोस्पेशल डेप्थ की सुविधा चालू करें

जियोस्पेशियल डेप्थ में स्ट्रीटस्केप ज्यामिति शामिल है इसमें स्थानीय सेंसर इनपुट इस्तेमाल किया जाता है, ताकि डेप्थ डेटा को बेहतर बनाया जा सके. जियोस्पेशियल डेप्थ की सुविधा चालू होने पर, आउटपुट डेप्थ और रॉ डेप्थ इमेज में बदलाव किया गया है, ताकि स्थानीय तौर पर देखी गई डेप्थ के साथ-साथ रास्टराइज़्ड स्ट्रीटस्केप ज्यामिति भी शामिल की जा सके. इससे, डेप्थ का इस्तेमाल करके पोज़ की सटीक जानकारी मिल सकती है.