Maps SDK для Android: краткое руководство

Создайте приложение Android, отображающее карту, с помощью шаблона Google Maps Views для Android Studio. Если у вас есть существующий проект Android Studio, который вы хотите настроить, см. раздел Настройка проекта Android Studio .

Это краткое руководство предназначено для разработчиков, знакомых с основами разработки Android с использованием Kotlin или Java.

О среде разработки

Это краткое руководство было разработано с использованием Android Studio Hedgehog и плагина Android Gradle версии 8.2.

Настройка устройства Android

Чтобы запустить приложение, использующее Maps SDK для Android, необходимо развернуть его на устройстве Android или в эмуляторе Android, основанном на Android 4.0 или более поздней версии и включающем API Google.

  • Чтобы использовать устройство Android, следуйте инструкциям в разделе «Запуск приложений на аппаратном устройстве» .
  • Чтобы использовать эмулятор Android, вы можете создать виртуальное устройство и установить эмулятор с помощью диспетчера виртуальных устройств Android (AVD), который входит в состав Android Studio.

Создайте проект Google Maps в Android Studio.

Процедура создания проекта Google Maps в Android Studio была изменена в Flamingo и более поздних версиях Android Studio.

  1. Откройте Android Studio и нажмите «Создать новый проект» в окне «Добро пожаловать в Android Studio» .

  2. В окне «Новый проект» в категории «Телефон и планшет» выберите «Нет активности» и нажмите «Далее» .

  3. Заполните форму нового проекта :

    • Установите язык Java или Kotlin. Оба языка полностью поддерживаются Maps SDK для Android. Дополнительные сведения о Kotlin см. в разделе «Разработка приложений для Android с помощью Kotlin» .

    • Установите минимальный SDK на версию SDK, совместимую с вашим тестовым устройством. Вы должны выбрать версию, превышающую минимальную версию, требуемую Maps SDK для Android версии 18.2.x, которая соответствует уровню Android API 19 («KitKat»; Android 4.4) или выше. Актуальную информацию о требованиях к версии SDK см. в примечаниях к выпуску .

    • Установите язык конфигурации сборки Kotlin DSL или Groovy DSL. Фрагменты для обоих языков конфигураций сборки показаны в следующих процедурах.

  4. Нажмите «Готово» .

    Android Studio запускает Gradle и собирает проект. Это может занять некоторое время.

  5. Добавьте активность просмотров на Картах Google :

    1. Щелкните правой кнопкой мыши папку app в вашем проекте.
    2. Выберите «Создать» > «Google» > «Активность просмотров на Картах Google» .

      Добавьте действие с картами.

    3. В диалоговом окне «Новая активность Android» установите флажок «Активность запуска» .

    4. Выберите Готово .

      Дополнительные сведения см. в разделе Добавление кода из шаблона.

  6. По завершении сборки Android Studio открывает файлы AndroidManifest.xml и MapsActivity . Ваше действие может иметь другое имя, но оно будет тем, которое вы настроили во время установки.

Настройте свой проект Google Cloud

Выполните необходимые шаги по настройке Cloud Console, перейдя на следующие вкладки:

Шаг 1

Консоль

  1. В Google Cloud Console на странице выбора проекта нажмите « Создать проект» , чтобы начать создание нового облачного проекта.

    Перейти на страницу выбора проекта

  2. Убедитесь, что для вашего облачного проекта включена оплата. Убедитесь, что для вашего проекта включена оплата .

    Google Cloud предлагает пробную версию за 0,00 доллара США. Срок действия пробной версии истекает либо по истечении 90 дней, либо после того, как на счету будет накоплено средств на сумму 300 долларов США, в зависимости от того, что наступит раньше. Отменить в любое время. Платформа Google Maps предлагает регулярный ежемесячный кредит в размере 200 долларов США. Дополнительные сведения см. в разделах Кредиты на счете выставления счетов и Выставление счетов .

Облачный SDK

gcloud projects create "PROJECT"

Узнайте больше о Google Cloud SDK , установке Cloud SDK и следующих командах:

Шаг 2

Чтобы использовать платформу Google Maps, вам необходимо включить API или SDK, которые вы планируете использовать в своем проекте.

Консоль

Включите Maps SDK для Android

Облачный SDK

gcloud services enable \
    --project "PROJECT" \
    "maps-android-backend.googleapis.com"

Узнайте больше о Google Cloud SDK , установке Cloud SDK и следующих командах:

Шаг 3

Этот шаг проходит только через процесс создания ключа API. Если вы используете свой ключ API в рабочей среде, мы настоятельно рекомендуем вам ограничить использование ключа API. Дополнительную информацию можно найти на странице «Использование ключей API» для конкретного продукта.

Ключ API — это уникальный идентификатор, который удостоверяет подлинность запросов, связанных с вашим проектом, для целей использования и выставления счетов. У вас должен быть хотя бы один ключ API, связанный с вашим проектом.

Чтобы создать ключ API:

Консоль

  1. Перейдите на платформу Google Maps > страницу «Учетные данные» .

    Перейдите на страницу учетных данных

  2. На странице «Учетные данные» нажмите «Создать учетные данные» > «Ключ API» .
    В диалоговом окне создания ключа API отображается только что созданный ключ API.
  3. Нажмите «Закрыть».
    Новый ключ API указан на странице «Учетные данные» в разделе «Ключи API» .
    (Не забудьте ограничить ключ API перед его использованием в рабочей среде.)

Облачный SDK

gcloud alpha services api-keys create \
    --project "PROJECT" \
    --display-name "DISPLAY_NAME"

Узнайте больше о Google Cloud SDK , установке Cloud SDK и следующих командах:

Добавьте ключ API в свое приложение

В этом разделе описывается, как хранить ключ API, чтобы ваше приложение могло безопасно ссылаться на него. Вам не следует проверять свой ключ API в системе контроля версий, поэтому мы рекомендуем хранить его в файле secrets.properties , который находится в корневом каталоге вашего проекта. Дополнительные сведения о файле secrets.properties см. в разделе Файлы свойств Gradle .

Чтобы упростить эту задачу, мы рекомендуем вам использовать плагин Secrets Gradle для Android .

Чтобы установить плагин Secrets Gradle для Android в свой проект Google Maps:

  1. В Android Studio откройте файл build.gradle или build.gradle.kts верхнего уровня и добавьте следующий код в элемент dependencies в buildscript .

    классный

    buildscript {
        dependencies {
            classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1"
        }
    }

    Котлин

    buildscript {
        dependencies {
            classpath("com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1")
        }
    }
    
  2. Откройте файл build.gradle уровня модуля и добавьте следующий код в элемент plugins .

    классный

    plugins {
        // ...
        id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
    }

    Котлин

    plugins {
        id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
    }
  3. В файле build.gradle на уровне модуля убедитесь, что для targetSdk и compileSdk установлено значение 34.
  4. Сохраните файл и синхронизируйте проект с Gradle .
  5. Откройте файл secrets.properties в каталоге верхнего уровня, а затем добавьте следующий код. Замените YOUR_API_KEY своим ключом API. Сохраните свой ключ в этом файле, поскольку secrets.properties не подлежит проверке в системе контроля версий.
    MAPS_API_KEY=YOUR_API_KEY
  6. Сохраните файл.
  7. Создайте файл local.defaults.properties в каталоге верхнего уровня, в той же папке, что и файл secrets.properties , а затем добавьте следующий код.

    MAPS_API_KEY=DEFAULT_API_KEY

    Цель этого файла — предоставить резервную копию ключа API, если файл secrets.properties не найден, чтобы сборка не завершилась неудачно. Это может произойти, если вы клонируете приложение из системы контроля версий, в которой отсутствует secrets.properties , и вы еще не создали файл secrets.properties локально, чтобы предоставить свой ключ API.

  8. Сохраните файл.
  9. В файле AndroidManifest.xml перейдите по адресу com.google.android.geo.API_KEY и обновите android:value attribute . Если тег <meta-data> не существует, создайте его как дочерний элемент тега <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 name com.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.

  10. In Android Studio, open your module-level build.gradle or build.gradle.kts file and edit the secrets property. If the secrets property does not exist, add it.

    Edit the properties of the plugin to set propertiesFileName to secrets.properties, set defaultPropertiesFileName to local.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.*"
    }
            

    Котлин

    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.*"
    }
            

Посмотрите на код

Изучите код, предоставленный шаблоном. В частности, обратите внимание на следующие файлы в вашем проекте Android Studio.

Файл действий на Картах

Файл активности карт является основным действием приложения и содержит код для управления картой и ее отображения. По умолчанию файл, определяющий действие, называется MapsActivity.java или, если вы установили Kotlin в качестве языка для своего приложения, MapsActivity.kt .

Основные элементы деятельности карт:

  • Объект SupportMapFragment управляет жизненным циклом карты и является родительским элементом пользовательского интерфейса приложения.

  • Объект GoogleMap обеспечивает доступ к данным и просмотру карты. Это основной класс Maps SDK для Android. В руководстве по объектам карты объекты SupportMapFragment и GoogleMap описаны более подробно.

  • Функция moveCamera центрирует карту по координатам LatLng для Сиднея, Австралия. Первыми настройками, которые необходимо настроить при добавлении карты, обычно являются местоположение карты и настройки камеры; такие как угол обзора, ориентация карты и уровень масштабирования. Подробную информацию см. в руководстве по камере и просмотру .

  • Функция addMarker добавляет маркер к координатам Сиднея. Подробности смотрите в руководстве по маркерам .

Модуль Gradle-файла

Файл модуля build.gradle содержит следующую зависимость карт, которая требуется для Maps SDK для Android.

dependencies {

    // Maps SDK for Android
    implementation 'com.google.android.gms:play-services-maps:18.2.0'
}

Дополнительные сведения об управлении зависимостями Maps см. в разделе Управление версиями .

XML-файл макета

Файл activity_maps.xml — это файл макета XML , определяющий структуру пользовательского интерфейса приложения. Файл находится в каталоге res/layout . В файле activity_maps.xml объявляется фрагмент, включающий следующие элементы:

  • tools:context устанавливает активность фрагмента по умолчанию MapsActivity , которая определена в файле активности карты.
  • android:name устанавливает имя класса фрагмента в SupportMapFragment , который является типом фрагмента, используемым в файле активности карт.

Файл макета XML содержит следующий код:

<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" />

Разверните и запустите приложение

Снимок экрана с картой и маркером в центре города Синдней, Австралия.

Когда вы успешно запустите приложение, оно отобразит карту с центром в Сиднее, Австралия, с маркером города, как показано на следующем снимке экрана.

Чтобы развернуть и запустить приложение:

  1. В Android Studio щелкните пункт меню «Выполнить» (или значок кнопки воспроизведения), чтобы запустить приложение.
  2. При появлении запроса на выбор устройства выберите один из следующих вариантов:
    • Выберите устройство Android, подключенное к вашему компьютеру.
    • Либо выберите переключатель «Запустить эмулятор» и выберите виртуальное устройство, которое вы настроили.
  3. Нажмите ОК . Android Studio запустит Gradle для создания вашего приложения, а затем отобразит результаты на вашем устройстве или в эмуляторе. Прежде чем приложение запустится, может пройти несколько минут.

Следующие шаги

  • Настройка карты . В этом документе описывается, как настроить начальные параметры и настройки времени выполнения карты, такие как положение камеры, тип карты, компоненты пользовательского интерфейса и жесты.

  • Добавьте карту в свое приложение Android (Kotlin) . В этой кодовой лаборатории вы познакомитесь с приложением, демонстрирующим некоторые дополнительные функции Maps SDK для Android.

  • Используйте библиотеку Maps Android KTX . Эта библиотека расширений Kotlin (KTX) позволяет вам воспользоваться преимуществами нескольких функций языка Kotlin при использовании Maps SDK для Android.