Автор: Ашем Мамуала
В последней версии 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. Полный список обновлений смотрите в журнале изменений.
Огромное спасибо сообществу за их большой вклад в код и проблемы в этом выпуске!