Перейти к содержимому

Com google android apps maps что это

  • автор:

Google Maps

Google Maps доступна на Android и предлагает все привычные возможности службы Google, плюс добавление GPS, что делает невозможным потеряться в большом городе. Фактически с Google Maps и GPS будет невозможно потеряться нигде в мире.

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

В цифрах, Google Maps содержит информацию и карты более 200 стран, информацию об общественном транспорте для более чем 15 000 городов, и подробную информацию для более 100 миллионов мест. Да да, всё правильно, для 100 миллионов.

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

Google Maps – это крайне необходимое приложение для любого пользователя Android, который любит путешествовать. или просто выйти из дома. Благодаря этому приложению практически невозможно потеряться. Одна лишь проблема – после того как вы привыкните к нему, вы не сможете жить без этого приложения.

Проверено Andrés López Переведено Uptodown Localization Team

Требования (последняя версия)

  • Требуется Android 6.0 или более новая версия

Часто задаваемые вопросы

Как посмотреть в Google Maps, где я был?

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

Как мне добавить остановку на моем маршруте в Google Maps?

Чтобы добавить остановку на вашем маршруте в Google Maps, начните с первоначального маршрута, затем нажмите значок с изображением лупы для поиска нового места. Нажмите кнопку «Добавить остановку» и ваш маршрут будет автоматически перестроен.

Как создать список мест в Google Maps?

Чтобы создать список мест в Google Maps, нажмите на вкладку «Сохранено», а затем нажмите «Новый список». Вы также можете найти определенное место, а затем нажать «Сохранить», чтобы создать список с этим местом.

Больше информации

Имя пакета com.google.android.apps.maps
Лицензия Бесплатно
ОС Android
Раздел Транспорт и путешествия
Язык Pусский

Отвязываем смартфон от всевидящего ока Google

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

Введение

Ни для кого не секрет, что любое устройство под управлением Android (по крайней мере то, что сертифицировано Google) содержит в себе не только компоненты, собранные из AOSP, но и внушительное количество проприетарных программ Google. Это те самые Google Play, Gmail, Hangouts, Maps и еще куча приложений, включая диалер и камеру (начиная с KitKat).

Для всех этих компонентов нет не только исходного кода, но и вообще каких-либо пояснений по поводу принципов их работы. Многие из них изначально созданы с целью собирать определенные виды информации и отправлять их на серверы Google. Так, например, ведут себя GoogleBackupTransport, отвечающий за синхронизацию списка установленных приложений, паролей и других данных, GoogleContactsSyncAdapter, который синхронизирует список контактов, или ChromeBookmarksSyncAdapter, работа которого — синхронизировать закладки браузера. Плюс сбор информации обо всех запросах в поисковике.

В самом факте синхронизации, конечно, ничего плохого нет, и это великолепный механизм, который позволяет настроить новый телефон за считаные минуты, а Google Now даже умудряется дать нам полезную информацию на основе наших данных (иногда). Проблема только в том, что все это рушит нашу конфиденциальность, ибо, как показал Сноуден, под колпаком у АНБ (и, вероятнее всего, у кучи других служб) находится не только какая-нибудь империя зла под названием Microsoft, но и Google, а также множество других компаний из тусовки «мы не зло, а пушистые меценаты».

Говоря другими словами: Гугл сольет нас всех без всяких проблем, и не факт, что его сотрудники, сидя в своих офисах с массажистками и собачками, не ржут над именами из твоей контактной книги (там все зашифровано, да), попивая 15-летний пуэр из провинции Юньнань. А может быть, к черту этот Гугл? Возьмем их Android, а сами они пусть идут лесом?

Что такое Google Apps

Последняя версия кастомной прошивки на основе KitKat для моего смартфона весит 200 Мб, однако, чтобы получить настоящий экспириенс от смартфона, я должен прошить поверх нее еще и архив gapps, размер которого составляет 170 Мб. Только после этого я получу систему, аналогичную предустановленной на Nexus-устройства, со всеми плюшками в виде интегрированного с Google Now рабочего стола, блокировку экрана на основе снимка лица, камеру с поддержкой сферической съемки и килограмм гугловского софта, начиная от Google Play и заканчивая Google Books.

Еще раз повторюсь: все это закрытый софт от Google, который по-хорошему вообще нельзя распространять без их ведома (поэтому его нет в кастомных прошивках типа CyanogenMod), но так как извлечь его из прошивок Nexus-девайсов довольно просто, то в Сети можно найти огромное количество подобных архивов, в том числе сильно урезанных. Для того чтобы выпустить смартфон на Android с набором gapps на борту, производитель должен отправить его на сертификацию в Google, которая, оценив качество и производительность смартфона, либо даст добро, либо отфутболит (но китайцев это вообще никак не останавливает).

Так Google Apps попадают на смартфон. Из пользователей 99% либо юзают предустановленные приложения, либо устанавливают их самостоятельно на абсолютно чистую и полностью анонимную прошивку. А дальше с момента ввода имени пользователя и пароля начинается синхронизация и слив информации.

Чтобы разобраться, как это происходит, распакуем тот самый архив с gapps и взглянем внутрь. Нас интересуют каталоги /system/app и /system/priv-app , при установке их содержимое копируется в одноименные каталоги внутри смартфона. Второй каталог — это новшество KitKat, в нем размещаются приложения, использующие системные API, помеченные как «private» и не доступные обычным приложениям.

В каталоге /system/app мы найдем большое количество разных гугловских приложений, легко узнаваемых по названию пакета: Books.apk, Chrome.apk, Gmail2.apk и так далее. Каждое из них по-своему будет делиться информацией, но это абсолютно нормально (да, Google будет знать, что ты читаешь Пауло Коэльо через их приложение!). Наибольшую опасность здесь представляет GoogleContactsSyncAdapter.apk, который отвечает только за то, чтобы отправлять на удаленный сервер список контактов. Записываем название в блокнот и идем дальше.

Большинство файлов из каталога /system/priv-app — это сервисы и фреймворки, необходимые для запуска всей этой махины синхронизации и слежки:

  • GoogleBackupTransport.apk — занимается синхронизацией данных установленных приложений, паролей Wi-Fi и некоторых настроек;
  • GoogleLoginService.apk — связывает устройство с Google-аккаунтом;
  • GooglePartnerSetup.apk — позволяет сторонним приложениям получить доступ к сервисам Google;
  • GoogleServicesFramwork.apk — фреймворк с различной подсобной функциональностью;
  • Phonesky.apk — Play Store (как ни странно);
  • PrebuiltGmsCore.apk — Google Services, как видно из названия, это ядро всего комплекта gapps;
  • Velvet.apk — поиск от Google, включающий в себя строку поиска на рабочем столе и Google Now.

В сущности, это и есть та часть Google Apps, которая ответственна за слив нашей частной информации. Попробуем от всего этого избавиться.

Способ номер 1. Отключение через настройки

Самый простой способ отвязать смартфон от Google — это воспользоваться стандартными настройками системы. Метод хорош тем, что не требует ни прав root, ни установки кастомных прошивок, ни кастомного рекавери. Все можно сделать в любой стоковой прошивке без потери доступа к аккаунту и приложениям типа Gmail (если это необходимо). Однако за эффективность никто ручаться не будет, так как вполне возможно, что некоторые компоненты gapps продолжат отправку данных.

Основное место расположения настроек синхронизации — это меню «Настройки -> Аккаунты -> Google -> user@gmail.com». Здесь можно отключить такие вещи, как синхронизация контактов, данных приложений, Gmail, Play Music, Google Keep и прочее. Все, что нужно сделать, — это просто снять галочки с нужных пунктов меню. Далее идем в меню «Настройки -> Восстановление и сброс» и снимаем галки с пунктов «Резервирование данных» и «Автовосстановление».

За множество настроек синхронизации отвечает также приложение «Настройки Google», которое является частью Google Services. С его помощью, в частности, можно отключить доступ Google к местоположению («Доступ к геоданным -> Доступ к моим геоданным / Отправка геоданных / История местоположений»), отключить отправку личных данных поисковику («Поиск -> Личные данные»), отключить Google Now («Поиск -> Google Now») и отключить удаленное управление («Удаленное управление -> Удаленный поиск устройства / Удаленная блокировка и сброс настроек»).

В тех же «Настройках Google», кстати, можно отключить любое приложение, использующее аккаунт Google для авторизации. Речь при этом идет не только о софте, установленном на девайс, но и вообще обо всех когда-либо использованных приложениях, включая веб-сайты. Я, например, обнаружил в этом списке множество сайтов, на которые не заходил уже как минимум пару лет.

В том случае, если ты вообще не собираешься использовать сервисы Google, проще будет отключить смартфон от аккаунта полностью, то есть просто удалить его через настройки: «Настройки -> Аккаунты -> Google -> user@gmail.com -> Кнопка Меню -> Удалить аккаунт».

Большинство приложений Google можно безболезненно отключить через настройки: «Приложения -> ВСЕ -> нужное приложение -> Отключить».

google-account

Другие статьи в выпуске:

Хакер #182. Все о Bitcoin

  • Содержание выпуска
  • Подписка на «Хакер» -60%

google-settings

Способ номер 2. Очистка официальной прошивки

В том случае, если на стоковой прошивке есть права root, от Google Apps можно избавиться, просто удалив их со смартфона. Как я уже говорил, все они хранятся в каталогах /system/app и /system/priv-app . Например, в случае с KitKat список Google-приложений в первом каталоге будет таким:

  • Books.apk — Google Книги;
  • CalendarGoogle.apk — Google Календарь;
  • Chrome.apk — Google Chrome;
  • CloudPrint.apk — система облачной печати;
  • Drive.apk — Google Drive;
  • GenieWidget.apk — виджет новостей и погоды;
  • Gmail2.apk — Gmail;
  • GoogleContactsSyncAdapter.apk — синхронизация контактов;
  • GoogleEars.apk — Google Ears (аналог Shazam);
  • GoogleEarth.apk — Google Земля;
  • GoogleHome.apk — домашний экран с интегрированным Google Now;
  • GoogleTTS.apk — система синтеза речи;
  • Hangouts.apk — Google Hangouts;
  • Keep.apk — Google Keep;
  • LatinImeGoogle.apk — клавиатура с поддержкой жестов;
  • Magazines.apk — Google Журналы;
  • Maps.apk — Google Карты;
  • Music2.apk — Google Музыка;
  • PlayGames.apk — Google PlayGames;
  • PlusOne.apk — Google+;
  • QuickOffice.apk — QuickOffice;
  • Street.apk — Google Street;
  • SunBeam.apk — живые обои SunBeam;
  • Videos.apk — Google Фильмы;
  • YouTube.apk — YouTube.

В каталоге /system/priv-app , кроме перечисленных ранее, также хранятся такие файлы:

  • CalendarProvider.apk — хранит данные календаря;
  • GoogleFeedback.apk — отправляет отчет об использовании Google Play;
  • GoogleOneTimeInitilalizer.apk — мастер установки дополнительных Google-приложений;
  • SetupWizard.apk — мастер настройки при первом запуске;
  • Wallet.apk — Google Кошелек;
  • talkback.apk — оповещение голосом о событиях на устройстве.

Комплект Gapps для KitKat, кроме всего прочего, включает в себя также проприетарную камеру с поддержкой сферической съемки и проприетарный же рабочий стол с интегрированным Google Now.

Но это еще не все. Google Apps зависят от нескольких фреймворков, которые находятся в каталоге /system/framework . Это файлы com.google.android.maps.jar, com.google.android.media.effects.jar и com.google.widevine.software.drm.jar. Еще есть множество библиотек в каталоге /system/lib , которые используются исключительно Google-приложениями. Удалять их совсем не обязательно, но можно. Просто чтобы очистить мусор. Их список ты найдешь на сайте ][.

В прошлых (да и в будущих) версиях системы содержимое Google Apps отличается, поэтому перед удалением рекомендую скачать gapps нужной версии с сайта goo.im/gapps, распаковать с помощью WinRar и просмотреть содержимое. Также следует учитывать зависимость некоторых приложений из маркета от приложений Google, подробнее об этом я расскажу позже.

gapps-libs

Способ номер 3. Кастомная прошивка без gapps

Предыдущий способ можно существенно упростить, если просто установить на смартфон кастомную прошивку без Google Apps. В этом случае смартфон/планшет будет кристально чист без всякой привязки к Google. Недостаток этого способа — отсутствие Google Play, но можно либо заменить его сторонним магазином приложений (об этом ниже), либо использовать следующий способ, который включает в себя установку урезанной версии Google Apps.

Способ номер 4. Google Play и ничего кроме

Этот способ частичной отвязки от Google — своего рода компромисс. Он не решает проблему слежки — по крайней мере без настроек из первого способа, — но позволяет не захламлять систему кучей бесполезного софта, который будет висеть в фоне и жрать память. Суть проста — ставим кастомную прошивку и заливаем поверх нее минималистичную версию gapps, которая включает в себя только Google Play.

Таких минимальных сборок gapps в Сети множество, но я бы рекомендовал использовать проверенные временем BaNkS Gapps, а именно файл «месяц-числоGAppsCore4.4.2signed.zip». Они работают на любом смартфоне, совместимы с ART и включают в себя только основные файлы gapps, список которых приведен в разделе «Что такое Gapps», файлы фреймворка, а также несколько библиотек. По сути, это Google Play, инструменты синхронизации и ничего больше.

Меняем поисковик на DuckDuckGo

Даже после полного отключения синхронизации на домашнем экране останется «встроенная» строка поиска Google. В стоковых прошивках некоторых производителей (Samsung, например) это всего лишь виджет, который можно легко удалить с экрана. В чистом Android и девайсах от многих других производителей она «вшита» в домашний экран, но ее можно убрать, отключив весь поиск от Google (вместе с Google Now) с помощью меню «Настройки -> Приложения -> Все -> Google поиск -> Отключить» или установив сторонний лаунчер. Далее достаточно скачать из маркета или другого магазина приложений DuckDuckGo и добавить одноименный виджет на домашний экран.

Сторонний маркет

Второй и третий способ предполагают полное избавление от Google Apps, включая Google Play и возможность логина с помощью Google-аккаунта, поэтому мы должны найти способ простой и удобной установки приложений, который не заставлял бы нас выкачивать их самостоятельно, а затем скидывать на карту памяти и устанавливать вручную. Один из таких способов — установить сторонний маркет.

На данный момент существует три более или менее жизнеспособные альтернативы Google Play. Это Amazon Appstore, Yandex.Store и 1Mobile Market. У каждого из них есть свои преимущества и недостатки, которые в основном сводятся к количеству приложений и способам оплаты:

  • Amazon Appstore — самый известный магазин приложений после Google Play. Содержит более 75 тысяч приложений (в сравнении с 800 тысячами в Google Play), качество каждого из которых проверяется вручную, так же как в iTunes для iOS. Расплачиваться можно с помощью кредитной карты или амазоновскими монетами (Amazon Coins), которые дают в качестве подарка за покупку планшета Kindle Fire либо в подарок от другого юзера. Одна из самых интересных черт магазина — ежедневная бесплатная раздача одного из платных приложений.
  • Yandex.Store — магазин от компании «Яндекс». Содержит более 85 тысяч приложений, каждое из которых проверяется антивирусом Касперского. Особо ничем не выделяется, но зато имеет киллер-фичу в виде возможности оплачивать покупки с помощью сервиса Яндекс.Деньги или счета мобильного телефона.
  • 1Mobile Market — крупнейший сторонний репозиторий Android-приложений, включающий в себя более 500 тысяч софтин. Отличается от других наличием исключительно бесплатных приложений (не путать с пиратскими), из-за чего позволяет не проходить стадию регистрации аккаунта и сохранить анонимность.

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

amazon yandex 1mobile

Open Source Маркет

Кроме описанных в статье, а также множества других менее известных магазинов приложений, в Сети можно найти отличающийся от остальных репозиторий F-Droid. Он полностью анонимен и содержит только свободный софт, распространяемый под лицензиями, одобренными фондом FSF. Приложений в F-Droid всего тысяча, зато все они гарантированно не содержат бэкдоров и других систем разглашения личных данных. Именно F-Droid используется в качестве дефолтового маркета в свободной Android-прошивке Replicant.

f-droid

Решение проблемы зависимости приложений от Google Apps

Несмотря на то что компоненты gapps не являются частью официального API Android, некоторые приложения все-таки ожидают увидеть их в системе, из-за чего может возникнуть ряд проблем — от полной неработоспособности приложения до потери части его функций. Некоторые приложения откажутся устанавливаться из-за отсутствия Google Maps API, другие падают сразу после запуска, не обнаружив его, третьи включают в себя прямые ссылки на Google Play, что может привести к падениям и некорректной работе.

Чтобы решить эти проблемы, пользователь MaR-V-iN с XDA начал проект NOGAPPS, в рамках которого ведется разработка набора открытых компонентов, заменяющих оригинальную функциональность Google Apps. В данный момент доступно три компонента-замены:

  • Network Location — сервис геолокации на основе Wi-Fi и базовых станций GSM. Основан на базе данных IP-адресов от Apple и открытой базе базовых станций;
  • Maps API — замена интерфейса к Google Maps на основе OpenStreetMap;
  • BlankStore — открытая альтернатива клиенту Play Store. Позволяет устанавливать бесплатные приложения из магазина Google, но не рекомендуется к использованию из-за возможных санкций со стороны поисковика (это запрещено их правилами).

Установка компонентов производится отдельно и разными способами. Network Location достаточно вручную скопировать в каталог /system/app/ в Android 2.3–4.3 или в каталог /system/priv-app/ в KitKat (в этом случае следует использовать файл NetworkLocation-gms.apk). Maps API устанавливается с помощью прошивки файла nogapps-maps.zip через консоль восстановления. Для установки маркета придется не только копировать файл, но и генерировать Android ID на большой машине, но, так как делать это не рекомендуется, я не буду об этом рассказывать и ограничусь ссылкой на инструкцию.

После всех манипуляций софт должен корректно заработать.

Выводы

Для компании Google Android без ее собственных приложений бесполезен, поэтому нет ничего удивительного в том, что компания выносит в них самые вкусные части системы и оставляет код закрытым. Однако в этой статье я показал, что жизнь без gapps есть и она может быть даже проще и удобнее, чем с Google.
[authors]

Евгений Зобнин

Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.

Урок 139. Google maps. Создание и настройка проекта. Карта, камера, события

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

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

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). Если еще не установлено, то устанавливайте.

После того, как скачалось, у себя на компе ищите папку по следующему пути: /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 добавим строки:

Test

Экран main.xml:

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

MainActivity.java:

package ru.startandroid.develop.p1391googlemaps; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.view.View; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.SupportMapFragment; public class MainActivity extends FragmentActivity < SupportMapFragment mapFragment; GoogleMap map; final String TAG = "myLogs"; @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.main); mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map); map = mapFragment.getMap(); if (map == null) < finish(); return; >init(); > private void init() < >public void onClickTest(View view) < map.setMapType(GoogleMap.MAP_TYPE_SATELLITE); >>

В 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:

private void init() < map.setOnMapClickListener(new OnMapClickListener() < @Override public void onMapClick(LatLng latLng) < Log.d(TAG, "onMapClick: " + latLng.latitude + "," + latLng.longitude); >>); map.setOnMapLongClickListener(new OnMapLongClickListener() < @Override public void onMapLongClick(LatLng latLng) < Log.d(TAG, "onMapLongClick: " + latLng.latitude + "," + latLng.longitude); >>); map.setOnCameraChangeListener(new OnCameraChangeListener() < @Override public void onCameraChange(CameraPosition camera) < Log.d(TAG, "onCameraChange: " + camera.target.latitude + "," + camera.target.longitude); >>); >

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:

public void onClickTest(View view)

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

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

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

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

public void onClickTest(View view)

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

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

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

public void onClickTest(View view)

Для указания области используется объект 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. Он устанавливает отступы от краев экрана. Это влияет на положение стандартных элементов управления карты, а также камера теперь будет считать центром карты эту новую ограниченную область и позиционироваться там.

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

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

Присоединяйтесь к нам в Telegram:

— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.

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

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

Com google android apps maps что это

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

Примеры кода

Репозиторий ApiDemos на сайте GitHub содержит пример, который демонстрирует применение элементов управления и жестов.

  • UiSettingsDemoActivity: пример для Kotlin.
  • UiSettingsDemoActivity: пример для Java.

Упрощенный режим для минимального пользовательского взаимодействия

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

Элементы управления пользовательского интерфейса

В Maps API предусмотрены встроенные элементы управления, сходные с теми, которые используются в приложении «Google Карты» для Android. Они отображаются и скрываются с помощью класса UiSettings , который можно получить из объекта GoogleMap , используя метод GoogleMap.getUiSettings . Изменения, выполненные для этого класса, сразу же отображаются на карте. Пример использования этого класса представлен в образце приложения.

Кроме того, большинство из этих параметров можно настроить при создании карты с помощью атрибутов XML или класса GoogleMapOptions . Подробнее…

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

Инструменты масштабирования

В Maps API встроены инструменты масштабирования, которые находятся в правом нижнем углу карты. По умолчанию они отключены, но их можно включить с помощью метода UiSettings.setZoomControlsEnabled(true) .

Инструменты масштабирования

Компас

В Maps API предусмотрен значок компаса, который появляется в левом верхнем углу, если камера ориентирована в направлении, отличном от нуля, или имеет наклон, не равный нулю. Когда пользователь нажимает на компас, камера возвращается в положение, при котором направление и наклон равны нулю (ориентация по умолчанию), после чего компас скрывается. Если вы не хотите показывать компас в своем приложении, вызовите метод UiSettings.setCompassEnabled(boolean) . Сделать так, чтобы он всегда был виден, нельзя.

Компас

Кнопка «Мое местоположение»

Кнопка «Мое местоположение» отображается в правом верхнем углу экрана, только если включен одноименный слой. Подробнее…

Кнопка "Мое местоположение"

Выбор уровня

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

Управление выбором уровня можно включить или отключить, вызвав метод GoogleMap.getUiSettings().setIndoorLevelPickerEnabled(boolean) .

Этот способ применяется для замены стандартного модуля выбора уровня на свой собственный.

Выбор уровня

Панель инструментов на карте

По умолчанию панель инструментов появляется в правом нижнем углу карты, когда пользователь касается маркера. Эта панель обеспечивает быстрый доступ пользователей к мобильному приложению «Google Карты».

Чтобы включить или отключить панель инструментов, вызовите метод UiSettings.setMapToolbarEnabled(boolean) .

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

На этой панели расположены значки для доступа к представлению карты или запросу маршрута в мобильном приложении «Google Карты». Когда пользователь касается значка на панели инструментов, API создает объект Intent для запуска соответствующего объекта activity.

Панель инструментов на карте

На приведенном выше скриншоте панель инструментов отображается в правом нижнем углу карты. Значки представления карты и запроса маршрута (ни одного, один или оба) появляются на карте в зависимости от ее содержимого и при условии, что мобильное приложение «Google Карты» поддерживает полученный объект Intent.

Примечание. Если ваше приложение работает с API уровня 30 или выше, добавьте запись о пакете Google Карт (com.google.android.apps.maps) в элемент в файле AndroidManifest.xml . Это необходимо из-за изменений в отношении видимости пакетов в Android версии 11.

Управление картой с помощью жестов

Карта, созданная с помощью Maps SDK для Android, поддерживает те же жесты, что и приложение «Google Карты». Тем не менее вам может потребоваться отключить некоторые из них, чтобы сохранить состояние карты. Масштабирование, панорамирование, наклон и направление камеры также можно задать программными средствами. Обратите внимание на то, что отключение поддержки пользовательских жестов никак не влияет на возможность программно менять позиционирование камеры.

Как и элементы управления интерфейса, жесты включаются и отключаются с помощью класса UiSettings , который можно получить из объекта GoogleMap , вызвав метод GoogleMap.getUiSettings . Внесенные в этот класс изменения сразу же отображаются на карте. Пример использования этого класса представлен в образце приложения (см. инструкции по установке).

Эти функции можно также настроить при создании карты с помощью атрибутов XML или класса GoogleMapOptions . Подробнее…

Жесты масштабирования

Карты поддерживают следующие жесты масштабирования:

  • двойное нажатие (увеличивает масштаб на один уровень);
  • нажатие двумя пальцами (уменьшает масштаб на один уровень);
  • сведение и разведение двух пальцев;
  • двойное нажатие одним пальцем без отпускания с последующим движением пальца вверх или вниз по экрану (увеличивает или уменьшает масштаб).

Чтобы отключить поддержку жестов масштабирования, вызовите метод UiSettings.setZoomGesturesEnabled(boolean) . Это никак не повлияет на возможность использовать инструменты управления масштабом карты.

Жесты прокрутки и панорамирования

Пользователь может прокручивать (панорамировать) карту, перетаскивая ее пальцем. Чтобы отключить поддержку этого жеста, вызовите метод UiSettings.setScrollGesturesEnabled(boolean) .

Жесты наклона

Пользователь может менять угол наклона камеры, поместив на карту два пальца и перемещая их вверх или вниз по экрану. Чтобы отключить поддержку этого жеста, вызовите метод UiSettings.setTiltGesturesEnabled(boolean) .

Жесты поворота

Пользователь может вращать камеру, поворачивая карту двумя пальцами. Чтобы отключить поддержку этого жеста, вызовите метод UiSettings.setRotateGesturesEnabled(boolean) .

Отправить отзыв

Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons «С указанием авторства 4.0», а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.

Последнее обновление: 2024-01-22 UTC.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Luxury Car Rental in Miami | Reserve a Premium Vehicle with RealCar