yasiupl/nadajniki

Wyszukiwarka

Opened this issue · 4 comments

Dodać filtrowanie punktów na mapie względem tekstu wpisanego w wyszukiwarkę.

Mapbox nie posiada odpowiedniego operatora który by pozwalał na to natywnie. Można ukrywać poszczególne punkty podczas iterowania przez listę punktów widocznych na mapie, ale może to wpływać na szybkość działania strony.

Jak można pomóc?

Dodatkowy kontekst:
Obecnie mapa używa metody biblioteki Mapbox "setFilter". Niestety ta metoda nie wspiera ustawiania filtrów ze względu na (część) nazwy punktów wyświetlanych na mapie.

Dla przykładu, filtr ustawiony na nazwę "straż pożarna" będzie pokazywał wszystkie punkty które zawierają tą, i tylko tą frazę. To znaczy, punkt "straż pożarna w pciumiu dolnym" nie zostanie zawarty na mapie.

Problem jest częściowo opisany tutaj. Rozwiązaniem jest pobranie wszystkich punktów na mapie, przefiltrowanie ich osobno i podanie informacji zwrotnej mapie które punkty wyświetlić. Może można to zrobić po stronie klienta.

To może być dobry przykład jak zaimplementować taką funkcjonalność:
https://docs.mapbox.com/mapbox-gl-js/example/filter-markers-by-input/

Niestety z tego co widzę, przełącza on widoczność całych warstw. Obecnie mapa nadajników to około 25k punktów podzielonych na warstwy ze względu na typ nadajnika oraz predefiniowane kategorie dostępne w panelu bocznym. Niestety dalej nie widzę wbudowaniej metody aby przełączać widoczność pojedyńczych punktów które są zawarte w warstwach.