Версии 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
- Убрано использование CMMotionActivityManager.
-
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).
- Новый слой подложки VMAP3 с поддержкой нескольких режимов отображения карты. На текущий момент представлены следующие режимы:
-
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 или выше.