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 | |
| .well-known | 1 month ago | |
| build-tools | 1 month ago | |
| output | 1 month ago | |
| .gitignore | 1 month ago | |
| APK-INSTRUCTIONS.md | 1 month ago | |
| BUILD_APK_INSTRUCTIONS.md | 1 month ago | |
| CLAUDE.md | 1 month ago | |
| Dockerfile | 1 month ago | |
| README.md | 1 month ago | |
| default.kml | 1 month ago | |
| docker-compose.yml | 1 month ago | |
| geocaches.json | 1 month ago | |
| icon-72x72.png | 1 month ago | |
| icon-96x96.png | 1 month ago | |
| icon-128x128.png | 1 month ago | |
| icon-144x144.png | 1 month ago | |
| icon-152x152.png | 1 month ago | |
| icon-192x192.png | 1 month ago | |
| icon-384x384.png | 1 month ago | |
| icon-512x512.png | 1 month ago | |
| index.html | 1 month ago | |
| manifest.json | 1 month ago | |
| package-lock.json | 1 month ago | |
| package.json | 1 month ago | |
| server.js | 1 month ago | |
| service-worker.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]