readme
This commit is contained in:
@@ -8,17 +8,26 @@
|
||||
|
||||
## Using
|
||||
|
||||
For each county, run the four steps in order using the dashboard. Each step must complete before the next:
|
||||
|
||||
1. **Download county data** — fetches the county dataset (or upload a shapefile ZIP for paths)
|
||||
2. **Download OSM data** — queries Overpass for the relevant features in the county
|
||||
3. **Convert to GeoJSON** — converts the county data to OSM-tagged GeoJSON
|
||||
4. **Diff vs OSM** — compares county data against OSM; produces added (green) and removed (red) GeoJSON
|
||||
|
||||
Open the result in the Map Viewer. Green = features in county data missing from OSM (candidates to add). Red = features in OSM not in county data. Hide the OSM (gray) and county (purple) layers to focus on the diff. Click a feature to inspect its properties and accept or exclude it. Open accepted features in JOSM for final review before uploading.
|
||||
|
||||
### Roads
|
||||
|
||||
Queries Overpass for all highway types: motorway, trunk, primary, secondary, tertiary, residential, unclassified, and their link variants, plus service and track.
|
||||
|
||||
### 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:
|
||||
Run roads first — having street geometries in JOSM reduces address validation errors during upload. Queries Overpass for all `addr:*` nodes and ways. Easiest to also hide removed (red) and focus only on added (green) addresses missing from OSM.
|
||||
|
||||
### Paths
|
||||
|
||||
Only Sumter currently has paths available.
|
||||
Only Sumter currently has paths available. Queries Overpass for foot, bicycle, and multi-use paths.
|
||||
|
||||
## Docker Quick Start
|
||||
|
||||
@@ -81,22 +90,37 @@ 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
|
||||
- Run data processing scripts per county (Roads, Paths, Addresses)
|
||||
- View real-time script output with colored status indicators
|
||||
- Live CPU/memory/disk usage charts during execution
|
||||
- Cancel running jobs
|
||||
- Quick-access links to processed GeoJSON files
|
||||
|
||||
### 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
|
||||
- Interactive Leaflet map for comparing GeoJSON layers
|
||||
- Layer controls with drag-and-drop reordering
|
||||
- Filter by added (green) / removed (red) features
|
||||
- Hide service, track, and unclassified roads
|
||||
- Click features to inspect properties
|
||||
- Accept/reject diff features and save results
|
||||
- Multi-select mode (or Shift+drag) for bulk operations
|
||||
|
||||
### Counties (/counties)
|
||||
- Define counties with ID, name, state, color, and download URLs
|
||||
- Download/upload the `counties.yml` config file
|
||||
|
||||
### Street Exceptions (/exceptions)
|
||||
- Manage street name corrections (e.g. "D Angelo" → "D'Angelo")
|
||||
- Download/upload the `exceptions.yml` config file
|
||||
|
||||
### Exclusions (/exclusions)
|
||||
- Define field/value pairs to exclude from diff output
|
||||
- Exclude button on map popups for quick additions
|
||||
- Download/upload the `exclusions.yml` config file
|
||||
|
||||
### Authentication
|
||||
- Login required for all write operations
|
||||
- Admin user configured via `ADMIN_PASSWORD` environment variable
|
||||
|
||||
## Volume Mounts
|
||||
|
||||
@@ -106,17 +130,39 @@ The Docker container mounts a single data directory:
|
||||
Inside `/data`, the structure is:
|
||||
- `/data/lake/` - Lake County data
|
||||
- `/data/sumter/` - Sumter County data
|
||||
- `/data/counties.yml` - County definitions
|
||||
- `/data/exceptions.yml` - Street name corrections
|
||||
- `/data/exclusions.yml` - Exclusion rules
|
||||
- `/data/users.yml` - User credentials
|
||||
|
||||
All changes are persisted on the host in the local `./data` folder.
|
||||
|
||||
## API Endpoints
|
||||
|
||||
- `GET /` - Main dashboard
|
||||
- `GET /map` - Map viewer
|
||||
### Auth
|
||||
- `GET /api/auth-status` - Check authentication status
|
||||
|
||||
### Script Execution
|
||||
- `POST /api/run-script` - Execute a processing script
|
||||
- `GET /api/job-status/<job_id>` - Get script status and logs
|
||||
- `GET /api/job-status/<job_id>` - Get job status and logs
|
||||
- `POST /api/cancel-job` - Cancel a running job
|
||||
|
||||
### File Operations
|
||||
- `GET /api/list-files` - List available GeoJSON files
|
||||
- `GET /data/<path>` - Serve GeoJSON files
|
||||
- `POST /api/upload-file` - Upload shapefile ZIP
|
||||
- `POST /api/clear-data` - Delete all county data files
|
||||
- `GET /data/<path>` - Serve data files
|
||||
|
||||
### Configuration
|
||||
- `GET /api/config/<filename>` - Download a YAML config file
|
||||
- `POST /api/config/<filename>` - Upload a YAML config file
|
||||
- `GET/POST /api/counties` - Get or save county configuration
|
||||
- `GET/POST /api/exceptions` - Get or save street exceptions
|
||||
- `GET/POST /api/exclusions` - Get or save exclusions
|
||||
- `POST /api/exclusions/add` - Append new exclusions (skips duplicates)
|
||||
|
||||
### System
|
||||
- `GET /api/system-stats` - CPU, memory, and disk usage
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
@@ -166,56 +212,3 @@ addr:postcode=33513
|
||||
addr:state=FL
|
||||
addr:street=Hideaway Circle
|
||||
- Sr is SR (State Route)
|
||||
|
||||
|
||||
|
||||
### Corrections
|
||||
|
||||
{
|
||||
"corrections": [
|
||||
{
|
||||
"from": "D Angelo Lane",
|
||||
"to": "D'Angelo Lane"
|
||||
},
|
||||
{
|
||||
"from": "Lajolla Circle",
|
||||
"to": "La Jolla Circle"
|
||||
},
|
||||
{
|
||||
"from": "Gardena Court",
|
||||
"to": "Gardenia Court"
|
||||
},
|
||||
{
|
||||
"from": "Glenmont Court",
|
||||
"to": "Glenmount Court"
|
||||
},
|
||||
{
|
||||
"from": "Pawleys Island Path",
|
||||
"to": "Pawley's Island Path"
|
||||
},
|
||||
{
|
||||
"from": "Oday Street",
|
||||
"to": "O'Day Street"
|
||||
},
|
||||
{
|
||||
"from": "Obrien Place",
|
||||
"to": "O'Brien Place"
|
||||
},
|
||||
{
|
||||
"from": "Ohara Court",
|
||||
"to": "O'Hara Court"
|
||||
},
|
||||
{
|
||||
"from": "Drive Randy Mcdaniel Way",
|
||||
"to": "Doctor Randy McDaniel Way"
|
||||
},
|
||||
{
|
||||
"from": "Mcneillrescue Lane",
|
||||
"to": "Rescue Lane"
|
||||
},
|
||||
{
|
||||
"from": "Longleaf Lane",
|
||||
"to": "Long Leaf Lane"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user