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.
|
|
1 month ago | |
|---|---|---|
| .claude | 1 month ago | |
| CLAUDE.md | 1 month ago | |
| Dockerfile | 1 month ago | |
| README.md | 1 month ago | |
| default.kml | 1 month ago | |
| default.kml.backup.2025-12-30T14-07-34-870Z | 1 month ago | |
| default.kml.backup.2025-12-30T14-08-13-130Z | 1 month ago | |
| default.kml.backup.2025-12-30T14-08-58-379Z | 1 month ago | |
| default.kml.backup.2025-12-30T14-11-32-501Z | 1 month ago | |
| default.kml.backup.2025-12-30T14-12-39-684Z | 1 month ago | |
| default.kml.backup.2025-12-30T14-18-50-550Z | 1 month ago | |
| default.kml.backup.2025-12-30T14-19-18-638Z | 1 month ago | |
| default.kml.backup.2025-12-30T14-19-29-904Z | 1 month ago | |
| default.kml.backup.2025-12-30T14-36-41-318Z | 1 month ago | |
| default.kml.backup.2025-12-30T18-14-18-396Z | 1 month ago | |
| docker-compose.yml | 1 month ago | |
| geocaches.json | 1 month ago | |
| index.html | 1 month ago | |
| package.json | 1 month ago | |
| server.js | 1 month ago | |
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]