iOS'te etrafınızdaki binaları ve arazileri kullanın

Streetscape Geometri API'leri, bir sahnedeki arazinin, binaların veya diğer yapıların geometrisini sağlar. Geometri, isabet testi API'leri aracılığıyla AR içeriğini örtmek, oluşturmak veya yerleştirmek için kullanılabilir. Streetscape Geometri verileri, Google Street View görüntüleri aracılığıyla elde edilir.

Örneği dene

GeospatialExample uygulaması, Streetscape Geometries'in nasıl edinileceğini ve oluşturulacağını gösterir.

Geospatial API'yi ayarlama

Streetscape Geometri'yi kullanmak için projenizde Geospatial API'yi kurmanız gerekir. Geospatial API'yi ayarlamak için Geospatial API'yi Etkinleştirme bölümündeki talimatları uygulayın.

Streetscape Geometrisini Etkinleştir

Geospatial API, GARGeospatialMode GARGeospatialModeEnabled ve GARStreetscapeGeometryMode GARStreetscapeGeometryModeEnabled olarak ayarlandığında Streetscape Geometri verilerini alır.

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

ARCore oturumunda Streetscape Geometrisi elde etme

GARStreetscapeGeometry nesnelerin tümünü almak için GARFrame.streetscapeGeometries işlevini kullanın.

GARStreetscapeGeometry'i anlama

GARStreetscapeGeometry bir bina hakkında bilgi içeriyor:

Bina YK 1

GARStreetscapeGeometryQualityBuildingLOD_1, yukarı doğru düz bir yüzeye uzatılmış bina ayak izlerinden oluşur. Bina yükseklikleri yanlış olabilir.

Bina LOD'si 2

GARStreetscapeGeometryQualityBuildingLOD_2 daha yüksek doğruluklu geometriye sahip olur. Örgü duvarlar ve çatılar binanın şekliyle daha yakından eşleşir. Bacalar veya çatı havalandırmaları gibi daha küçük detaylar, ağın dışına çıkmaya devam edebilir.

GARMesh'i anlama

GARMesh, Streetscape geometrisinin yüzey rekonstrüksiyonunu temsil eden bir poligon örgüsüdür. Her GARMesh bir köşe arabelleği ve dizin arabelleği içerir:

GARStreetscapeGeometry'e artırılmış gerçeklik (AR) içeriği ekleme

GARStreetscapeGeometry.meshTransform yakınındaki belirli bir pozda sabit oluşturmak için GARSesssion.createAnchorOnStreetscapeGeometry:transform:error: simgesini kullanın. Bu sabit, izleme durumunu üst GARStreetscapeGeometry öğesinden devralır.

GARStreetscapeGeometry üzerinde isabet testi gerçekleştirin

GARSession.raycastStreetscapeGeometry:direction:error:, Streetscape geometrisine karşı isabet testi yapmak için kullanılabilir. Kesişimler bulunursa, GARStreetscapeGeometryRaycastResult isabet konumu hakkında poz bilgilerinin yanı sıra isabet edilen GARStreetscapeGeometry için bir referans içerir. Bu Streetscape geometrisi, kendisine ekli bir sabit dosya oluşturmak için GARSesssion.createAnchorOnStreetscapeGeometry:transform:error: öğesine iletilebilir.

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