Utwórz aplikację na Androida, która wyświetla mapę, korzystając z szablonu widoków Map Google w Android Studio. Jeśli masz już projekt w Android Studio, który chcesz skonfigurować, zapoznaj się z artykułem Konfigurowanie projektu w Android Studio.
To krótkie wprowadzenie jest przeznaczone dla programistów aplikacji na Androida, którzy znają podstawy programowania na Androida w języku Kotlin lub Java.
Informacje o środowisku programistycznym
Zalecamy korzystanie z najnowszej stabilnej wersji Android Studio i wtyczki Androida do obsługi Gradle.
Konfigurowanie urządzenia z Androidem
Aby uruchomić aplikację, która korzysta z pakietu Maps SDK na Androida, musisz ją wdrożyć na urządzeniu z Androidem lub w emulatorze Androida z systemem Android 6.0 lub nowszym i interfejsami API Google.
- Aby użyć urządzenia z Androidem, postępuj zgodnie z instrukcjami podanymi w artykule Uruchamianie aplikacji na urządzeniu.
- Aby używać Android Emulator, możesz utworzyć urządzenie wirtualne i zainstalować emulator za pomocą Menedżera urządzeń, który jest częścią Android Studio.
Tworzenie projektu Map Google w Android Studio
Otwórz Android Studio i w oknie Welcome to Android Studio (Witamy w Android Studio) kliknij New Project (Nowy projekt).
W oknie New Project (Nowy projekt) w kategorii Phone and Tablet (Telefon i tablet) wybierz No Activity (Brak aktywności), a następnie kliknij Next (Dalej).
Wypełnij formularz Nowy projekt:
Ustaw Language (Język) na Java lub Kotlin. Oba języki są w pełni obsługiwane przez pakiet Maps SDK na Androida. Więcej informacji o języku Kotlin znajdziesz w artykule Tworzenie aplikacji na Androida w języku Kotlin.
Ustaw Minimalną wersję pakietu SDK na wersję zgodną z urządzeniem testowym. Musisz wybrać wersję wyższą niż minimalna wersja wymagana przez pakiet Maps SDK na Androida w wersji 20.0.x, czyli interfejs API Androida na poziomie 23 („Marshmallow”; Android 6.0) lub wyższym. Najnowsze informacje o wymaganiach dotyczących wersji pakietu SDK znajdziesz w informacjach o wersji.
Ustaw Język konfiguracji kompilacji na Kotlin DSL lub Groovy DSL. Poniżej znajdziesz fragmenty kodu dla obu języków konfiguracji kompilacji.
Kliknij Zakończ.
Android Studio uruchomi Gradle i utworzy projekt. Może to chwilę potrwać.
Dodaj aktywność związaną z wyświetleniami w Mapach Google:
- Kliknij prawym przyciskiem folder
appw projekcie. Wybierz Nowy > Google > Aktywność w widokach Map Google:
Dodawanie aktywności widoków Map Google z menu kontekstowego appw Android Studio.W oknie Nowa aktywność na Androidzie zaznacz pole wyboru Aktywność w programie uruchamiającym.
Kliknij Zakończ.
Więcej informacji znajdziesz w artykule Dodawanie kodu z szablonu.
- Kliknij prawym przyciskiem folder
Po zakończeniu kompilacji Android Studio otworzy pliki
AndroidManifest.xmliMapsActivity. Aktywność może mieć inną nazwę w zależności od tego, co zostało skonfigurowane podczas konfiguracji.
Konfigurowanie projektu Google Cloud
Wykonaj te wymagane czynności konfiguracyjne w konsoli Cloud:
Krok 1. Skonfiguruj projekt
Konsola
-
W konsoli Google Cloud na stronie selektora projektów kliknij Utwórz projekt, aby rozpocząć tworzenie nowego projektu Cloud.
-
Sprawdź, czy w projekcie Cloud włączone są płatności. Sprawdź, czy w projekcie są włączone płatności.
Google Cloud oferuje bezpłatny okres próbny. Okres próbny kończy się po 90 dniach lub po naliczeniu na koncie opłat w wysokości 300 USD (w zależności od tego, co nastąpi wcześniej). Możesz zrezygnować w każdej chwili. Więcej informacji znajdziesz w artykułach o środkach na koncie rozliczeniowym i rozliczeniach.
Pakiet SDK Cloud
gcloud projects create "PROJECT"
Więcej informacji o pakiecie SDK Google Cloud, instalacji pakietu SDK Cloud i tych poleceniach:
Krok 2. Włącz interfejsy API lub pakiety SDK
Aby korzystać z Google Maps Platform, musisz włączyć interfejsy API lub pakiety SDK, których chcesz używać w projekcie.
Konsola
Pakiet SDK Cloud
gcloud services enable \ --project "PROJECT" \ "maps-android-backend.googleapis.com"
Więcej informacji o pakiecie SDK Google Cloud, instalacji pakietu SDK Cloud i tych poleceniach:
Krok 3. Uzyskaj klucz interfejsu API
Ten krok dotyczy tylko procesu tworzenia klucza interfejsu API. Jeśli używasz klucza interfejsu API w środowisku produkcyjnym, zdecydowanie zalecamy jego ograniczenie. Więcej informacji znajdziesz na stronie Korzystanie z kluczy interfejsu API dotyczącej konkretnej usługi.
Klucz interfejsu API to unikalny identyfikator używany do uwierzytelniania żądań powiązanych z projektem na potrzeby wykorzystania i płatności. Z projektem musi być powiązany co najmniej 1 klucz interfejsu API. Aby utworzyć nowy klucz lub dodać interfejs API bądź pakiet SDK do istniejącego klucza, wykonaj te instrukcje.
Konsola
-
Otwórz stronę Google Maps Platform > Klucze i dane logowania.
- Jeśli pojawi się taka prośba, wybierz projekt.
-
Wykonaj jedną z tych czynności:
-
Utwórz nowy klucz:
- Kliknij Utwórz dane logowania > Klucz interfejsu API.
- W panelu Utwórz klucz interfejsu API otwórz listę Wybierz ograniczenia interfejsu API.
- Odznacz wszystkie interfejsy API, których ten klucz nie potrzebuje, i upewnij się, że opcja Maps SDK na Androida jest zaznaczona.
- Kliknij Utwórz. W panelu pojawi się nowy klucz interfejsu API.
-
Użyj istniejącego klucza:
- Kliknij nazwę klucza.
- Na liście Wybierz ograniczenia interfejsów API wybierz Maps SDK na Androida.
- Kliknij Zapisz.
Wybranie interfejsu API w tym miejscu nie powoduje jego włączenia. Upewnij się, że pakiet Maps SDK na Androida jest włączony na stronie Biblioteka API.
-
- Aby później wyświetlić ciąg klucza, otwórz stronę Klucze i dane uwierzytelniające i kliknij Pokaż klucz.
Jeśli konsola wygląda inaczej niż w tych krokach, zapoznaj się z artykułami Tworzenie klucza interfejsu API i Dodawanie ograniczeń interfejsu API w dokumentacji Google Cloud.
Pakiet SDK Cloud
W poniższych poleceniach zastąp PROJECT_ID identyfikatorem swojego projektu.
-
Utwórz nowy klucz: uruchom to polecenie i zastąp DISPLAY_NAME nazwą klucza.
gcloud services api-keys create \ --project="PROJECT_ID" \ --display-name="DISPLAY_NAME" \ --api-target=service=maps-android-backend.googleapis.com
Więcej informacji o pakiecie SDK Google Cloud, instalacji pakietu SDK Cloud i tych poleceniach:
-
Użyj istniejącego klucza: uruchom to polecenie i zastąp KEY_ID identyfikatorem klucza. Flaga
--appendzachowuje interfejsy API, które klucz już dopuszcza. Bez niego polecenie zastępuje je.gcloud services api-keys update KEY_ID \ --project="PROJECT_ID" \ --append \ --api-target=service=maps-android-backend.googleapis.com
Więcej informacji o pakiecie SDK Google Cloud, instalacji pakietu SDK Cloud i tych poleceniach:
Identyfikator klucza nie jest ciągiem klucza ani wyświetlaną nazwą. Aby go znaleźć, uruchom
gcloud services api-keys list --project="PROJECT_ID". Identyfikator to ostatnia część polaname:projects/PROJECT_NUMBER/locations/global/keys/KEY_ID.
Aby zobaczyć ciąg klucza, uruchom gcloud services api-keys get-key-string KEY_ID
--project="PROJECT_ID".
Dodawanie klucza interfejsu API do aplikacji
W tej sekcji opisano, jak przechowywać klucz interfejsu API, aby aplikacja mogła się do niego bezpiecznie odwoływać. Nie należy sprawdzać klucza interfejsu API w systemie kontroli wersji, dlatego zalecamy przechowywanie go w pliku secrets.properties w katalogu głównym projektu i wykluczenie tego pliku z kontroli wersji. Więcej informacji o plikach właściwości Gradle znajdziesz w artykule na ten temat.
Aby uprościć to zadanie, zalecamy użycie wtyczki Secrets Gradle do Androida.
Aby zainstalować wtyczkę Gradle obiektów tajnych dla Androida i zapisać klucz interfejsu API:
-
W Android Studio otwórz plik
build.gradle.ktslubbuild.gradlenajwyższego poziomu i dodaj ten kod do blokuplugins.Kotlin
plugins { // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false }
Zakręcony
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' version '2.0.1' apply false }
-
Otwórz plik
build.gradle.ktslubbuild.gradlena poziomie modułu i dodaj ten kod do elementuplugins.Kotlin
plugins { id("com.android.application") // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
Zakręcony
plugins { id 'com.android.application' // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- Jeśli używasz Android Studio, zsynchronizuj projekt z Gradle.
-
Otwórz plik
secrets.propertiesw katalogu najwyższego poziomu i dodaj podany niżej kod. ZastąpYOUR_API_KEYkluczem interfejsu API. Dodajsecrets.propertiesdo pliku.gitignore(lub w inny sposób wyklucz go z systemu kontroli wersji), aby nie sprawdzać klucza interfejsu API w systemie kontroli wersji.MAPS_API_KEY=YOUR_API_KEY
-
Utwórz plik
local.defaults.propertiesw katalogu najwyższego poziomu, czyli w tym samym folderze, w którym znajduje się pliksecrets.properties, a następnie dodaj podany niżej kod.MAPS_API_KEY=DEFAULT_API_KEY
Ten plik służy do podania zapasowej lokalizacji klucza interfejsu API, jeśli nie uda się znaleźć pliku
secrets.properties, aby nie doszło do niepowodzenia kompilacji. Może się tak zdarzyć, jeśli sklonujesz aplikację z systemu kontroli wersji, który pomija pliksecrets.properties, i nie utworzysz jeszcze lokalnie plikusecrets.properties, aby podać klucz interfejsu API. -
W pliku
AndroidManifest.xmlprzejdź docom.google.android.geo.API_KEYi zaktualizuj atrybutandroid:valuew ten sposób:<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />Uwaga:
com.google.android.geo.API_KEYto zalecana nazwa metadanych klucza interfejsu API. Klucz o tej nazwie może służyć do uwierzytelniania w wielu interfejsach API opartych na Mapach Google na platformie Androida, w tym w pakiecie Maps SDK na Androida. Ze względu na zgodność wsteczną interfejs API obsługuje też nazwęcom.google.android.maps.v2.API_KEY. Ta starsza nazwa umożliwia uwierzytelnianie tylko w interfejsie API Map Google dla Androida w wersji 2. Aplikacja może określić tylko jedną z nazw metadanych klucza interfejsu API. Jeśli podasz oba, interfejs API zgłosi wyjątek. -
W Android Studio otwórz plik
build.gradle.ktslubbuild.gradlena poziomie modułu i edytuj właściwośćsecrets. Jeśli właściwośćsecretsnie istnieje, dodaj ją.Edytuj właściwości wtyczki, aby ustawić
propertiesFileNamena"secrets.properties",defaultPropertiesFileNamena"local.defaults.properties"i skonfigurować inne właściwości.Kotlin
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the root directory (the same folder as the root local.properties file). // 2. Add this line, where YOUR_API_KEY is your API key: // MAPS_API_KEY=YOUR_API_KEY propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" }
Zakręcony
secrets { // To add your Maps API key to this project: // 1. If the secrets.properties file does not exist, create it in the root directory (the same folder as the root local.properties file). // 2. Add this line, where YOUR_API_KEY is your API key: // MAPS_API_KEY=YOUR_API_KEY propertiesFileName = "secrets.properties" // A properties file containing default secret values. This file can be // checked in version control. defaultPropertiesFileName = "local.defaults.properties" }
Sprawdź kod
Przeanalizuj kod dostarczony przez szablon. W szczególności zwróć uwagę na te pliki w projekcie Android Studio.
Plik aktywności w Mapach
Plik aktywności w Mapach to główna aktywność aplikacji, która zawiera kod do zarządzania mapą i jej wyświetlania. Domyślnie plik, który definiuje aktywność, ma nazwę MapsActivity.java, a jeśli jako język aplikacji ustawisz Kotlin, MapsActivity.kt.
Główne elementy aktywności w Mapach:
Obiekt
SupportMapFragmentzarządza cyklem życia mapy i jest elementem nadrzędnym interfejsu aplikacji.Obiekt
GoogleMapzapewnia dostęp do danych i widoku mapy. Jest to główna klasa pakietu Maps SDK na Androida. W przewodniku Obiekty mapy znajdziesz bardziej szczegółowe informacje o obiektachSupportMapFragmentiGoogleMap.Funkcja
moveCamerawyśrodkowuje mapę na współrzędnychLatLngSydney w Australii. Pierwsze ustawienia, które należy skonfigurować podczas dodawania mapy, to zwykle lokalizacja mapy i ustawienia kamery, takie jak kąt widzenia, orientacja mapy i poziom powiększenia. Szczegółowe informacje znajdziesz w przewodniku Kamera i widok.Funkcja
addMarkerdodaje znacznik do współrzędnych Sydney. Szczegółowe informacje znajdziesz w przewodniku po znacznikach.
Kotlin
// Add a marker in Sydney and move the camera val sydney = LatLng(-34.0, 151.0) map.addMarker( MarkerOptions() .position(sydney) .title("Marker in Sydney"), ) map.moveCamera(CameraUpdateFactory.newLatLng(sydney))
Java
// Add a marker in Sydney and move the camera LatLng sydney = new LatLng(-34, 151); map.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney")); map.moveCamera(CameraUpdateFactory.newLatLng(sydney));
Plik Gradle modułu
Plik build.gradle.kts lub build.gradle na poziomie modułu zawiera tę zależność Map, która jest wymagana przez pakiet Maps SDK na Androida.
Kotlin
dependencies { // Maps SDK for Android implementation(libs.play.services.maps) }
Zakręcony
dependencies { // Maps SDK for Android implementation "com.google.android.gms:play-services-maps:20.0.0" }
Jeśli Twój projekt korzysta z katalogu wersji Gradle (gradle/libs.versions.toml), zdefiniuj zależność play-services-maps w libs.versions.toml:
[versions]
play-services-maps = "20.0.0"
[libraries]
play-services-maps = { module = "com.google.android.gms:play-services-maps", version.ref = "play-services-maps" }
Więcej informacji o zarządzaniu zależnością Map znajdziesz w artykule o obsłudze wersji.
Plik układu XML
Plik activity_maps.xml to plik układu XML, który definiuje strukturę interfejsu aplikacji. Plik znajduje się w katalogu res/layout.
Plik activity_maps.xml deklaruje fragment, który zawiera te elementy:
tools:contextustawia domyślną aktywność fragmentu naMapsActivity, która jest zdefiniowana w pliku aktywności w Mapach.android:nameustawia nazwę klasy fragmentu naSupportMapFragment, czyli typ fragmentu używany w pliku aktywności w Mapach.
Plik układu XML zawiera ten kod:
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MapsActivity" />
Wdrażanie i uruchamianie aplikacji

Po pomyślnym uruchomieniu aplikacji wyświetli się mapa wyśrodkowana na Sydney w Australii ze znacznikiem na mieście, jak pokazano na zrzucie ekranu.
Aby wdrożyć i uruchomić aplikację:
- W Android Studio kliknij opcję menu Uruchom (lub ikonę przycisku odtwarzania), aby uruchomić aplikację.
- Gdy pojawi się prośba o wybranie urządzenia, wybierz jedną z tych opcji:
- Wybierz urządzenie z Androidem połączone z komputerem.
- Możesz też kliknąć przycisk Uruchom emulator i wybrać skonfigurowane urządzenie wirtualne.
- Kliknij OK. Android Studio uruchomi Gradle, aby utworzyć aplikację, a następnie wyświetli wyniki na urządzeniu lub w emulatorze. Uruchomienie aplikacji może potrwać kilka minut.
Dalsze kroki
Konfigurowanie mapy: ten dokument opisuje, jak skonfigurować początkowe i bieżące ustawienia mapy, takie jak pozycja kamery, typ mapy, komponenty interfejsu i gesty.
Dodawanie mapy do aplikacji na Androida (Kotlin): to ćwiczenie w Codelabs przeprowadzi Cię przez aplikację, która demonstruje niektóre dodatkowe funkcje pakietu Maps SDK na Androida.
Używanie biblioteki Maps Android KTX: ta biblioteka rozszerzeń Kotlin (KTX) umożliwia korzystanie z kilku funkcji języka Kotlin podczas używania pakietu Maps SDK na Androida.