Проблема Mapbox с фильтрацией слоев с использованием массива значенийJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Гость
 Проблема Mapbox с фильтрацией слоев с использованием массива значений

Сообщение Гость »


У меня возникли проблемы с фильтрацией слоя разговоров. Кажется, он работает нормально на слое маршрутов, хотя кажется, что свойства route_long_name существуют на обоих слоях, и когда я вручную фильтрую объекты, они фильтруются просто отлично. Это я только не понимаю фильтры на карте

const filterExpression = filter.routes.length > 0? [ 'соответствовать', ['получить', 'длинное_имя_маршрута'], маршруты, истинный, ЛОЖЬ ] : неопределенный; это отлично работает на слое маршрута, но когда я использую его на слое маршрута с типом

Функция< МультилинияСтрока, { tc_agency_id: строка; Route_id: строка; Route_long_name: строка; shape_id: строка; возможности: GeoJSON.Point[]; } но не на уровне разговора

Функция< Точка, { tc_agency_id: строка; Route_id: строка; Route_long_name: строка; стоп_ид: строка; имя_остановки: строка; } >[]; Странно то, что все работает нормально, когда я фильтрую функции вручную

console.log({ источник разговора: source._data.features.filter(item => маршруты.includes(item.properties.route_long_name)), источник маршрута: Routesource._data.features.filter(item => маршруты.includes(item.properties.route_long_name)) })} полный фрагмент
const маршруты = filter.routes.map(el => el.routeLongName); const filterExpression = filter.routes.length > 0? [ 'соответствовать', ['получить', 'длинное_имя_маршрута'], маршруты, истинный, ЛОЖЬ ] : неопределенный; константный источник = mapbox.map.getSource(MapSources.conversationsSource) constroutesource = mapbox.map.getSource(MapSources.routesSource) если (источник && источник маршрута) { консоль.log({ источник: source._data.features.filter(item => маршруты.includes(item.properties.route_long_name)), источник маршрута: Routesource._data.features.filter(item => маршруты.includes(item.properties.route_long_name)) }) } for (const LayerId of [MapLayers.routesLayer, MapLayers.conversationsLayer]) { если (mapbox.map.getLayer(layerId)) { mapbox.map.setFilter(layerId, filterExpression) } }
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»