Релизы
13.0.0 (2025-11-10)
🌟 Новые возможности
- DgisSource.createImmersiveDgisSource — источник иммерсивных данных.
- BaseCamera.changed — канал для уведомлений об изменениях состояния камеры.
- CameraChange — класс с информацией об изменениях состояния камеры.
- CameraChangeReason — причины изменения состояния камеры.
- LevelInfo.linkedLevelIds — идентификаторы связанных этажных планов.
- BriefRoadEvent.trustworthy — флаг достоверности дорожного события.
- IndoorBuilding.mode и IndoorBuilding.modeChannel — режим отображения зданий с этажными планами.
- IndoorBuilding.linkedWith() — метод для проверки связи между зданиями с этажными планами.
- RoadEvent.elevation — высота дорожного события.
- BranchesInfo и DirectoryObject.branchesInfo — информация о связанных организациях.
- FloorsInfo и BuildingInfo.floorsInfo — информация о количестве этажей в здании.
- SearchManager.searchBySuggest() — метод для поиска объектов справочника по поисковым подсказкам SuggestQuery и настройкам.
- SearchSettings — настройки поиска объектов справочника.
- SearchHistoryKeyStrategy и SearchHistory.setKeyStrategy() — метод для установки политики создания ключей для элементов истории поиска.
- IncompleteTextHandler.searchQuery — свойство поискового запроса.
- StorageOptions — класс параметров хранилища офлайн-данных. Передаётся в DGis для указания пути к корневому каталогу основного хранилища загрузок.
- RouteCamera.mobility — флаг, указывающий на мобильность дорожной камеры.
- ObstacleInfo.objectId — идентификатор объекта препятствия на маршруте.
- BicycleRouteSearchOptions.avoidUnpavedRoads — флаг для избегания грунтовых дорог на велосипедных маршрутах.
- PedestrianRouteSearchOptions.avoidUnpavedRoads — флаг для избегания грунтовых дорог на пешеходных маршрутах.
- ScooterRouteSearchOptions.avoidUnpavedRoads — флаг для избегания грунтовых дорог на маршрутах на самокате.
- DataPrefetcher и NavigationManager.dataPrefetcher — класс для предварительной загрузки тайлов карты на маршруте.
- FinishDetector и NavigationManager.finishDetector — класс для управления контроллером завершения маршрута.
- TrafficJamDetector и NavigationManager.trafficJamDetector — класс для обнаружения пробок на маршруте.
- MapLocationController.userControlOverMap — флаг для применения пользовательских значений уровня масштабирования и наклона карты.
- CrossingType и Route.crossingTypes — типы переправ на маршруте.
- MotorcycleBriefRouteInfo — класс с основной информацией о маршруте на мотоцикле.
- MotorcycleBriefRouteInfoTrafficSpeed — скорости движения для маршрутов на мотоцикле.
- MotorcycleRouteSearchOptions — класс с параметрами поиска маршрута на мотоцикле.
- PublicTransportInfo.routeInfos — описания маршрутов общественного транспорта.
- PublicTransportRouteInfo — класс с информацией о маршруте общественного транспорта.
- PublicTransportCostInfo — класс с информацией о стоимости проезда на общественном транспорте.
- RouteTollPaymentPointInfo и Route.tollPaymentPointInfos — класс с информацией о пунктах оплаты проезда по платной дороге.
- RouteTollPaymentPointType — тип оплаты проезда по платной дороге.
- TraversalType — направление кольцевой линии общественного транспорта.
- Package.pause() — метод для постановки на паузу установки или обновления пакета.
- Package.installWithFallback() — метод для установки или обновления пакета с обработчиком ошибок.
- InstallFallback — интерфейс для задания поведения при ошибках установки или обновления пакета.
- DefaultInstallFallback — фабрика для создания стратегий обработки ошибок установки и обновления пакета.
- DefaultInstallFallback.noOperation() — метод для создания
InstallFallback, не выполняющего операций. - DefaultInstallFallback.retryOnError() — метод для создания
InstallFallback, который вызывает повторную установку при ошибке загрузки пакета. - VoiceManager.defaultVoice — свойство для получения голосового пакета на основании списка локалей.
❗ Изменения, влияющие на обратную совместимость
-
Для Android минимальная поддерживаемая версия (API Level) обновлена с 21 до 23.
-
Для iOS минимальная поддерживаемая версия iOS обновлена до 16.0.
-
Теперь для отслеживания изменений состояний камеры используется единый канал BaseCamera.changed вместо отдельных каналов для каждого свойства. Заменены подписки и добавлена дополнительная фильтрация причин изменений.
-
Изменён способ создания некоторых классов:
- Удалена функция
getSystemMemoryManager. Чтобы получить объект для управления системой памяти, используйте метод SystemMemoryManager.instance(). - Удалён конструктор SearchHistory. Чтобы получить объект истории поиска, используйте метод SearchHistory.instance().
- Удалён конструктор RoadEventManager. Чтобы получить объект для работы с дорожными событиями, используйте метод RoadEventManager.instance().
- Удалена функция
getHttpCacheManager. Чтобы получить объект для управления HTTP-кешем, используйте метод HttpCacheManager.get(). - Удалена функция
getLocaleManager. Чтобы получить объект для управления локалями приложения, используйте метод LocaleManager.instance(). - Удалён конструктор TrafficCollector. Чтобы получить объект для управления сервисом сбора информации о дорожном движении, используйте метод TrafficCollector.instance().
- Удалена функция
getAudioSettings. Чтобы получить объект для управления звуком приложения, используйте метод AudioSettings.get(). - Удалена функция
getPackageManager. Чтобы получить объект для работы с пакетами, используйте метод PackageManager.instance(). - Удалена функция
getTerritoryManager. Чтобы получить объект для работы с территориями, используйте метод TerritoryManager.instance(). - Удалена функция
getTerritoriesAlongRouteProvider. Чтобы получить объект для извлечения списка территорий вдоль маршрута, используйте конструктор TerritoriesAlongRouteProvider. - Удалена функция
getVoiceManager. Чтобы получить объект для управления голосовыми пакетами, используйте метод VoiceManager.instance().
- Удалена функция
-
Удалён класс
EventsProcessingSettings. -
Объект
Gestureпереименован в TransformGesture. -
Объект
ScalingSettingsпереименован в ScalingRecognizeSettings. -
Объект
RotationSettingsпереименован в RotationRecognizeSettings. -
Объект
MultiTouchShiftSettingsпереименован в MultiTouchRecognizeSettings. -
Объект
TiltSettingsпереименован в TiltRecognizeSettings. -
GestureManager.scalingSettings, GestureManager.rotationSettings, GestureManager.multitouchShiftSettings и GestureManager.tiltSettings теперь возвращают объекты с типами ScalingGestureSettings, RotationGestureSettings, MultiTouchGestureSettings и TiltGestureSettings соответственно.
-
Класс Color для представления цвета перенесён из пакета
ru.dgis.sdk.map. -
Класс ScreenDistance перенесён из пакета
ru.dgis.sdk.map. -
Класс ScreenPoint перенесён из пакета
ru.dgis.sdk.map. -
Класс ScreenShift перенесён из пакета
ru.dgis.sdk.map. -
Свойство
buildingLevelsдля получения этажных планов удалено из DirectoryObject. -
Свойство DirectoryObject.buildingInfo теперь опциональное.
-
Свойство BuildingInfo.buildingId теперь обязательное и не может быть пустым.
-
Свойство LevelInfo.id теперь опциональное.
-
Изменён тип свойства PublicTransportDirectoryRouteInfo.color с
int?на Color?. -
Метод SearchQueryBuilder.setGeoPoint() теперь принимает опциональный тип значения.
-
Метод SearchQueryBuilder.setRadius() теперь принимает опциональный тип значения.
-
Удалены функция
getRoadMacroGraphи классRoadMacroGraph. Теперь для построения офлайн-маршрутов между соседними регионами достаточно скачать пакеты нужных регионов. -
Удалены класс для настройки позиции бабла с полосами на маршруте (
LanesCalloutMapPositionиRouteMapObject.lanesCalloutPositions) и свойство в RouteMapObject. -
Переименован класс
UIntRouteLongAttributeв DoubleRouteLongAttribute. -
Изменён тип свойства Route.trafficLights с VoidRouteAttribute на StringRouteAttribute.
-
Добавлен новый вид транспорта
motorcycle(мотоцикл) в TransportType. -
Добавлены параметры для настройки уровня масштабирования для стиля в конструктор SpeedRangeToStyleZoom.
-
Добавлены значения для пандусов
rampDown,rampUp,smoothRampDownиsmoothRampUpв RoadSubtype. -
Добавлены новые значения позиций и ориентиров в CarInstructionCrossroadLandmark.
-
Добавлены значения цветов
deepGreenиorangeв TrafficSpeedColor. -
Добавлен флаг
crossingдля отображения начала и конца переправы на маршруте в RouteMapObjectDisplayFlag. -
Добавлен новый тип точки маршрута
crossing(начало и конец переправы) в RoutePointKind. -
Добавлены значения для оповещений о событиях
betterRoute(«маршрут лучше») иhumps(искусственные дорожные неровности) в SoundCategory.
🛠 Исправления
-
Исправлена ошибка, из-за которой падало приложение при работе SearchManager.createSmartManager(), если не было скачанных территорий.
-
Добавлен фильтр для скрытия этажей зданий на карте, если их площадь на экране меньше определённого порога.
-
Исправлены звуковые оповещения в навигаторе:
- Исправлена ошибка, из-за которой не озвучивалось предупреждение о камере «в спину».
- Исправлена ошибка, из-за которой не озвучивались промофразы (при наличии корректного голосового пакета).
- Добавлены звуковые оповещения о лестницах на маршруте.
- Исправлена ошибка, при которой камеры контроля перекрёстка озвучивались как камеры контроля скорости.
- Добавлены звуковые оповещения о перестроении маршрутов для велосипедов и самокатов.
-
Исправлены ошибки в работе навигатора при проблемах с GPS-сигналом:
- Исправлена ошибка перелёта маркера текущей геопозиции при работе детектора слабого GPS-сигнала.
- Исправлены ошибки, возникавшие при приближении пользователя к точке конца маршрута при нестабильном GPS-сигнале.
- Добавлено отключение детектирования схода с маршрута при низкой точности GPS-сигнала.
- Теперь при резком снижении точности GPS-сигнала во время работы навигатора геопозиция пользователя не переносится в другое место на карте.
-
Исправлены проблемы в работе навигатора:
- Исправлена проблема, из-за которой на экране поиска маршрута не отображался бабл с информацией о времени и длине маршрута, если у одного из маршрутов отсутствовали уникальные отрезки.
- Исправлена проблема, из-за которой в бабле альтернативного маршрута не обновлялась разница во времени движения, если при использовании навигатора пользователь не двигался.
- Удалены названия съездов в баблах, если не указано направление движения или съезд ведёт к объекту с типом «аэропорт».
- Исправлена проблема, из-за которой иконки дорожных событий не реагировали на нажатия.
- Добавлена поддержка отображения и цветовой индикации пробок на грунтовых дорогах.
- Исправлено дублирование иконок МЦК, МЦД, Аэроэкспресса и электричек в бабле маршрута с пересадками.
- Исправлено некорректное отображение линии маршрута на перекрёстках.
- Удалено отображение дополнительной иконки с полосами движения для камер, которые фиксируют непредоставление преимущества в движении пешеходам.
- Исправлена ошибка притяжки геопозиции пользователя к маршруту при возврате на маршрут.
- Исправлена ошибка, при которой падало приложение при перестроении пешеходного маршрута в режиме ведения по маршруту.
- Исправлено поведение, при котором дополнительные иконки отображались на маршруте после истечения срока действия дорожного события.
- Изменена логика отображения дополнительных иконок с полосами движения для подтверждённых дорожных событий.
- Добавлено ограничение, при котором при перестроении маршрута в него не включаются платные дороги, если пользователь выбрал проезд только по бесплатным дорогам.
- Добавлено отображение уведомлений о лестницах на панели с предполагаемым временем маршрута.
- Теперь навигатор продолжает вести пользователя по маршруту и перестраивает его при необходимости, даже если была закрыта финишная панель (с кнопкой Завершить маршрут).
- Изменена логика фильтрации полос: полосы, разрешающие движение прямо, не исключаются из баблов с полосами на маршруте.
- Добавлена визуализация мигания пробок на маршруте при скорости 80–90 км/ч.
🗺 Изменения в стилях карты
- Повторно выгрузите стили: исправлены ошибки отображения пользовательских и иммерсивных объектов.
- Обновлены все слои групп
Roadsдля отображения иммерсивных дорог в основном режиме карты. - Добавлена группа
Traffic v13.0.0для отображения новых цветов тайлов с пробками. - Добавлена группа
Car route line v13.0.0для отображения автомобильных маршрутов на иммерсивных дорогах.
12.8.0 (2025-08-14)
🌟 Новые возможности
- Добавлена поддержка армянского языка на карте, в справочнике и при построении маршрутов. Также добавлены голосовые пакеты уведомлений на армянском языке.
- В TrafficRouter добавлена возможность задавать тип поисковика маршрутов (онлайн, офлайн или гибрид) с помощью RouterType.
- В NavigationManager и RouteEditor добавлена возможность указывать поисковик маршрутов (TrafficRouter).
🛠 Исправления
- Данные о пробках через источник TrafficSource теперь не запрашиваются и не обновляются в фоновом режиме приложения.
- Добавлена опция линковщика для установки размера страницы памяти 16 КБ при сборке Android-библиотеки.
- Исправлены визуальные артефакты в MapWidget, которые возникали при смене конфигурации устройства.
- Исправлены анимации в SpeedLimitWidget.
- Исправлено отображение TrafficLineWidget.
12.7.2 (2025-07-07)
🌟 Новые возможности
- DirectoryObject.routeInfos — информация о маршрутах общественного транспорта в объекте справочника.
- DirectoryObject.publicTransportScheduleInfo — метод для получения информации о расписаниях платформ общественного транспорта и направлений маршрутов.
- DirectoryObject.platformIds — информация об идентификаторах платформ общественного транспорта в объекте справочника.
- EntranceInfo.entranceNumber — номер входа на станцию общественного транспорта.
- ItemMarkerInfo.tradeLicense — информация о торговой лицензии организации в маркере.
- SearchQueryBuilder.setSearchNearby — метод, который указывает поисковому движку искать объекты рядом с пользователем.
- SuggestQueryBuilder.setSearchNearby — метод, который указывает поисковому движку искать объекты рядом с пользователем.
- SearchResult.nearbyRequested — признак в результатах поиска, что при поиске были запрошены объекты поблизости.
- SearchWidgetColorScheme — класс для указания цветовой схемы для класса DgisSearchWidget.
- Добавлена возможность указать сборщики для создания SearchQuery и SuggestQuery в классе DgisSearchWidget.
- TrafficRoute.routeTollPaymentInfos — информация о стоимости проезда по платным участкам маршрута.
- RoadMacroGraph — пакет глобального дорожного графа будет удалён в следующих версиях. Вы можете строить маршруты между регионами на основе скачанных офлайн-данных.
🛠 Исправления
- Улучшена производительность карты для Android и iOS: карта может работать с кадровой частотой 120 FPS.
🗺 Изменения в стилях карты
- Заново выгрузите стили: в навигаторе исправлено отображение иммерсивных дорог и тумана.
12.6.3 (2025-05-15)
🌟 Новые возможности
- Добавлена возможность использовать Flutter SDK на устройствах с операционной системой Аврора. Подробнее см. в разделе Установка.
🛠 Исправления
-
Оптимизирована работа TrafficSource:
- Тайлы с пробками запрашиваются при изменении масштаба карты и по таймеру.
- Уровень пробок в баллах обновляется при смене региона и по таймеру.
-
Улучшена производительность карты при добавлении полигонов с большим количеством вершин через MapObjectManager.
12.6.1 (2025-04-21)
🌟 Новые возможности
- В источник геопозиции по умолчанию для Android добавлена возможность настроить использование сервиса Radar API для геопозиционирования устройства по точкам доступа Wi-Fi и сотовым вышкам. Настроить использование Radar API можно через RadarApiSettings и
ru.dgis.sdk.positioning.RadarSettingsProviderпри регистрации Android-плагина. Подробнее см. в разделе Использование Radar API. - File.fromAsset — метод для загрузки файла из asset-директории приложения.
- TextStyle.suppressOnOverlap — опция для скрытия текста подписи маркера при пересечении с другими объектами.
🛠 Исправления
- Исправлено обновление генерализации при изменении атрибутов объектов, добавленных через метод MapObjectManager.withGeneralization.
- Исправлена ошибка, при которой приложение падало при логировании сетевых запросов.
12.5.0 (2025-03-25)
🌟 Новые возможности
- SearchQueryBuilder.setLocale — метод для задания локали, в которой выполняется поисковый запрос.
- DirectoryObject.group — объединение объектов разного типа в одной карточке. Например, карточка здания суда содержит информацию о здании как геообъекте и о суде как организации в здании.
- SearchQueryWithInfo.rubrics — список рубрик, по которым производится запрос.
- PackedSearchQuery.locale — локаль для поискового запроса.
🛠 Исправления
- Исправлена ошибка, при которой маркер местоположения, добавленный через MyLocationMapObjectSource, исчезает при первом перелёте камеры.
- Исправлено отображение информации о маршруте на карте при направлении текста справа налево (RTL) для источника данных RouteEditorSource.
- Изменены настройки кеширования данных из источника на маршруте. Теперь данные кешируются на расстоянии 4000 метров впереди от текущей позиции на маршруте вместо 20000.
🗺 Изменения в стилях карты
- Следует заново выгрузить стили: исправлено отображение информации о маршруте на карте при направлении текста справа налево.
12.4.4 (2025-02-20)
🌟 Новые возможности
- Projection.distanceOnMap — метод для вычисления расстояния между точками на карте, которые соответствуют указанным точкам на экране.
- Projection.distanceOnScreen — метод для вычисления расстояния между точками на экране, которые соответствуют указанным точкам на карте.
🛠 Исправления
- Исправлено отображение окружности на карте при добавлении объекта Circle в MapObjectManager.withClustering и MapObjectManager.withGeneralization.
12.4.1 (2025-02-06)
🌟 Новые возможности
- Map.sublayerAttributes — возможность переопределения атрибутов конкретного слоя карты.
- SearchHistory — класс для работы с историей поисковых запросов: чтения, добавления и удаления записей с информацией о результате работы поиска и поисковых подсказках.
- SearchQueryBuilder.fromOrgId — метод для формирования поискового запроса по идентификатору организации.
- SearchQueryBuilder.fromBuildingId — метод для формирования поискового запроса по идентификатору здания.
- SearchQueryBuilder.fromGeoPoint — метод для формирования поискового запроса c центром области поиска.
- SearchQueryBuilder.setGeoPoint и SearchQueryBuilder.setRadius — методы для установки центра области поиска и радиуса при формировании поискового запроса.
- DirectoryObject.orgInfo — информация об организации в объекте справочника.
- MyLocationMapObject.setModelData — метод для установки 3D-модели маркера геопозиции.
- BaseCamera.viewPoint — возможность изменения точки обзора камеры относительно размера области видимости карты.
- AnimationSettings.animationName — возможность переключения анимации 3D-модели по названию.
- Добавлена инструкция по управлению стилями карты.
🛠 Исправления
- Теперь положение 3D-модели совпадает с направлением камеры, если значение угла поворота не задано в ModelMapObject.mapDirection.
- Исправлена некорректная установка атрибутов для генерализуемых объектов, добавленных на карту через MapObjectManager.withClustering. Теперь изменение атрибутов объектов на определённом zoom-уровне распространяется на все уровни.
- Исправлена работа атрибута для управления видимостью объекта на карте SimpleMapObject.isVisible при генерализации и кластеризации объектов.
- Доработано отображение NavigationLayoutWidget в альбомной ориентации.
🗺 Изменения в стилях карты
- Исправлен приоритет обработки нажатий между маркером геопозиции и зданиями на карте.
12.3.0 (2024-12-20)
🌟 Новые возможности
- ModelMapObject и ModelMapObjectOptions — классы для создания и настройки динамических объектов с 3D-моделями. Вы можете добавить данные объекты на карту с помощью MapObjectManager.
- ModelData и ModelLoader — возможность загрузки пользовательских 3D-моделей.
- Теперь при добавлении TrafficSource на карту тайлы с пробками запрашиваются на основе области видимости экрана независимо от обновления конфигурационного файла SDK.
- DirectoryObject.rubricIds — идентификаторы рубрик в объекте справочника.
- FreeRoamSelector и NavigationManager.freeRoamSelector — возможность включения и выключения перевода навигатора в режим
FreeRoamпри слишком долгом перестроении маршрута. - RouteRebuilder и NavigationManager.freeRoamSelector — возможность включения и выключения поиска нового маршрута при сходе с текущего маршрута.
- TrafficRouter.requestRoute — возможность поиска маршрута по ранее сериализованным параметрам.
- NavigationLayoutWidget — общий UI-элемент для отображения интерфейса навигатора.
🛠 Исправления
- Оптимизировано отображение карты на iOS и удалено мигание при слежении за текущим местоположением в навигаторе.
- Исправлено дублирование числа филиалов для категорий организаций в Suggest.subtitle.
- Исправлена ошибка получения координат объекта при обработке клика на Marker, добавленный на карту перед первичной загрузкой карты.
- Исправлено отображение 3D-модели маркера геопозиции навигатора для всех типов маршрута, кроме пешеходного. Для пешеходного маршрута отображается обычная модель маркера геопозиции.
- Обновлена конфигурация навигатора для улучшения работы при плохом сигнале GPS.
🗺 Изменения в стилях карты
- Добавлен слой для отображения динамических 3D-моделей.
12.2.0 (2024-11-18)
🌟 Новые возможности
- AnimationSettings — класс для настройки анимаций объектов карты. Применяется для объектов с типами слоя
3D modelиDirectional model. - MyLocationMapObject.animationSettings — возможность настройки анимаций для маркера геопозиции, если в качестве модели в стилях загружена анимированная модель.
- MyLocationMapObject.objectAttributes — возможность настройки атрибутов стилей для маркера геопозиции. Возможные значения атрибутов можно увидеть в стилях для соответствующего слоя.
- RoadEventMapObject.animationSettings — возможность настройки анимаций для дорожных событий, если в качестве модели в стилях загружена анимированная модель.
- RoadEvent.id — идентификатор дорожного события.
- ParkingControlModel — модель для удобного переключения видимости парковок на карте.
- ItemMarkerInfo.rubricIds — идентификаторы рубрик, к которым относится объект маркера.
- TextHorizontalAlignment — настройка для выравнивания надписи по горизонтали в Marker через TextStyle.
- RouteMapObjectsProvider и NavigationManager.routeMapObjectsProvider — класс для получения объектов маршрута на карте.
- RouteMapObject.roadEventObjects — дорожные события на карте для соответствующего маршрута.
- MyLocationMapObjectSourceProvider и NavigationManager.myLocationMapObjectSourceProvider — класс для получения источника маркера геопозиции в навигаторе.
- UI-элементы навигатора: MyLocationWidget, TrafficWidget и ZoomWidget.
🛠 Исправления
- Оптимизировано отображение карты на iOS, чтобы не было миганий при частых перелетах и изменениях размера MapWidget.
- Исправлены ошибки при отображении IndoorWidget.
Copyrightв MapWidget учитывает безопасные зоны экрана.- Доработан механизм получения названия объекта маркера ItemMarkerInfo.title. Теперь учитывается, что маркер может быть без названия.
- Исправлена потенциальная проблема при инициализации карты, когда стиль устанавливался раньше, чем завершался процесс инициализации.
- Исправлено потенциальное зависание в MapObjectManager при частом добавлении и удалении объектов через метод MapObjectManager.removeAndAddObjects.
- Исправлена ошибка, при которой для некоторых регионов не работало отображение дорожных событий на карте.
- Исправлено отображение стрелок маршрута относительно иммерсивных дорог реальной ширины в режиме навигатора.
- Исправлена потенциальная проблема, при которой не отображались баблы полосности на маршруте в режиме навигатора.
🗺 Изменения в стилях карты
- Исправлены ошибки в стилях при отображении маркера геопозиции в режиме навигатора с иммерсивными дорогами реальной ширины.
- Исправлены ошибки в стилях при отображении этажных планов зданий.
12.1.4 (2024-10-31)
🛠 Исправления
- Исправлена проблема, из-за которой карта могла не отображаться на некоторых устройствах Android.
12.1.3 (2024-10-25)
🛠 Исправления
- Исправлена работа Flutter SDK на устройствах с 32-битной архитектурой.
- Исправлена проблема, из-за которой карта могла не отображаться на Android, если MapWidget добавлен на стартовый экран приложения.
12.1.0 (2024-09-27)
Первый релиз Flutter SDK, который позволяет добавить карту в ваше приложение, отобразить её на экране, строить маршруты, получать информацию об объектах и так далее.