
Halaman ini membahas contoh cara menambahkan peta 3D dasar ke aplikasi iOS menggunakan Maps 3D SDK untuk iOS. Petunjuk di halaman ini mengasumsikan bahwa Anda telah menyelesaikan langkah-langkah di halaman Penyiapan dan memiliki hal berikut:
- Project Google Cloud dengan Maps 3D SDK for iOS yang diaktifkan
- Kunci API untuk Maps 3D SDK for iOS
- Xcode versi 16.0 atau yang lebih baru dengan paket Maps 3D SDK for iOS ditambahkan.
Untuk mengetahui informasi selengkapnya tentang prasyarat ini, lihat Penyiapan.
Ikuti codelab yang lebih lanjut.
Lihat contoh kode lainnya di GitHub.
Bagian 1: Membuat aplikasi SwiftUI dasar
- Buat aplikasi baru di Xcode.
- Tetapkan Product Name ke
Hello3DWorld, dengan ID organisasi ditetapkan kecom.example. Nama paket harus berupacom.example.Hello3DWorld. - Pilih antarmuka SwiftUI.
- Tambahkan library Maps 3D ke aplikasi Anda. Lihat petunjuk di bagian penyiapan.
Bagian 2: Menambahkan peta
Buka file bernama
ContentView.swift. Ini adalah titik entri dan navigasi utama untuk aplikasi Anda.Impor
SwiftUIdan paketGoogleMaps3D.Ganti semua kode di dalam deklarasi isi dengan Map(mode: .hybrid).
Konfigurasi awal minimum yang perlu Anda berikan untuk melakukan inisialisasi
MapadalahMapMode:.hybrid,.roadmap, atau.satellite
File
ContentView.swiftAnda seharusnya terlihat seperti ini:import SwiftUI import GoogleMaps3D struct ContentView: View { var body: some View { Map(mode: .hybrid) } } #Preview { ContentView() }
Bagian 3: Tetapkan kunci API Anda.
Kunci API harus ditetapkan sebelum Peta diinisialisasi. Lakukan ini dengan menetapkan
Map.apiKeydi pengendali peristiwainit()dariViewyang berisi Peta.import SwiftUI import GoogleMaps3D struct ContentView: View { init () { Map.apiKey = "YOUR_API_KEY" } var body: some View { Map(mode: .hybrid) } }
Bagian 4: Menggunakan kamera untuk mengontrol tampilan peta
Tampilan Peta 3D dikontrol oleh class Camera. Pada langkah ini, Anda akan mempelajari
cara menentukan lokasi, ketinggian, arah, kemiringan, rotasi, dan rentang untuk
menyesuaikan tampilan peta.
Ubah panggilan fungsi
Map()untuk menyertakan propertiinitialCamera. Lakukan inisialisasiinitialCamerauntuk menampilkan tampilan pusat kota Manhattan.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) } }
Kode di atas menetapkan nilai untuk parameter berikut:
center:LatLngAltitudeyang mewakili lokasi kameraheading: Bearing dalam derajat dari utara untuk mengarahkan kamera.tilt: Sudut kemiringan dalam derajat, dengan 0 adalah tepat di atas kepala dan 90 adalah melihat secara horizontal.roll: Sudut rotasi di sekitar bidang vertikal kamera, dalam derajat.range: Jarak kamera dalam meter dari lokasi lintang, bujurfieldOfView: Sudut yang mewakili ruang pandang kamera
Jika Anda tidak memberikan parameter tambahan ini, nilai default akan digunakan.
Agar tampilan kamera menampilkan lebih banyak data 3D, tetapkan parameter awal untuk menampilkan tampilan yang lebih dekat dan miring.
Bagian 5: Melihat pratinjau dan menjalankan aplikasi
Menambahkan Pratinjau Xcode
Pratinjau adalah fitur XCode canggih yang memungkinkan Anda melihat dan berinteraksi dengan Aplikasi tanpa harus menggunakan Simulator atau perangkat eksternal.
Untuk menambahkan pratinjau, tambahkan blok kode
#Preview {}di luar struct Anda.#Preview { ContentView() }Menjalankan aplikasi
Bangun dan jalankan aplikasi.
Status pemuatan peta dan status error
Maps 3D SDK for iOS otomatis menampilkan masukan visual bawaan saat
mengelola status Map:
- Overlay pemuatan: Indikator progres di tengah ditampilkan saat tampilan peta pertama kali diinisialisasi atau dimuat.
- Overlay error: Overlay error ditampilkan jika peta gagal dimuat.
Jika Anda menerapkan gaya visual peta berbasis cloud menggunakan
style(mapID:error:)
di Map, Anda
dapat meneruskan closure error untuk menangani error pemuatan gaya.
Memproses peristiwa ketukan peta
Untuk memproses peristiwa ketukan di peta, terapkan pengubah
onTap(_:)
ke Map.
Saat pengguna mengetuk peta, closure akan menerima nilai
MapTapInfo
yang memberikan
location
(LatLngAltitude)
dan
content
yang diketuk
(MapTapInfo.Content.map
atau
MapTapInfo.Content.place(id:)).
Untuk informasi selengkapnya tentang interaksi lokasi menarik, lihat
Berinteraksi dengan lokasi menarik.
Map(mode: .hybrid)
.onTap { tapInfo in
print("Tapped at \(tapInfo.location), content: \(tapInfo.content)")
}
Selamat!
Anda telah berhasil menambahkan peta 3D ke aplikasi.
Selanjutnya, Anda dapat mempelajari fitur lanjutan Maps 3D SDK for iOS, seperti animasi jalur kamera, penanda 3D, atau poligon.