
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 etkinleştirildiği 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 görebilirsiniz.
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 bildirimindeki tüm kodu Map(mode: .hybrid) ile değiştirin.
Bir
Mapilk kullanıma hazırlamak için sağlamanız gereken minimum ilk yapılandırmaMapMode:.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ı ayarlayın.
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çininitialCamerabaşlatılıyor.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 derece cinsinden yön.tilt: Derece cinsinden eğim açısı. 0, doğrudan yukarıyı, 90 ise yatay olarak bakmayı ifade eder.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österilmesi için başlangıç parametrelerini 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ı bir harita stili uygularsanız stil yükleme hatalarını işlemek için bir error kapanışı 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:)) değerini 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 gelişmiş özelliklerini keşfedebilirsiniz.