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 XML map3d:
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 di
app/src/main/java/com/example/yourpackagename/MainActivity.kt.
Tambahkan impor yang diperlukan untuk Maps 3D SDK for Android:
Dalam metode onCreate, setelah setContentView(...) dan blok
ViewCompat.setOnApplyWindowInsetsListener, lakukan inisialisasi map3DView,
panggil metode siklus proses onCreate, dan minta peta secara asinkron:
Ganti metode onMap3DViewReady. Callback ini dipicu saat peta siap digunakan:
overridefunonMap3DViewReady(googleMap3D:GoogleMap3D){// Interact with the googleMap3D object herethis.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 ke MainActivity:
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.
[null,null,["Terakhir diperbarui pada 2025-08-31 UTC."],[],[],null,["# Add a 3D map to your app\n\n\u003cbr /\u003e\n\n| This product or feature is Experimental (pre-GA). Pre-GA products and features might have limited support, and changes to pre-GA products and features might not be compatible with other pre-GA versions. Pre-GA Offerings are covered by the [Google\n| Maps Platform Service Specific Terms](https://cloud.google.com/maps-platform/terms/maps-service-terms). For more information, see the [launch stage descriptions](/maps/launch-stages).\n\n\u003cbr /\u003e\n\nSelect platform: [Android](/maps/documentation/maps-3d/android-sdk/add-a-3d-map \"View this page for the Android platform docs.\") [iOS](/maps/documentation/maps-3d/ios-sdk/add-a-3d-map \"View this page for the iOS platform docs.\") [JavaScript](/maps/documentation/javascript/3d/get-started \"View this page for the JavaScript platform docs.\")\n\n\u003cbr /\u003e\n\nThis page walks through an example of how to add a basic 3D map to an Android\napp using the Maps 3D SDK for Android. The instructions on this page assume that you\nhave already completed the steps in the\n[Setup](/maps/documentation/maps-3d/android-sdk/setup) page and have the\nfollowing:\n\n- A Google Cloud project with the Maps 3D SDK for Android enabled\n- An API key configured to use with the Maps 3D SDK for Android\n- An Android Studio project set up to use with the Maps 3D SDK for Android\n\nFor more information about these prerequisites, see\n[Setup](/maps/documentation/maps-3d/android-sdk/setup).\n\nPart 1: Update Layout File (`activity_main.xml`) to add the `Map3DView` component\n---------------------------------------------------------------------------------\n\nThe `Map3DView` component is the view that renders the 3D map within the app.\nThe following steps add the component and configure the initial state of the\nmap, including the camera position and related attributes:\n| **Note:** The steps in this section assume that you have created and configured your Android Studio project using the process described in [Setup](/maps/documentation/maps-3d/android-sdk/setup), or that you have added a new View activity to an existing project. If you create a new Android Studio project without adding a View activity, your project won't contain an `activity_main.xml` file.\n\n1. Open your main activity's layout file, which is usually located at\n `app/src/main/res/layout/activity_main.xml`.\n\n2. In the root `ConstraintLayout` (or your root layout element), add the `map3d`\n XML namespace:\n\n xmlns:map3d=\"http://schemas.android.com/apk/res-auto\"\n\n3. Delete the default `\u003cTextView\u003e` that displays \"Hello World!\".\n\n4. Add the `Map3DView` component to your layout. You can customize the camera\n position and other attributes:\n\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003candroidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n xmlns:map3d=\"http://schemas.android.com/apk/res-auto\" xmlns:tools=\"http://schemas.android.com/tools\"\n android:id=\"@+id/main\"\n android:layout_width=\"match_parent\"\n android:layout_height=\"match_parent\"\n tools:context=\".MainActivity\"\u003e\n\n \u003ccom.google.android.gms.maps3d.Map3DView\n android:id=\"@+id/map3dView\"\n android:layout_width=\"match_parent\"\n android:layout_height=\"match_parent\"\n map3d:mode=\"hybrid\"\n map3d:centerLat=\"38.544012\"\n map3d:centerLng=\"-107.670428\"\n map3d:centerAlt=\"2427.6\"\n map3d:heading=\"310\"\n map3d:tilt=\"63\"\n map3d:range=\"8266\"\n map3d:roll=\"0\"\n map3d:minAltitude=\"0\"\n map3d:maxAltitude=\"1000000\"\n map3d:minHeading=\"0\"\n map3d:maxHeading=\"360\"\n map3d:minTilt=\"0\"\n map3d:maxTilt=\"90\"\n app:layout_constraintBottom_toBottomOf=\"parent\"\n app:layout_constraintEnd_toEndOf=\"parent\"\n app:layout_constraintStart_toStartOf=\"parent\"\n app:layout_constraintTop_toTopOf=\"parent\" /\u003e\n \u003c/androidx.constraintlayout.widget.ConstraintLayout\u003e\n\nPart 2: Update MainActivity.kt\n------------------------------\n\nThe following steps initialize the `Map3DView` component added to the\n`activity_main.xml` file in Part 1 and manage component lifecycle events:\n\n1. Open your `MainActivity.kt` file, which is usually located at\n `app/src/main/java/com/example/yourpackagename/MainActivity.kt`.\n\n2. Add the necessary imports for the Maps 3D SDK for Android:\n\n import com.google.android.gms.maps3d.GoogleMap3D\n import com.google.android.gms.maps3d.Map3DView\n import com.google.android.gms.maps3d.OnMap3DViewReadyCallback\n\n3. Modify the `MainActivity` class to implement `OnMap3DViewReadyCallback`:\n\n class MainActivity : AppCompatActivity(), OnMap3DViewReadyCallback {\n\n4. Declare variables for `Map3DView` and `GoogleMap3D`:\n\n private lateinit var map3DView: Map3DView\n private var googleMap3D: GoogleMap3D? = null\n\n5. In the `onCreate` method, after `setContentView(...)` and the\n `ViewCompat.setOnApplyWindowInsetsListener` block, initialize the `map3DView`,\n call its `onCreate` lifecycle method, and request the map asynchronously:\n\n override fun onCreate(savedInstanceState: Bundle?) {\n super.onCreate(savedInstanceState)\n enableEdgeToEdge()\n setContentView(R.layout.activity_main)\n ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets -\u003e\n val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())\n v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)\n insets\n }\n\n map3DView = findViewById(R.id.map3dView)\n map3DView.onCreate(savedInstanceState)\n map3DView.getMap3DViewAsync(this)\n }\n\n6. Override the `onMap3DViewReady` method. This callback is triggered when the\n map is ready to be used:\n\n override fun onMap3DViewReady(googleMap3D: GoogleMap3D) {\n // Interact with the googleMap3D object here\n this.googleMap3D = googleMap3D\n // You can now make calls to the googleMap3D object, e.g.,\n // googleMap3D.cameraController.flyTo(camera { ... })\n }\n\n7. Forward lifecycle events from your Activity to the `Map3DView` by adding the\n following overrides to the `MainActivity`:\n\n override fun onStart() {\n super.onStart()\n map3DView.onStart()\n }\n\n override fun onResume() {\n super.onResume()\n map3DView.onResume()\n }\n\n override fun onPause() {\n map3DView.onPause()\n super.onPause()\n }\n\n override fun onStop() {\n map3DView.onStop()\n super.onStop()\n }\n\n override fun onDestroy() {\n map3DView.onDestroy()\n super.onDestroy()\n }\n\n override fun onSaveInstanceState(outState: Bundle) {\n super.onSaveInstanceState(outState)\n map3DView.onSaveInstanceState(outState)\n }\n\n override fun onLowMemory() {\n super.onLowMemory()\n map3DView.onLowMemory()\n }\n\nPart 3: Sync Gradle and Run\n---------------------------\n\nNow that you've updated your app's layout and activity, you can build and run\nthe app to see the 3D map view.\n\n1. To sync your project with Gradle, select **File \\\u003e Sync Project with Gradle Files.**\n\n2. To build and run your app on an emulator or a physical device, select\n **Run \\\u003e Run**.\n\nIf everything is configured correctly, you should see a 3D map displayed in your\napp, centered near the coordinates specified in your `activity_main.xml`.\n\nNext steps\n----------\n\nNow that you've added a basic 3D map to your app, you can explore more advanced\nfeatures of the Maps 3D SDK for Android, such as\n[camera path animations](/maps/documentation/maps-3d/android-sdk/custom-camera-paths),\n[3D markers](/maps/documentation/maps-3d/android-sdk/add-a-marker), or\n[polygons](/maps/documentation/maps-3d/android-sdk/add-polygons)."]]