|
|
|
@ -0,0 +1,68 @@ |
|
|
|
# HikeMap - KML Track Editor |
|
|
|
|
|
|
|
A single-page web application for viewing, editing, and navigating KML/GPS tracks on an interactive map. |
|
|
|
|
|
|
|
## Features |
|
|
|
|
|
|
|
### Track Editing |
|
|
|
- Draw new tracks directly on the map |
|
|
|
- Reshape existing tracks with rope physics simulation |
|
|
|
- Smooth tracks with a brush tool |
|
|
|
- Smart track snapping at endpoints with auto-splitting |
|
|
|
- Multi-track selection and merge operations |
|
|
|
- 20-step undo/redo history |
|
|
|
|
|
|
|
### Navigation Mode |
|
|
|
- Graph-based pathfinding using Dijkstra's algorithm |
|
|
|
- Automatic trail intersection detection (within 5 meters) |
|
|
|
- Real-time route recalculation when deviating >50m from path |
|
|
|
- Map rotation to face direction of travel |
|
|
|
- Auto-center on GPS position (toggleable) |
|
|
|
- Persistent destination storage |
|
|
|
|
|
|
|
### GPS Integration |
|
|
|
- Real-time location tracking using device GPS |
|
|
|
- Automatic position updates every 3 seconds |
|
|
|
- Requires HTTPS or localhost for geolocation API |
|
|
|
|
|
|
|
## Quick Start |
|
|
|
|
|
|
|
### Local Development |
|
|
|
```bash |
|
|
|
# Serve via HTTP (required for GPS geolocation API) |
|
|
|
python -m http.server 8000 |
|
|
|
``` |
|
|
|
Then open http://localhost:8000 |
|
|
|
|
|
|
|
### Docker Deployment |
|
|
|
```bash |
|
|
|
# Build and run with Docker Compose |
|
|
|
docker-compose up |
|
|
|
``` |
|
|
|
Access at http://localhost:8080 |
|
|
|
|
|
|
|
## Technical Details |
|
|
|
|
|
|
|
### Architecture |
|
|
|
- **Single-file application**: Everything contained in `index.html` |
|
|
|
- **No build process required**: Pure HTML/CSS/JavaScript |
|
|
|
- **CDN dependencies**: Leaflet.js 1.9.4, leaflet-rotate 0.2.8 |
|
|
|
|
|
|
|
### File Structure |
|
|
|
The entire application is in `index.html`: |
|
|
|
- Lines 1-325: CSS styles |
|
|
|
- Lines 326-420: HTML structure |
|
|
|
- Lines 421-end: JavaScript application code |
|
|
|
|
|
|
|
### Data Format |
|
|
|
- Supports standard KML files with Placemark elements |
|
|
|
- Automatically loads `default.kml` on startup if present |
|
|
|
- Exports edited tracks back to KML format |
|
|
|
|
|
|
|
## Browser Requirements |
|
|
|
- Modern browser with ES6 support |
|
|
|
- HTTPS connection or localhost for GPS features |
|
|
|
- Location services permission for navigation mode |
|
|
|
|
|
|
|
## License |
|
|
|
[Add your license information here] |