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

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

Örneği deneyin

GeospatialExample uygulaması, Streetscape geometrilerinin nasıl elde edilip oluşturulacağını gösterir.

Coğrafi API'yi ayarlama

Sokak Görünümü Geometrisi'ni kullanmak için projenizde Coğrafi API'yi ayarlamanız gerekir. Geospatial API'yi ayarlamak için Geospatial API'yi etkinleştirme başlıklı makaledeki talimatları uygulayın.

Cadde Manzarası Geometrisini Etkinleştirme

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

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

ARCore oturumunda sokak manzarası geometrisini alma

Tüm GARStreetscapeGeometry nesnelerini almak için GARFrame.streetscapeGeometries kullanın.

GARStreetscapeGeometry hakkında bilgi edinme

GARStreetscapeGeometry, bir bina hakkındaki bilgileri içerir:

Bina LOD 1

GARStreetscapeGeometryQualityBuildingLOD_1, düz bir üst kısım olacak şekilde yukarı doğru uzatılmış bina ayak izlerinden oluşur. Bina yükseklikleri doğru olmayabilir.

Bina LOD 2

GARStreetscapeGeometryQualityBuildingLOD_2 daha yüksek kaliteli geometriye sahip olacaktır. Örgü duvarlar ve çatılar, binanın şekline daha uygun olur. Bacalar veya çatı havalandırmaları gibi küçük özellikler yine de ağın dışına çıkabilir.

GARMesh hakkında bilgi edinme

GARMesh, sokak manzarası geometrisinin yüzey yeniden yapılandırmasını temsil eden bir poligon örgüsüdür. Her GARMesh, bir köşe ucu arabelleği ve dizin arabelleği içerir:

AR içeriğini GARStreetscapeGeometry'a ekleme

GARStreetscapeGeometry.meshTransform yakınında belirli bir duruşta bir anafor oluşturmak için GARSesssion.createAnchorOnStreetscapeGeometry:transform:error: simgesini kullanın. Bu ankraj, izleme durumunu üst öğe GARStreetscapeGeometry'den devralır.

GARStreetscapeGeometry ile isabet testi yapın

GARSession.raycastStreetscapeGeometry:direction:error:, Streetscape Geometrisi ile isabet testi yapmak için kullanılabilir. Kesişim bulunursa GARStreetscapeGeometryRaycastResult, isabet edilen konumla ilgili poz bilgilerinin yanı sıra isabet edilen GARStreetscapeGeometry'e referans içerir. Bu Streetscape Geometrisi, kendisine bağlı bir ankraj oluşturmak için GARSesssion.createAnchorOnStreetscapeGeometry:transform:error:'a iletilebilir.

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