Utwórz aplikację na Androida wyświetlającą mapę, korzystając z szablonu Widoki w Mapach Google dla Android Studio. 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 znających podstawowe programowanie na Androida z użyciem Kotlin lub Javy.
Informacje o środowisku programistycznym
To krótkie wprowadzenie zostało opracowane przy użyciu Android Studio Hedgehog i wtyczki Android Gradle w wersji 8.2.
Konfigurowanie urządzenia z Androidem
Aby uruchomić aplikację, która korzysta z pakietu Maps SDK na Androida, musisz wdrożyć ją na urządzeniu z Androidem lub w emulatorze Androida opartym na Androidzie 5.0 lub nowszym i zawierającym interfejsy API Google.
- Aby używać urządzenia z Androidem, wykonaj instrukcje opisane w artykule Uruchamianie aplikacji na urządzeniu sprzętowym.
- Aby użyć emulatora Androida, możesz utworzyć urządzenie wirtualne i zainstalować go za pomocą Menedżera urządzeń wirtualnych Android (AVD) dołączonego do Android Studio.
Tworzenie projektu Map Google w Android Studio
Procedura tworzenia projektu Map Google w Android Studio zmieniła się w wersji Flamingo i nowszych wersjach Android Studio.
Otwórz Android Studio i kliknij New Project (Nowy projekt) w oknie Welcome to Android Studio (Witamy w Android Studio).
W oknie New Project (Nowy projekt) w kategorii Telefony i tablety wybierz Brak aktywności, a następnie kliknij Dalej.
Wypełnij formularz New Project (Nowy projekt):
Ustaw Język na Java lub Kotlin. Oba te języki są w pełni obsługiwane przez pakiet SDK Maps na Androida. Więcej informacji o kotlin znajdziesz w artykule Tworzenie aplikacji na Androida przy pomocy Kotlin.
Ustaw Minimalny pakiet SDK na wersję pakietu SDK zgodną z urządzeniem testowym. Musisz wybrać wersję wyższą niż minimalna wersja wymagana przez pakiet SDK Maps na Androida w wersji 19.0.x, czyli interfejsu API Androida na poziomie 21 („Lollipop”; Android 5.0) lub nowszym. Najnowsze informacje o wymaganiach dotyczących wersji pakietu SDK znajdziesz w informacjach o wersji.
.Jako Język konfiguracji kompilacji ustaw Kotlin DSL lub Groovy DSL. Fragmenty 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ść związaną z zdjęciami w Mapach Google:
- Kliknij prawym przyciskiem myszy folder
app
w projekcie. Wybierz Nowy > Google > Aktywność w Mapach Google.
W oknie Nowa aktywność na Androidzie zaznacz pole wyboru Aktywność programu uruchamiającego.
Wybierz Zakończ.
Więcej informacji znajdziesz w artykule o dodawaniu kodu z szablonu.
- Kliknij prawym przyciskiem myszy folder
Po zakończeniu kompilacji Android Studio otworzy pliki
AndroidManifest.xml
iMapsActivity
. Aktywność może mieć inną nazwę, ale ta skonfigurowana podczas konfiguracji.
Skonfiguruj projekt Google Cloud
Wykonaj wymagane czynności konfiguracyjne w Cloud Console, klikając te 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.
Google Cloud oferuje okres próbny w wysokości 0,00 USD. Okres próbny kończy się po upływie 90 dni lub po naliczeniu na koncie opłat w wysokości 300 USD (w zależności od tego, co nastąpi wcześniej). W każdej chwili możesz anulować subskrypcję. Google Maps Platform oferuje cykliczne środki w wysokości 200 USD miesięcznie. Więcej informacji znajdziesz w artykułach Środki na koncie rozliczeniowym i Płatności.
(pakiet) SDK Cloud
gcloud projects create "PROJECT"
Przeczytaj więcej o Google Cloud SDK, instalacji pakietu SDK Cloud i poniższych poleceniach:
Krok 2
Aby używać 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"
Przeczytaj więcej o Google Cloud SDK, instalacji pakietu SDK Cloud i poniższych poleceniach:
Krok 3
Ten krok wykonuje się tylko w procesie 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 w przypadku konkretnej usługi.
Klucz interfejsu API to unikalny identyfikator, który uwierzytelnia żądania powiązane z Twoim projektem na potrzeby użytkowania 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 znajdziesz na stronie Dane logowania w sekcji Klucze interfejsu API.
(Pamiętaj, aby ograniczyć klucz interfejsu API, zanim użyjesz go w środowisku produkcyjnym.
(pakiet) SDK Cloud
gcloud alpha services api-keys create \ --project "PROJECT" \ --display-name "DISPLAY_NAME"
Przeczytaj więcej o Google Cloud SDK, instalacji pakietu SDK Cloud i poniższych poleceniach:
Dodawanie klucza interfejsu API do aplikacji
W tej sekcji opisujemy, jak zapisać klucz interfejsu API, aby aplikacja mogła się do niego bezpiecznie odwoływać. Nie należy sprawdzać klucza interfejsu API w systemie kontroli wersji, więc 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 usprawnić to zadanie, zalecamy korzystanie z wtyczki do Gradle obiektów tajnych na Androida.
Aby zainstalować wtyczkę Gradle obiektów tajnych na Androida w projekcie Map Google:
-
W Android Studio otwórz plik
build.gradle
lubbuild.gradle.kts
najwyższego poziomu i dodaj poniższy 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 poniższy kod do elementuplugins
.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, a następnie dodaj poniższy kod. ZastąpYOUR_API_KEY
swoim kluczem interfejsu API. Zapisz klucz w tym pliku, ponieważsecrets.properties
nie jest sprawdzany 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 zawiera kopię zapasową klucza interfejsu API na wypadek, gdyby plik
secrets.properties
nie został znaleziony. Pozwala to uniknąć błędu kompilacji. Może się tak zdarzyć, jeśli sklonujesz aplikację z systemu kontroli wersji, który pomija atrybutsecrets.properties
, i nie masz jeszcze lokalnego plikusecrets.properties
umożliwiającego przekazanie klucza interfejsu API. - Zapisz plik.
-
W pliku
AndroidManifest.xml
przejdź do sekcjicom.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 w szablonie. W szczególności przyjrzyj się poniższym plikom w projekcie w Android Studio.
Plik aktywności w Mapach
Plik aktywności w Mapach to główna aktywność w aplikacji i zawiera kod do zarządzania mapą i jej wyświetlania. Domyślnie plik definiujący aktywność nazywa się
MapsActivity.java
, a jeśli ustawisz Kotlin jako język swojej aplikacji,MapsActivity.kt
.Główne elementy aktywności związanej z mapami:
Obiekt
SupportMapFragment
zarządza cyklem życia mapy i jest elementem nadrzędnym w interfejsie aplikacji.Obiekt
GoogleMap
zapewnia dostęp do danych i widoku mapy. To jest główna klasa pakietu SDK Maps na Androida. Przewodnik po obiektach mapy zawiera bardziej szczegółowe informacje o obiektachSupportMapFragment
iGoogleMap
.Funkcja
moveCamera
wyśrodkowuje mapę na współrzędnychLatLng
dla Sydney Australia. Pierwsze ustawienia do skonfigurowania przy dodawaniu mapy to zwykle ustawienia lokalizacji na mapie i aparatu, takie jak kąt patrzenia, orientacja mapy czy poziom powiększenia. Więcej informacji znajdziesz w przewodniku Aparat i widok.Funkcja
addMarker
dodaje znacznik do współrzędnych Sydney. Więcej informacji 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 Maps na Androida.dependencies { // Maps SDK for Android implementation 'com.google.android.gms:play-services-maps:19.0.0' }
Aby dowiedzieć się więcej o zarządzaniu zależnością Map, przeczytaj artykuł na temat obsługi wersji.
Plik układu XML
Plik
activity_maps.xml
to plik układu XML definiujący strukturę interfejsu użytkownika aplikacji. Plik znajduje się w katalogures/layout
. Plikactivity_maps.xml
deklaruje fragment zawierający te elementy:tools:context
ustawia domyślną aktywność tego fragmentu naMapsActivity
, która jest definiowana 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" />
Wdróż i uruchom aplikację
Po uruchomieniu aplikacji wyświetli się mapa wyśrodkowana na Sydney w Australii ze znacznikiem na mieście, tak jak na zrzucie ekranu poniżej.
Aby wdrożyć i uruchomić aplikację:
- W Android Studio kliknij w menu opcję 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 podłączone do komputera.
- Możesz też zaznaczyć opcję Uruchom emulator i wybrać skonfigurowane urządzenie wirtualne.
- Kliknij OK. Android Studio uruchomi Gradle, aby skompilować aplikację, a następnie wyświetli wyniki na urządzeniu lub w emulatorze. Uruchomienie aplikacji może potrwać kilka minut.
Dalsze kroki
Konfigurowanie mapy: w tym dokumencie opisujemy, jak skonfigurować początkowe ustawienia i czas działania mapy, np. pozycję kamery, typ mapy, komponenty interfejsu i gesty.
Dodawanie mapy do aplikacji na Androida (Kotlin): dzięki temu ćwiczeniu w Codelabs dowiesz się, jak korzystać z aplikacji, w której poznasz niektóre dodatkowe funkcje pakietu Maps SDK na Androida.
Skorzystaj z biblioteki Maps Android KTX: Dzięki tej bibliotece rozszerzeń Kotlin (KTX) możesz korzystać z kilku funkcji językowych Kotlin, korzystając z pakietu Maps SDK 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-07-13 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" }]