Как начать работу с MapKit для Android
Библиотека MapKit для платформы Android 4.0.3 и выше доступна в репозитории Maven Central. Чтобы создать приложение с картой Яндекса:
- Шаг 1. Получите ключ для работы с MapKit
- Шаг 2. Установите библиотеку MapKit
- Шаг 3. Настройте библиотеку
- Шаг 4. Соберите и запустите приложение
- При дальнейшей работе
- Пример приложения
Шаг 1. Получите ключ для работы с MapKit
- Перейдите в Кабинет Разработчика.
- Авторизуйтесь с учетной записью Яндекса или зарегистрируйте новый аккаунт.
- Нажмите Получить ключ и выберите пакет MapKit SDK.
- Заполните информацию о проекте, укажите нужный тариф и нажмите Отправить.
Дальнейшие инструкции придут на почту.
Полученный ключ можно использовать для работы с MapKit в нескольких приложениях.
Шаг 2. Установите библиотеку MapKit
- Создайте новый проект или откройте существующий, например, в Android Studio.
- Откройте файл build.gradle проекта. В секции repositories добавьте репозиторий Maven Central:
repositories { ... mavenCentral() }
- Откройте файл build.gradle приложения (модуля). Укажите адрес репозитория и добавьте зависимость:
repositories { maven { url "http://maven.google.com/" } } dependencies { ... compile 'com.yandex.android:mapkit:3.0.0' }
- Синхронизируйте проект, чтобы применить изменения. Например, в Android Studio можно нажать Sync Now или выбрать в меню . Дождитесь окончания синхронизации.
Если синхронизация завершилась успешно, при компиляции библиотека будет добавлена в проект автоматически. При ошибке компиляции, убедитесь что вы правильно указали репозиторий и зависимость и синхронизируйте проект снова.
Шаг 3. Настройте библиотеку
- Добавьте карту на Activity:
<com.yandex.mapkit.mapview.MapView android:id="@+id/mapview" android:layout_width="match_parent" android:layout_height="match_parent"/>
- Инициализируйте карту в методе
onCreate
нужного Activity:private MapView mapview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MapKitFactory.setApiKey("Ваш API ключ"); MapKitFactory.initialize(this); // Укажите имя activity вместо map. setContentView(R.layout.map); mapview = (MapView)findViewById(R.id.mapview); mapview.getMap().move( new CameraPosition(new Point(55.751574, 37.573856), 11.0f, 0.0f, 0.0f), new Animation(Animation.Type.SMOOTH, 0), null); }
Примечание. Не рекомендуется вызыватьMapKitFactory.initialize()
в методеApplication.onCreate()
. Это может привести к лишним операциям и повышенному расходу батареи устройства. - Передайте события
onStart
иonStop
вMapKitFactory
иmapView
. Иначе MapKit не сможет отобразить карту и остановить обработку карты, когда Activity с картой становится невидимым для пользователя:@Override protected void onStop() { super.onStop(); mapview.onStop(); MapKitFactory.getInstance().onStop(); } @Override protected void onStart() { super.onStart(); mapview.onStart(); MapKitFactory.getInstance().onStart(); }
Шаг 4. Соберите и запустите приложение
При работе в Android Studio приложение можно сразу запустить, сборка будет выполнена автоматически. Следуйте инструкциям ниже, чтобы запустить приложение на:
Android-устройстве, подключенном через USB к компьютеру разработчика (в режиме отладки).
При дальнейшей работе
Listener-объекты, сообщающие о результате многократных операций или состоянии объекта, нужно явно сохранять в памяти:
private final CameraListener cameraListener = new CameraListener() {
// Do something.
}
mapview.getMap().addCameraListener(cameraListener);
Пример приложения
Пример приложения, использующего MapKit, можно найти на GitHub.