feat(presentation): wyszukiwarka lokalizacji + mapa (OSM/Leaflet) #6
Reference in New Issue
Block a user
Delete Branch "feat/location-search-leaflet"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
QoL 2/2 — wyszukiwarka lokalizacji + interaktywna mapa
Na formularzach Horoskop / Interpretacje / Kalendarz doszlo pole „Szukaj miejsca"
(nazwa / adres / POI) i interaktywna mapa (OpenStreetMap / Leaflet). Bez klucza API.
Dlaczego OSM/Nominatim, nie Google
Zgodnie z ustaleniem: Google Places wymaga konta GCP z rozliczeniem + klucza w kliencie + ToS.
OSM/Nominatim jest keyless, darmowy, rozwiazuje POI („Szpital Barlickiego") i zwraca gotowe lat/lon.
Leaflet (BSD-2-Clause, permisywny) — spojne ze sciezka A.
Jak
geocode.py— proxy Nominatim po stronie serwera (User-Agent, throttling ~1 req/s,cache TTL 1h) →
/geocodei/reverse. Serwerowo, bo latwiej trzymac polityke Nominatim idziala niezaleznie od secure-context (wasze
http://<ip>)._location_picker.html— wspolny partial (search + wyniki + mapa + atrybucja OSM),wpiety jednym
{% include %}do 3 formularzy.geo.js— Leaflet: wyszukiwanie z debounce, klik na wynik ustawia lat/lon i centruje mape,klik/drag pineski ustawia wspolrzedne +
/reversepokazuje nazwe; sync z „Tu i teraz".static/vendor/leaflet) — niezaleznosc od CDN; kafelki z OSM;marker jako
divIcon(bez PNG).Weryfikacja (w przegladarce)
Domyslny widok = pineska na Szpitalu Barlickiego. „Wawel Krakow" → lista → klik ustawia
50.0547/19.9361 i przesuwa mape; klik w mape ustawia wspolrzedne + reverse wypelnia nazwe.
Zero bledow w konsoli.
/geocodei/reversezwracaja szpital; cache dziala (2. zapytanie ~2ms).Uwaga wdrozeniowa
Pod
presentationpotrzebuje egressu donominatim.openstreetmap.org; przegladarki — dotile.openstreetmap.org. Bez internetu: reczne lat/lon i reszta UI dzialaja dalej.d4a37aca52toa2aabd37a5