Free, lightweight offline hiking maps for Norway. A spiritual successor to the discontinued Hvor? app from Kartverket, with topographic maps from Kartverket, OpenStreetMap, and more. Available for Android and iOS, and always free. See RELEASES.md for what's new in each release.
- Offline base maps: Kartverket (topo, toporaster, nautical charts), MapAnt (LiDAR-based orienteering maps), OpenTopoMap, OpenStreetMap, and Sentinel-2 satellite imagery
- Overlays: waymarked hiking trails, OSM paths and tractor roads (the detail MapAnt lacks), slope steepness from NVE (with or without avalanche runout zones), a coordinate grid, and a crosshair with live elevation and slope readout
- GPS recording that keeps running with the screen locked, with live time, distance, ascent, and average speed on the map
- Real-time location sharing so friends and family can follow your trip live
- Follow several friends' live tracks on your own map, each in its own colour
- Save, revisit, import (GPX and FIT, several files or a whole zip at once, optionally straight into a folder), and export (GPX) tracks, compatible with other hiking and navigation apps
- Connect your Strava account (using your own Strava API app) to browse and import your planned routes
- Import from a Garmin Connect, Komoot, or ut.no activity URL, or a direct GPX/FIT link
- Organize saved tracks into folders, with move, rename, remove, per-folder select all/none, and undo
- Navigate along a saved track with remaining distance, elevation, an off-course arrow pointing back to the route, and a reverse-direction toggle, keeping any other tracks you're viewing visible alongside the route; tap the route to see its altitude chart
- Show several tracks at once, each in its own color (or pick a custom color per saved track), and tap one to focus it
- Elevation chart you can scrub to mark the matching point on the map, for a focused track or the route you are navigating
- Crop the start and end of a saved track
- Place search
- Distance measurement with the ruler or a two-finger gesture
- Save and manage points of interest, each with an optional description and colour, and import GPX waypoints (several files or a whole zip at once, ticking off which ones to keep)
- Coordinate readout in UTM, MGRS, latitude/longitude, or DMS
- Compass rose that points the map north on tap, and locks it there on the next tap
Kotlin Multiplatform sharing navigation, geometry, storage, and Compose Multiplatform UI between Android and iOS. Maps render with MapLibre, and tracks and points are stored locally with Room. The optional live-tracking backend under web/ runs on Bun.
Requires Android 13 (API 33) or newer.
- Copy
local.properties.exampletolocal.propertiesand fill in your values - Place your
google-services.jsoninapp/(from the Firebase console) ./gradlew assembleDebug
- Set up
local.propertiesas above (the shared module build needs it) - Build the shared framework:
./gradlew :shared:linkDebugFrameworkIosSimulatorArm64 - Open
iosApp/Where.xcodeprojin Xcode - Wait for Xcode to fetch MapLibre via SPM on first open
- Select an iPhone simulator and press Run (Cmd+R)
The Gradle build phase in Xcode (embedAndSignAppleFrameworkForXcode) compiles the shared Kotlin framework automatically, so after the initial setup you can iterate from Xcode directly.
To verify just the shared framework without Xcode:
./gradlew :shared:linkDebugFrameworkIosSimulatorArm64 # simulator
./gradlew :shared:linkDebugFrameworkIosArm64 # device
See web/README.md.
