ScanMap to progresywna aplikacja webowa (PWA) zaprojektowana do systematycznego skanowania i mapowania ulic w wyznaczonych sektorach.
- Wyszukiwanie miast za pomocą API Nominatim
- Automatyczne centrowanie mapy na wybranym mieście
- Automatyczny podział miasta na małe kwadraciki (siatka)
- Możliwość zaznaczania i grupowania kwadracików w sektory
- Tworzenie i nazywanie własnych sektorów
- Przechowywanie sektorów w pamięci lokalnej przeglądarki
- Ustawianie punktu początkowego na mapie
- Wizualna reprezentacja punktu startu
- Wybór sektora do skanowania
- Automatyczne wyznaczanie optymalnej trasy przez wszystkie ulice w sektorze
- Numeracja kolejności przejazdu ulic
- Rozpoczęcie śledzenia pozycji w czasie rzeczywistym
- Automatyczne oznaczanie ulic jako przeskanowane podczas przejazdu
- Wizualna zmiana koloru: żółty (niezeskanowane) → przezroczysty szary (zeskanowane)
- Statystyki postępu skanowania
- Liczba przeskanowanych ulic
- Liczba pozostałych ulic
- Procentowy postęp wykonania
- HTML5 - struktura aplikacji
- CSS3 - stylizacja i responsywny design
- JavaScript (ES6+) - logika aplikacji
- Leaflet.js - interaktywne mapy
- OpenStreetMap - dane mapowe
- Service Worker - funkcjonalność offline (PWA)
- Geolocation API - śledzenie GPS
- LocalStorage - przechowywanie danych lokalnie
- Sklonuj repozytorium:
git clone https://github.com/c14b7/scanMap.git
cd scanMap- Uruchom lokalny serwer HTTP (wymagane dla Service Worker):
Opcja A - Python 3:
python3 -m http.server 8000Opcja B - Python 2:
python -m SimpleHTTPServer 8000Opcja C - Node.js (http-server):
npx http-server -p 8000Opcja D - PHP:
php -S localhost:8000- Otwórz przeglądarkę i przejdź do:
http://localhost:8000
- Otwórz aplikację w przeglądarce obsługującej PWA (Chrome, Edge, Safari)
- Kliknij ikonę "Zainstaluj" w pasku adresu
- Aplikacja zostanie dodana do ekranu głównego/menu start
- Wpisz nazwę miasta w pole wyszukiwania
- Kliknij "Szukaj"
- Wybierz miasto z listy wyników
- Kliknij "Pokaż/Ukryj Siatkę" aby wyświetlić siatkę
- Kliknij "Utwórz Nowy Sektor"
- Zaznacz kwadraciki na mapie klikając na nie
- Nadaj nazwę sektorowi
- Kliknij "Zapisz Sektor"
- Kliknij "Ustaw Punkt Startu"
- Kliknij na mapie w miejscu, gdzie chcesz rozpocząć
- Wybierz sektor z listy rozwijanej
- Kliknij "Wyznacz Trasę"
- System wyznaczy optymalną trasę przez wszystkie ulice
- Kliknij "Rozpocznij Śledzenie GPS"
- Zezwól na dostęp do lokalizacji
- Podczas jazdy ulice będą automatycznie oznaczane jako przeskanowane
- Obserwuj postęp w sekcji statystyk
- Przeglądarka wspierająca:
- Service Workers
- Geolocation API
- LocalStorage
- ES6+
- Połączenie internetowe (do wczytania map, może działać offline po pierwszym załadowaniu)
- GPS/lokalizacja (do śledzenia pozycji)
- ✅ Chrome/Chromium 80+
- ✅ Edge 80+
- ✅ Safari 13+
- ✅ Firefox 75+
- ✅ Opera 67+
- Wszystkie dane są przechowywane lokalnie w przeglądarce
- Nie wysyłamy żadnych danych osobowych do serwerów
- Lokalizacja GPS jest wykorzystywana tylko lokalnie
- Dane sektorów można wyczyścić w ustawieniach przeglądarki
Aplikacja jest w fazie rozwoju. Planowane funkcje:
- Eksport/import danych sektorów
- Integracja z API OpenStreetMap Overpass dla rzeczywistych danych ulic
- Zaawansowane algorytmy optymalizacji tras (Chinese Postman Problem)
- Współdzielenie sektorów między użytkownikami
- Statystyki i raporty
- Tryb offline z pre-cachowanymi mapami
MIT
Projekt ScanMap