Mapbox GL JS - Стиль, управляемый данными - Поиск минимального и максимального или диапазона данных в слое

Я использую стиль, управляемый данными, для создания картограмм с возможностью использовать выпадающий список, чтобы выбрать другое поле и изменить property в 'fill-color' когда укладка 'paint' слоя.

Проблема в том, stops для каждого слоя используются разные минимальные и максимальные значения, поэтому выбор другого поля / свойства требует переопределения минимального и максимального значений в stops чтобы получить правильный хороплет.

Существует ли встроенное решение для извлечения минимальных / максимальных значений из определенного поля в слое?

1 ответ

Я рад слышать, что вы создаете классные вещи с помощью стилей на основе данных в GL JS.

Не существует встроенного решения для извлечения значений min / max из определенного поля в слое. Это неудачное техническое ограничение. Если бы у вас был набор векторных листов размером 1 ТБ, охватывающий весь мир, нам нужно было бы загрузить все данные объемом 1 ТБ, чтобы найти значения min / max.

Некоторые варианты у вас есть:

  • Если вы получаете данные из файла GeoJSON, вы можете проанализировать их самостоятельно, чтобы найти значения min / max
  • Если вы заботитесь только о данных, видимых в текущем окне просмотра, вы можете использовать querySourceFeatures чтобы получить все значения и разобрать их самостоятельно, чтобы найти минимальные / максимальные значения
  • Если вы хотите провести некоторую работу и использовать недокументированный API, специфичный для Mapbox, у нас есть API, который предоставит вам данные о минимальных и максимальных значениях в загруженном наборе плиток.
Другие вопросы по тегам