Yandex maps android source

Интеграция карт в ваше 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 весьма схож:

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

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

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

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

Источник

Yandex maps android source

Yandex Map Kit for Android

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Эта версия больше не поддерживается, актуальную инфрмацию о новых версиях MapKit можно найти по ссылкам:

В этом репозитории находится тестовое приложение, демонстрирующее возможности Yandex Map Kit.

  1. Добавлено новое API уOverlayItem setOverlayItemListener #256
  2. Исправлена ошибка #253
  3. Исправлена ошибка #249
  4. Исправлена ошибка #240
  5. Исправлена ошибка #234
  1. Исправлена ошибка утечки #243
  2. Исправлена ошибка #240
  3. Добавили свойство в MapEvent isGesture() #237
  1. Исправлены ошибки при отображении карты
  2. Добавлен arm64-v8a и x86_64 архитектуры
  1. Исправлены ошибки отображения кнопок на карте
  2. Добавлен пример работы с запросом разрешений на получения геопозиции
  1. Исправлены ошибки, приводившие к падениям
  2. Удалены все запросы разрешений, кроме получения геопозиции
  1. Клонируйте репозиторий примера git clone https://github.com/yandexmobile/yandexmapkit-android.git
  2. В папке yandexmapkit-sample находится пример приложения который через gradle зависимость подключает мапкит
  3. Данные проекты уже настроены для работы в среде Eclipse
  4. Импортируйте данные проекты в среду Eclipse или Android Studio
  5. Выполняете Gradle Sync для проекта.
  6. Подставьте свой API ключ во все layout где используется объект MapView
  7. Всё готово к запуску тестового проекта

Запуск из командной строки.

Миграция с первой версии

  1. При создании OverlayItem необходимо в конструкторе вместо объекта Bitmap передавать Drawable, можно воспользоваться new BitmapDrawable(you_bitmap)
  2. При создании объекта BalloonItem необходимо в конструкторе передавать Context (необходимый для загрузки ресурсов)
  3. Исправить использования интерфейса с OnBallonListener на OnBalloonListener и добавить новые методы из данного интерфейса
  4. Исправить имя метода у BalloonItem с setOnBallonListener на setOnBalloonViewClickListener
  5. Необходимо изменить логику работы интерфейса OnBalloonListener метода onBallonClick на onBalloonViewClick

Интеграция с Яндекс.Картами

Документация по интеграции с мобильными Яндекс.Картами выложена на tech.yandex.ru

Также у этого проекта есть:

  • Wiki, в которой содержится полезная информация о Yandex Map Kit.
  • JavaDoc, который находится в yandexmapkit-library/doc. В нем содержится описание классов и методов Yandex Map Kit.

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

Источник

Launch Yandex.Maps Android app

This section applies to the Yandex.Maps mobile app, version 4.0 or higher.

Читайте также:  Клиент для андроид планшет

You can launch mobile Yandex.Maps for Android from a Java app or browser page. Use the yandexmaps URL scheme to launch the app. Yandex.Maps can run the following actions on launch:

Support for geo scheme section shows how to open the map using a different URI scheme. With this method, the user can choose which app to open.

Open map

You can display the map using the following URL format:

Map center coordinates (longitude, latitude).

Map zoom. An integer from 1 to 18, where 1 is the least detailed map zoom (whole world), and 18 is the highest zoom possible.

Viewport. Longitudinal and latitudinal size of the viewport in degrees, comma-separated. For example, to set a viewport of 10.5 degrees, specify: spn=10.5, 10.5 .

The viewport center is set using the ll parameter (map center).

If z (zoom) is already set, then spn is ignored.

Map type and traffic information.

Type of map: map (Map), sat (Satellite), skl (Hybrid), pmap (Public Map).

Show road traffic: trf (\»traffic\» layer). You can enable the traffic layer only, or combine it with some map type. In this case, the parameter values are comma-separated. For example: l=map,trf .

Parameter Data type Description

Map center coordinates (longitude, latitude).

Map zoom. An integer from 1 to 18, where 1 is the least detailed map zoom (whole world), and 18 is the highest zoom possible.

Viewport. Longitudinal and latitudinal size of the viewport in degrees, comma-separated. For example, to set a viewport of 10.5 degrees, specify: spn=10.5, 10.5 .

The viewport center is set using the ll parameter (map center).

If z (zoom) is already set, then spn is ignored.

Map type and traffic information.

Type of map: map (Map), sat (Satellite), skl (Hybrid), pmap (Public Map).

Show road traffic: trf (\»traffic\» layer). You can enable the traffic layer only, or combine it with some map type. In this case, the parameter values are comma-separated. For example: l=map,trf .

Источник

Запуск Android‑приложения Яндекс.Карты

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

Мобильные Яндекс.Карты для платформы Android можно запустить из Java‑приложения и со страницы, отображаемой в браузере. Для запуска используется URL-схема yandexmaps . При запуске приложение Яндекс.Карты может выполнить следующие действия.

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

Открыть карту

Показать карту можно с помощью URL вида:

Координаты центра карты (долгота, широта).

Масштаб карты. Задается целым числом от 1 до 18, где 1 — наименее подробный масштаб (весь мир), а 18 — наиболее подробный из возможных.

Область показа. Через запятую указывается размер области по долготе и широте (в градусах). Например, чтобы задать область показа шириной 10,5 градусов, нужно указать: spn=10.5,10.5 .

Центр области показа задается с помощью параметра ll (центр карты).

Если уже задан параметр z (масштаб), то spn игнорируется.

Тип карты и информация о пробках.

Тип карты: map (схема), sat (спутник), skl (гибрид), pmap (народная карта).

Показать загруженность магистралей: trf (слой «пробки»). Можно указать только слой пробок или комбинировать этот слой и тип карты. В этом случае значения параметра указываются через запятую. Например: l=map,trf .

Координаты центра карты (долгота, широта).

Масштаб карты. Задается целым числом от 1 до 18, где 1 — наименее подробный масштаб (весь мир), а 18 — наиболее подробный из возможных.

Область показа. Через запятую указывается размер области по долготе и широте (в градусах). Например, чтобы задать область показа шириной 10,5 градусов, нужно указать: spn=10.5,10.5 .

Центр области показа задается с помощью параметра ll (центр карты).

Если уже задан параметр z (масштаб), то spn игнорируется.

Тип карты и информация о пробках.

Тип карты: map (схема), sat (спутник), skl (гибрид), pmap (народная карта).

Показать загруженность магистралей: trf (слой «пробки»). Можно указать только слой пробок или комбинировать этот слой и тип карты. В этом случае значения параметра указываются через запятую. Например: l=map,trf .

Источник

Путь с указателями направления на карте с использованием Yandex Map Kit для Android

В этом сообщении рассмотрим:

  1. Встраивание библиотеки Yandex Map Kit Android в проект
  2. Создание расширения для класса Overlay с целью вывода на карту пути с указателями направления и обработки событий «onClick» по карте

1. Встраивание библиотеки в проект (Eclipse, Windows)

Загружаем архив с библиотекой отсюда и получаем API-ключ.
Создаем проект в Eclipse, копируем с заменой папки \yandexmapkit-library\res и \yandexmapkit-library\libs из загруженного архива в папку нашего проекта.
В настройках проекта добавляем ссылку на yandexmapkit-android.jar из папки libs нашего проекта (Build Path->Configure Buil Path->Libraries->Add External JARs)
Добавляем разрешения в манифест нашего проекта

Изменяем разметку activity

2. Создание расширения для класса Overlay с целью вывода на карту пути с указателями направления и обработки событий «onClick» по карте

Чтобы нарисовать путь, нам потребуется расширить класс OverlayIRender, который реализует интерфейс IRender

Если количество точек добавленных в наш путь больше 1, то в цикле отрисовываются отрезки пути и стрелки направления.
Теперь нужно создать наследника Overlay MyPathOverLay, назначить ему MyOverlayIRender для отрисовки.

Источник

Читайте также:  Android sdk installation location
Оцените статью
Parameter Data type Description