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

Streetscape Geometry API'leri, bir sahnedeki arazinin, binaların veya diğer yapıların geometrisini sunar. Geometri; isabet testi API'leri aracılığıyla AR içeriğini kapamak, 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 deneyin

GeospatialExample uygulaması, Streetscape Geometri'lerinin nasıl alınıp oluşturulduğunu gösterir.

Geospatial API'yi ayarlama

Streetscape Geometri'yi kullanmak için projenizde Geospatial API'yi ayarlamanı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 nesnenin tümünü almak için GARFrame.streetscapeGeometries işlevini kullanın.

GARStreetscapeGeometry adlı ürünü anlayın

GARStreetscapeGeometry bir bina hakkında bilgiler içerir:

Bina LOD 1

GARStreetscapeGeometryQualityBuildingLOD_1, yukarı doğru düz bir tepeye uzanan bina ayak izlerinden oluşur. Bina yükseklikleri doğru olmayabilir.

Bina LOD 2

GARStreetscapeGeometryQualityBuildingLOD_2, geometriye daha iyi uyum sağlar. Örgü duvarlar ve çatılar binanın şekliyle daha uyumlu olacaktır. Bacalar veya çatı menfezleri gibi küçük detaylar yine de ağın dışına kırılabilir.

GARMesh adlı ürünü anlayın

GARMesh, Streetscape Geometrisinin yüzey yeniden yapısını temsil eden bir poligon örgüdür. Her GARMesh bir köşe arabelleği ve dizin arabelleği içerir:

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

GARStreetscapeGeometry.meshTransform yakınında belirli bir pozda bir çapa oluşturmak için GARSesssion.createAnchorOnStreetscapeGeometry:transform:error: aracını kullanın. Bu sabit, izleme durumunu üst öğeden (GARStreetscapeGeometry) devralacak.

GARStreetscapeGeometry ile isabet testi yapın.

GARSession.raycastStreetscapeGeometry:direction:error:, Streetscape Geometry'de isabet testi yapmak için kullanılabilir. Kesişmeler bulunursa GARStreetscapeGeometryRaycastResult, isabet konumuyla ilgili poz bilgilerinin yanı sıra isabet alan GARStreetscapeGeometry için bir referans içerir. Bu Streetscape Geometrisi, kendisine ekli bir çapa oluşturulması için GARSesssion.createAnchorOnStreetscapeGeometry:transform:error:'e iletilebilir.

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