Utwórz aplikację na Androida, która wyświetla mapę, korzystając z szablonu widoków Map Google w Android Studio. Jeśli masz istniejący projekt Android Studio, który chcesz skonfigurować, zapoznaj się z artykułem Konfigurowanie projektu w Android Studio.
Ten przewodnik jest przeznaczony dla deweloperów, którzy znają podstawy tworzenia aplikacji na Androida w języku Kotlin lub Java.
Informacje o środowisku programistycznym
Ten krótki przewodnik został opracowany w Android Studio Hedgehog i wtyczce Gradle dla Androida w wersji 8.2.
Konfigurowanie urządzenia z Androidem
Aby uruchomić aplikację korzystającą z pakietu SDK Map Google na Androida, musisz wdrożyć ją na urządzeniu z Androidem lub na emulatorze Androida opartym na Androidzie 5.0 lub nowszym, który zawiera interfejsy API Google.
- Aby korzystać z urządzenia z Androidem, wykonaj instrukcje opisane w artykule Uruchamianie aplikacji na urządzeniu z Androidem.
- Aby korzystać z emulatora Androida, możesz utworzyć urządzenie wirtualne i zainstalować emulator za pomocą menedżera urządzenia wirtualnego z Androidem (AVD), który jest częścią Android Studio.
Tworzenie projektu Map Google w Android Studio
Procedura tworzenia projektu Map Google w Android Studio została zmieniona w wersjach Flamingo i późniejszych.
Otwórz Android Studio i w oknie Witamy w Android Studio kliknij Nowy projekt.
W oknie Nowy projekt w kategorii Telefony i tablety wybierz Brak aktywności, a potem kliknij Dalej.
Wypełnij formularz Nowy projekt:
Ustaw Język na Java lub Kotlin. Oba języki są w pełni obsługiwane przez pakiet SDK Map na Androida. Więcej informacji o Kotlinie znajdziesz w artykule Tworzenie aplikacji na Androida w Kotlinie.
Ustaw opcję Minimalny pakiet SDK na wersję pakietu SDK zgodną z urządzeniem testowym. Musisz wybrać wersję nowszą niż minimalna wymagana przez pakiet SDK Map Google na Androida w wersji 19.0.x, która jest na poziomie interfejsu API 21 („Lollipop”, Android 5.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. W tych procedurach znajdziesz fragmenty kodu dla obu języków konfiguracji kompilacji.
Kliknij Zakończ.
Android Studio uruchamia Gradle i kompiluje projekt. Może to chwilę potrwać.
Dodaj Aktywność związaną z wyświetleniem w Mapach Google:
- Kliknij prawym przyciskiem folder
app
w projekcie. Kliknij Nowe > Google > Aktywność wyświetleń w Mapach Google.
W oknie Nowa aktywność na Androida zaznacz pole wyboru Aktywność w edytorze.
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.xml
iMapsActivity
. Twoja aktywność może mieć inną nazwę, ale jest to ta, którą skonfigurowano podczas konfiguracji.
Konfigurowanie projektu Google Cloud
Wykonaj wymagane czynności konfiguracji konsoli Cloud, klikając te karty:
Krok 1
Konsola
-
W konsoli Google Cloud na stronie selektora projektu kliknij Utwórz projekt, aby rozpocząć tworzenie nowego projektu Cloud.
-
Sprawdź, czy w projekcie Cloud włączone są płatności. Sprawdź, czy w Twoim projekcie są włączone płatności.
Google Cloud oferuje bezpłatny okres próbny. Okres próbny wygasa po 90 dniach lub po przekroczeniu limitu płatności w wysokości 300 USD, zależnie od tego, co nastąpi wcześniej. Anuluj, kiedy chcesz. Google Maps Platform oferuje stałe 200 USD miesięcznie. Więcej informacji znajdziesz w artykułach Środki na koncie rozliczeniowym i Rozliczenia.
Pakiet SDK Cloud
gcloud projects create "PROJECT"
Dowiedz się więcej o pakiecie Google Cloud SDK, instalacji Cloud SDK i tych poleceniach:
Krok 2
Aby korzystać z Google Maps Platform, musisz włączyć interfejsy API lub pakiety SDK, których chcesz użyć w projekcie.
Konsola
Pakiet SDK Cloud
gcloud services enable \ --project "PROJECT" \ "maps-android-backend.googleapis.com"
Dowiedz się więcej o pakiecie Google Cloud SDK, instalacji Cloud SDK i tych poleceniach:
Krok 3
Ten krok obejmuje tylko proces tworzenia klucza interfejsu API. Jeśli używasz klucza interfejsu API w środowisku produkcyjnym, zdecydowanie zalecamy ograniczenie tego klucza. Więcej informacji znajdziesz na stronie Korzystanie z kluczy API dotyczącej danej 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 API.
Aby utworzyć klucz interfejsu API:
Konsola
-
Otwórz stronę Google Maps Platform > Dane logowania.
-
Na stronie Dane logowania kliknij Utwórz dane logowania > Klucz interfejsu API.
W oknie Utworzono klucz API wyświetli się nowo utworzony klucz API. -
Kliknij Zamknij.
Nowy klucz interfejsu API znajdziesz na stronie Dane logowania w sekcji Klucze API.
(Pamiętaj, aby ograniczyć dostęp do klucza API przed użyciem go w produkcji).
Pakiet SDK Cloud
gcloud alpha services api-keys create \ --project "PROJECT" \ --display-name "DISPLAY_NAME"
Dowiedz się więcej o pakiecie Google Cloud SDK, instalacji Cloud SDK i tych poleceniach:
Dodawanie klucza interfejsu API do aplikacji
W tej sekcji opisujemy, jak przechowywać klucz interfejsu API, aby Twoja aplikacja mogła bezpiecznie się do niego odwoływać. Nie należy go dodawać do systemu kontroli wersji, dlatego zalecamy przechowywanie go w pliku secrets.properties
, który znajduje się w katalogu głównym projektu. Więcej informacji o pliku secrets.properties
znajdziesz w artykule Pliki właściwości Gradle.
Aby usprawnić to zadanie, zalecamy użycie wtyczki Gradle obiektów tajnych na Androida.
Aby zainstalować wtyczkę Gradle obiektów tajnych na Androida w projekcie Mapy Google:
-
W Android Studio otwórz najwyższy poziom pliku
build.gradle.kts
lubbuild.gradle
i dodaj pod elementembuildscript
kod:dependencies
Kotlin
buildscript { dependencies { classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
Zakręcony
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
-
Otwórz plik
build.gradle.kts
lubbuild.gradle
na poziomie modułu i dodaj do elementuplugins
ten kod:Kotlin
plugins { // ... id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
Zakręcony
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
- W pliku
build.gradle.kts
lubbuild.gradle
na poziomie modułu sprawdź, czy wartościtargetSdk
icompileSdk
są ustawione na 34. - Zapisz plik i zsynchronizuj projekt z Gradle.
-
Otwórz plik
secrets.properties
w katalogu najwyższego poziomu, a potem dodaj ten kod: ZastąpYOUR_API_KEY
swoim kluczem API. Przechowuj klucz w tym pliku, ponieważsecrets.properties
nie jest uwzględniany w systemie kontroli wersji.MAPS_API_KEY=YOUR_API_KEY
- Zapisz plik.
-
Utwórz plik
local.defaults.properties
w katalogu najwyższego poziomu, czyli w tym samym folderze co pliksecrets.properties
, a potem dodaj podany niżej kod.MAPS_API_KEY=DEFAULT_API_KEY
Ten plik stanowi kopię zapasową klucza interfejsu API na wypadek, gdyby nie udało się znaleźć pliku
secrets.properties
, dzięki czemu kompilacje nie będą się załamywać. Może się tak zdarzyć, jeśli skopiujesz aplikację z systemu kontroli wersji, który pomija pliksecrets.properties
, a na komputerze lokalnym nie masz jeszcze utworzonego plikusecrets.properties
, aby podać klucz interfejsu API. - Zapisz plik.
-
W pliku
AndroidManifest.xml
otwórzcom.google.android.geo.API_KEY
i zaktualizujandroid:value attribute
. Jeśli tag<meta-data>
nie istnieje, utwórz go jako element podrzędny tagu<application>
.<meta-data android:name="com.google.android.geo.API_KEY" android:value="${MAPS_API_KEY}" />
Uwaga:
com.google.android.geo.API_KEY
to zalecane nazwa metadanych klucza interfejsu API. Klucza o tej nazwie można używać do uwierzytelniania w wielu interfejsach API opartych na Mapach Google na platformie Androida, w tym w pakiecie SDK Map na Androida. Ze względu na zgodność wsteczną interfejs API obsługuje też nazwęcom.google.android.maps.v2.API_KEY
. Ten starszy identyfikator umożliwia uwierzytelnianie tylko w ramach interfejsu Mapy Google na Androida w wersji 2. Aplikacja może podać tylko jedną z nazwy metadanych klucza interfejsu API. Jeśli podasz obie wartości, interfejs API zwróci wyjątek. -
W Android Studio otwórz plik
build.gradle.kts
lubbuild.gradle
na poziomie modułu i edytuj właściwośćsecrets
. Jeśli właściwośćsecrets
nie istnieje, dodaj ją.Zmień właściwości wtyczki, aby ustawić wartość
propertiesFileName
nasecrets.properties
, wartośćdefaultPropertiesFileName
nalocal.defaults.properties
i ustawić 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 same folder as the 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" // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
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 same folder as the 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" // Configure which keys should be ignored by the plugin by providing regular expressions. // "sdk.dir" is ignored by default. ignoreList.add("keyToIgnore") // Ignore the key "keyToIgnore" ignoreList.add("sdk.*") // Ignore all keys matching the regexp "sdk.*" }
Sprawdzanie kodu
Sprawdź kod dostarczony przez szablon. Zwróć szczególną uwagę na te pliki w projekcie Android Studio:
Plik z danymi o aktywności w Mapach
Plik aktywności w Mapach to główna aktywność aplikacji. Zawiera kod do zarządzania mapą i jej wyświetlania. Domyślnie plik definiujący aktywność ma nazwę MapsActivity.java
lub, jeśli językiem aplikacji jest Kotlin, MapsActivity.kt
.
Główne elementy aktywności w Mapach:
Obiekt
SupportMapFragment
zarządza cyklem życia mapy i jest elementem nadrzędnym interfejsu aplikacji.Obiekt
GoogleMap
udostępnia dane mapy i widok. To główna klasa pakietu Maps SDK na Androida. Więcej informacji o obiektachSupportMapFragment
iGoogleMap
znajdziesz w przewodniku Obiekty mapy.Funkcja
moveCamera
wyśrodkowuje mapę na współrzędnychLatLng
dla Sydney 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 Aparat i widok.Funkcja
addMarker
dodaje znacznik do współrzędnych Sydney. Szczegółowe informacje znajdziesz w przewodniku Markery.
Plik Gradle modułu
Plik Module build.gradle.kts
zawiera tę zależność od Map, która jest wymagana przez pakiet SDK Map na Androida.
dependencies { // Maps SDK for Android implementation("com.google.android.gms:play-services-maps:19.0.0") }
Więcej informacji o zarządzaniu zależnością od Map znajdziesz w artykule Obsługa wersji.
Plik układu XML
Plik activity_maps.xml
to plik układu XML, który definiuje strukturę interfejsu użytkownika aplikacji. Plik znajduje się w katalogu res/layout
.
Plik activity_maps.xml
deklaruje fragment, który zawiera te elementy:
tools:context
ustawia domyślną aktywność fragmentu naMapsActivity
, która jest zdefiniowana w pliku aktywności Map.android:name
ustawia nazwę klasy fragmentu naSupportMapFragment
, czyli typ fragmentu używany w pliku aktywności map.
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 uruchomieniu aplikacji wyświetli się mapa wyśrodkowana na Sydney w Australii ze znacznikiem na tym mieście, jak widać na poniższym 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 komputera.
- Możesz też kliknąć przycisk Uruchom emulator i wybrać skonfigurowane urządzenie wirtualne.
- Kliknij OK. Android Studio uruchomi Gradle, aby skompilować aplikację, a potem 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ć ustawienia początkowe i ustawienia czasu wykonywania mapy, takie jak pozycja kamery, typ mapy, komponenty interfejsu i gesty.
Dodawanie mapy do aplikacji na Androida (Kotlin): w tym laboratorium programistycznym znajdziesz aplikację, która demonstruje dodatkowe funkcje pakietu Maps SDK na Androida.
Używanie biblioteki KTX na Androida: ta biblioteka rozszerzeń Kotlina (KTX) umożliwia korzystanie z kilku funkcji języka Kotlin podczas korzystania z pakietu SDK Maps na Androida.