iOS पर अपने आस-पास की इमारतों और इलाकों का इस्तेमाल करें

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

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

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

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

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

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

GARGeospatialMode को GARGeospatialModeEnabled और GARStreetscapeGeometryMode को GARStreetscapeGeometryModeEnabled पर सेट करने पर Geospatial API को Streetscape जियोमेट्री डेटा मिल जाता है.

GARSessionConfiguration *configuration = [[GARSessionConfiguration alloc] init];
configuration.geospatialMode = GARGeospatialModeEnabled;
configuration.streetscapeGeometryMode = GARStreetscapeGeometryModeEnabled;
[garSession setConfiguration:configuration error:&error];

ARCore सेशन में Streetscape ज्यामिति पाएं

सभी GARStreetscapeGeometry ऑब्जेक्ट पाने के लिए, GARFrame.streetscapeGeometries का इस्तेमाल करें.

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

GARStreetscapeGeometry में किसी बिल्डिंग की जानकारी शामिल है:

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

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

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

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

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

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

  • GARMesh.vertexCount
    इस मेश में वर्टेक्स की संख्या का पता लगाता है.
  • GARMesh.vertices
    के सापेक्ष निर्देशांक में, मेश शीर्षों की जुड़ी हुई स्थिति पाएं GARStreetscapeGeometry.meshTransform.
  • GARMesh.triangleCount
    इस मेश में इंडेक्स की संख्या की जानकारी हासिल करता है.
  • GARMesh.triangles
    चेहरे को बनाने वाले शीर्षों के इंडेक्स पाएं.

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

GARStreetscapeGeometry.meshTransform के पास, दिए गए पोज़ में ऐंकर बनाने के लिए, GARSesssion.createAnchorOnStreetscapeGeometry:transform:error: का इस्तेमाल करें. यह ऐंकर अपनी ट्रैकिंग स्थिति, पैरंट GARStreetscapeGeometry से इनहेरिट करेगा.

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

GARSession.raycastStreetscapeGeometry:direction:error: का इस्तेमाल, Streetscape की ज्यामिति के साथ हिट-टेस्ट करने के लिए किया जा सकता है. अगर कोई इंटरसेक्शन मिलता है, तो GARStreetscapeGeometryRaycastResult में हिट लोकेशन के बारे में पोज़ की जानकारी के साथ-साथ हिट GARStreetscapeGeometry का रेफ़रंस भी होता है. इस Streetscape ज्यामिति को GARSesssion.createAnchorOnStreetscapeGeometry:transform:error: को पास किया जा सकता है, ताकि इसके साथ ऐंकर बनाया जा सके.

NSArray<GARStreetscapeGeometryRaycastResult *> *results =
    [session raycastStreetscapeGeometry:arRaycastQuery.origin
                              direction:arRaycastQuery.direction
                                  error:&error];
[session createAnchorOnStreetscapeGeometry:results[0].streetscapeGeometry
                                 transform:results[0].worldTransform
                                     error:&error];