Android get map key

Google MAPs API в android или как работать с картами быстрее

Принцип работы Google MAPs API

Вся документация для работы с картами приведена на (логично) официальном сайте google maps api. Сегодня я рассматриваю только Directions API (документация). Для того что бы получить какую-либо информацию от большого числа, вам необходимо сделать запрос. Ответ прийдет в формате JSON.

Общий вид запроса:

Пример: https://maps.googleapis.com/maps/api/directions/json?origin=55.754724,%2037.621380&destination=55.728466,%2037.604155&key=»Your MAPs API key»

В качестве ответа нам (ожидаемо) пришел JSON с большим набором разных точек с координатами и названиями этих мест.

А как вообще работать с этой страшной штукой?

Если вы только начинаете работать с Android, то советую вам почитать про такую замечательную библиотеку Retrofit, которая превращает работу с запросами в код из 2 строк. Рассматривать сейчас я её не буду.

Но я сегодня хочу рассмотреть пример использования библиотеки Java Client for Google Maps Services. Библиотека как по мне замечательная, освобождает от необходимости писать (пусть даже очень короткие) запросы вручную и отлично подходит в случаях когда нужно писать очень быстро, как например на хакатоне. Я хочу показать живой пример использования данной библиотеки на примере работы с Directions API.

Подключение библиотеки

Для начала нам потребуется получить ключ для нашего приложения. Топаем на оф. сайт, находим сверху кнопку «получить ключ», создаем новый проект, нажимаем далее и готово!
UPD: теперь бесплатно получить нельзя. С лета 2018 года Google обновили план и необходимо ввести данные своей карты для получения 200$ для запросов каждый месяц бесплатно. Этого должно хватать, но конечно тенденция не радует.

Firebase
Для правильной работы приложения нам необходимо получить файл google-service.json. Идем на firebase выбираем наш проект и добавляем его. Далее нам нужно выбрать Android проект, ввести название пакета, регистрируем приложение. Скачиваем файл и перетаскиваем в папку app. К слову её не будет видно в дереве проекта, для этого надо в Android Studio поменять отображение с Android на Project или залезть в наш проект через файловый менеджер. Далее следуем инструкциям где какой код писать.

Включаем в консоли
Так же нам необходимо включить Directions API (или любую другую необходимую вам API) в консоли, для этого идем сюда, выбираем наше приложение и включаем Directions API.

Gradle
В Gradle файлы так же необходимо добавить еще пару строк. В итоге новые строки выглядят вот так:

Обязательно проверяйте, актуальная ли это сейчас версия!

Встраиваем карту в приложение

Google map в андроид реализовывается как фрагмент (или как MapView, но об этом в другой раз, нам сейчас особой разницы нет). Просто встраиваем его в наш layout. В нашем классе, который работает с картой, необходимо найти эту карту и заимплементить интерфейс.

Код для фрагмента выглядит вот так. Я буду работать с MainActivity, соответственно если вы используете другой класс вам необходимо поменять контекст.

Отлично, фрагмент встроили, Android Studio на нас не ругается, едем дальше. Переходим в MainActivity.class и имплементим интерфейс OnMapReadyCallback.

В onCreate пишем

Так же идем в Manifests и прописываем вот такие штуки внутри тэга application

Где вместо @string/google_maps_key должен подставиться ваш ключ для карт, который мы получили ранее. Соответственно вам нужно создать нужный ресурс в файле string.

Пишем всякие интересности

Отлично, карта у нас есть, давайте наконец напишем хоть что-нибудь интересное. Пусть нашей целью будет нарисовать маршрут по Москве через несколько точек:

  • Гум (55.754724, 37.621380)
  • Большой театр (55.760133, 37.618697)
  • Патриаршие пруды (55.764753, 37.591313)
  • Парк культуры (55.728466, 37.604155)

Кладу все наши места в List и делаю это как глобальную переменную.

Для начала создадим по маркеру на каждое место. Маркер это просто объект, которому передаются координаты, а затем они накладываются на карту. Код:

Далее мы пишем вот такой код все в том же методе onMapReady

Читайте также:  Android или windows рейтинг

При запуске приложения мы получили вот такую картину:

Хм, Москва, конечно, весьма запутанная, но не настолько же. Почему же такой странный маршрут нам вернул Google? Потому что он построил маршрут для автомобилей, который идет по умолчанию, но мы можем это изменить. Чтобы построить маршрут для пешеходов, меняем код на:

Теперь наш маршрут выглядит вот так

Существует еще множество настроек, о всех них можно прочитать в документации. Просто мы все параметры будем добавлять не в сырой запрос, а в код, поскольку методы библиотеки имеют те же названия что и просто в запросах.

Источник

Using API Keys

Before you begin

Before you start using the Places SDK for Android, you need a project with a billing account and the Places SDK for Android enabled. To learn more, see Set up in Cloud Console.

Creating API keys

The API key is a unique identifier that authenticates requests associated with your project for usage and billing purposes. You must have at least one API key associated with your project.

To create an API key:

Console

Go to the Google Maps Platform > Credentials page.

  • On the Credentials page, click Create credentials > API key.
    The API key created dialog displays your newly created API key.
  • Click Close.
    The new API key is listed on the Credentials page under API keys.
    (Remember to restrict the API key before using it in production.)
  • Cloud SDK

    Read more about the Google Cloud SDK , Cloud SDK installation , and the following commands:

    Adding the API key to your app

    Add the API key when initializing the Places SDK for Android in your application.

    Restricting API keys

    Restricting API keys adds security to your application by ensuring only authorized requests are made with your API key. We strongly recommend that you follow the instructions to set restrictions for your API keys. For more information, see API security best practices.

    When you restrict your API key, you must provide the SHA-1 certificate fingerprint of the signing key that was used to sign the application. There are two certificate types:

    • Debug certificate: Only use this certificate type with apps you’re testing and other non-production code. Do not attempt to publish an app that’s signed with a debug certificate. The Android SDK tools generate this certificate automatically when you run a debug build.
    • Release certificate: Use this certificate when you’re ready to release your app to an app store. The Android SDK tools generate this certificate when you run a release build.

    For more information about digital certificates, see the Sign your app guide.

    For information about getting your certificate fingerprint, see Authenticating Your Client. If you’re using Play App Signing; instead, you must go to the app signing page on the Play Console to get your certificate fingerprint.

    To restrict an API key:

    Console

    Go to the Google Maps Platform > Credentials page.

  • Select the API key that you want to set a restriction on. The API key property page appears.
  • Under Key restrictions, set the following restrictions:
    • Application restrictions:
      1. Select Android apps.
      2. Click + Add package name and fingerprint.
      3. Enter your package name and SHA-1 certificate fingerprint. For example:
    • API restrictions:
      1. Click Restrict key.
      2. Select Places API from Select APIs dropdown. If the Places API is not listed, you need to enable it.
  • To finalize your changes, click Save.
  • Cloud SDK

    List existing keys.

    Clear existing restrictions on existing key.

    Set new restrictions on existing key.

    Read more about the Google Cloud SDK , Cloud SDK installation , and the following commands:

    Finding your app’s certificate information

    Android-restricted API keys are linked to specific certificate/package pairs. You only need one key for each certificate, no matter how many users you have for the app.

    The API key is based on a short form of your app’s digital certificate, known as its SHA-1 fingerprint. To display the SHA-1 fingerprint for your certificate, first ensure that you are using the right certificate. You may have two certificates:

    • A debug certificate: The Android SDK tools generate this certificate automatically when you do a debug build. Only use this certificate with apps that you’re testing. Do not attempt to publish an app that’s signed with a debug certificate. The debug certificate is described in more detail in Signing in Debug Mode in the Android Developer Documentation.
    • A release certificate: The Android SDK tools generate this certificate when you do a release build. You can also generate this certificate using the keytool program. Use this certificate when you are ready to release your app to the world.
    Читайте также:  Revheadz engine sounds полная версия для андроид

    Using Gradle

    Gradle makes it very easy to get your app’s signing info. Simply run ./gradlew signingReport .

    The output should look something like this:

    Manually

    Follow the steps below to display a certificate’s SHA-1 fingerprint using the keytool program with the -v parameter. For more information about Keytool, see the Oracle documentation.

    Debug certificate

    Displaying the debug certificate fingerprint

    Locate your debug keystore file. The file name is debug.keystore , and is created the first time you build your project. By default, it is stored in the same directory as your Android Virtual Device (AVD) files:

      macOS and Linux:

    /.android/

  • Windows Vista and Windows 7: C:\Users\your_user_name\.android\
  • List the SHA-1 fingerprint:

    For Linux or macOS, open a terminal window and enter the following:

    For Windows Vista and Windows 7, run:

    You should see output similar to this:

    Release certificate

    Displaying the release certificate fingerprint

    Locate your release certificate keystore file. There is no default location or name for the release keystore. If you don’t specify one when you build your app for release, the build will leave your .apk unsigned, and you’ll have to sign it before you can publish it. For the release certificate, you also need the certificate’s alias and the passwords for the keystore and the certificate. You can list the aliases for all the keys in a keystore by entering:

    Replace your_keystore_name with the fully-qualified path and name of the keystore, including the .keystore extension. You’ll be prompted for the keystore’s password. Then keytool displays all the aliases in the keystore.

    Enter the following at a terminal or command prompt:

    Replace your_keystore_name with the fully-qualified path and name of the keystore, including the .keystore extension. Replace your_alias_name with the alias that you assigned to the certificate when you created it.

    You should see output similar to this:

    The line that begins SHA1 contains the certificate’s SHA-1 fingerprint. The fingerprint is the sequence of 20 two-digit hexadecimal numbers separated by colons.

    Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

    Источник

    Получение ключа API Google Maps

    Чтобы использовать функции Google Карты в Android, нужно зарегистрироваться в Google и получить ключ API Карт. Без этого в приложениях вместо карты будет отображаться пустая сетка. Нужно получить ключ API Google Карт для Android версии 2, так как ключи от более старого API Google Карт для Android версии 1 не будут работать.

    Чтобы получить ключ API Карт версии 2, необходимо сделать следующее:

    1. Получите отпечаток SHA-1 хранилища ключей, которое используется для подписывания приложения.
    2. Создайте проект в консоли Google API.
    3. Получите ключ API.

    Получение отпечатка ключа подписывания

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

    По умолчанию хранилище ключей, которое используется для подписывания отладочных версий приложений Xamarin.Android, находится по следующему пути:

    C:\Users\ [USERNAME] \Аппдата\локал\ксамарин\моно для Андроид\дебуг.кэйсторе

    Информация о хранилище ключей отображается при вызове команды keytool из JDK. Обычно это средство находится в каталоге bin для Java:

    C:\Program Филес\андроид\ждк\ microsoft_dist_openjdk_ [версия] \bin\keytool.exe

    По умолчанию хранилище ключей, которое используется для подписывания отладочных версий приложений Xamarin.Android, находится по следующему пути:

    /Users/[ИМЯ ПОЛЬЗОВАТЕЛЯ]/.local/share/Xamarin/Mono for Android/debug.keystore

    Информация о хранилище ключей отображается при вызове команды keytool из JDK. Обычно это средство находится в каталоге bin для Java:

    /System/Library/Java/JavaVirtualMachines/[ВЕРСИЯ].jdk/Contents/Home/bin/keytool

    Откройте средство ключей при помощи следующей команды (учитывая указанные выше пути):

    Пример для Debug.keystore

    Для ключа отладки по умолчанию (который автоматически создается для отладки) используйте следующую команду:

    Читайте также:  Android yandex карты 4pda android

    Ключи для рабочей среды

    При развертывании приложения в Google Play необходимо его подписать закрытым ключом. Нужно выполнить keytool с данными закрытого ключа, а полученный отпечаток SHA-1 применить для создания ключа API Google Карт для рабочей среды. Не забудьте перед развертыванием включить в файл AndroidManifest.xml правильный ключ API Google Карт.

    Выходные данные keytool

    В окне консоли должны отобразиться выходные данные, примерно как показано ниже:

    Отпечаток SHA-1 (указанный после SHA1) потребуется вам далее в рамках этого руководства.

    Создание проекта API

    Получив отпечаток SHA-1 для хранилища ключей подписывания, следует создать новый проект в консоли API-интерфейсов Google (или добавить службу API Google Карт для Android версии 2 в существующий проект).

    В браузере перейдите на панель мониторинга служб API консоли Google Developers и щелкните выбрать проект. Щелкните имя проекта или создайте новый, щелкнув NEW PROJECT (Создать проект):

    Если вы выбрали создание проекта, введите имя для него в открывшемся диалоговом окне New Project (Новый проект). С помощью этого диалогового окна будет создан уникальный идентификатор проекта, основанный на его имени. Теперь щелкните Create (Создать), как показано в следующем примере:

    Примерно через минуту проект будет готов и для него отобразится панель мониторинга. Щелкните Enable APIs and services (Включить API-интерфейсы и службы).

    На странице API Library (Библиотека API) щелкните Maps SDK for Android (Пакет SDK Карт для Android). На следующей странице щелкните ENABLE (Включить), чтобы включить службу для этого проекта:

    На этом этапе будет создан проект API и в него будет добавлен API Google Карт для Android версии 2. Но вы не сможете использовать этот API в проекте, пока не создадите для него учетные данные. В следующем разделе объясняется, как создать ключ API и авторизовать приложение Xamarin.Android для использования этого ключа.

    Получение ключа API

    После создания проекта API на консоли разработчика Google вам нужно создать ключ API для Android. Приложения Xamarin.Android должны иметь этот ключ API, чтобы получить доступ к API Карт для Android версии 2.

    На странице Maps SDK for Android (Пакет SDK Карт для Android), которая отобразится после нажатия кнопки ENABLE (Включить) на предыдущем шаге, откройте вкладку Credentials (Учетные данные) и нажмите кнопку Create credentials (Создать учетные данные).

    Щелкните API key (Ключ API):

    После нажатия этой кнопки создается ключ API. Далее необходимо ограничить этот ключ, чтобы только нужное приложение обращалось к API с помощью этого ключа. Щелкните RESTRICT KEY (Ограничить ключ):

    В поле Имя замените значение API Key 1 понятным именем, которое поможет идентифицировать назначение этого ключа (в нашем примере это XamarinMapsDemoKey). Теперь щелкните переключатель Android apps (Приложения Android):

    Чтобы добавить отпечаток SHA-1, щелкните + Add package name and fingerprint (Добавить имя пакета и отпечаток):

    Введите имя пакета для приложения и отпечаток сертификата SHA-1 (полученный с помощью keytool , как описано выше в этом руководстве). В следующем примере указывается имя пакета для XamarinMapsDemo , за которым следует отпечаток сертификата SHA-1, полученный из XamarinMapsDemo .

    Обратите внимание, что для доступа из APK к Google Картам необходимо добавить отпечатки SHA-1 и имена пакетов для каждого хранилища ключей (отладки и выпуска), которое используется для подписывания APK. Например, если вы используете один компьютер для отладки и другой для создания APK выпуска, следует поместить отпечаток сертификата SHA-1 из хранилища ключей отладки на первый компьютер, о отпечаток сертификата SHA-1 из хранилища ключей выпуска на второй компьютер. Щелкните + Add package name and fingerprint (Добавить имя пакета и отпечаток), чтобы добавить еще один отпечаток и имя пакета, как показано в следующем примере:

    Чтобы сохранить внесенные изменения, нажмите кнопку Save (Сохранить). Далее вы вернетесь к списку ключей API. Если у вас есть другие ключи API, созданные ранее, они также будут перечислены здесь. В этом примере отображается только один ключ API, который мы создали в предыдущих шагах:

    Подключение проекта к оплачиваемой учетной записи

    С 11 июня 2018 г. ключ API не будет работать, если проект не подключен к оплачиваемой учетной записи (несмотря на то, что эта служба предоставляется бесплатно для мобильных приложений).

    Нажмите кнопку меню «гамбургер» и выберите страницу Billing (Выставление счетов):

    Свяжите проект с оплачиваемой учетной записью, щелкнув Link a billing account (Связать учетную запись выставления счетов) а затем CREATE BILLING ACCOUNT (Создать учетную запись выставления счетов) во всплывающем окне (если у вас нет учетной записи, вам будет предложено создать новую):

    Источник

    Оцените статью