
Bu sayfada, iOS için Haritalar 3D SDK'sını kullanarak iOS uygulamasına temel bir 3D harita ekleme örneği açıklanmaktadır. Bu sayfadaki talimatlar, Kurulum sayfasındaki adımları tamamladığınızı ve aşağıdakilere sahip olduğunuzu varsayar:
- iOS için Haritalar 3D SDK'sının etkin olduğu bir Google Cloud projesi
- iOS için Haritalar 3D SDK'sı API anahtarı
- iOS için Haritalar 3D SDK'sı paketi eklenmiş Xcode 16.0 veya sonraki bir sürüm
Bu ön koşullar hakkında daha fazla bilgi için Kurulum bölümüne bakın.
Daha ileri düzey bir codelab'i takip edin.
GitHub'da daha fazla kod örneği inceleyin.
1. bölüm: Temel bir SwiftUI uygulaması oluşturma
- Xcode'da yeni bir uygulama oluşturun.
- Ürün Adı'nı
Hello3DWorld, kuruluş tanımlayıcısınıcom.exampleolarak ayarlayın. Paket adıcom.example.Hello3DWorldolmalıdır. - SwiftUI arayüzünü seçin.
- Maps 3D kitaplığını uygulamanıza ekleyin. Kurulum bölümündeki talimatları inceleyin.
2. bölüm: Harita ekleme
ContentView.swiftadlı dosyayı açın. Bu, uygulamanızın giriş noktası ve ana gezinme alanıdır.SwiftUIveGoogleMaps3Dpaketini içe aktarın.Gövde beyanındaki tüm kodu Map(mode: .hybrid) ile değiştirin.
Bir
Mapilk kullanıma hazırlamak için sağlamanız gereken minimum başlangıç yapılandırmasıMapMode:.hybrid,.roadmapveya.satellite
ContentView.swiftdosyanız şu şekilde görünmelidir:import SwiftUI import GoogleMaps3D struct ContentView: View { var body: some View { Map(mode: .hybrid) } } #Preview { ContentView() }
3. bölüm: API anahtarınızı ayarlama
API anahtarı, harita başlatılmadan önce ayarlanmalıdır. Bunu yapmak için haritayı içeren
Viewöğesinininit()etkinlik işleyicisindeMap.apiKeydeğerini ayarlayın.import SwiftUI import GoogleMaps3D struct ContentView: View { init () { Map.apiKey = "YOUR_API_KEY" } var body: some View { Map(mode: .hybrid) } }
4. bölüm: Harita görünümünü kontrol etmek için kamera kullanma
3D harita görünümleri Camera sınıfı tarafından kontrol edilir. Bu adımda, harita görünümünü özelleştirmek için konum, rakım, yön, eğim, dönüş ve menzili nasıl belirteceğinizi öğreneceksiniz.
Map()işlev çağrısını,initialCameraözelliğini içerecek şekilde değiştirin. Manhattan'ın şehir merkezini göstermek içininitialCameraöğesini başlatın.import SwiftUI import GoogleMaps3D struct ContentView: View { init () { Map.apiKey = "YOUR_API_KEY" } var body: some View { Map(initialCamera: .init( center: .init(latitude: 40.748339, longitude: -73.985912, altitude: 211.1), heading: 52, tilt: 68, roll: 0.0, range: 1039, fieldOfView: .degrees(50) ), mode: .hybrid) } }
Yukarıdaki kod, şu parametrelerin değerlerini ayarlar:
center: Kamera konumunu temsil edenLatLngAltitudeheading: Kameranın doğrultulacağı, kuzeyden itibaren derece cinsinden yön.tilt: Derece cinsinden eğim açısı. 0, doğrudan yukarıyı, 90 ise yatay bakışı gösterir.roll: Kameranın dikey düzlemi etrafındaki dönüş açısı (derece cinsinden).range: Kameranın enlem ve boylam konumuna olan metre cinsinden mesafesifieldOfView: Kamera görüş alanını temsil eden açı
Bu ek parametrelerden herhangi birini sağlamazsanız varsayılan bir değer kullanılır.
Kamera görünümünde daha fazla 3D veri göstermek için ilk parametreleri daha yakın ve eğik bir görünüm gösterecek şekilde ayarlayın.
5. bölüm: Uygulamanızı önizleme ve çalıştırma
Xcode önizlemesi ekleme
Önizlemeler, simülatör veya harici bir cihaz kullanmak zorunda kalmadan uygulamanızı görmenizi ve uygulamanızla etkileşim kurmanızı sağlayan güçlü bir XCode özelliğidir.
Önizleme eklemek için yapınızın dışına bir
#Preview {}kod bloğu ekleyin.#Preview { ContentView() }Uygulamayı çalıştırma
Uygulamayı derleyip çalıştırın.
Harita yükleme ve hata durumları
iOS için Haritalar 3D SDK'sı, Map durumunu yönetirken yerleşik görsel geri bildirimleri otomatik olarak gösterir:
- Yükleme yer paylaşımı: Harita görünümü ilk kez başlatıldığında veya yüklenirken ortalanmış bir ilerleme göstergesi görüntülenir.
- Hata yer paylaşımı: Harita yüklenemezse bir hata yer paylaşımı gösterilir.
Map üzerinde style(mapID:error:) kullanarak bulut tabanlı harita stilleri uygularsanız stil yükleme hatalarını işlemek için bir error closure'ı iletebilirsiniz.
Haritaya dokunma etkinliklerini dinleme
Haritadaki dokunma etkinliklerini dinlemek için Map öğesine onTap(_:) değiştiricisini uygulayın.
Kullanıcı haritaya dokunduğunda, kapanış, location
(LatLngAltitude)
ve dokunulan
content
(MapTapInfo.Content.map
veya
MapTapInfo.Content.place(id:))
bilgilerini sağlayan bir
MapTapInfo
değeri alır.
Önemli yer etkileşimleri hakkında daha fazla bilgi için
Önemli yerlerle etkileşim kurma başlıklı makaleyi inceleyin.
Map(mode: .hybrid)
.onTap { tapInfo in
print("Tapped at \(tapInfo.location), content: \(tapInfo.content)")
}
Tebrikler!
Uygulamaya 3D harita eklediniz.
Ardından, iOS için Haritalar 3D SDK'sının kamera yolu animasyonları, 3D işaretçiler veya poligonlar gibi daha ileri seviye özelliklerini keşfedebilirsiniz.