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
में किसी बिल्डिंग की जानकारी शामिल है:
-
GARStreetscapeGeometry.type
StreetscapeGeometry की पहचान इलाके या इमारत के तौर पर करता है. -
GARStreetscapeGeometry.mesh
ऐसा पॉलीगॉनGARMesh
पाएं जो इस इलाके या इमारत से मेल खाता हो. -
GARStreetscapeGeometry.meshTransform
ज्यामिति के मूल के बारे में बताता है.GARMesh
के सभी पॉइंटGARStreetscapeGeometry.meshTransform
तक बदल जाने चाहिए. -
GARStreetscapeGeometry.quality
मेश डेटा की क्वालिटी देता है. जानकारी के लेवल CityGML 2.0 स्टैंडर्ड में बताए गए हैं.
बिल्डिंग एलओडी 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];