Halaman ini membahas contoh cara menambahkan peta 3D dasar ke aplikasi Android menggunakan Maps 3D SDK for Android. 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 Android diaktifkan
- Kunci API yang dikonfigurasi untuk digunakan dengan Maps 3D SDK for Android
- Project Android Studio yang disiapkan untuk digunakan dengan Maps 3D SDK for Android
Untuk mengetahui informasi selengkapnya tentang prasyarat ini, lihat Penyiapan.
Bagian 1: Perbarui File Tata Letak (activity_main.xml
) untuk menambahkan komponen Map3DView
Komponen Map3DView
adalah tampilan yang merender peta 3D dalam aplikasi.
Langkah-langkah berikut menambahkan komponen dan mengonfigurasi status awal peta, termasuk posisi kamera dan atribut terkait:
Buka file tata letak aktivitas utama Anda, yang biasanya terletak di
app/src/main/res/layout/activity_main.xml
.Di
ConstraintLayout
root (atau elemen tata letak root), tambahkan namespace XMLmap3d
:xmlns:map3d="http://schemas.android.com/apk/res-auto"
Hapus
<TextView>
default yang menampilkan "Hello World!".Tambahkan komponen
Map3DView
ke tata letak Anda. Anda dapat menyesuaikan posisi kamera dan atribut lainnya:<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:map3d="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <com.google.android.gms.maps3d.Map3DView android:id="@+id/map3dView" android:layout_width="match_parent" android:layout_height="match_parent" map3d:mode="hybrid" map3d:centerLat="38.544012" map3d:centerLng="-107.670428" map3d:centerAlt="2427.6" map3d:heading="310" map3d:tilt="63" map3d:range="8266" map3d:roll="0" map3d:minAltitude="0" map3d:maxAltitude="1000000" map3d:minHeading="0" map3d:maxHeading="360" map3d:minTilt="0" map3d:maxTilt="90" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
Bagian 2: Update MainActivity.kt
Langkah-langkah berikut menginisialisasi komponen Map3DView
yang ditambahkan ke file
activity_main.xml
di Bagian 1 dan mengelola peristiwa siklus proses komponen:
Buka file
MainActivity.kt
Anda, yang biasanya terletak diapp/src/main/java/com/example/yourpackagename/MainActivity.kt
.Tambahkan impor yang diperlukan untuk Maps 3D SDK for Android:
import com.google.android.gms.maps3d.GoogleMap3D import com.google.android.gms.maps3d.Map3DView import com.google.android.gms.maps3d.OnMap3DViewReadyCallback
Ubah class
MainActivity
untuk menerapkanOnMap3DViewReadyCallback
:class MainActivity : AppCompatActivity(), OnMap3DViewReadyCallback {
Deklarasikan variabel untuk
Map3DView
danGoogleMap3D
:private lateinit var map3DView: Map3DView private var googleMap3D: GoogleMap3D? = null
Dalam metode
onCreate
, setelahsetContentView(...)
dan blokViewCompat.setOnApplyWindowInsetsListener
, lakukan inisialisasimap3DView
, panggil metode siklus prosesonCreate
, dan minta peta secara asinkron:override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() setContentView(R.layout.activity_main) ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -> val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) insets } map3DView = findViewById(R.id.map3dView) map3DView.onCreate(savedInstanceState) map3DView.getMap3DViewAsync(this) }
Ganti metode
onMap3DViewReady
. Callback ini dipicu saat peta siap digunakan:override fun onMap3DViewReady(googleMap3D: GoogleMap3D) { // Interact with the googleMap3D object here this.googleMap3D = googleMap3D // You can now make calls to the googleMap3D object, e.g., // googleMap3D.cameraController.flyTo(camera { ... }) }
Teruskan peristiwa siklus proses dari Aktivitas Anda ke
Map3DView
dengan menambahkan penggantian berikut keMainActivity
:override fun onStart() { super.onStart() map3DView.onStart() } override fun onResume() { super.onResume() map3DView.onResume() } override fun onPause() { map3DView.onPause() super.onPause() } override fun onStop() { map3DView.onStop() super.onStop() } override fun onDestroy() { map3DView.onDestroy() super.onDestroy() } override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) map3DView.onSaveInstanceState(outState) } override fun onLowMemory() { super.onLowMemory() map3DView.onLowMemory() }
Bagian 3: Sinkronkan Gradle dan Jalankan
Setelah memperbarui tata letak dan aktivitas aplikasi, Anda dapat membangun dan menjalankan aplikasi untuk melihat tampilan peta 3D.
Untuk menyinkronkan project dengan Gradle, pilih File > Sync Project with Gradle Files.
Untuk membuat dan menjalankan aplikasi di emulator atau perangkat fisik, pilih Run > Run.
Jika semuanya dikonfigurasi dengan benar, Anda akan melihat peta 3D yang ditampilkan di aplikasi Anda, yang berpusat di dekat koordinat yang ditentukan di activity_main.xml
Anda.
Langkah berikutnya
Setelah menambahkan peta 3D dasar ke aplikasi, Anda dapat menjelajahi fitur yang lebih canggih dari Maps 3D SDK for Android, seperti animasi jalur kamera, penanda 3D, atau poligon.