Версии MapKit

Новые версии MapKit содержат улучшения и исправления проблем. Рекомендуется всегда использовать последнюю доступную версию.

Система нумерации

Номер версии MapKit состоит из трех чисел, например 3.0.0. При каждом обновлении номер версии увеличивается по следующим правилам:

  • первое число — при значительных изменениях в архитектуре библиотеки и потере совместимости на уровне API;
  • второе число — при потере обратной совместимости с предыдущими версиями на уровне приложения;
  • третье число — при выпуске новой версии с сохранением обратной совместимости.

Первые два числа образуют т. н. мажорную версию (например, 3.0), все три числа вместе — минорную версию (например, 3.0.0).

Список версий

Ниже приведен список изменений в MapKit SDK от версии к версии. В скобках указана дата выпуска соответствующей версии.

  • MapKit SDK 4.6.1 (25 апреля 2024)

    Список изменений
    • Упрощен способ добавления пользовательских слоев. Теперь для этого используется метод addTileLayer.
    • Для текста плейсмарки теперь можно настраивать ширину обводки (свойство outlineWidth).

    Только для Android

    • Библиотека evernote android job заменена на android WorkManager.
  • MapKit SDK 4.5.2 (11 апреля 2024)

    Список изменений
    • Исправлен крэш при получении GPS позиции.

    Только для iOS

  • MapKit SDK 4.5.1 (26 февраля 2024)

    Список изменений
    • Уменьшение размера.
    • Добавлен API для поиска фотографий.
    • Исправлен крэш при скролле карты.

    Только для iOS

    • Исправлен крэш при инициализации на iOS 17.4.
  • MapKit SDK 4.5.0 (24 декабря 2023)

    Список изменений
    • Добавлен NaviKit SDK - это дополнение к MapKit SDK. С ним вы получите инструменты для создания своего навигационного приложения. Используйте технологии навигатора при проектировании легковой и грузовой навигации под задачи бизнеса.

      Подробнее о NaviKit SDK см. в документации для Android и iOS.

    • В CameraBounds добавлена возможность ограничения области камеры по широте и долготе.

  • MapKit SDK 4.4.1 (20 февраля 2024)

    Список изменений

    Только для iOS

    • Исправлен крэш при инициализации на iOS 17.4.
  • MapKit SDK 4.4.0 (15 сентября 2023)

    Список изменений

    Изменения в карте

    • У полигона появилась возможность делать заливку текстурой, появился метод setPattern.
    • В MapObjectCollection добавлен метод addPlacemark() без параметров, все остальные методы addPlacemark в статусе @deprecated.
    • Добавлен метод map.cameraBounds с возможностью установить ограничение максимального и минимального зума карты.
    • Метод selectGeoObject теперь принимает GeoObjectSelectionMetadata.
    • Метод cameraPosition(BoundingBox) заменен на cameraPosition(Geometry).
    • В VisibleRegionUtils появился метод getBounds, который возвращаюшет значение BoundingBox.
    • Для уменьшения размера и упрощения API удалены устаревшие и редко используемые возможности:
      • SublayerManager и возможность управлять подслоями;
      • использование 3D-модели в качестве плейсмарок;
      • добавление GeoJson-слоев.

    Прочие изменения

    • Поддержаны тэги для поисковых фильтров.
    • Добавлен id родительских регионов в регионы офлайн кэшей.
    • В ответ поиска (SuggestItem) добавлена позиция объекта.

    Только для iOS

    • Для уменьшения размера и упрощения API удалена поддержка Vulkan (кроме эмуляторов).
    • Удалена поддержка bitcode, так как он объявлен deprecated.
  • MapKit SDK 4.3.2 (20 июня 2023)

    Список изменений

    Только для iOS

    • Исправлена компиляция с swiftUI preview для x86_64.

    Только для Android

    • Повышена версия зависимостей от сервисов Google Play (play-services-location:21.0.1).
    • SafetyNet API заменен на Play Integrity.
  • MapKit SDK 4.3.1 (3 марта 2023)

    Список изменений

    Только для iOS

    • Исправлена минимальная поддерживаемая версия iOS: возвращена 12 (кроме эмуляторов с процессором M1, для них версия осталась 13).
  • MapKit SDK 4.3.0 (2 марта 2023)

    Список изменений

    Изменения в карте

    • Добавлен метод Map.cameraPosition для произвольной геометрии. Раньше можно было вычислять позицию камеры только для axis aligned bbox.

    • Исправлена проблема с ориентацией длинных полилинейных подписей.

    • Улучшено освобождение памяти:

    • метод MapWindow.onMemoryWarning теперь освобождает больше памяти.

    • появился метод wipe(), который освобождает большую часть памяти, потребляемой картой: после его вызова карта будет перезагружена заново. В некоторых случаях может быть полезно вызывать его при переходе в фоновый режим.

    • Исправлено отображение цифр в подписях на арабском языке и иврите.

    • Для эмуляторов с процессором M1 карта автоматически переключается на использование Metal API.

    Прочие изменения

    • Значительно уменьшен размер full- и lite-версий MapKit.
    • Из lite-версии удален редко используемый API.
    • В автомобильный маршрут добавлены признаки наличия пересечения железных дорог, а также места паромных переправ. Для плохих дорог добавлен более четкий признак: грунтовая дорога или разбитая.
    • Для пеших маршрутов добавлена поддержка пересадок в пределах одной станции метро: в секции Transport добавлено поле TransferStop с подробностями пересадки.
    • В панорамах появились иконки организаций, а не только адресные таблицы. Появилась возможность реагировать на нажатия на иконки.
    • В результатах поиска в SuggestItem/YMKSuggestItem добавлено поле с координатами объекта.

    Только для iOS

    • Минимальная поддерживаемая версия iOS повышена до 13.
    • Из фреймворка удалены лишние и неиспользуемые заголовочные файлы.
  • MapKit SDK 4.2.2 (25 октября 2022)

    Список изменений
    • Исправлена ошибка «Недостаточно памяти» (Out of Memory, OOM) при быстром изменении зума карты.

    Только для Android

    • Опции android.permission.ACCESS_WIFI_STATE и android.permission.ACCESS_NETWORK_STATE теперь необязательны и могут быть удалены.
    • Исправлено падение при вызове метода LocationListener.onLocationUpdated.
  • MapKit SDK 4.2.1 (22 сентября 2022)

    Список изменений
    • Исправлен баг при пересечении линий в рамках группы, с одинаковым line-z-level (border не должен быть виден).
    • Исправлено выравнивание логотипа Яндекса на карте.

    Только для Android

    • Повышена версия зависимостей от сервисов Google Play (play-services-location:20.0.0, play-services-gcm:17.0.0, play-services-safetynet:18.0.1).
  • MapKit SDK 4.2.0 (10 августа 2022)

    Список изменений
    • Поддержаны новые типы дорожных событий: железнодорожные переезды, искусственные неровности («лежачие полицейские»).
    • Поддержан новый тип транспорта: water.
    • Добавлены новые языки для аннотаций (татарский, азербайджанский, арабский).
    • Поддержана работа с маршрутами, построенными на произвольное время.
    • Добавлена настройка, чтобы избегать проезд по плохим дорогам.
    • Уменьшен размер библиотек.
    • Удален недоступный и лишний API.
    • Исправлены баги.
  • MapKit SDK 4.1.0 (18 мая 2022)

    Список изменений

    Изменения в карте

    • Новый слой подложки VMAP3 с поддержкой нескольких режимов отображения карты. На текущий момент представлены следующие режимы: Default, Transport и Navigation.
    • Добавлена коррекция размеров объектов на карте в зависимости от широты, для компенсации искажения проекции Меркатора.
    • В точечные map-объекты теперь можно добавлять текст.
    • Из двух классов PolylineMapObject и ColoredPolylineMapObject оставлен один класс, который покрывает возможности обоих — PolylineMapObject.
    • MapObject.getParentтеперь возвращаетBaseMapObjectCollection — общий родитель для MapObjectCollection и ClusterizedPlacemarkCollection.
    • ZoomFocusPointMode переименован в GestureFocusPointMode, и теперь GestureFocusPoint в режиме AffectsAllGestures влияет еще и на вращение.
    • Исправлены рывки при скролле карты.
    • Оптимизировано потребление памяти.
    • Добавлено API инспекции карты для написания UI тестов: Map.visibleObjects.
    • Новый формат стилей для GeoJson слоев.
    • Расширена кастомизация карты: появилась возможность перекрашивать иконки.
    • Добавлена возможность задавать размеры 3D-модели в пикселях.

    Прочие изменения

    • Добавлена возможность строить маршруты для грузового транспорта с учетом его параметров, таких как габариты (длина, ширина, высота), вес, максимальный допустимый вес, нагрузка на ось, загрузка. В случае, если невозможно построить маршрут без нарушений ограничений на параметры транспортного средства, будет построен маршрут с нарушением, а на маршруте указаны места нарушений ограничений.

    Только для Android

    • Минимальная поддерживаемая версия повышена до 5.0.

    Только для iOS

    • Поддержана работа на эмуляторах с процессором M1.
    • Поддержана сборка с Xcode 13.3.
    • SDK поставляется теперь в виде xcframework.
    • Минимальная поддерживаемая версия iOS повышена до 12 (13 для эмулятора с процессором M1).
  • MapKit SDK 4.0.0 (21 сентября 2020)

    Список изменений

    Изменения в карте

    • Добавлены более подробные масштабы карты: 20 и 21;
    • Изменен формат стилей, теперь используется geojson;
    • Добавлена возможность ограничивать количество poi: Map::setPoiLimit();
    • Добавлена настройка focusPoint. Раньше это свойство было всегда привязано к focusRect;
    • Расширена кастомизация карты: появилось больше тегов для фильтрации объектов, кроме того теперь при масштабировании точечного объекта расстояние между подписью и иконкой тоже меняется;
    • Добавлена поддержка вытеснения объектов карты при разрешении конфликтов. Раньше они могли вытеснять, но не вытесняться;
    • Добавлена настройка высоты домов/моделей: Map::setBuildingsHeightScale();
    • Добавлено отображение схем помещений (ТЦ и аэропортов).

    Изменения в поиске

    • Убрана возможность запрашивать два разных сниппета для рейтинга организаций, теперь доступен только один;
    • Добавлена возможность прокидывать типа запроса (primary/resubmit/nextpage) в события от поискового слоя;
    • Убрана возможность устанавливать zIndex на поисковом слое;
    • Добавлена подсветка найденных слов в офлайн-саджесте;
    • Добавлена возможность запрашивать фильтры в первом поисковом запросе через SearchOptions. Старые методы для установки фильтров теперь deprecated;
    • Теперь офлайн-поиск заполняет рубрику в ответе, если считает запрос рубричным;
    • Улучшена сетевая подсистема.

    Прочие изменения

    • Библиотека теперь распространяется в 2х вариантах lite и full;

    • Добавлена поддержка грузовой маршрутизации;

    • Язык и регион теперь можно задать явно при инициализации MapKit;

    • При комбинированном поиске пустые ответы от офлайн-поиска теперь игнорируются, пока не придёт ответ или ошибка онлайна;

    • Исправлена обработка нажатий в поисковом слое: теперь нельзя выбирать иконку "сквозь" другую;

    • Добавлены enum-фильтры только с одним значением (поле singleSelect).

    Только для Android

    • libc++_shared.so больше не предоставляется вместе с библиотекой. Это исключает расхождение версий NDK у нескольких компонентов в приложении.

    Только для iOS

    • Исправлены несколько утечек;
    • Убраны 32х битные архитектуры: armv7 и x86_64;
    • Исправлен баг с обработчиком long tap в iOS 14.
  • MapKit SDK 3.5.0 (28 февраля 2020)

    Список изменений

    Изменения в формате карты

    • Новый формат GEOJson тайлов.
    • Новый формат кастомизации. Подробнее
      Изменения в поиске
    • Удален метод Session.setSortByRank, теперь нужно использовать Session.resetSort.
    • Удален метод SearchManager.searchByOid, теперь нужно использовать SearchManager.resolveURI/searchByURI.
    • Удален метод SearchManager.suggest, теперь нужно использовать SearchManager.createSuggestSession.
    • Удалены методы SearchLayer.resolveURI и SearchLayer.searchByOid, остался только SearchLayer.searchByURI.
    • Удален SearchManagerType.DEFAULT, вместо него нужно использовать COMBINED (недоступен в бесплатной версии).
      Новые возможности поиска:
    • Возможность запрашивать сниппет с товарами (Snippet.GOODS1X) и получать полный список товаров для организации (SearchManager.requestGoodsRegister).
    • Возможность создавать несколько поисковых слоёв.
      Другие изменения в поисковых запросах:
    • Поисковый слой больше не запрашивает сниппеты самостоятельно, все сниппеты нужно явно задавать в опциях.
    • Поправлена ошибка с неверным пересчётом состояния пинов в поисковом слое после первого движения карты.
    • Улучшена производительность поискового слоя на слабых устройствах.
      Прочие изменения
    • Исправлен ряд ошибок в фоне и при деинициализции на iOS.
    • Улучшена работа MapKit c сетью.
    • Для коммерческих пользователей: ряд улучшений в offline cache, теперь offline карты обновляются чаще.
  • MapKit SDK 3.4.0 (2 августа 2019)

    Список изменений

    Добавлено:

    • Поддержка кластеризации.
    • Возможность создавать UserLocationLayer с помощью MapKit, аналогично другим слоям.

    Исправлено:

    • Улучшена производительность на arm64.
    • Большое количество проблем, приводящих к прекращению работы приложения.
  • MapKit SDK 3.3.1 (11 февраля 2019)

    Список изменений

    Добавлено:

    • Поддержка пользовательских GeoJSON.
    • Поддержка зума в определенную точку.
    • Возможность добавить метки с одинаковым изображением и стилем иконки одним вызовом метода mapObjects.addPlacemarks.

    Изменено:

    • На платформе Android, MapView теперь реализует интерфейс ComponentCallbacks2. Благодаря этому больше не нужно обрабатывать событие onMemoryWarning.
    • Для улучшения работы с офлайн картами переработан OfflineCacheManager.

    Исправлено:

    • Улучшена производительность карты.
    • Уменьшено время работы на UI потоке.
  • MapKit SDK 3.2 (7 декабря 2018)

    Список изменений

    Исправлено:

    • Ошибка при работе с MapObject на карте.
    • Ошибка ContextLost при работе на эмуляторе.
    • Ошибка GL_OUT_OF_MEMORY в com.yandex.runtime.view.internal.PlatformViewBinding.onRender.
    • Ошибка при работе с локальным кэшем в офлайн режиме при наличии обновлений.
    • Ряд сбоев в приложении при работе с картой.
    • Исчезающие при нажатии пины в поисковом слое.
  • MapKit SDK 3.1.2 (1 ноября 2018)

    Список изменений

    Исправлено:

    • Улучшена производительность карты.
    • Улучшена работа LocationPreprocessor.
    • Исправлен сбой при использовании urlProvider.
    • Устранена возможность блокировки приложения при обновлении пробок.
  • MapKit SDK 3.1 (17 октября 2018)

    Список изменений

    Добавлено:

    • Для Android появились arm64 и x86 сборки.
    • На карту можно добавить любой объект View.
    • Появилась веломаршрутизация.
    • Добавлены аннотации nullable для Android.

    Изменено:

    • MapKit разбит на части:

    • MapKit — только карта;

    • MapKit Directions — автомобильная маршрутизация;

    • MapKit Transport — пешеходная маршрутизация, маршрутизация с использованием общественного транспорта и велосипедная маршрутизация;

    • MapKit Search — поиск и геокодирование;

    • MapKit Places — панорамы.

    • Для iOS аннотации nullable стали более строгими.

    Исправлено:

    • Исправлен ряд ошибок.
    • Улучшена производительность.
  • MapKit SDK 3.0 — архивная версия (15 марта 2018)

Поддерживаемые платформы

Для стабильной работы MapKit требуется:

  • Android 5.0 или выше;
  • iOS 12 или выше.