Автор: Ашем Мамуала

В последней версии GL JS (v1.6.0) представлены новые функции и улучшения, в том числе возможность поиска в массивах и строках, а также отображение текстовых меток на вашей карте. Ознакомьтесь с демонстрациями ниже, чтобы увидеть новые функции, и просмотрите журнал изменений для получения полного списка того, что нового.

Встроенные изображения

Благодаря встроенным изображениям в текстовых метках теперь вы можете добавить одно или несколько изображений, которые будут отображаться вместе с вашим текстом. В приведенном ниже примере новые выражения image и in используются для добавления логотипа BART и, возможно, логотипа MUNI на станции в системе BART. Во встроенном примере вы также увидите свойство text-variable-anchor, используемое для предоставления списка возможных якорей для динамического выбора, что позволяет увеличивать плотность символов на карте по мере уменьшения масштаба изображения пользователем.

Растягиваемые значки

С растягиваемыми значками вы можете использовать несколько правил для растягивания сложных изображений, например, для использования в качестве фона для щитов шоссе. Используйте зоны растяжения, чтобы определить горизонтальные и вертикальные зоны растяжения и зону содержимого, в которой следует отображать текстовое содержимое. Зоны растяжения могут быть определены в таблице спрайтов изображений или в качестве параметров при добавлении изображения во время выполнения с помощью Map#addImage. В будущих версиях Mapbox Studio эти зоны можно будет импортировать из слоев SVG и автоматически импортировать в таблицу спрайтов.

Поисковые массивы и строки, стиль результатов

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

Повышение производительности

  • Мы добавили обходные пути для двух ошибок Safari, из-за которых использование памяти превышало то, что требуется другим браузерам для отображения карты. В частности, это коснулось давно работающих веб-сайтов, особенно если пользователи взаимодействовали с картой. Утечка в системе кеширования приводила к увеличению объема памяти каждый раз, когда мы удаляли лишние тайлы из кеша. Оставшийся рост памяти был вызван тем, что Safari недостаточно часто запускает сборку мусора при передаче данных между фоновым и передним потоком. Эти два изменения означают, что использование памяти для давно работающих веб-сайтов теперь остается стабильным и в Safari.
  • Анимации, выполняемые с использованием GeoJSON#setData, выполняются в 2–3 раза быстрее, от 5–10 обновлений в секунду до 30–40 обновлений в секунду. (ч / т до мсбарры)
  • Плагин для текста справа налево теперь можно загружать по запросу при первом знакомстве с текстом на арабском или иврите на карте. Это улучшает производительность запуска, откладывая инициализацию плагина до тех пор, пока она не понадобится.

Удобство использования и доступность

  • Разработчики, создающие приложения для людей, не говорящих по-английски, будут рады услышать, что текст всплывающей подсказки для элементов управления пользовательского интерфейса, таких как кнопки масштабирования +/-, теперь можно локализовать, предоставив желаемый перевод строк с помощью новой опции карты locale (h / t @ dmytro- гокун ).

  • Мы также предоставили разработчикам больше возможностей для управления анимацией карты. Инерция панорамирования теперь настраивается (h / t @aMoniker), а анимации, такие как flyTo, могут быть настроены как essential, так что пользователи, которые предпочитают уменьшенное движение для несущественных анимаций, могут по-прежнему видеть анимации, которые имеют решающее значение для приложения (h / т @andrewharvey).
  • Дальнейшее улучшение доступности, пользователи карт теперь могут выбирать и открывать всплывающие окна с помощью клавиатуры (снова h / t @andrewharvey), а элементы управления пользовательского интерфейса лучше поддерживают режим высокой контрастности.
  • Пользователи, просматривающие карту в небольших окнах просмотра, например на мобильных устройствах, могут видеть большую часть карты, поскольку теперь весь мир можно увидеть в контейнерах высотой менее 512 пикселей.

Эти и другие удивительные функции доступны сегодня для создания красивых визуализаций карт в Интернете и на мобильных устройствах в SDK Карт для iOS и Android. Полный список обновлений смотрите в журнале изменений.

Огромное спасибо сообществу за их большой вклад в код и проблемы в этом выпуске!