Stwórz aplikację na Androida, która wyświetla mapę, używając w Android Studio szablonu Zdjęć w Mapach Google. Jeśli masz już projekt Android Studio, który chcesz skonfigurować, przeczytaj artykuł Konfigurowanie projektu Android Studio.
To krótkie wprowadzenie jest przeznaczone dla programistów, którzy znają podstawowe umiejętności programowania Androida w Kotlin lub Javie.
Informacje o środowisku programistycznym
To krótkie wprowadzenie zostało opracowane przy użyciu Android Studio Hedgehog i wtyczki do Androida Gradle w wersji 8.2.
Konfigurowanie urządzenia z Androidem
Aby uruchomić aplikację, która korzysta z pakietu SDK Map Google na Androida, musisz wdrożyć ją na urządzeniu z Androidem lub w emulatorze Androida w wersji 4.0 lub nowszej, która zawiera interfejsy API Google.
- Aby używać urządzenia z Androidem, wykonaj instrukcje opisane w artykule Uruchamianie aplikacji na urządzeniu sprzętowym.
- Jeśli chcesz użyć emulatora Androida, możesz utworzyć urządzenie wirtualne i zainstalować go za pomocą Menedżera urządzeń wirtualnych (AVD) Android dołączonego do Android Studio.
Tworzenie projektu Map Google w Android Studio
Procedura tworzenia projektu Map Google w Android Studio została zmieniona we Flamingo i nowszych wersjach Android Studio.
Otwórz Android Studio i kliknij Utwórz nowy projekt w oknie Witamy w Android Studio.
W oknie Nowy projekt w kategorii Telefon i tablet wybierz Brak aktywności i kliknij 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 SDK Map Google na Androida. Więcej informacji o Kotlin znajdziesz w artykule o tworzeniu aplikacji na Androida przy użyciu usługi Kotlin.
Ustaw Minimalny pakiet SDK na wersję SDK zgodną z urządzeniem testowym. Musisz wybrać wersję wyższą niż minimalna wersja wymagana przez pakiet Maps SDK na Androida w wersji 18.2.x, czyli Android API na poziomie 19 („KitKat” lub Androida 4.4) lub nowszej. 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. Fragmenty kodu dla obu języków konfiguracji kompilacji są wyświetlane w poniższych procedurach.
Kliknij Zakończ.
Android Studio uruchamia Gradle i kompiluje projekt. Może to chwilę potrwać.
Dodaj Aktywność wyświetleń w Mapach Google:
- Kliknij prawym przyciskiem myszy folder
app
w projekcie. Wybierz Nowy > Google > Aktywność wyświetleń w Mapach Google.
W oknie Nowa aktywność na Androidzie zaznacz pole wyboru Aktywność programu uruchamiającego.
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ą skonfigurujesz podczas konfiguracji.
Skonfiguruj projekt Google Cloud
Wykonaj wymagane kroki konfiguracji Cloud Console, klikając następujące karty:
Krok 1
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.
Wersja próbna Google Cloud oferuje 0,00 USD. Okres próbny kończy się po 90 dniach lub po naliczeniu opłat w wysokości 300 USD, w zależności od tego, co nastąpi wcześniej. Anuluj, kiedy chcesz. Google Maps Platform oferuje cykliczną miesięczną kwotę promocyjną w wysokości 200 USD. Więcej informacji znajdziesz w sekcjach Środki na koncie rozliczeniowym i Płatności.
(pakiet) SDK Cloud
gcloud projects create "PROJECT"
Dowiedz się więcej o pakiecie SDK Google Cloud, instalacji pakietu SDK Cloud i o następujących poleceniach:
Krok 2
Aby korzystać z Google Maps Platform, musisz włączyć interfejsy API lub pakiety SDK, których zamierzasz używać w projekcie.
Konsola
(pakiet) SDK Cloud
gcloud services enable \ --project "PROJECT" \ "maps-android-backend.googleapis.com"
Dowiedz się więcej o pakiecie SDK Google Cloud, instalacji pakietu SDK Cloud i o następujących poleceniach:
Krok 3
Ten krok przechodzi tylko przez proces tworzenia klucza interfejsu API. Jeśli używasz klucza interfejsu API w środowisku produkcyjnym, zdecydowanie zalecamy ograniczenie klucza interfejsu API. Więcej informacji znajdziesz na stronie Używanie kluczy interfejsu API dotyczącej konkretnej usługi.
Klucz interfejsu API to unikalny identyfikator, który uwierzytelnia żądania powiązane z Twoim projektem na potrzeby wykorzystania i rozliczeń. Musisz mieć co najmniej 1 klucz interfejsu API powiązany z projektem.
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 interfejsu API pojawi się nowo utworzony klucz interfejsu API. -
Kliknij Zamknij.
Nowy klucz interfejsu API pojawi się na stronie Dane logowania w sekcji Klucze interfejsu API.
Zanim użyjesz klucza interfejsu API w środowisku produkcyjnym, ogranicz jego użycie.
(pakiet) SDK Cloud
gcloud alpha services api-keys create \ --project "PROJECT" \ --display-name "DISPLAY_NAME"
Dowiedz się więcej o pakiecie SDK Google Cloud, instalacji pakietu SDK Cloud i o następujących poleceniach:
Dodawanie klucza interfejsu API do aplikacji
W tej sekcji opisujemy, jak zapisać klucz interfejsu API, aby aplikacja mogła bezpiecznie się do niego odwoływać. Nie należy sprawdzać klucza interfejsu API w systemie kontroli wersji, dlatego zalecamy zapisanie go w pliku secrets.properties
, który znajduje się w katalogu głównym projektu. Więcej informacji o pliku secrets.properties
znajdziesz w artykule o plikach właściwości Gradle.
Aby uprościć to zadanie, zalecamy korzystanie z wtyczki Gradle obiektów tajnych na Androida.
Aby zainstalować wtyczkę Secrets Gradle na Androida w projekcie Map Google:
-
W Android Studio otwórz plik
build.gradle
lubbuild.gradle.kts
najwyższego poziomu i dodaj ten kod do elementudependencies
w sekcjibuildscript
.Zakręcony
buildscript { dependencies { classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1" } }
Kotlin
buildscript { dependencies { classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1") } }
-
Otwórz plik
build.gradle
na poziomie modułu i dodaj do elementuplugins
poniższy kod.Zakręcony
plugins { // ... id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' }
Kotlin
plugins { id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") }
- W pliku
build.gradle
na poziomie modułu sprawdź, czytargetSdk
icompileSdk
mają wartość 34. - Zapisz plik i zsynchronizuj projekt z Gradle.
-
Otwórz plik
secrets.properties
w katalogu najwyższego poziomu i dodaj ten kod. ZastąpYOUR_API_KEY
swoim kluczem interfejsu API. Zapisz klucz w tym pliku, ponieważ adressecrets.properties
nie jest rejestrowany w systemie kontroli wersji.MAPS_API_KEY=YOUR_API_KEY
- Zapisz plik.
-
Utwórz plik
local.defaults.properties
w katalogu najwyższego poziomu, w tym samym folderze co pliksecrets.properties
, a następnie dodaj poniższy kod.MAPS_API_KEY=DEFAULT_API_KEY
Ten plik służy do podania lokalizacji kopii zapasowej klucza interfejsu API na wypadek, gdyby nie udało się znaleźć pliku
secrets.properties
, co pozwoli uniknąć błędów kompilacji. Może się tak zdarzyć, jeśli sklonujesz aplikację z systemu kontroli wersji, który pomija elementsecrets.properties
, i nie utworzyłeś jeszcze lokalnie plikusecrets.properties
zawierającego Twój klucz interfejsu API. - Zapisz plik.
-
W pliku
AndroidManifest.xml
przejdź docom.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}" />
Note:
com.google.android.geo.API_KEY
is the recommended metadata name for the API key. A key with this name can be used to authenticate to multiple Google Maps-based APIs on the Android platform, including the Maps SDK for Android. For backwards compatibility, the API also supports the namecom.google.android.maps.v2.API_KEY
. This legacy name allows authentication to the Android Maps API v2 only. An application can specify only one of the API key metadata names. If both are specified, the API throws an exception. -
In Android Studio, open your module-level
build.gradle
orbuild.gradle.kts
file and edit thesecrets
property. If thesecrets
property does not exist, add it.Edit the properties of the plugin to set
propertiesFileName
tosecrets.properties
, setdefaultPropertiesFileName
tolocal.defaults.properties
, and set any other properties.Groovy
secrets { // Optionally specify a different file name containing your secrets. // The plugin defaults to "local.properties" 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.*" }
Kotlin
secrets { // Optionally specify a different file name containing your secrets. // The plugin defaults to "local.properties" 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.*" }
Spójrz na kod
Sprawdź kod dostarczony z szablonem. W szczególności zwróć uwagę na te pliki w projekcie Android Studio.
Plik aktywności w Mapach
Plik aktywności na mapach to główna aktywność w aplikacji i zawiera kod umożliwiający zarządzanie mapą i jej wyświetlanie. Domyślnie plik definiujący aktywność to
MapsActivity.java
. Jeśli ustawisz Kotlin jako język aplikacji,MapsActivity.kt
.Najważniejsze elementy działań na mapach:
Obiekt
SupportMapFragment
zarządza cyklem życia mapy i jest nadrzędnym elementem interfejsu aplikacji.Obiekt
GoogleMap
zapewnia dostęp do danych mapy i widoku. To jest główna klasa pakietu Maps SDK na Androida. Przewodnik po obiektach mapy bardziej szczegółowo opisuje obiektySupportMapFragment
iGoogleMap
.Funkcja
moveCamera
wyśrodkowuje mapę na współrzędnychLatLng
dla Sydney Australia. Pierwszymi ustawieniami, jakie należy skonfigurować przy dodawaniu mapy, są lokalizacja mapy i ustawienia aparatu, takie jak kąt widzenia, orientacja mapy i poziom powiększenia. Więcej informacji znajdziesz w przewodniku Aparat i widok.Funkcja
addMarker
dodaje znacznik do współrzędnych lokalizacji Sydney. Szczegółowe informacje znajdziesz w przewodniku Znaczniki.
Plik Gradle modułu
Plik modułu
build.gradle
zawiera podaną niżej zależność 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:18.2.0' }
Więcej informacji o zarządzaniu zależnością Map znajdziesz w sekcji Obsługa wersji.
Plik układu XML
Plik
activity_maps.xml
to plik układu XML, który określa strukturę UI aplikacji. Plik znajduje się w katalogures/layout
. Plikactivity_maps.xml
deklaruje fragment, który zawiera te elementy:tools:context
ustawia domyślną aktywność fragmentu naMapsActivity
, która jest określona w pliku aktywności związanej z mapami.android:name
ustawia nazwę klasy fragmentu naSupportMapFragment
, czyli typ fragmentu używany w pliku aktywności mapy.
Plik układu XML zawiera następujący 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 ze znacznikiem miasta Sydney Australia ze znacznikiem widocznym na poniższym zrzucie ekranu.
Aby wdrożyć i uruchomić aplikację:
- W Android Studio kliknij opcję menu Uruchom (lub ikonę przycisku odtwarzania), by uruchomić aplikację.
- 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 Twoim komputerem.
- Możesz też zaznaczyć opcję 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. Zanim aplikacja zostanie uruchomiona, może upłynąć kilka minut.
Dalsze kroki
Konfigurowanie mapy: ten dokument opisuje, jak skonfigurować ustawienia początkowe i czasowe działania mapy, takie jak położenie kamery, typ mapy, komponenty UI i gesty.
Dodaj mapę do aplikacji na Androida (Kotlin): w tym ćwiczeniu w Codelabs znajdziesz aplikację prezentującą dodatkowe funkcje pakietu Maps SDK na Androida.
Użyj biblioteki KTX Map Google na Androida: Ta biblioteka rozszerzeń Kotlin (KTX) pozwala korzystać z kilku funkcji języka Kotlin podczas korzystania z pakietu SDK Map Google na Androida.
O ile nie stwierdzono inaczej, treść tej strony jest objęta licencją Creative Commons – uznanie autorstwa 4.0, a fragmenty kodu są dostępne na licencji Apache 2.0. Szczegółowe informacje na ten temat zawierają zasady dotyczące witryny Google Developers. Java jest zastrzeżonym znakiem towarowym firmy Oracle i jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2024-03-22 UTC.
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Brak potrzebnych mi informacji" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Zbyt skomplikowane / zbyt wiele czynności do wykonania" },{ "type": "thumb-down", "id": "outOfDate", "label":"Nieaktualne treści" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problem z tłumaczeniem" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Problem z przykładami/kodem" },{ "type": "thumb-down", "id": "otherDown", "label":"Inne" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Łatwo zrozumieć" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Rozwiązało to mój problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Inne" }]