Как создать приложение карты

Обновлено: 20.05.2024

Вы можете создать приложение Android с картой, используя шаблон Google Карт для Android Studio. Если у вас уже есть проект Android Studio и вы хотите изменить его настройки, перейдите к описанию конфигурации.

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

Настройте среду разработки

Вам обязательно потребуется Android Studio. Если у вас нет этого инструмента, скачайте и установите его.

Добавьте в Android Studio SDK сервисов Google Play. Maps SDK для Android является частью SDK сервисов Google Play, доступного в SDK Manager.

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

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

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

Создайте проект Google Карт

В окне New Project (Новый проект) найдите категорию Phone and Tablet (Телефоны и планшеты). Выберите Google Maps Activity (Операция с Google Картами) и нажмите Next (Далее).

Заполните форму Google Maps Activity (Операция с Google Картами):

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

Укажите минимальную версию SDK. Это должна быть версия Android SDK, которую поддерживает ваше тестовое устройство.

Нажмите Finish (Готово).

Когда вы завершите создание проекта, Android Studio запустит Gradle для его сборки. Это может занять некоторое время. Когда сборка будет завершена, в Android Studio откроются файлы google_maps_api.xml и MapsActivity . Ваш объект activity может иметь другое название, если вы указали его при настройке.

Дополнительную информацию о создании проекта вы можете найти здесь.

Файл google_maps_api.xml содержит инструкции о том, как получить ключ Google Maps API и добавить его в файл. Не добавляйте ключ API в файл, поскольку это снижает безопасность. Вместо этого выполните инструкции из раздела ниже.

Настройки в Cloud Console

Выполните настройку Cloud Console на указанных ниже вкладках.

Шаг 1

Консоль

Чтобы приступить к созданию проекта, перейдите на страницу выбора проекта в консоли Google Cloud Console и нажмите Создать проект.

Убедитесь, что для проекта Google Cloud включены платежные функции.

Мы предлагаем бесплатную пробную версию с кредитом в размере 300 долл. США для использования Google Cloud, а также ежемесячный кредит на сумму 200 долл. США для работы на платформе Google Карт. Ознакомьтесь с информацией о кредитах в платежных аккаунтах и платежных функциях.

Cloud SDK

Прочитайте статьи о Google Cloud SDK, установке Cloud SDK и следующих командах:

Шаг 2

Для работы с платформой Google Карт вам потребуется включить API и SDK, которые будут использоваться в проекте.

Консоль

Cloud SDK

Прочитайте статьи о Google Cloud SDK, установке Cloud SDK и следующих командах:

Шаг 3

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

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

Чтобы создать его, выполните следующие действия.

Консоль

Откройте страницу Платформа Google Карт > Учетные данные.

Cloud SDK

Прочитайте статьи о Google Cloud SDK, установке Cloud SDK и следующих командах:

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

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

Чтобы вам было проще работать, используйте Secrets Gradle Plugin для Android.

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

  1. В Android Studio откройте файл build.gradle корневого уровня и добавьте в элемент dependencies , принадлежащий элементу buildscript , указанный ниже код.
  2. Откройте файл build.gradle уровня приложения и добавьте в элемент plugins указанный ниже код.
  3. Сохраните файл и синхронизируйте проект с Gradle.
  4. Откройте файл local.properties в каталоге уровня проекта и добавьте в этот файл приведенный ниже код. Укажите вместо YOUR_API_KEY свой ключ API.
  5. Сохраните файл и синхронизируйте проект с Gradle.
  6. В файле AndroidManifest.xml найдите раздел com.google.android.geo.API_KEY и измените android:value attribute следующим образом:

Примечание. Как показано выше, рекомендуемое имя метаданных для ключа API – com.google.android.geo.API_KEY . Ключ с таким именем может использоваться для аутентификации нескольких API созданных на основе Google Карт для платформы Android, включая Maps SDK for Android. Для обеспечения обратной совместимости API также поддерживает имя com.google.android.maps.v2.API_KEY . Это устаревшее имя обеспечивает аутентификацию только для Android Maps API версии 2. Приложение позволяет указать только одно из имен в метаданных ключа API. Если указаны оба имени, API вызывает исключение.

Проанализируйте код

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

Файл activity для карты

Файл activity для карты – это основной операционный файл для приложения. Он содержит код для отображения карты и управления ей. По умолчанию такой файл называется MapsActivity.java . Если же в качестве языка для приложения вы выбрали Kotlin, он будет называться MapsActivity.kt .

Основные элементы файла activity

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

Объект GoogleMap предоставляет доступ к данным карты и ее представлению. Это основной класс в Maps SDK для Android. Дополнительную информацию об объектах SupportMapFragment и GoogleMap вы можете найти в этом руководстве.

Функция moveCamera центрирует карту по координатам LatLng (Сидней, Австралия). Как правило, при добавлении карты первым делом нужно изменить настройки местоположения и камеры: угол обзора, ориентацию карты, масштаб и т. п. Подробнее…

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

Файл activity для карты содержит следующий код:

Kotlin

Файл Gradle на уровне приложения

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

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

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

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

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

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

Скриншот карты с маркером, центрированным по координатам Сиднея (Австралия).

Если приложение запущено успешно, в нем будет показана карта, отцентрированная по координатам Сиднея (Австралия). Вы увидите маркер, как на скриншоте.

Следуйте инструкциям ниже.

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

Дальнейшие действия

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

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

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.

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

Время чтения: 8 минут

как разработать мобильное приложение с геолокацией

Мы много работаем с геолокацией и помогаем стартапам создавать безопасные сервисы, которые используют местонахождение устройства. На основе нашего опыта, мы составили подробное руководство, которое объясняет основные моменты и этапы разработки приложений . Рассказываем , как разработать мобильное приложение с геолокацией , какие API можно использовать, как выглядит процесс и сколько он стоит. Поехали!

Что такое приложение с геолокацией?

Приложение с геолокацией — это мобильное или веб-приложение, которое отслеживает, где находится устройство. В этом ему помогают GPS, данные мобильного оператора и Wi-Fi. Такая функция помогает крупным компаниям и стартапам создавать более удобные сервисы, с которыми пользователям приятно и легко взаимодействовать.

как разработать мобильное приложение с геолокацией

Например, службы доставки еды, вроде Яндекс.Еды или Delivery Club — это приложения с геолокацией . Когда пользователи хотят заказать еду, сервис автоматически определяет, куда ее доставить. В таком случае не нужно вводить адрес вручную — это экономит время при заказе. Кроме того, благодаря геолокации можно отслеживать, где находится курьер и сколько времени осталось.

Чтобы разработать мобильное приложение с геолокацией, обычно используют сторонние API. Эта аббревиатура расшифровывается как application programming interface — программный интерфейс приложения. Самыми распространенными из них являются Google Maps API и Apple Maps API.

Немного статистики о приложениях с геолокацией

, что рынок вырастет на 27% к 2027 году.

Исследования сводятся к одному: спрос на приложения с геолокацией будет расти, и в ближайшие годы все больше стартапов будут интегрировать эти функции в свои решения. Чтобы не остаться в стороне и не отставать от конкурентов, мы рекомендуем интегрировать местонахождение пользователя в ваше приложение.

Зачем использовать геолокацию в приложениях?

Прежде чем решать , как разработать приложение с геолокацией , давайте разберемся, какую пользу эта функция принесет вашему решению. Вот несколько идей, как местонахождение помогает стартапам:

  • Определить конкретную область, в которой пользователю удобнее добраться до локации. Например, найти ближайший супермаркет или банкомат, который открыт ночью.
  • Ускорить время выполнения заказа. Вместо того, чтобы вручную вводить адрес, пользователи могут поставить точку на карте и сразу перейти к следующему шагу. Это экономит время и делает взаимодействие с интерфейсами более комфортным.
  • Отслеживать физическую активность пользователя. Например, считать количество шагов и длину вечерней пробежки.
  • Составлять маршрут. Приложения с геолокацией могут помочь пользователям перемещаться из одного места в другое. Самый известный пример — навигаторы и карты.
  • Определить часовой пояс и страну, в которой находятся пользователь . Допустим, вы разработали сервис для сникерхэдов, который присылает уведомление, когда кроссовки поступают в продажу. Чтобы убедиться, что пользователи из разных стран получают информацию вовремя, с учетом их часового пояса, вам потребуется их местонахождение.

Каким стартапам нужны приложения с геолокацией

Местонахождение устройства — это маст-хэв для некоторых сервисов. Без геолокации приложением будет неудобным и пользователи могут уйти к конкурентам.

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

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

Примеры: Яндекс.Еда, Delivery Club, UberEats

Все социальные сети — это приложения с геолокацией . Функция помогает пользователям отслеживать, что происходит поблизости, искать интересные события, настраивать таргетированную рекламу и ставить геотеги, чтобы привлекать подписчиков из определенного города.

Некоторые соцсети, например TikTok, используют геофункции, чтобы рекомендовать контент. В зависимости от страны пользователя и языка интерфейса приложение решает, кому показать ролик. Допустим, блогер публикует видео в Испании, но хочет, чтобы его увидели в Америке. В TikTok ему сначала придется пробраться через испанских пользователей и, если контент станет популярным, то его увидят в других странах.

Примеры: TikTok, Facebook, Instagram, Snapchat, Yelp, Foursquare.

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

Примеры: Tinder, Bumble, Hinge, Pure.

как разработать мобильное приложение с геолокацией

Tinder, как и другие приложения, первым делом запрашивает разрешение, чтобы отслеживать локацию

Как разработать мобильное приложение с геолокацией и превратить его в популярный маркетплейс? Легко! Большинство пользователей хотят знать, сколько займет доставка посылки. Чтобы рассчитать примерную дату, торговые платформы используют API-интерфейсы, отслеживающие местоположение покупателя и продавца.

как разработать мобильное приложение с геолокацией

Примеры: Amazon, eBay.

Такси используют локацию пользователя, чтобы подобрать водителя поблизости. А когда машина приедет, на карте можно будет посмотреть, где она припарковалась

Примеры: Uber, Lyft.

Главная цель такого типа приложений с геолокацией — определить, где находится пользователь и построить маршрут к новому месту. Вид транспорта не важен — карты помогают пешеходам, водителям, велосипедистам и пассажирам общественного транспорта.

Примеры: Google Maps, Apple Maps, MapsMe, Waze.

как разработать мобильное приложение с геолокацией

Карты Google также являются одним из популярных API для приложений с геолокацией

Сложности в разработке приложений с геолокацией

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

Как разработать приложение с геолокацией, которое будет безопасным? Нужно учесть несколько моментов при разработке:

  • Решите, какие именно данные вам нужны от пользователей и как долго вы будете их хранить. Если геолокация устройства нужна вашему сервису только один раз, не сохраняйте ее на сервере дольше. Тоже самое с остальной информацией: номером телефона, именем или способами оплаты.
  • Подумайте о том, чтобы добавить логин и пароль в приложение. Эта функция поможет свести к минимуму риск того, что кто-то другой использует их учетную запись. Кроме того, если вы имеете дело с платежной информацией и храните данные карты, добавьте двухфакторную аутентификацию для дополнительной защиты данных.
  • Не забывайте про шифрование данных . В момент, когда данные передаются с устройства пользователя на сервер, они особенно уязвимы. Поэтому шифрование имен, телефонных номеров, местоположения и другой контактной информации обязательно для приложений, работающих с персональными данными.
  • Проверяйте безопасность после запуска. Регулярно! После выпуска приложения с геолокацией , работа над защитой данных не заканчивается. Каждый год появляются новые вирусы и вредоносные программы, поэтому не забудьте обновлять свой протокол шифрования и время от времени тестировать систему. В этом поможет команда разработчиков, которая изначально работала над решением.

Как разработать мобильное приложение: 6 шагов

После того, как вы изучили подводные камни о том, как разработать мобильное приложение с геолокацией , возникает следующий вопрос: “С чего начать?” С безопасности данных или, может быть, с выбора API? Мы расскажем!

Вот 6 важных моментов, с которых начинается работа над решением:

  • Идея. Начните с бизнес-идеи, которая у вас есть. Проведите анализ конкурентов и составьте список плюсов и минусов вашего будущего решения. Чем лучше вы знаете свою идею, тем проще вам будет объяснить ее команде разработчиков.

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

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

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

  • Основные функции . Чтобы определить , как разработать мобильное приложение с геолокацией и какие шаги предпринять, нужно выбрать маст-хэв функции для интерфейса. Нужна ли вам карта? Хотите ли вы отправлять уведомления, когда местоположение меняется? Собираетесь ли вы отслеживать локацию на протяжении нескольких минут или часов, как это делают фитнес-приложения или такси?

Эти вопросы лучше обсудить с разработчиком перед тем, как они приступят к работе над вашим приложением, и определиться с ключевыми функциями.

  • MVP . Этот этап разработки приложения помогает протестировать идею, проверить, как обстоят дела на рынке, и получить обратную связь от целевой аудитории. MVP — это первая версия продукта. Важно отметить, что она не должна быть сырой или недоработанной — это признак плохого приложения, а не этапа MVP. Одна из главных характеристик MVP — минимализм. Он содержит только основные функции, которые помогают приложению с геолокацией работать. Ваша команда разработчиков поможет вам расставить приоритеты по этим элементам и составить краткий список того, что будет частью минимально жизнеспособного продукта.
  • Обратная связь . Соберите отзывы на решение от настоящих пользователей и проанализируйте, что они говорят. На этом этапе разработки приложения важно быть открытым и воспринимать критику. Если долго работать над одной идеей, то глаз замыливается и легко пропустить важные детали и недочеты. Именно поэтому на этапе MVP пользователи помогут определить, что нужно изменить в приложении, а что оставить как есть.
  • Финальная версия . После того, как вы учли отзывы пользователей и улучшили приложение, настало время для выпуска на рынок 🚀

Это еще не конец! Очень часто приложениям требуются техническая поддержка после запуска, чтобы периодически проверять новые требования от Apple и Google к программному обеспечению, обновлять решение и исправлять ошибки. Обсудите с разработчиком, который собирается разработать мобильное приложение , нужна ли вам такая услуга.

Стоимость и сроки

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

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

ЭтапЧто мы делаемСколько рабочих часов занимаетПриблизительная стоимость
UI/UX дизайн Планируем пользовательский путь, придумывает концепты и презентуем их заказчику 111 часов $4 995,00
Разработка Работаем над архитектурой и интерфейсом со стороны клиента и сервера 823 часов $37 035,00
QA тестирование Ищем и заранее устраняем любые потенциальные ошибки 83 часов $1 245,00
Менеджмент проекта Управляем разработкой мобильных приложений и решаем административные задачи 14 часов $1 800,00

В среднем приложение с локацией стоит $45 075,00 долларов и требует 1071 часов работы. Мы оказываем поддержку на всех этапах разработки приложений .

В оценке мы учли все моменты, которые могут потребоваться вашему решению: мы разрабатываем кроссплатформенные мобильные приложения с нуля, обеспечиваем шифрование и защиту данных, а также настраиваем соединение между сервером и пользователем. В работе мы уделяем внимание UI/UX дизайну, создавая надежный и простой в навигации интерфейс, который помогает пользователям взаимодействовать с решением.

Запомнить на будущее

В этой статье мы рассказываем , как разработать мобильное приложение с геолокацией , и что следует учесть. Сейчас у каждого на телефоне есть сразу несколько решений, которое отслеживают местоположение. Среди них — Яндекс, Uber, DoorDash, Instagram, TikTok, Amazon и многие другие. Геофункции помогают предоставлять клиентам персонализированные услуги только в зависимости от того, где они находятся.

Существует ряд стартапов, для которых функция геолокации — это необходимость. Мы собрали список из 6 типов компаний, которые, гарантировано выиграют от использования местонахождения:

  • Приложения для доставки еды;
  • Социальные сети;
  • Приложения для знакомств;
  • Маркетплейсы;
  • Такси;
  • Карты.

Разработка подобных решений — сложный и многоступенчатый процесс. Чтобы в деталях понять, как разработать мобильное приложение с геолокацией, мы собрали основные моменты нашей инструкции:

  • Приложения с локацией используют специальные API, GPS и данные Wi-Fi, чтобы отслеживать местонахождение пользователя и предоставлять услуги, основываясь на этой информации.
  • Рынок георешений — это быстро развивающаяся сфера, стоимость которой, по прогнозам, вырастет на 23 –– 27% к 2026 — 2027 годам.
  • Чтобы выделиться среди конкурентов, геолокация просто необходима новым решениям.
  • Разработка приложений , которые определяют местоположение пользователей, связана с вопросами безопасности и конфиденциальности. Чтобы защитить персональные данные и вашу репутацию, эта часть решения нуждается в особом внимании разработчиков.
  • Несколько раз проверьте протокол шифрования, который вы используете, и добавьте дополнительную защиту для ваших серверов.
  • Приложение с геолокацией будет стоить X долларов и займет X месяцев для разработки.

Purrweb уже несколько лет работает с разработкой приложений для с помощью фреймворка React Native. Наша команда будут рада помочь вам реализовать идею запуска, защитить данные и добавить функции геолокации там, где это необходимо.

Хотите узнать больше о том, как разработать мобильное приложение? Заполните форму сейчас и получите информацию от наших экспертов.

После темы получения координат вполне логично будет рассмотреть тему гуглокарт. Тема несложная и не особо большая, нам хватит пару уроков, чтобы ее рассмотреть.

Но перед тем, как начать творить и созидать, нам надо будет сделать две вещи.

1) В гугл-консоли включить службу карт и получить API-ключ для работы

2) Обеспечить доступ проекта к Google Play services

API ключ

Начнем с первого пункта. Для этого нам надо зайти в Google APIs Console.

Если у вас нет проекта, гугл предложит его создать.


Жмем Create project…

Проект создан. Слева выбираем Services и открывается список служб.


В этом списке ищем Google Maps Android API v2


Жмем на тумблер включения (OFF), принимаем соглашение и снова попадаем в список служб.

Но теперь служба должна быть включена


Все ок. Теперь идем за ключом.

Для этого слева сверху выбираем API Access и открывается такой экран.


На нем жмем кнопку Create new Android key и от нас требуют ввести SHA1-значение ключа, которым будет подписано приложение.

И даже дают инструкции, как это сделать с помощью утилиты keytool


Если вообще непонятно о чем речь, рекомендую прочесть Урок 123. Там я все подробно описал.

Но последние версии Eclipse позволяют получить SHA1 без всяких команд, достаточно зайти в настройки и там есть вся инфа


Берем содержимое поля SHA1 fingerprint

К нему через точку с запятой дописываем пакет приложения (в этом уроке это будет ru.startandroid.develop.p1391googlemaps), вставляем в поле и жмем Create.


Появился нужный нам ключ - строка API key.


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

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

Google Play services

Теперь второй пункт. Для работы с картой нам понадобится Google Play services.

Открываем SDK Manager и ищем там Extras > Google Play services (если планируете поддержку Android 2.2, то Google Play services for Froyo). Если еще не установлено, то устанавливайте.


После того, как скачалось, у себя на компе ищите папку по следующему пути: <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/. Если вдруг не знаете, где лежит SDK, то это можно подсмотреть в настройках Eclipse, пункт Android, SDK Location:


Исходники из папки google-play-services_lib надо будет импортнуть в Workspace. Для этого в меню Eclipse жмем File > Import, выбираем Android > Existing Android Code into Workspace, находим google-play-services_lib папку, ставим галку, чтобы импорт был выполнен путем копирования (Copy projects into workspace) и жмем Finish.


Проект google-play-services_lib должен появиться в вашем Workspace


Предварительная подготовка завершена, можем создавать проект.

Project name: P1391_GoogleMaps
Build Target: Android 2.3.3
Application name: GoogleMaps
Package name: ru.startandroid.develop.p1391googlemaps
Create Activity: MainActivity

Настройка проекта

Теперь еще немного возни с проектом.

Заходим в свойства проекта и добавляем (кнопкой Add) ссылку на ранее импортированный google-play-services_lib проект.


В манифесте необходимо добавить следующее в тег application:

Первые данные, это наш ключ из гугл-консоли. Здесь вам надо в android:value поставить ваше значение API key, которое вы чуть ранее получили и оставили открытым в браузере. Этот ключ нужен, чтобы карта работала.

Вторые данные – это версия Google Play services. Думаю, что эта инфа о версии нужна, чтобы карта четко понимала, как и что ей доступно из этих сервисов.

Также, в манифесте в тег manifest нам надо добавить следующие разрешения:

Это доступ в инет, проверка доступности инета, сохранение кэша карт и доступ к гугл-веб-сервисам.

Если думаете работать с определением местоположения, то не забывайте про:

И туда же, в тег manifest такое требование:

Гугл-карты используют OpenGL ES версии 2. На девайсах, которые это не поддерживают, карта просто не отобразится. Поэтому ставим ограничение.

Теперь все. Далее продолжаем работу, как с обычным проектом.

В strings.xml добавим строки:

Экран main.xml:

Кнопка и фрагмент-карта

MainActivity.java:

В onCreate мы находим наш фрагмент с картой и получаем от него объект GoogleMap методом getMap. Учитывайте, что этот метод может вернуть null.

Кстати, в onCreate можно также повесить проверку, что на устройстве доступно Google Play services. Для этого надо вызвать метод isGooglePlayServicesAvailable() и он должен вернуть SUCCESS. Подробности в хелпе.

Метод init пока пустой.

В onClickTest мы устанавливаем тип карты методом setMapType

Всего существует 5 типов:

MAP_TYPE_NONE – карта не будет отображаться

MAP_TYPE_NORMAL – обычный режим, в нем карта стартует по умолчанию.

MAP_TYPE_TERRAIN – карта рельефа местности

MAP_TYPE_HYBRID – снимки со спутника + инфа о улицах и транспорте

Получить текущий тип можно методом getMapType.

Я буду проводить все тесты на реальном устройстве, т.к. эмуляторы по умолчанию не поддерживают Google Play services. Но если очень надо, то можно и на эмуляторе запустить после некоторых манипуляций. Об этом написано, например, здесь. Надо скачать два APK-файла и установить их на эмулятор.

Карта

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


У меня при первом запуске карта была не видна, но были видны кнопки управления масштабом. В логах был такой текст: Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors). В этом случае убедитесь, что все верно сделано с получением ключа. Если проблема остается, то удалите приложение с устройства, сделайте в Eclipse очистку проекта (меню Project > Clean) и снова установите приложение - мне помогло.


Теперь карта отображает снимки со спутника

Посмотрим, что еще можно сделать с картой.

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

Вот, например схема 0-го этажа аэропорта Барселоны. Справа видно переключатель этажей.


Мы можем отключить программно эту возможность методом setIndoorEnabled.

Метод setBuildingsEnabled управляет отображением 3D зданий.

Управление

Управление картой жестами и кнопками также поддается настройке. Для этого необходимо вызвать метод getUiSettings и мы получим объект настроек интерфейса UiSettings.

У него куча методов, которые что-либо включают/выключают:

setMyLocationButtonEnabled – кнопка текущего местоположения (необходимо включить определение, метод setMyLocationEnabled(true))

У этих методов есть аналоги, которые начинаются с is вместо set и позволяют получить текущие значения.

На карту можно вешать слушателей. Перепишем метод init:

setOnMapClickListener вешает слушателя OnMapClickListener. Его метод onMapClick сработает при клике на карту и вернет объект LatLng с координатами (latitude, longitude), где было нажатие.

setOnMapLongClickListener вешает слушателя OnMapLongClickListener. Его метод onMapLongClick сработает при длительном нажатии на карту и вернет объект LatLng с координатами (latitude, longitude), где было нажатие.

setOnCameraChangeListener вешает слушателя OnCameraChangeListener. Его метод onCameraChange сработает при смене позиции камеры, т.е. при пролистывании карты, и вернет объект CameraPosition, который содержит информацию о текущем положении камеры.

CameraPosition имеет атрибуты:

- target, тип LatLng с полями-координатами: latitude, longitude. Это точка, на которую смотрит камера.

- bearing, угол поворота камеры от севера по часовой

- tilt, угол наклона камеры

- zoom, текущий уровень зума

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

Камера

Теперь рассмотрим возможности программного изменения положения камеры.

Для этого нам необходимо будет создавать объект CameraUpdate и передавать его в один из методов:

animateCamera(CameraUpdate update, GoogleMap.CancelableCallback callback) – плавное перемещение и возможность указать слушателя CancelableCallback, который оповестит, что перемещение завершено (метод onFinish), либо прервано (метод onCancel).

animateCamera(CameraUpdate update, int durationMs, GoogleMap.CancelableCallback callback) – плавное перемещение, слушатель CancelableCallback и возможность указать время длительности перемещения в миллисекундах

Остается узнать, как получить объект CameraUpdate, который будет содержать информацию о перемещении камеры. Для этого используется CameraUpdateFactory.

Пойдем по порядку методов в хелпе.

newCameraPosition (CameraPosition cameraPosition) – созданный объект CameraUpdate будет содержать данные по перемещению камеры в указанную позицию с указанными настройками.

Тут снова появляется объект CameraPosition, все параметры которого мы уже чуть ранее рассмотрели при разговоре о событии смены камеры и который содержит всю инфу о положении камеры

Чтобы создать CameraPosition, используем CameraPosition.Builder. Перепишем метод onClickTest:

Создаем CameraPosition, указываем координаты (-27,133), зум (5 уровень), поворот карты (45 градусов), угол наклона (20 градусов). И передаем полученный объект в метод newCameraPosition, получая CameraUpdate, который в свою очередь передаем в метод animateCamera.

Все сохраним, запустим, жмем Test и наблюдаем плавное перемещение к Австралии. В процессе перемещения меняется уровень зума, угол наклона и поворот камеры.

newLatLng (LatLng latLng) - перемещение камеры к указанной точке.

Тут все просто. Перепишем метод onClickTest:

По нажатию на Test камера переместится в указанную точку.

newLatLngBounds (LatLngBounds bounds, int padding) – камера покажет указанную область с учетом отступа

Перепишем метод onClickTest:

Для указания области используется объект LatLngBounds, который создается из двух точек LatLng. Эти две точки будут являться левой нижней (югозападной) и верхней правой (северовосточной) точками созданной области.

Параметр padding это отступ (в пикселах) от краев экрана. Т.е., если указать ненулевой padding, то камера покажет указанную область карты не в весь экран, а с учетом этого отступа.

По нажатию на Test камера покажет Австралию с отступом в 100 пикселов от краев экрана.

newLatLngBounds (LatLngBounds bounds, int width, int height, int padding) – аналогичен предыдущему, но можно указать размеры прямоугольника на экране, в который будет помещена показанная область и отступ будет действовать внутри этой области.

newLatLngZoom (LatLng latLng, float zoom) – переместит камеру в указанную точку с указанным уровнем зума

scrollBy (float xPixel, float yPixel) – перемещение камеры на указанное кол-во пикселов

zoomBy (float amount) – изменение текущего уровня зума на указанное кол-во (если положительное - то приближение, если отрицательное - удаление).

zoomBy (float amount, Point focus) – смена текущего зума на указанное кол-во уровней, и применение итогового уровня к указанной точке на экране

zoomIn/zoomOut – увеличение/уменьшение уровня зума на единицу

zoomTo (float zoom) – установка указанного уровня зума

Объект GoogleMap имеет метод setPadding. Он устанавливает отступы от краев экрана. Это влияет на положение стандартных элементов управления карты, а также камера теперь будет считать центром карты эту новую ограниченную область и позиционироваться там.

На следующем уроке:

- размещаем на карте свои объекты

- в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Kotlin, RxJava, Dagger, Тестирование

- ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня

- новый чат Performance для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме

Вы можете создать веб-приложение с картой, используя сайты ArcGIS Configurable Apps , Web AppBuilder , Dashboards , ArcGIS Enterprise или ArcGIS Experience Builder . Каждая из этих опций предлагают разные функциональные возможности с точки зрения компоновки, цветовых схем, инструментов редактирования и идентификации, а также разные каналы социальных медиа и вьюеры одновременного просмотра карт. Выберите шаблон Configurable Apps или откройте сайты Web AppBuilder , Dashboards , StoryMaps , ArcGIS Enterprise или Experience Builder ; настройте компоненты и опубликуйте приложение. Другой способ создания приложения - скачать шаблон и развернуть его на веб-сервере организации или использовать сайты ArcGIS Enterprise для создания веб-сайта.

Опубликованное веб-приложение ссылается на карту, любые изменения, сделанные в карте, включая её экстент, слои, описания и прочее, отображаются в веб-приложении. Если карта, которая была доступна для всей организации, стала персональной (или была удалена), то она становится не видна в приложении.

Создание приложения с помощью Configurable Apps

Вы можете создать приложение с помощью ArcGIS Configurable Apps со страницы ресурсов, страницу элемента веб-карты (с помощью кнопки Создать веб-приложение ) или из Map Viewer (с помощью кнопки Общий доступ ) Следующие шаги описывают, как создать приложение с помощью Configurable Apps со страницы содержания:

  1. Убедитесь, что вы вошли с соответствующими правами для создания ресурсов.
  2. В верхней части сайта щелкните Ресурсы и откройте вкладку Мои ресурсы .
  3. Щелкните Создать и щелкните Настраиваемые приложения .
  4. Выберите шаблон приложения.

По умолчанию отображаются все шаблоны приложения, но вы можете использовать фильтры на панели, чтобы сузить поиск.

Примечание:
Некоторые шаблоны, включая Attachment Viewer, Minimalist, Zone Lookup, Nearby и Interactive Legend, открываются с возможностью экспресс-установки. Выполните шаги на боковой панели Экспресс-установки , чтобы настроить ваше приложение или выберите Переключиться на полную установку , чтобы получить доступ ко всем настройкам конфигурации.

Создание приложения с помощью Web AppBuilder

Вы можете создать веб-приложение с помощью ArcGIS Web AppBuilder со страницы ресурсов, страницу элемента веб-карты (с помощью кнопки Создать веб-приложение ) или из Map Viewer (с помощью кнопки Общий доступ ). Следующие шаги описывают, как создать приложение с помощью Web AppBuilder со страницы содержания:

  1. Убедитесь, что вы вошли с соответствующими правами для создания ресурсов.
  2. В верхней части сайта щелкните Ресурсы и откройте вкладку Мои ресурсы .
  3. Щелкните Создать , а затем Web AppBuilder .
  4. Выберите либо 2D , либо 3D .
  5. Введите заголовок, теги и краткое описание.
  6. Если в вашей организации настроены категории ресурсов, щелкните Присвоить категорию и выберите до 20 категорий, чтобы облегчить поиск приложения. Вы также можете использовать строку Фильтр категорий , чтобы сократить список возможных категорий.
  7. Дополнительно выберите другую папку в Моих ресурсах , в которой будет сохранено ваше приложение.
  8. Щелкните OK , чтобы открыть Web AppBuilder и продолжить создание приложения.

Создание операционной панели с помощью Dashboards

Вы можете создать операционную панель с помощью ArcGIS Dashboards со страницы ресурсов, страницу элемента веб-карты (с помощью кнопки Создать веб-приложение ) или из Map Viewer (с помощью кнопки Общий доступ ). В следующих шагах описано, как создать операционную панель с помощью ArcGIS Dashboards со страницы ресурсов:

  1. Убедитесь, что вы вошли с соответствующими правами для создания ресурсов.
  2. В верхней части сайта щелкните Ресурсы и откройте вкладку Мои ресурсы .
  3. Щелкните Создать и выберите Операционные панели .
  4. Введите заголовок, теги и краткое описание.
  5. Если в вашей организации настроены категории ресурсов, щелкните Присвоить категорию и выберите до 20 категорий, чтобы облегчить поиск приложения. Вы также можете использовать строку Фильтр категорий , чтобы сократить список возможных категорий.
  6. Дополнительно выберите другую папку в Моих ресурсах , в которой будет сохранено ваше приложение.
  7. Щелкните OK , чтобы открыть ArcGIS Dashboards и продолжить создание приложения.

Создание истории с помощью StoryMaps

Вы можете создать историю с помощью ArcGIS StoryMaps со страницы ресурсов или со страницы элемента веб-карты (используя кнопку Создать веб-приложение ). Далее показано, как создать историю со страницы ресурсов:

  1. В верхней части сайта щелкните Ресурсы и откройте вкладку Мои ресурсы .
  2. Щелкните Создать и выберите StoryMaps .

Откроется конструктор StoryMaps , где вы можете начать строить свою историю.

Создание сайта с помощью Сайты ArcGIS Enterprise

Вы можете создать сайт ArcGIS Enterprise со страницы ресурсов вашей организации. Чтобы создать сайт со страницы ресурсов, выполните следующее:

  1. В верхней части сайта щелкните Ресурсы и откройте вкладку Мои ресурсы .
  2. Щелкните Создать и выберите Сайты .

Откроется конструктор сайтов ArcGIS Enterprise , где вы можете начать создавать свой вебсайт.

Создание приложения с помощью Experience Builder

Вы можете создать веб-приложение с помощью ArcGIS Experience Builder со страницы ресурсов вашей организации. Чтобы создать веб-приложение со страницы ресурсов, выполните следующее

  1. В верхней части сайта щелкните Ресурсы и откройте вкладку Мои ресурсы .
  2. Щелкните Создать и выберите Experience Builder .

Откроется Experience Builder , и вы можете приступить к созданию своего приложения.

Читайте также: