# OSM Import Tools ## Using ### Roads ### Addresses Run after Roads to reduce validation errors. Easiest to hide existing (gray) and removed (red) and just focus on what new addresses to add. Open in JOSM, and download the affected areas from OSM including highways with this Overpass query: ### Paths Only Sumter currently has paths available. ## Docker Quick Start ### Using Docker Compose (Recommended) 1. Build and start the container: ```bash docker-compose up -d --build ``` Note: The `--build` flag ensures the image is rebuilt with the latest code changes. 2. Access the web interface: - Main interface: http://localhost:5000 - Map viewer: http://localhost:5000/map 3. Stop the container: ```bash docker-compose down ``` ### Using Docker Directly 1. Build the image: ```bash docker build -t osm-import-tools . ``` 2. Run the container: ```bash docker run -d \ -p 5000:5000 \ -v "$(pwd)/data:/data" \ --name osm-import-tools \ osm-import-tools ``` 3. View logs: ```bash docker logs -f osm-import-tools ``` 4. Stop the container: ```bash docker stop osm-import-tools docker rm osm-import-tools ``` ### Deploying with Portainer Just push to git and set up a pull from git; Portainer can build and run the project directly. ### Uploading to a registry ```bash docker build -t osm-import-tools . docker tag osm-import-tools your-registry.example.com/you/osm-import-tools docker push your-registry.example.com/you/osm-import-tools ``` ## Features ### Main Dashboard (/) - Run data processing scripts for Lake and Sumter counties - View real-time script output - Access to: - Diff Roads - Diff Addresses - Diff Multi-Use Paths - Download OSM Data ### Map Viewer (/map) - Interactive map viewer for GeoJSON files - Upload and compare OSM, Diff, and County data - Filter by removed/added features - Hide highway=service roads - Drag-and-drop layer reordering - Click on features to view properties - Accept/reject diff features ## Volume Mounts The Docker container mounts a single data directory: - `./data` → `/data` - All data files, organized by date Inside `/data`, the structure is: - `/data/latest/` - Symlink to the most recent data directory - `/data/YYMMDD/lake/` - Lake County data for that date - `/data/YYMMDD/sumter/` - Sumter County data for that date All changes are persisted on the host in the local `./data` folder. ## API Endpoints - `GET /` - Main dashboard - `GET /map` - Map viewer - `POST /api/run-script` - Execute a processing script - `GET /api/job-status/` - Get script status and logs - `GET /api/list-files` - List available GeoJSON files - `GET /data/` - Serve GeoJSON files ## Troubleshooting ### Port already in use If port 5000 is already in use, edit `docker-compose.yml`: ```yaml ports: - "8080:5000" # Change 8080 to any available port ``` ### Permission issues Ensure the data directory has proper permissions: ```bash mkdir -p data chmod -R 755 data ``` ### View container logs ```bash docker-compose logs -f ``` ### Rebuild after code changes ```bash docker-compose down docker-compose build --no-cache docker-compose up -d ```