Android yandex maps google

InDevices.ru

InDevices.ru — новейшие разработки в области устройств, роботы, обзор гаджетов

Устанавливаем Google maps и Яндекс Карты на Android

от admin

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

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

Содержание

  • Что потребуется
  • Инструкция
  • Стоит обратить внимание
  • Советы
  • Что потребуется
  • Инструкция
  • Стоит обратить внимание
  • Советы

Установка Google maps

1. Ваш гаджет с доступом в интернет;
2. Компьютер (опционально).

1. Первое и, в принципе, последнее, что нужно сделать – зайти на сервис Google play ввести в поиске Google maps.

2. Браузер выдаст вам похожую картинку:
3. После это нажимаем на кнопку «Установить».

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

Стоит обратить внимание

Если у вас вдруг возникнут проблемы с установкой карт Google через Google play, не отчаивайтесь, достаточно ввести адрес www.google.com/mobile/maps/ в ваш браузер и установить карты таким же образом, как было указано выше. Если же и здесь вас подстерегут неприятности, можете пройти по этой ссылке, используя браузер вашего ПК, и со страницы отправить ссылку для закачки на ваш телефон прямо по мобильному номеру.

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

Установка Яндекс.Карты

1.Ваш гаджет с доступом в интернет;

1. Яндекс.Карты мало чем отличаются от Google maps в установке. Заходим в Google play, даем команду поисковой системе найти Яндекс.Карты.

2. Знакомый интерфейс не подвел – вам осталось нажать на кнопку «Установить», после чего проделать операции для удобства в самом приложении (назначение маршрутов, мест положения и т.д.).

Стоит обратить внимание

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

Введя в мобильный браузер ссылку m.ya.ru/ymm, вы сможете также установить приложение. Если же и этот вариант не подходит, пройдите на своем ПК по ссылке mobile.yandex.ru/apps/maps/android, внизу страницы введите ваш номер телефона, чтобы получить нужную ссылку прямо на ваш телефон, подождав несколько секунд.

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

Источник

Переходим с Google Maps на Yandex MapKit

Недавно довелось перевести приложение с использования Google Maps API v1 на Yandex MapKit.

По субъективному мнению большинства Yandex карты для России имеют более высокую детализацию, и поэтому, если ваше приложение ориентировано только на Росиию или ex-USSR и Турцию (в общем на те страны где Yandex есть), то имеет смысл рассмотреть возможность использования MapKit’а.

Читайте также:  Usb hub android с зарядкой

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

Начнем… Идем на github и забираем оттуда библиотеку. Если вы подумали, что раз библиотека распространяется через GitHub, то она OpenSource, то тут вас ждет разочарование. Библиотека распространяется как Android Library Project + jar-файл с кучей обфусцированных классов, который лежит в папочке libs . Исходников нет, таким образом, заглянуть внутрь и понять что как работает мы не можем, а порой очень хочется, т.к. документация (в папке с библиотекой есть javadoc ) мягко говоря плохая: описание существующего API минимально, а многие методы не документированы вообще. Поэтому лежащий по соседсвту с библиотекой sample проект очень пригодится.

Кстати не пугайтесь обилия открытых задач на гитхабе. Это не обязательно баги — это такой способ задать вопрос в комьюнити по использованию библиотеки. Какого-нибдуь форума или отдельно выделенного места для подобных вопросов не существует. Есть вопрос? Создай issue!

Для получения ключа необходимо отправить запрос в тех. поддержку яндекса, а до тех пор пока его нам не выдали, в качестве debug -ключа можно использовать ключ вида 1234567890 (Спасибо sample-проекту, в документации об этом ни слова). К слову о ключах — здесь нас ожидает первый сюрприз: MapView не читает ключ из файла ресурсов, поэтому если у вас есть несколько лейаутов, содержащих внутри MapView , то ключ придется копировать в каждый из MapView , вынести его в файл конфигурации и доступаться к нему через @string/api_key не удастся. Эта загадка отняла у меня кучу времени, соответствующая задача была создана давным давно, но как видите за 3 месяца ситуация не изменилась. В общем, скорость реакции поддержки Yandex’а пугает.

Итак, после получения либы, первым делом решено было собрать sample-project и поиграть с ним. В репозитории лежат файлики Eclipse проекта, я же использую IntelliJ IDEA, поэтому первым делом необходимо было создать и настроить проект из существующих исходников. Здесь поджидал сюрприз — я досих пор так и не понял до конца в чем было дело, но ситуация была следующая: проект нормально компилировался и упаковывался в apk , но затем в рантайме при попытке перехода на любую из активитей падал с ошибкой string resource not found (дословный текст ошибки сейчас не помню). В файлах библиотеки лежит пустой R -файл заглушка, рискну предпложить, что проблема была в том, что IDEA по каким-то причинам в финальный apk -файл запаковывала именно его, что и приводило к дальнейшим ошибкам. Проблема решилась удалением из зависимостей sample-project модуля библиотеки и его повторным добавлением.

Казалось бы, обе библиотеки имеют схожее API и переход не должен отнять слишком много времени: и там и там MapView , и там и там MapController , и там и там GeoPoint … Но на этом сходства заканчиваются. Несмотря на одинаковые имена классов методы называются по разному и не для каждого метода из Google API существует его прямой аналог из MapKit. Например, в MapKit’е остутствует метод, позволяющий получить координаты ViewPort ‘а (видимой области карты), поэтому его придется реализовывать самостоятельно — через преобразование экранных ( ScreenPoint ) координат в глобальные ( GeoPoint ) — тыц. Экранные координаты нужно отсчитывать не относительно экрана, а относительно самого MapView .

Читайте также:  Андроиды с хорошей батарейкой

В Google Maps баллун (сплывающее вью при тапе по точке) один элемент вместе с самой точкой, в MapKit’е — это отдельный объект. Поэтому логику работы баллунами придется переписать почти полностью.

В Google API GeoPoint хранит координаты в виде пары int ‘ов — это longitude / latutude * 1E6 , у Yandex’а это double longitude и latitude. С одной стороны, использование int ‘ов вместо double ‘ов позволяет сэкономить пару байт памяти и ускорить вычисления связанные с координатами (целочисленные операции всегда быстрее операций с плавающей точкой). С дургой стороны, это наводняет код конструкциями вида: *1E6 , /1E6 . В общем, здесь я ставлю плюсик Yandex’у, без постоянных умножений/делений на 1E6 с API работать удобнее, а соотношение удобства к выигришу в производительности, по-моему, в данной ситуации не велико.

Еще одной сложностью стало непредсказуемое поведение Balloon ‘ов. Дело в том, что время от времени открываемые баллуны отображаются под другими OverlayItem ‘ами и оказываются перекрытыми. При этом метод setPriority , который есть у всех отображаемых на карте элементах никакого влияния не оказывает. Как выяснилось позже причина не правильного переопределения метода compareTo . Данный метод используется при показе баллуна для сортировки объектов в z-плоскости. Ни документация, ни пример не содержат никакой информации о данной проблеме, данная зависимость вообще была установлена совершенно случайно в ходе экспериментов.

Ну и напоследок еще одно значительное отличие Yandex MapKit от Google Maps это то, что MapKit не поддерживает прямой геокодинг, только обратный. Т.е. библиотека предоставляет способ преобразовать географичиеские координаты (lat/long) в адрес или название места (см. класс GeoCode ). А вот в обратную сторону — улицу или город в координаты не умеет, поэтому прямой геокодинг придется реализовывать самостоятельно, например, с использованием того же Yandex Maps Web API. Google же умеет это делать сразу в обе стороны.

В заключение хотелось бы сказать, что в целом, впечатление от использования Yandex Maps положительные, API достаточно удобное, возможностей для моих задач оказалось достаточно, но основной минус — документация. Будем надеятся, что Яндекс все-таки приведет все в порядок.

Источник

Интеграция карт в ваше Android-приложение

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

В данном статье я расскажу как интегрировать возможность просмотра карт для мобильных устройств на основе Android, на примере Yandex Карт и Google Maps.
Функционал библиотек этих компаний позволяет:

  • Перемещать карту
  • Изменять масштаб
  • Изменять виды карт
  • Получать события от карты
Читайте также:  Симс для андроида без вируса

Начнём с отечественного производителя.

Yandex

Библиотеку Yandex MapKit можно скачать с GitHub’а, там же есть версия и для iOS.
Но прежде чем начать использовать, нам надо получить API-key, для этого идём на почту и пишем письмо в support@mobmaps.yandex.ru, указав в заголовке «Map Kit запрос API-ключа». В ответ вам пришлют письмо с указанием дополнительных ссылок на документацию, на правила использования и собственно с самим ключом в теле письма (а могут и не прислать, кстати).

Пока ждём письмо, берём библиотеку и прикрепляем её к проекту.

После долгого ожидания с кружкой кофе, знакомимся с содержимым письма и информации по ссылкам, берём ключик и пишем в вашем layout’е приложения следующий код:

где заместо «you are key» вставляем полученный ключ. Всё, карта есть.

Далее код показывает, как перемещать карту на заданную координату и использовать зум:

Google

Для использования Google Maps надо совершить куда более изощрённые действия. Я расскажу, как получить debug-key для использования карт, но процесс получения release версии похоже несколько замороченней, но я release ещё не получал.

Для получения debug-key, надо найти ваше хранилище ключей, для отладки.
По-умолчанию, путь будет выглядеть примерно так:

Затем открываем командную строку, переходим в каталог, куда установлена Java:

где путь_до_хранилища_ключей — свой путь до debug.keystore (осторожно, возможны проблемы с пробелами в пути).

После чего в том же окне будет выведен md5-ключ после «Certificate fingerprint (MD5)».
Идём по ссылке и регистрируем код.
После чего Google сгенерирует с нужным кодом для layout и встроенным кодом, берём его и вставляем к себе в layout.
Далее нам, надо наш Activity представить в примерно следующем виде:

Замечу, что Activity наследован должен быть от MapActivity хранящийся в com.google.android.maps.MapActivity.
А в манифесте прописать между тегами вставить:

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

В остальном функционал GoogleMaps и YandexMapKit весьма схож:

Как можно видеть, процесс интеграции карт в приложения довольно простой, а спектр использования довольно широк.
Более подробно можно ознакомиться ниже.

Определение собственной позиции

Чтобы немного расширить пример, приложу кусок кода:

Но для использования этого кода, в манифесте следует указать следующее разрешение:

Источник

Яндекс.Карты 10.7.3

Яндекс.Карты — сервис навигации при помощи Android-коммуникатора от крупнейшей российской поисковой системы. Вы сможете находить различные объекты, видеть ситуацию на дорогах крупных городов, узнавать ваше местоположение и направление движения. Местоположение можно узнать тремя разными способами: при помощи GPS, по базовым станциям вашего мобильного оператора, а также по точкам доступа Wi-Fi вокруг вас.

Кроме этого Яндекс.Карты для Android умеют показывать как карту города, так и изображение со спутника. Также есть возможность записи треков ваших передвижений на местности.

Источник

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