Начало работы с премиум-планом на Android

Ваша лицензия на Google Maps APIs Premium Plan обеспечивает расширенную поддержку для Google Maps Android API. В этом документе содержится информация о том, как создать приложение Android, которое использует Google Maps Android API с Premium Plan.

Обзор

Следуйте указаниям, приведенным на этой странице, чтобы загрузить пакет SDK, настроить проект и добавить карту. Ниже приводится краткое описание необходимых шагов.

  1. Загрузите пакет SDK.
  2. Добавьте пакет SDK в новый или уже созданный проект Android.
  3. Добавьте свой ключ API в манифест приложения.
  4. Укажите необходимые разрешения для Android и настройки для OpenGL ES версии 2.
  5. Добавьте карту.

Загрузка пакета разработчика

Пакет разработчика можно загрузить в виде статической библиотеки или использовать Android SDK Manager.

Вариант 1: загрузка пакета разработчика в виде статической библиотеки

Загрузите последнюю версию в виде статической библиотеки.

Вариант 2: загрузка пакета разработчика с использованием Android SDK Manager

в Android Studio:

  1. Выберите Tools > Android > SDK Manager.
  2. Выберите Appearance & Behavior > System Settings > Android SDK.
  3. Перейдите на вкладку SDK Update Sites.
  4. Щелкните значок плюс (+), чтобы добавить новый сайт.
  5. Укажите имя, например, "Google Maps for Work", и введите URL-адрес: https://dl.google.com/geosdk/android-m4b-addon.xml
  6. Нажмите OK.
  7. Перейдите на вкладку SDK Tools.
  8. Выберите Google Maps Mobile SDK for Work и нажмите OK, чтобы завершить загрузку.

Android Studio установит библиотеку в папку <android-sdk-folder>/extras/google/maps_for_business_sdk/.

См. руководство по работе с Android SDK Manager, чтобы получить инструкции по использованию Android SDK Manager как отдельного инструмента.

Добавление пакета разработчика в проект

Ниже приведены инструкции для Android Studio. Если вы используете другой инструмент, см. инструкции в документации Android относительно использования командной строки.

Google Maps Android API для Premium Plan доступен в двух форматах: как пакет aar (google-maps-sdk-m4b.aar) и как библиотечный модуль (google-maps-sdk-m4b_lib). Выберите наиболее подходящий для вас формат.

Вариант 1: импорт пакета разработчика из пакета aar

Выполните следующие шаги, чтобы добавить пакет aar (google-maps-sdk-m4b.aar) в проект Android Studio.

  1. Перейдите в Google Maps APIs Premium Plan, используя следующий путь:

    <android-sdk>/extras/google/maps_for_business_sdk

  2. Скопируйте файл google-maps-sdk-m4b.aar в каталог libs своего проекта. (Если этот каталог отсутствует, создайте его).

  3. В файл build.gradle добавьте следующий код:

    dependencies {
        compile(name:'google-maps-sdk-m4b', ext:'aar')
    
    }
    
    repositories {
        flatDir{
            dirs 'libs'
        }
    }
    
  4. Выполните шаги для настройки конфигурации, как это описано ниже.

Вариант 2: импорт пакета разработчика в виде библиотечного модуля

Вместо использования файла aar вы можете выполнить следующие шаги, чтобы добавить библиотечный модуль пакета разработчика (google-maps-sdk-m4b_lib) к существующему проекту в Android Studio.

  1. В Android Studio выберите вариант для импорта нового модуля (File -> New -> Import Module).
  2. Перейдите к пакету SDK, используя следующий путь:

    <android-sdk>/extras/google/maps_for_business_sdk

  3. Выберите каталог google-maps-sdk-m4b_lib и нажмите Choose.

  4. Согласитесь с использованием значений по умолчанию в мастере импорта.
  5. Нажмите Finish. Вы увидите текстовый файл с описанием результатов процесса импорта.
  6. Убедитесь, что библиотека включена в файл settings.gradle:

    include ':googlemapssdkm4b_lib'

  7. Добавьте зависимость модуля в файл build.gradle вашего приложения:

    compile project(':googlemapssdkm4b_lib')

Преобразование готовых конфигураций, в которых используются службы Google Play

  1. Если у вас есть приложение, в котором используются службы Google Play, замените все ссылки на пакет com.google.android.gms.maps на com.google.android.m4b.maps.
  2. Добавьте ко всем ссылкам на атрибуты макетов XML префикс m4b_. Например: m4b_mapType и m4b_cameraZoom.

Добавление настроек в манифест приложения

Для приложения Android, которое использует Google Maps Android API, необходимо указать следующие настройки в его файле манифеста AndroidManifest.xml:

Ключ API

Создайте ключ API для своего проекта и добавьте его в AndroidManifest.xml, как это описывается в руководстве по аутентификации.

Разрешения

Укажите разрешения, которые необходимы для вашего приложения, добавив дочерние элементы <uses-permission> для элемента <manifest> в файле AndroidManifest.xml.

Разрешения на использование данных о местоположении

Если ваше приложение обращается к данным о текущем местоположении пользователя путем использования слоя My Location, вам необходимо запросить разрешения на использование данных о местоположении, как это описано в руководстве по работе с данными о местоположении.

Разрешение для доступа ко внешнему хранилищу

Если ваше приложение предназначено для Google Play Services SDK версии 8.3 или более поздней, вам более не понадобится разрешение WRITE_EXTERNAL_STORAGE для использования Google Maps Android API.

Если же вы разрабатываете приложение для предыдущих версий Google Play Services SDK, вам следует запросить разрешение android.permission.WRITE_EXTERNAL_STORAGE.

<uses-permission
        android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Примечание. Если ваше приложение предназначено для API уровня 23 (Android 6.0), который требует использования разрешений для выполнения, ваше приложение должно быть предназначено для Google Play Services SDK версии 8.3 или более поздней.

Разрешения, автоматически добавляемые в манифест

Следующие разрешения определяются в манифесте служб Google Play и автоматически добавляются в манифест вашего приложения при сборке. Вам не нужно указывать их в манифесте явным образом.

  • android.permission.INTERNET – используется API-интерфейсом для загрузки листов карты с серверов Google Maps.
  • android.permission.ACCESS_NETWORK_STATE – позволяет API-интерфейсу проверять состояние подключения для определения возможности загрузки данных.

OpenGL ES версии 2

Для обработки карты Google Maps Android API использует интерфейс OpenGL ES версии 2. Следующий параметр определяется в манифесте служб Google Play и автоматически добавляется в манифест вашего приложения при сборке. Вам не нужно указывать его в манифесте явным образом.

<uses-feature
        android:glEsVersion="0x00020000"
        android:required="true"/>

Это уведомит внешние службы о наличии данного требования. В частности, из-за этого магазин Google Play не будет отображать ваше приложение для устройств, которые не поддерживают OpenGL ES версии 2.

Добавление карты

Самым простым способом проверить, правильно ли выполнена конфигурация вашего приложения, является добавление простой карты.

Примечание. Этот код не должен использоваться в рабочем приложении.

  1. Добавьте следующий фрагмент в activity_main.xml.

    <?xml version="1.0" encoding="utf-8"?>
    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/map"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:name="com.google.android.m4b.maps.MapFragment"/>
    
  2. В MainActivity.java добавьте следующий код.

    package com.example.mapdemo;
    
    import android.app.Activity;
    import android.os.Bundle;
    
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    }
    

Создание и запуск приложения

Соберите и запустите свое приложение. Должна отобразиться карта.

Устранение неполадок

  • Если карта не отображается, проверьте, выполнили ли вы все шаги, описанные ранее в этом документе. В частности, убедитесь, что вы используете правильный ключ API, а ваша учетная запись активирована для службы Google Maps APIs Premium Plan.

  • Если количество методов, используемых в вашем проекте, превышает установленный лимит, появится следующая ошибка:

    Unable to execute dex: method ID not in [0, 0xffff]: 65536

    Информацию о причинах и решениях см. в руководстве для разработчиков приложений Android в разделе об использовании более 65 тысяч методов для сборки приложений.

  • Если в вашем проекте уже используется Guava, могут появиться ошибки конфликта классов, например, такие:

    com.android.dex.DexException: Multiple dex files define Lcom/google/common/annotations/Beta

    Чтобы устранить эту проблему, попробуйте удалить копию Guava из каталога google-maps-sdk-m4b_lib/libs.

Дополнительная информация

Миграция существующего приложения

Интерфейс Android API, который предлагается вместе с Premium Plan, очень похож на стандартный Google Maps Android API. Поэтому процесс миграции не должен вызвать затруднений.

  1. Загрузите Google Maps Android API для Premium Plan и добавьте пакет SDK в проект, как описано выше.
  2. Замените все ссылки на пакет com.google.android.gms.maps, указав вместо них com.google.android.m4b.maps.
  3. Добавьте ко всем ссылкам на атрибуты макетов XML префикс m4b_. Например: m4b_mapType и m4b_cameraZoom.
  4. Создайте новый ключ API для своего проекта и добавьте его в AndroidManifest.xml, как это описано в руководстве по аутентификации.
  5. Выполните сборку приложения.

Сравнение версий

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

  Стандартный Google Maps Android API Premium Plan
Название пакета com.google.android.gms.maps com.google.android.m4b.maps
Атрибуты XML в файле макета Используйте имя атрибута без префикса. Например: mapType. Добавьте ко всем именам атрибутов префикс m4b_. Например: m4b_mapType. Более подробную информацию см. в документации с описанием атрибутов XML.
Источник загрузки Входит в службы Google Play. Доступен в виде статической библиотеки.
Каналы поддержки Поддержка сообщества Доступ к поддержке премиум-уровня
Условия использования Регулируется условиями использования Google Maps APIs. Регулируется условиями использования Google Maps APIs Premium Plan .

Службы Google Play

Для стандартного Google Maps Android API требуется наличие как APK служб Google Play, так и клиентской библиотеки служб Google Play. Однако при использовании с Google Maps APIs Premium Plan пакет SDK требует лишь установки APK служб Google Play на целевом устройстве, клиентская библиотека не требуется.

При миграции вашего приложения на Premium Plan не требуется удалять пакет SDK служб Google Play из проекта. Однако вам следует удалить все ссылки на пакет com.google.android.gms.maps. Службы Google Play включают в себя версию Google Maps Android API, а также другие службы Google. Если вы настроите службы Google Play в своем приложении для использования других API-интерфейсов Google, убедитесь, что вы используете только пакет SDK Premium Plan (пакет com.google.android.m4b.maps) для доступа к Google Maps.

Хотя клиентская библиотека служб Google Play не требуется, она может оказаться полезной для использования других API-интерфейсов Google, например, Google+ или Location API.

Пример кода

Репозиторий Google Maps на GitHub содержит ряд примеров, иллюстрирующих использование Google Maps Android API в приложении для Android. Обратите внимание, что примеры приложений используют пакет com.google.android.gms.maps, а не com.google.android.m4b.maps, который применяется с Premium Plan. Для примеров приложений также требуется пакет SDK служб Google Play, так как они используют Location API для отдельных частей демонстрации.

Кроме того, на каждой странице этого руководства для разработчиков приведены фрагменты кода.

Документация

Основным источником информации о Google Maps APIs Premium Plan является документация для разработчиков и справочная документация, доступная на нашем веб-сайте.