This is a Flask web application that allows you to select a geographic area on a map and download OpenStreetMap or Satellite tiles as a .zip
or .mbtiles
file for offline use.
This project is intended for personal, educational, or experimental use only.
It does not use any API keys or authenticated tile services, and fetches tiles directly from public endpoints like OpenStreetMap and ArcGIS. As such:
Do not use this tool for commercial applications or large-scale automated downloads.
Please respect the tile providers' usage policies.
- 📍 Select area with a rectangle on the map
- 🔍 Choose zoom level range (10–19)
- 🌐 Switch between OpenStreetMap and Satellite view
- 🧮 Preview tile count before download
- 🎨 Live preview of selected area using actual map tiles
- 💾 Export to
.zip
or.mbtiles
git clone https://github.com/0015/OfflineMapDownloader.git
cd OfflineMapDownloader
python3 -m venv .venv
source .venv/bin/activate # macOS/Linux
# OR
.venv\Scripts\activate # Windows
pip install -r requirements.txt
python app.py
Then open your browser and go to:
👉 http://127.0.0.1:5000
tiles.zip
– folder structure with PNG tiles by zoom/x/ytiles.mbtiles
– SQLite-based format (flat database file)
Flask
requests
See requirements.txt
MIT License
(c) 2025 Eric Nam / ThatProject
Map tiles provided by:
This project was inspired by AliFlux/MapTilesDownloader
Special thanks to their work on simplifying tile downloading logic.
Created by @ThatProject