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, который предоставит вам данные о минимальных и максимальных значениях в загруженном наборе плиток.