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 krótki przewodnik jest przeznaczony dla programistó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 Google Maps w Android Studio została zmieniona w wersjach Flamingo i późniejszych wersji Android Studio.
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 Maps SDK na Androida. Więcej informacji o Kotlinie znajdziesz w artykule Tworzenie aplikacji na Androida w Kotlinie.
Ustaw opcję Minimalna wersja pakietu 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 odpowiada poziomowi interfejsu API 21 („Lollipop”, Android 5.0) lub nowszemu. Najnowsze informacje o wymaganiach dotyczących wersji pakietu SDK znajdziesz w notatkach do wersji.
Ustaw język konfiguracji kompilacji na Kotlin DSL lub Groovy DSL. W następujących procedurach podano fragmenty kodu dla obu języków konfiguracji kompilacji.
Kliknij Zakończ.
Android Studio uruchamia Gradle i tworzy projekt. Może to chwilę potrwać.
Dodaj Aktywność dotyczącą wyświetleń w Mapach Google:
- Kliknij prawym przyciskiem myszy 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 myszy 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 kolejno 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 osiągnięciu przez konto kwoty 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 Zwroty środków 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 rozliczania. 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 uprościć 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 klonujesz 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 Maps SDK 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.*" }
Sprawdź kod
Sprawdź kod dostarczony przez szablon. Zwróć szczególną uwagę na te pliki w projekcie w Android Studio:
Plik 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 w aplikacji ustawisz język 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
zapewnia dostęp do danych mapy i widoku. Jest 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. Więcej informacji 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 Google 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 sekcji Wersje.
Plik układu XML
Plik activity_maps.xml
to plik układu XML, który określa strukturę interfejsu 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 w Mapach.android:name
ustawia nazwę klasy fragmentu naSupportMapFragment
, czyli typ fragmentu używany w pliku aktywności map.
Plik XML układu 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
Gdy uruchomisz aplikację, wyświetli się mapa z pośrodku Sydney w Australii z oznacznikiem na miasto, jak na poniższym zrzucie ekranu.
Aby wdrożyć i uruchomić aplikację:
- Aby uruchomić aplikację, w Android Studio kliknij opcję menu Uruchom (lub ikonę przycisku odtwarzania).
- Gdy pojawi się prośba o wybranie urządzenia, wybierz jedną z tych opcji:
- Wybierz urządzenie z Androidem, które jest połączone z komputerami.
- Możesz też kliknąć przycisk opcji 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 poznasz 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 Map na Androida.