Как начать работу с MapKit для Android

Библиотека MapKit для платформы Android 4.0.3 и выше доступна в репозитории Maven Central. Чтобы создать приложение с картой Яндекса:

  1. Шаг 1. Получите ключ для работы с MapKit
  2. Шаг 2. Установите библиотеку MapKit
  3. Шаг 3. Настройте библиотеку
  4. Шаг 4. Соберите и запустите приложение
  5. При дальнейшей работе
  6. Пример приложения

Шаг 1. Получите ключ для работы с MapKit

  1. Авторизуйтесь с учетной записью Яндекса или зарегистрируйте новый аккаунт.
  2. Нажмите Получить ключ и выберите пакет MapKit SDK.
  3. Заполните информацию о проекте, укажите нужный тариф и нажмите Отправить.

Дальнейшие инструкции придут на почту.

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

Шаг 2. Установите библиотеку MapKit

  1. Создайте новый проект или откройте существующий, например, в Android Studio.
  2. Откройте файл build.gradle проекта. В секции repositories добавьте репозиторий Maven Central:
    repositories {
        ...
        mavenCentral()
    }
  3. Откройте файл build.gradle приложения (модуля). Укажите адрес репозитория и добавьте зависимость:
    repositories {
        maven {
            url "http://maven.google.com/"
        }
    }
    
    dependencies {
        ...
        compile 'com.yandex.android:mapkit:3.0.0'
    }
  4. Синхронизируйте проект, чтобы применить изменения. Например, в Android Studio можно нажать Sync Now или выбрать в меню File → Synchronize. Дождитесь окончания синхронизации.

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

Шаг 3. Настройте библиотеку

  1. Добавьте карту на Activity:
    <com.yandex.mapkit.mapview.MapView
        android:id="@+id/mapview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
  2. Инициализируйте карту в методе 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(). Это может привести к лишним операциям и повышенному расходу батареи устройства.
  3. Передайте события 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 приложение можно сразу запустить, сборка будет выполнена автоматически. Следуйте инструкциям ниже, чтобы запустить приложение на:

При дальнейшей работе

Listener-объекты, сообщающие о результате многократных операций или состоянии объекта, нужно явно сохранять в памяти:

private final CameraListener cameraListener = new CameraListener() {
// Do something.
}  
mapview.getMap().addCameraListener(cameraListener);

Пример приложения

Пример приложения, использующего MapKit, можно найти на GitHub.