Wikimapia Archiver
Preserve the world's geographic memory — before it disappears.
!!! THE MOST COMPREHENSIVE PROJECT CURRENTLY UNDER DEVELOPMENT. !!!





## 🌍 About
| Data Type | Description |
|---|---|
| 🔷 Hand-drawn polygons | User-traced boundaries of places, districts, and landmarks |
| 📝 Local descriptions | Native-language annotations and cultural context |
| 🕰️ Historical locations | Places that may no longer exist in the physical world |
| 💬 Comments & annotations | Community discussions attached to map objects |
| 🏷️ User-generated metadata | Tags, categories, and custom attributes |
This project aims to **archive and preserve** that data in open, structured, portable formats — so it can outlive the platform it was created on.
## 🚧 Project Status
### ✅ Current Features
- [x] Polygon / BBOX geographic scanning
- [x] Wikimapia API integration
- [x] Object detail extraction
- [x] GeoJSON export
- [x] SQLite archival storage
### 🗺️ Planned Features
- [ ] Improved object discovery algorithms
- [ ] Photo & image archival
- [ ] Historical snapshots & diff tracking
- [ ] Visualization / render system
- [ ] Offline archive viewer (standalone app)
## 🎯 Goals
This project is built around a single mission: **geographic knowledge preservation**.
📦 Preserve geographic history
🛡️ Archive endangered metadata
📐 Store polygon geometry
💾 Build portable offline archives
🌐 Protect community-generated geographic knowledge
We believe that place-knowledge created by real communities deserves to survive beyond the lifespan of any single platform.
## ⚙️ Tech Stack
| Layer | Technology |
|---|---|
| Runtime | Python 3.11+ |
| Storage | SQLite |
| Export format | GeoJSON |
| Data pipeline | Async scraping pipeline |
| Geometry | Polygon processing |
| Source | Wikimapia API |
## 🚀 Getting Started
### Prerequisites
python --version # 3.11 or higher required
### Installation
# Clone the repository
git clone https://github.com/yourusername/wikimapia-archiver.git
cd wikimapia-archiver
# Create a virtual environment
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
### Configuration
cp .env.example .env
# Edit .env and add your Wikimapia API key
# .env
WIKIMAPIA_API_KEY=your_api_key_here
OUTPUT_DIR=./archives
### Usage
# Scan a bounding box (lat_min, lon_min, lat_max, lon_max)
python archiver.py scan --bbox 41.0,28.9,41.1,29.0
# Export archived data to GeoJSON
python archiver.py export --format geojson --output ./output/istanbul.geojson
# View archive statistics
python archiver.py stats
## 📁 Project Structure
wikimapia-archiver/
├── archiver/
│ ├── __init__.py
│ ├── api.py # Wikimapia API client
│ ├── scanner.py # BBOX / polygon scanner
│ ├── extractor.py # Object detail extractor
│ ├── storage.py # SQLite archival layer
│ └── exporter.py # GeoJSON / format exporters
├── assets/ # Logos, screenshots, banners
├── archives/ # Default output directory (gitignored)
├── tests/
├── .env.example
├── requirements.txt
└── README.md
## 🗄️ Data Formats
### GeoJSON Output
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [[[28.97, 41.01], [28.98, 41.01], [28.98, 41.02], [28.97, 41.01]]]
},
"properties": {
"id": 12345678,
"title": "Hagia Sophia",
"description": "Byzantine cathedral turned mosque...",
"categories": ["religious", "historical"],
"archived_at": "2025-01-15T10:30:00Z"
}
}
]
}
### SQLite Schema (simplified)
CREATE TABLE objects (
id INTEGER PRIMARY KEY,
title TEXT,
description TEXT,
geometry TEXT, -- GeoJSON polygon string
tags TEXT, -- JSON array
archived_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
## 📜 Disclaimer
## 📄 License
MIT License — see [`LICENSE`](./LICENSE) for details.
**Built with care for the places people love — and the memories attached to them.**