Streetscape Geometry API का इस्तेमाल करके, किसी सीन में इलाके, इमारतों या अन्य स्ट्रक्चर की ज्यामिति की जानकारी मिलती है. ज्यामिति का इस्तेमाल हिट-टेस्ट एपीआई के ज़रिए एआर (ऑगमेंटेड रिएलिटी) कॉन्टेंट को रोकने, रेंडर करने या उसे रखने के लिए किया जा सकता है. Streetscape Geometry का डेटा, Google Street View की तस्वीरों के ज़रिए लिया जाता है.
सैंपल आज़माएं
GeospatialExample ऐप्लिकेशन से पता चलता है कि Streetscape Geometrys को फ़ेच और रेंडर कैसे किया जाता है.
Geospatial API को सेट अप करना
Streetscape Geometry का इस्तेमाल करने के लिए, आपको अपने प्रोजेक्ट में Geospatial API को सेट अप करना होगा. Geospatial API को सेट अप करने के लिए, Geospatial API को चालू करना से जुड़े निर्देशों का पालन करें.
स्ट्रीटस्केप जियोमेट्री चालू करें
जब GARGeospatialMode
को GARGeospatialModeEnabled
पर और GARStreetscapeGeometryMode
को GARStreetscapeGeometryModeEnabled
पर सेट किया जाता है, तो Geospatial API, Streetscape की ज्यामिति का डेटा इकट्ठा करता है.
GARSessionConfiguration *configuration = [[GARSessionConfiguration alloc] init];
configuration.geospatialMode = GARGeospatialModeEnabled;
configuration.streetscapeGeometryMode = GARStreetscapeGeometryModeEnabled;
[garSession setConfiguration:configuration error:&error];
किसी ARCore सत्र में स्ट्रीटस्केप ज्यामिति पाएं
सभीGARStreetscapeGeometry
ऑब्जेक्ट पाने के लिए, GARFrame.streetscapeGeometries
का इस्तेमाल करें.
GARStreetscapeGeometry
को समझें
GARStreetscapeGeometry
में किसी इमारत की जानकारी है:
-
GARStreetscapeGeometry.type
StreetscapeGeometry की पहचान इलाके या इमारत के तौर पर करता है. -
GARStreetscapeGeometry.mesh
कोई ऐसा पॉलीगॉनGARMesh
चुनें जो इस इलाके या इमारत से मेल खाता हो. -
GARStreetscapeGeometry.meshTransform
ज्यामिति की शुरुआत कहां से हुई.GARMesh
के सभी पॉइंट,GARStreetscapeGeometry.meshTransform
तक बदल जाने चाहिए. -
GARStreetscapeGeometry.quality
इससे मेश डेटा की क्वालिटी के बारे में पता चलता है. जानकारी के लेवल CityGML 2.0 स्टैंडर्ड में बताए गए हैं.
बिल्डिंग LOD 1
GARStreetscapeGeometryQualityBuildingLOD_1
में, इमारत के पैरों के निशान होते हैं, जिन्हें सपाट ऊपरी हिस्से से, ऊपर की ओर निकाला जाता है. इमारत की ऊंचाई गलत हो सकती है.
बिल्डिंग एलओडी 2
GARStreetscapeGeometryQualityBuildingLOD_2
की फ़िडेलिटी वाली ज्यामिति ज़्यादा होगी. मेश दीवारें और छतें इमारत के आकार से ज़्यादा बारीकी से मेल खाएंगी. चिमनी या छत के छेद जैसी छोटी सुविधाएं अब भी मेश के बाहर निकल सकती हैं.
GARMesh
को समझें
GARMesh
एक पॉलीगॉन मेश है, जो स्ट्रीटस्केप जियोमेट्री की सतह को फिर से बनाने का तरीका दिखाता है.
हर 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];