Google Haritalar Platformu'ndaki Geospatial Creator ve Places API ile geliştirme

1. Başlamadan önce

ARCore ve Google Haritalar Platformu'nun fotogerçekçi 3D döşemeleriyle desteklenen Unity'deki Geospatial Creator, belirli bir enlem ve boylam için artırılmış gerçeklik (AR) deneyimlerini Unity Editor'da hızlıca oluşturup görselleştirmenize olanak tanır. Bu, uygulamanız için tek bir coğrafi konumlu AR sahnesi oluşturma süresini büyük ölçüde azaltabilir. Ancak farklı konumlarda benzer deneyimler oluşturmak isterseniz ne yapmanız gerekir? Geospatial Creator'da C# API'yi kullanarak da bunu yapabilirsiniz.

Bu codelab'de, başlangıç şablonunu kullanarak birden fazla coğrafi deneyim oluşturmak için Geospatial Creator'ı ve Google Haritalar Platformu'ndaki Places API'yi kullanan C# kodu yazacaksınız. Elde edilen deneyimler, bir uygulamada derlenmeden önce Unity Editor'da keşfedilebilir ve ince ayar yapılabilir.

Kitap doğru yükseklikte olmalıdır.

Ön koşullar

Neler öğreneceksiniz?

  • Birden fazla konumda coğrafi olarak konumlandırılmış bir deneyim oluşturmak ve görselleştirmek için Geospatial Creator'da API'leri kullanma
  • Yerlerin konumlarını bulmak için Google Haritalar Platformu'ndaki Places API'yi kullanma
  • AR deneyimini cihazınızda çalıştırma

İhtiyacınız olanlar

2. Ortamınızı ayarlama

Geospatial Creator'ı kullanmak için Photorealistic 3D Tiles, Google Cloud'daki ARCore hizmetleri ve Google Haritalar Platformu'ndaki Places API'ye erişim yetkisi ayarlamanız gerekir.

Google Cloud projesi oluşturun

Bu codelab'de Google'ın sunucu API'lerine erişmek için faturalandırmanın etkin olduğu bir Google Cloud projesi gerekir. Bu codelab için faturalandırma ayarları gereklidir ancak yalnızca bir proje ücretsiz hizmet kotasını aşarsa ücretlendirilirsiniz.

Google Cloud'da proje oluşturmak için aşağıdaki adımları uygulayın:

  1. Google Cloud Console'da proje oluşturun.Google Cloud projesi oluşturma
  2. Proje adı metin kutusuna ARCore Geospatial Project gibi uygun bir ad girin ve ardından herhangi bir konumu seçin.
  3. Oluştur'u tıklayın.
  4. Proje seçici sayfasındaki Google Cloud Console'da Proje Oluştur'u tıklayın.
  5. Faturalandırmayı etkinleştirme başlıklı makaleyi inceleyin ve Fotogerçekçi 3D Döşemeler için fiyatlandırma ile Places API (Yeni) için fiyatlandırma hakkında bilgi edinin.

Map Tiles API'yi etkinleştirme

Map Tiles API, Unity Editor'da görünen Gerçekçi Fotoğraf 3B Parçalar'ı sağlar.

ARCore API'yi etkinleştirme

Google Cloud'daki ARCore API, hedef cihazda ARCore Geospatial API'ye erişmenizi sağlar.

Places API'yi etkinleştirme

Google Haritalar Platformu'ndaki Yerler API'si, 200 milyondan fazla yerin konum verilerini almanıza olanak tanır. Bu verileri, ilgili yerleri bulmak için codelab'de kullanacaksınız. Bu API, yerlerle ilgili arama sonuçları ve coğrafi koordinatlar sağlar.

Projeniz için API anahtarı oluşturma

Uygulamanızın kimliğini uzak Google Cloud hizmetleriyle doğrulamak için API anahtarı kimlik doğrulamasını kullanmak üzere aşağıdaki adımları uygulayın:

  1. Google Cloud Console'da API'ler ve hizmetler bölümünde Kimlik bilgileri'ni seçin.
  2. Sayfanın üst kısmında Kimlik bilgileri oluştur'u tıklayın ve API anahtarı'nı seçin.
  3. Sonraki adımlarda ihtiyacınız olacağından anahtarı not edin.

Yazılımı kurma

Geospatial Creator yazılımını kullanmaya başlamak için aşağıdaki adımları uygulayın:

  1. Bu depoyu klonlayın.
  2. Unity Hub'ı indirip Unity 2022.3 sürümünü yüklemek için kullanın. Android veya iOS için isteğe bağlı derleme araçlarını yüklediğinizden emin olun.
  3. Unity Hub'da Add > Add project from disk'e (Ekle > Diskten proje ekle) basın.
  4. Hiyerarşi panelinde AR Geospatial Creator Origin'i seçin.
  5. Google Haritalar Döşeme API Anahtarı metin kutusuna API anahtarını ekleyin ve Enter tuşuna (macOS'te return) basın.API anahtarınızı Geospatial Creator Origin'e ekleyin.
  6. Düzenle > Proje Ayarları > XR Eklenti Yönetimi > ARCore Uzantıları'nda Android veya iOS için API anahtarı kimlik doğrulamasını kullanın ve API anahtarını ekleyin.
  7. File > Build Settings (Dosya > Derleme Ayarları) bölümünde hedef platformu Android veya iOS olarak değiştirin.

3. İlk bağlantınızı oluşturun

Bu codelab'de, birden fazla konumda kullanılabilecek bir AR bağlantısı oluşturacaksınız. Örnek olarak San Francisco, Kaliforniya'daki halk kütüphanelerini kullanıyorsunuz ancak yakınınızdaki konumları kullanabilirsiniz.

Geospatial Creator'ın Origin bileşeni hakkında

Geospatial Creator ile oluşturulan her Unity sahnesi için tam olarak bir Geospatial Creator Origin gerekir. Bu oyun nesnesi, gerçek dünyadaki enlem, boylam ve yükseklik değerlerini Unity oyun koordinatlarına dönüştürmek için kullanılan referans noktasıdır.

Örnek proje, Cesium'u kullanarak Editör'ün Scene görünümünde fotogerçekçi 3D döşemeler oluşturmak için kullanılan bir Geospatial Creator Origin içerir. Bu sayede, AR içeriğinizin dünyada tam olarak nerede görüneceğini görselleştirebilirsiniz.

Başlangıç noktasını taşıma

Geospatial Creator başlangıcını San Francisco ana kütüphane şubesinin enlem ve boylamına taşıyın.

Başlangıç noktasını otomatik olarak doğru konuma taşımak için Geospatial Creator'ın Places API ile yerleşik entegrasyonunu kullanmak üzere aşağıdaki adımları uygulayın:

  1. Hierarchy (Hiyerarşi) panelinde Geospatial Creator Origin (Geospatial Creator Başlangıcı) oyun nesnesini seçin.
  2. İnceleyici panelinde Konum Ara'yı tıklayın.
  3. Arama iletişim kutusuna San Francisco Public Library yazın. İlk sonuç 100 Larkin Street adresinde olmalıdır.
  4. Arama sonucunu kaynağa uygulamak için Nesnelere uygula'yı tıklayın. Kaynağın enlemi ve boylamının yeni koordinatlarla güncellendiğini görmeniz gerekir.

Bina görünür durumda

Sahneye Geospatial Creator sabitleme noktası ekleme

Bir başlangıç noktası oluşturduktan sonra GameObject > XR > AR Geospatial Creator Anchor'ı kullanarak bir Geospatial Creator tutturma noktası ekleyin. Varsayılan olarak, sabitleme noktası kaynakla aynı konumda yer alır.

3D AR içeriğimizi konumlandırmak için bu tutturucuyu kullanın. Örnek projede bir kitabın 3D modeli yer alır.

Kitabı sahnenize yerleştirmek için aşağıdaki adımları uygulayın:

  1. Proje panelinde Kitap modelini Düzenleyici görünüm bölmesine sürükleyin.
  2. Hiyerarşi panelinde, Kitap'ın daha önce oluşturduğunuz sabitin alt öğesi olduğundan emin olun. Geospatial Creator sabitleme noktasının tüm alt oyun nesneleri, sabitleme noktasına göre konumlandırılır.
  3. Hiyerarşi panelinde Kitap'ı seçin. Konum değerlerini 0, 0, 0 olarak ayarlayın.

Kitap sahneye eklenir.

Bu modele Düzenleyici görünümünde baktığımızda bir sorun olduğu açıkça görülüyor: Sabitleme noktasının varsayılan yüksekliği, kütüphanenin çatı yüzeyinin altında. Oysa sabitleme noktasının çatı yüzeyinin çok üzerinde olması gerekiyor.

Yaklaşık WGS84 yüksekliğini bulmak için nesneyi düzenleyicide taşıyabilirsiniz ancak bu durumda, bulundukları yapının çatısına göre yüksekliklerinin otomatik olarak sabitlenmesi için Geospatial Anchor'ları Çatı Anchor'ı olarak yapılandırmanız tercih edilir.

  • Bunu yapmak için bağlantının denetleme panelini açın ve Altitude Type özelliğini Rooftop olarak ayarlayın.

Denetçi paneli

Bunu yaptıktan sonra, sabitleme noktasının yüksekliğinin Düzenleyici görünümünde değişmediğini unutmayın. Bunun nedeni, çatı ve arazi bağlantıları için bağlantı çözümlendiğinde bağlantının yüksekliğinin çalışma zamanında belirlenmesidir. Scene görünümünde çatıdaki sabitleme noktasını görselleştirmek için Karoya Yapıştır düğmesini kullanabilirsiniz. Bu, çalışma zamanında çözümlenen bağlantının yüksekliğini etkilemeden bağlantının yüksekliğini Scene görünümündeki döşemeyle eşleşecek şekilde ayarlar.

  • Modelin kütüphane çatısında durmak yerine üzerinde süzülmesini sağlamak için Altitude relative to rooftop parametresini çatıdan 15 metre yukarıda olacak şekilde değiştirin.

Model artık kitaplığın üzerinde güzelce kayıyor.

Kitap doğru yükseklikte olmalıdır.

Projenizde artık gerekli tüm AR sistemi bileşenleri, bir Coğrafi Konum Oluşturucu Kaynağı ve eklenmiş bir model içeren bir sabitleme noktası da dahil olmak üzere eksiksiz bir Coğrafi Konum AR sahnesi var.

Ardından, ek kitaplık konumlarında yinelenen çapalar oluşturun.

4. Places API ile yeni bağlantı konumları bulma

Google Maps Platform'un Places API'si, 200 milyonu aşkın yer için konum verileri almanıza olanak tanır. Bu codelab'de, San Francisco'daki halk kütüphanelerinin diğer şubelerini bulmak için bu API'yi kullanacak ve bu sonuçları kullanarak sonraki on arama sonucu için bir Geospatial Creator bağlantısı oluşturacaksınız.

  • Başlamak için Öğeler > Komut dosyaları > Düzenleyici'yi tıklayın ve ardından "AnchorDuplicator.cs" dosyasını açın. Bu dosya, Places API'yi kullanmaya başlamanıza ve sonuçlarını ayrıştırmanıza yardımcı olacak bazı standart kodlar içerir.

Places API ile kimlik doğrulama

  1. AnchorDuplicator sınıfında aşağıdaki satırı bulun:
    private const string API_KEY = "<YOUR_API_KEY_HERE>";
    
  2. <YOUR_API_KEY_HERE> kısmını kurulum adımlarında elde edilen anahtarla değiştirin.

Bir arama terimi için Places API'yi sorgulama

Places API yetkilendirme kurulumu tamamlandıktan sonra POST isteği başlatan kodu yazabilirsiniz.

  • Bunu yapmak için CreatePlacesRequest yöntemini bulun ve aşağıdaki yöntem tanımını kullanın:
    string postBody = "{ \"textQuery\": \"" + searchTerm + "\", " + 
                        "   \"locationBias\": { \"circle\": { " +
                        "      \"center\": { \"latitude\": " + lat + ", \"longitude\": " + lon + " }, " +
                        "      \"radius\": 10000 }" +
                        "   }" +
                        "}";
    
    string url = "https://places.googleapis.com/v1/places:searchText";
    
    UnityWebRequest request = UnityWebRequest.Post(url, postBody, "application/json");
    request.SetRequestHeader("X-Goog-Api-Key", apiKey);
    request.SetRequestHeader("X-Goog-FieldMask", "places.displayName,places.location");
    
    return request;
    
    Artık CreatePlacesRequest yöntemi çağrıldığında, lat ve lon merkezli bir daire içinde searchTerm öğesini arayan bir istek oluşturulur.

Çalışmanızı test etme

Devam etmeden önce Places API'ye yapılan çağrıların başarılı olduğunu doğrulamanız gerekir.

  1. İşlevleri Unity Düzenleyici'de çalıştırma:
    1. Google AR Codelab'de Run Places Request'i (Yer İsteğini Çalıştır) tıklayın.
    2. Unity konsolunu açın. Sonuçların görünmesi gerekir.Yerler Konsol&#39;da görünür

5. Yerlere programatik olarak bağlantı ekleme

Places API'nin sonuç bulduğunu doğruladığınıza göre, sonuçlarda belirtilen her konumda yeni Geospatial Creator bağlantıları oluşturun.

Menü öğesi oluşturma

  1. AnchorDuplicator sınıfında CreateNewAnchorsFromPlaces yöntemini bulun ve aşağıdaki yöntem tanımını kullanın:
    if (_places == null)
    {
        Debug.LogError("Cannot create anchors: Places has not been initialized.");
        return;
    }
    
    // You start with only one anchor in the scene, which you want to copy:
    var prototypeAnchorObject = GameObject
        .FindObjectOfType<ARGeospatialCreatorAnchor>()
        .gameObject;
    
    foreach (var place in _places)
    {
        var newAnchorObject = GameObject.Instantiate(prototypeAnchorObject);
        var anchor = newAnchorObject.GetComponent<ARGeospatialCreatorAnchor>();
        anchor.Latitude = place.location.latitude;
        anchor.Longitude = place.location.longitude;
    
        newAnchorObject.name = place.displayName.text;
    }
    
    Bu menü öğesi, daha önce başlatılmış bir isteği kontrol eder ve sahnenizdeki ilk ARGeospatialCreatorAnchor öğesini, Places API sonucundaki her yer için bir tane olacak şekilde bağlantı oluşturmak üzere prototip olarak kullanır.
  2. Çapaları oluşturmak için Google AR Codelab'deki yeni Create New Anchors from Places Response (Yer Yanıtlarından Yeni Çapalar Oluştur) menü öğesini kullanın.
  3. Hiyerarşi bölmesinde birden fazla bağlantı görünür.

Sabitleme noktalarının konumlarını doğrulama

Uygulamayı çalıştırmadan önce tüm öğelerin doğru konumlara sabitlendiğini doğrulamak için aşağıdaki adımları uygulayın:

  1. Hierarchy (Hiyerarşi) bölmesinde eklenen bir bağlantıyı tıklayın.
  2. F tuşuna basın.
  3. Scene görünümünde bağlantıyı inceleyin.
  4. Bir bağlantı doğru konumda değilse Tile'a Sabitle'yi tıklayın veya Latitude, Longitude ya da Editor Override Altitude değerlerini manuel olarak değiştirin.

6. Öğeyi AR'de görüntüleme

Öğeyi ARCore destekli Android veya iOS cihazınızda AR olarak görüntülemek için aşağıdaki adımları uygulayın:

  1. Dosya > Derleme Ayarları'nı tıklayın ve ardından Android veya iOS derleme platformlarını seçin.
  2. Platformu değiştir'i tıklayın.
  3. Geliştirme cihazınızın bağlı olduğundan ve geliştirme için yapılandırıldığından emin olun.
  4. Oluştur ve çalıştır'ı tıklayın.
  5. Uygulamanın cihazınızda çalıştığını onaylayın.
  6. İçeriği sabitlediğiniz konumları ziyaret edin. Örnekleri değiştirmediyseniz konumlar San Francisco'daki halk kütüphaneleridir.

AR deneyimini görüntüleme

7. Sonuç

Tebrikler! Başlangıç şablonunu kullanarak birden fazla coğrafi deneyim oluşturmak için Geospatial Creator ve Google Haritalar Platformu Places API'yi kullanan bir Unity uygulaması yazdınız. Bu bilgileri, Coğrafi İçerik Üreticisi içeriklerinizin erişimini genişletmek için kullanabileceğinizi umuyoruz.

Daha fazla bilgi