You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
README.md
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
# Serve via HTTP (required for GPS geolocation API)
python -m http.server 8000
Then open http://localhost:8000
Docker Deployment
# 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.kmlon 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]