Эффективная загрузка через фильтр с Mapbox - PullRequest
0 голосов
/ 05 мая 2020

У меня есть несколько наборов данных mapbox, каждый из которых содержит набор функций, расположенных в разных городах . У каждого объекта есть поле с именем city, в котором указан город, в котором находится объект (например, city = "new york"). В студии mapbox у меня есть стиль со слоями, созданными из каждого из этих наборов данных. Я хочу загрузить карту с ее ограничивающим прямоугольником, содержащим все функции с city == "new york" (подогнать вид карты к функциям bbox). Как я могу выполнить sh это, предпочтительно без загрузки функций, которые не удовлетворяют city=="new york"

Ответы [ 2 ]

1 голос
/ 06 мая 2020

Если я вас правильно понял, у вас есть базовая карта, которая содержит все города, но когда вы загружаете карту в mapbox-gl- js, вы хотите отфильтровать их только по одному конкретному городу.

Вы делаете это, вызывая:

map.setFilter('my-cities-layer', ['==', ['get', 'city'], 'new york']);

Однако на самом деле нет простого способа отфильтровать все слои, чтобы включать данные только с этим тегом.

1 голос
/ 06 мая 2020

После выбора соответствующего слоя в Mapbox Studio выберите свойство, видимостью которого вы хотите управлять. Например, предположим, что вы хотите показать текстовое поле для каждой из этих функций в вашем наборе данных (тот же logi c может также применяться к изображениям значков). После того, как это свойство слоя выбрано, щелкните параметр «Стиль с условиями данных» в редакторе слоя. Затем вам будет предложено выбрать поле данных (которое в вашем случае будет city), а затем будет предложено установить значения для этого поля данных (которое в вашем случае будет new york).

...