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.
 
 
 
 
 
HikeMap User b88f2d8d5f Add customizable titles and icons to geocaches 1 month ago
.claude Fix tap-to-navigate on Chrome mobile and PWA 1 month ago
.well-known Add PWA and push notification support for mobile app deployment 1 month ago
build-tools Fix tap-to-navigate on Chrome mobile and PWA 1 month ago
output Add APK to repository for easy distribution 1 month ago
.gitignore Add APK to repository for easy distribution 1 month ago
APK-INSTRUCTIONS.md Fix tap-to-navigate on Chrome mobile and PWA 1 month ago
BUILD_APK_INSTRUCTIONS.md Add PWA and push notification support for mobile app deployment 1 month ago
CLAUDE.md Add Docker deployment and Claude Code documentation 1 month ago
Dockerfile Add PWA and push notification support for mobile app deployment 1 month ago
README.md Add README documentation for HikeMap project 1 month ago
default.kml Fix showStatus not defined error in push notifications 1 month ago
docker-compose.yml Fix geocache markers disappearing when in proximity 1 month ago
geocaches.json Add customizable titles and icons to geocaches 1 month ago
icon-72x72.png Add PWA and push notification support for mobile app deployment 1 month ago
icon-96x96.png Add PWA and push notification support for mobile app deployment 1 month ago
icon-128x128.png Add PWA and push notification support for mobile app deployment 1 month ago
icon-144x144.png Add PWA and push notification support for mobile app deployment 1 month ago
icon-152x152.png Add PWA and push notification support for mobile app deployment 1 month ago
icon-192x192.png Add PWA and push notification support for mobile app deployment 1 month ago
icon-384x384.png Add PWA and push notification support for mobile app deployment 1 month ago
icon-512x512.png Add PWA and push notification support for mobile app deployment 1 month ago
index.html Add customizable titles and icons to geocaches 1 month ago
manifest.json Add PWA and push notification support for mobile app deployment 1 month ago
package-lock.json Fix tap-to-navigate on Chrome mobile and PWA 1 month ago
package.json Fix tap-to-navigate on Chrome mobile and PWA 1 month ago
server.js Add test notification feature for admins 1 month ago
service-worker.js Add PWA and push notification support for mobile app deployment 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.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]