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

Начнём с отечественного производителя.
Библиотеку 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 весьма схож:
Как можно видеть, процесс интеграции карт в приложения довольно простой, а спектр использования довольно широк.
Более подробно можно ознакомиться ниже.
Чтобы немного расширить пример, приложу кусок кода:
Но для использования этого кода, в манифесте следует указать следующее разреше��ие:

Список используемого материала:
Hello, MapView (developers.android.com)
Google Maps получение Api (временный)
Получение Google Maps API Key
Карты в вашем Android-приложении
Пишем простое приложение с использованием GoogleMap и прокачанным SimpleCursorAdapter
Условия использования сервиса «Yandex Map Kit»
Yandex Map Kit для Android OS в примерах (Максим Хромцов)
Максим Хромцов. Yandex MapKit для Android OS в примерах (Видео)
Возможности таких устройств позволяют довольно оперативно получать информацию о местоположении, графические данные и графические преобразования для отображения объёма ландшафта.
В данном статье я расскажу как интегрировать возможность просмотра карт для мобильных устройств на основе Android, на примере Yandex Карт и Google Maps.
Функционал библиотек этих компаний позволяет:
- Перемещать карту
- Изменять масштаб
- Изменять виды карт
- Получать события от карты

Начнём с отечественного производителя.
Yandex
Библиотеку Yandex MapKit можно скачать с GitHub'а, там же есть версия и для iOS.
Но прежде чем начать использовать, нам надо получить API-key, для этого идём на почту и пишем письмо в support@mobmaps.yandex.ru, указав в заголовке «Map Kit запрос API-ключа». В ответ вам пришлют письмо с указанием дополнительных ссылок на документацию, на правила использования и собственно с самим ключом в теле письма (а могут и не прислать, кстати).
Пока ждём письмо, берём библиотеку и прикрепляем её к проекту.
После долгого ожидания с кружкой кофе, знакомимся с содержимым письма и информации по ссылкам, берём ключик и пишем в вашем layout'е приложения следующий код:
<ru.yandex.yandexmapkit.MapView android:id="@+id/map" android:layout_width="fill_parent" android:layout_height="fill_parent" android:apiKey="you are key" />
где заместо «you are key» вставляем полученный ключ. Всё, карта есть.
Далее код показывает, как перемещать карту на заданную координату и использовать зум:
final MapView mMapView = (MapView) findViewById(R.id.map); // Получаем MapController MapController mMapController = mMapView.getMapController(); // Перемещаем карту на заданные координаты mMapController.setPositionAnimationTo(new GeoPoint(60.113337, 55.151317)); mMapController.setZoomCurrent(15);
Для использования Google Maps надо совершить куда более изощрённые действия. Я расскажу, как получить debug-key для использования карт, но процесс получения release версии похоже несколько замороченней, но я release ещё не получал.
Для получения debug-key, надо найти ваше хранилище ключей, для отладки.
По-умолчанию, путь будет выглядеть примерно так:
C:\Documents and Settings\<user>\.android\debug.keystore
Затем открываем командную строку, переходим в каталог, куда установлена Java:
cd C:\Program Files\Java\jre6\bin
Затем пишем:
keytool -list -alias androiddebugkey -keystore <путь_до_хранилища_ключей>.keystore -storepass android -keypass android
где путь_до_хранилища_ключей — свой путь до debug.keystore (осторожно, возможны проблемы с пробелами в пути).
После чего в том же окне будет выведен md5-ключ после «Certificate fingerprint (MD5)».
Идём по ссылке и регистрируем код.
После чего Google сгенерирует с нужным кодом для layout и встроенным кодом, берём его и вставляем к себе в layout.
Далее нам, надо наш Activity представить в примерно следующем виде:
package com.fewpeople.geoplanner; import android.os.Bundle; import com.google.android.maps.MapActivity; public class GeoMapActivity extends MapActivity { @Override public void onCreate(Bundle savedInstanceData) { super.onCreate(savedInstanceData); setContentView(R.layout.geomap); } @Override protected boolean isRouteDisplayed() { return false; } }
Замечу, что Activity наследован должен быть от MapActivity хранящийся в com.google.android.maps.MapActivity.
А в манифесте прописать между тегами
вставить:<application></application>
<uses-library android:name="com.google.android.maps" />
И не забыть, про разрешение доступа в интернет для приложения:
<uses-permission android:name="android.permission.INTERNET" />
В остальном функционал GoogleMaps и YandexMapKit весьма схож:
final MapView mMapView = (MapView) findViewById(R.id.mapview); // Получаем MapController MapController mMapController = mMapView.getController(); // Перемещаем карту на заданные координаты mMapController.animateTo(new GeoPoint(60.113337, 55.151317)); mMapController.setZoom(15);
Как можно видеть, процесс интеграции карт в приложения довольно простой, а спектр использования довольно широк.
Более подробно можно ознакомиться ниже.
Определение собственной позиции
Чтобы немного расширить пример, приложу кусок кода:
final MapView cMapView = (MapView) findViewById(R.id.map); // Получаем MapController MapController cMapController = cMapView.getMapController(); // Включаем элементы интерфейса, контролирующие зум cMapView.setBuiltInZoomControls(true); // Создаём менеджер местоположения и "слушателя" final LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); final LocationListener locationListener = new LocationListener() { @Override public void onStatusChanged(String provider, int status, Bundle extras) {} @Override public void onProviderEnabled(String provider) {} @Override public void onProviderDisabled(String provider) {} @Override public void onLocationChanged(Location location) {} }; locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener); // создаём overlay для отображения своей позиции cMyLocationOverlay = new MyLocationOverlay(this, cMapView); cMyLocationOverlay.disableCompass(); cMyLocationOverlay.enableMyLocation(); cMapView.getOverlays().add(cMyLocationOverlay); // зум cMapController.setZoomCurrent(15); // Получаем свои координаты (можно использовать LocationManager.NETWORK_PROVIDER, для иного способа определения позиции) Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); // Перемещаем карту на заданные координаты cMapController.animateTo(new GeoPoint((int) location.getLatitude() * 1000000, (int) location.getLongitude() * 1000000));
Но для использования этого кода, в манифесте следует указать следующее разреше��ие:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

Список используемого материала:
Hello, MapView (developers.android.com)
Google Maps получение Api (временный)
Получение Google Maps API Key
Карты в вашем Android-приложении
Пишем простое приложение с использованием GoogleMap и прокачанным SimpleCursorAdapter
Условия использования сервиса «Yandex Map Kit»
Yandex Map Kit для Android OS в примерах (Максим Хромцов)
Максим Хромцов. Yandex MapKit для Android OS в примерах (Видео)
