


25 октября вышла стабильная версия MapLibre GL JS 6.16.0. Библиотека рисует интерактивные карты в браузере с помощью WebGL. Среди изменений есть исправления для мобильных устройств: карта могла перестать загружаться после завершения фонового обработчика или остаться растянутой из одного пикселя. На Mentoring.digital разбираем, какие сценарии стоит проверить после обновления.
На iOS система может завершить worker, когда веб-приложение находится в фоне. Worker выполняет часть работы карты отдельно от основного потока страницы. Исправление в 6.16 проверяет его доступность при возвращении приложения на экран и перезапускает неответившие обработчики, после чего восстанавливает стиль карты.
Авторы также устранили утечку ресурсов в управлении пулом workers. Если приложение добавляет собственные слои и обработчики событий отдельных слоёв, их может потребоваться подключить повторно. Поэтому наличие изображения карты после возврата ещё не подтверждает, что все пользовательские действия восстановились.
Другое исправление касается изменения размера в промежутке потери WebGL-контекста. В опубликованном отчёте для Chrome на Android canvas карты оставался размером 1 × 1 пиксель, а браузер растягивал его на всю область. Версия 6.16 содержит исправление этого случая.
Кроме мобильных ошибок, в выпуске исправлены повторная загрузка просроченных векторных тайлов с неизменившимся ETag и работа GeoJSON getBounds с пустой геометрией. Через Map#setMaxBounds теперь можно независимо ограничить перемещение по одной географической оси. Параметр transformStyle разрешено передавать при создании карты, а не только через setStyle.
Это список проверок для команды, а не результаты испытаний вашей карты. При воспроизведении ошибки полезно сохранить версию браузера, библиотеки и минимальную последовательность действий. Разобрать события страницы и восстановление пользовательского интерфейса можно с наставником по JavaScript.