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
.zipor.mbtiles
git clone https://github.com/0015/OfflineMapDownloader.git
cd OfflineMapDownloaderpython3 -m venv .venv
source .venv/bin/activate # macOS/Linux
# OR
.venv\Scripts\activate # Windowspip install -r requirements.txtpython app.pyThen 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)
Flaskrequests
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
