Streetscape Geometry API, किसी सीन में मौजूद इलाके, इमारतों या अन्य स्ट्रक्चर की ज्यामिति की जानकारी देते हैं. हिट-टेस्ट एपीआई की मदद से, ज्यामिति का इस्तेमाल ऑब्स्क्यूरेशन, रेंडरिंग या एआर कॉन्टेंट को प्लेस करने के लिए किया जा सकता है. Streetscape Geometry का डेटा, Google Street View की इमेज से मिलता है.
सैंपल आज़माएं
GeospatialExample ऐप्लिकेशन में, Streetscape की ज्यामिति पाने और उसे रेंडर करने का तरीका बताया गया है.
Geospatial API सेट अप करना
Streetscape Geometry का इस्तेमाल करने के लिए, आपको अपने प्रोजेक्ट में Geospatial API सेट अप करना होगा. जियोस्पेशियल एपीआई सेट अप करने के लिए, जियोस्पेशियल एपीआई चालू करने के निर्देशों का पालन करें.
स्ट्रीटस्केप ज्यामिति की सुविधा चालू करना
जब GARGeospatialMode
को GARGeospatialModeEnabled
और GARStreetscapeGeometryMode
को GARStreetscapeGeometryModeEnabled
पर सेट किया जाता है, तब Geospatial API, Streetscape Geometry का डेटा हासिल करता है.
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 Geometry की सतह को फिर से बनाने की सुविधा दिखाता है.
हर 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 Geometry के हिसाब से हिट-टेस्ट करने के लिए किया जा सकता है. अगर इंटरसेक्शन मिलते हैं, तो GARStreetscapeGeometryRaycastResult
में हिट की गई जगह के बारे में पोज़ की जानकारी होती है. साथ ही, उस GARStreetscapeGeometry
का रेफ़रंस भी होता है जिसे हिट किया गया था. इस स्ट्रीटस्केप ज्यामिति को 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];