Контекст:
- Угловой 6
- Mapbox GL JS - v0.51 (ограничено версией @ types / mapbox-gl-js)
На данный момент я знаю, что Mapbox GL JS не поддерживает фильтр, содержащий / включает выражение для строковых значений (вот краткое изложение этой темы https://github.com/mapbox/mapbox-gl-js/issues/6484)
Есть ли способ эмулировать это поведение?
Раньше у меня был источник GeoJSON:
this._map.addSource('geojson-source', {
type: 'geojson',
data: geojson,
});
GeoJSON исходил из запроса ElasticSearch, и я мог фильтровать «на лету», выполняя другой запрос, и повторно отображать источник и всеслои.
Проблема для больших наборов данных (около 100 тыс. точек). Это слишком медленно.
Так что теперь мы хотим использовать векторный источник MVT
this._map.addSource('vector-source', {
type: 'vector',
data: urlVector,
});
Имы используем это выражение для фильтрации по входному тексту:
filter: ['match', ['get', property], this.filterSearch, true, false]);
Проблема в том, что выражение 'match' слишком ограничительно
Например: 'Platanus' будет соответствовать всем деревьям Platanus, но«Платан» ничего не найдет.
Я вижу, что проблемы Github открыты уже 2 года для этой темы.ct на Mapbox GL JS (в версиях для Android и iOS эти фильтры уже работают).
Как, ребята, вы нашли способ взломать / эмулировать такое поведение?
Вы нашли способ, или вы отказались от фильтра?^^
Спасибо!