https://github.com/rikmueller/whatsaround
Discover places around your route or location
https://github.com/rikmueller/whatsaround
folium gpx leaflet map osm overpass-api
Last synced: 4 months ago
JSON representation
Discover places around your route or location
- Host: GitHub
- URL: https://github.com/rikmueller/whatsaround
- Owner: rikmueller
- License: mit
- Created: 2026-01-17T18:12:08.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-02-03T15:56:03.000Z (5 months ago)
- Last Synced: 2026-02-04T04:36:16.127Z (5 months ago)
- Topics: folium, gpx, leaflet, map, osm, overpass-api
- Language: TypeScript
- Homepage: https://getwhatsaround.app
- Size: 270 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# WhatsAround
**Find OpenStreetMap POIs along your GPX tracks. Plan smarter: campsites, water sources, shelters, restaurantsβeverything you need along your route.**
**π Try it online: [getwhatsaround.app](https://getwhatsaround.app)**
---
## 1. How to Use π‘
### 1.1 Upload Your GPX Track
- Drag and drop your `.gpx` file onto the map
- Your track appears instantly (blue line with start/end markers)
- Map automatically centers on your route
### 1.2 Choose What to Find
**Quick presets:**
- ποΈ Campsites
- π§ Drinking water
- π Accommodation (hotels, hostels, B&Bs)
- π΄ Food & restaurants
- πͺ Shops & supermarkets
- π½ Public toilets
- βΊ Shelters
**Custom filters:**
Build your own using OpenStreetMap tags (e.g., `amenity=restaurant`, `shop=bicycle`)
### 1.3 Generate Results
- Set your search radius (1-50 km from track)
- Click **Search**
### 1.4 Explore Results
- **Interactive map** - Click markers for details (name, distance, website, hours)
- **Excel export** - Sorted by distance from start, with all metadata
- **Multiple tile layers** - OpenStreetMap, OpenTopoMap, CyclOSM
- **Mobile-friendly** - Works on phones and tablets
---
## 2. Project Design & Architecture
### 2.1 Project Structure ποΈ
```
WhatsAround/
βββ backend/ # Python backend
β βββ api/ # Flask REST API
β βββ core/ # Processing pipeline (GPX, Overpass, filtering)
βββ cli/ # Command-line interface
βββ frontend/ # React + TypeScript web UI
β βββ src/
β βββ components/ # UI components (Map, Settings, Modals)
β βββ hooks/ # WebSocket integration
βββ config/ # Configuration by usage mode
β βββ cli/ # CLI standalone
β βββ local-dev/ # Local development
β βββ docker-dev/ # Docker with hot reload
β βββ docker-prod/ # Production Docker
βββ deployment/ # Docker build files
βββ data/
βββ presets.yaml # Filter presets
βββ input/ # GPX files
βββ output/ # Generated results
```
### 2.2 Key Technologies
**Backend:**
- Python 3.x with Flask for REST API
- pandas + openpyxl for Excel export
- Folium for map generation
- pyproj for geodesic calculations
- Overpass API for OSM queries
**Frontend:**
- React 18 + TypeScript
- Vite for fast development
- Leaflet + React-Leaflet for interactive maps
- Socket.IO for real-time updates
- Axios for API communication
**Infrastructure:**
- Docker Compose for containerization
- Nginx for production reverse proxy
### 2.3 Key Features β¨
- **πΊοΈ Map-first interface** - See your track and POIs continuously
- **β‘ Real-time updates** - POIs appear as they're found
- **π± Mobile responsive** - Collapsible settings, touch-friendly
- **π¨ Smart coloring** - Different colors for different POI types
- **π― Accurate distances** - WGS84 geodesic calculations
- **π¦ Self-contained** - Runs offline after setup (uses public Overpass API)
### 2.4 Frontend Architecture
see **[FRONTEND.md](FRONTEND.md)**
### 2.5 Configuration βοΈ
WhatsAround is configured via environment variables. See respective configuration directories for available options.
**Filter presets** are defined in [data/presets.yaml](data/presets.yaml). Add your own!
---
## 3. Getting Started on your machine π
You don't want to use getwhatsaround.app, but rather your own setup?
WhatsAround offers **four ways to run** the application on your machine, depending on your needs.
To start, clone the repository:
```bash
git clone https://github.com/rikmueller/whatsaround.git
```
And decide on a flavor:
### 3.1 Command-Line Interface β¨οΈ
For batch processing and automation: [config/cli/README.md](config/cli/README.md)
### 3.2 Local Development π»
Run backend and frontend locally for development: [config/local-dev/README.md](config/local-dev/README.md)
### 3.3 Docker Development (Dev-Setup with hot reload) π³
Development environment with hot reload: [config/docker-dev/README.md](config/docker-dev/README.md)
### 3.4 Docker Production π
Production environment: [config/docker-prod/README.md](config/docker-prod/README.md)
---
## 4. Everything else
### 4.1 Contributing π€
Contributions welcome! Please open an issue first to discuss major changes.
---
### 4.2 License π
MIT License - see [LICENSE](LICENSE) for details
---
### 4.3 Credits π
Built with amazing open-source projects:
- **[OpenStreetMap](https://www.openstreetmap.org/)** - Community-driven map data
- **[Overpass API](https://overpass-api.de/)** - OSM query infrastructure
- **[React](https://react.dev/)** + **[TypeScript](https://www.typescriptlang.org/)** - Modern web framework
- **[Leaflet](https://leafletjs.com/)** - Interactive maps
- **[Flask](https://flask.palletsprojects.com/)** - Python web framework
- **[pandas](https://pandas.pydata.org/)** + **[openpyxl](https://openpyxl.readthedocs.io/)** - Data processing
- **[Folium](https://python-visualization.github.io/folium/)** - Python β Leaflet maps
Inspired by **[GPX Studio](https://gpx.studio/)** β€οΈ
---
### 4.5 Development Status β οΈ
This project is under active development. Features and APIs may change. Documentation may lag behind implementation. Use at your own risk for production workloads.