GPS Track Recorder & Route Analyser · Mobile App

Android 15+ iOS 16+ React Native 0.76 Expo SDK 52 Edge-to-Edge Offline-First No Registration

App Overview

geo3bit is a professional GPS route recorder for Android and iOS. It records your outdoor activities in real time, saves them as industry-standard GPX files, and lets you review every detail — route map, speed profile, elevation graph, terrain gradient and attached photos — entirely offline on your device. No account or internet connection is required to record or view routes.

Background GPS Recording

Tracks your position continuously even when the screen is off or another app is in the foreground.

Interactive Route Map

OSM or Google Maps with tappable GPS points, fullscreen mode, photo markers and chart overlay.

Speed / Elevation / Gradient Charts

Interactive Chart.js graphs with crosshair that syncs a live cursor on the map.

Geotagged Photos

Capture photos during tracking — each photo is pinned to the exact GPS point where it was taken.

Import & Export

Share routes as GPX, KML or Garmin TCX. Import GPX / KML / TCX files from any other app.

Fully Offline & Private

All data lives on the device. No cloud sync, no analytics, no registration required.

GPS Tracking

geo3bit records your movement as a sequence of GPS track points. Each point captures coordinates, timestamp, altitude, speed, heading, accuracy, satellite count and device battery level. Recording continues in the background using the system location service.

Starting a New Route

Tap the + button on the dashboard. Fill in the route name (required), an optional description, and choose an activity type:

Running Cycling Hiking Walking Swimming Skiing

Recording Controls

Background Operation

geo3bit uses expo-location with Background accuracy and expo-task-manager to run a location task when the app is not visible. On Android a Foreground Service with type location ensures the OS does not kill the process. On iOS Background Modes → Location updates is enabled in the entitlements.

Battery logging: each recorded point stores the current battery percentage so you can correlate power drain with route segments in post-analysis.

Live Stats During Recording

StatDescription
Elapsed TimeCounting from the moment recording started (excludes paused periods)
DistanceCumulative distance calculated via the Haversine formula (metres → km)
Avg SpeedTotal distance ÷ elapsed seconds × 3.6, displayed in km/h
Max SpeedPeak instantaneous speed reported by the GPS sensor (km/h)
Elevation GainTotal metres climbed (ignores downhill segments)
GPS PointsNumber of location fixes collected so far

GPS Recording Precision

SettingAvailable optionsDefault
Distance interval5 · 10 · 20 · 50 · 100 m10 m
Time interval1 · 3 · 5 · 10 · 20 · 30 s3 s

A point is recorded when either threshold is crossed. Redundant duplicate points are filtered by a speed-plausibility check to suppress GPS jumps.

System Tray Notification

Track Management

Dashboard

Track Detail View

Track Status Badges

StatusMeaning
Recording
GPS tracking is currently active for this route. Stats update in real time.
Paused
Tracking was paused; the route can be resumed.
Completed
Recording was stopped and the route is fully saved.

Maps

The route map is rendered inside a WebView using Leaflet.js (OSM) or the Google Maps JavaScript API — eliminating any native map SDK dependency.

Map Providers

Free · No API key

OpenStreetMap (OSM)

Default provider. Uses Leaflet.js 1.9.4 with OSM tiles. Works offline for cached tiles. No account required. Max zoom level 19.

API key required

Google Maps

Uses the Google Maps JavaScript API loaded via CDN. Enter your own API key in Settings → Map → Google Maps API Key.

Map Features

Technical note: The map fills the entire screen (height: 100vh in the WebView) including the status bar and navigation bar on Android 15 edge-to-edge mode via Portal-based rendering.

Interactive Charts

The chart panel slides up from the bottom of the fullscreen map and occupies approximately one-third of the screen height. Powered by Chart.js 4.4.6 in a dedicated WebView. Charts display up to 400 sub-sampled points for smooth rendering on long routes.

Available Chart Tabs

Speed
km/h — over cumulative distance (km)
Elevation
metres above sea level — over cumulative distance (km)
Gradient
% slope (rise ÷ run × 100) — over cumulative distance (km)

Chart Details

TabY-axisX-axisLine colour
Speedkm/h (speed × 3.6)Distance km■ #228be6
ElevationmetresDistance km■ #2f9e44
Gradient% gradeDistance km■ #e67e22

Gradient Calculation

gradient[i] = ( altitude[i+1] − altitude[i] ) ÷ ( distance_m[i→i+1] ) × 100 %

Positive = uphill, negative = downhill. Points with distance < 1 m are skipped to prevent artefacts.

Interactive Features

Localised Tab Labels

LanguageSpeed tabElevation tabGradient tabPanel title
EnglishSpeedElevationGradientCharts
УкраїнськаШвидкістьВисотаУхилГрафіки
РусскийСкоростьВысотаУклонГрафики
DeutschTempoHöhenprofilSteigungDiagramme
ItalianoVelocitàQuotaPendenzaGrafici

Photos & Videos

Every photo or video captured in geo3bit is permanently linked to the GPS point where it was taken — latitude, longitude, altitude, speed, heading and battery level are stored alongside each media file.

Capturing Media

Viewing Media

Photo radius matching: Photos are linked to track points using a configurable proximity radius (default 200 m). Configurable in Settings: 10 · 20 · 50 · 100 · 200 m.

Import & Export

Export Formats

GPX 1.1 KML 2.2 Garmin TCX
FormatStandardCompatible AppsContains
GPX 1.1 GPS Exchange Format Strava, Garmin Connect, Komoot, Google Maps, OsmAnd, any GPX viewer Track points (lat/lon/ele/time), metadata, statistics extensions
KML 2.2 Keyhole Markup Language Google Earth, Google Maps, Google My Maps Track polyline, start/end placemarks, route metadata
Garmin TCX Training Center XML Garmin Connect, TrainingPeaks, Strava, SportTracks Activity data, track segments, lap structure

Import Formats

GPX 1.0 / 1.1 KML 2.2 Garmin TCX

Open in Google Maps

The Google Maps button in Track Detail samples up to 23 waypoints evenly from the route and opens a Directions URL. On iOS the comgooglemaps:// URL scheme is tried first, falling back to the web URL.

Settings

Settings are accessible via the gear icon on the dashboard. All values are persisted to AsyncStorage and restored on app launch.

Data

Demo Data
Load sample routes to explore the app without recording real tracks.
ON / OFF

GPS Tracking

Distance Interval
Minimum distance the device must move before a new GPS point is saved.
5 · 10 · 20 · 50 · 100 m
Time Interval
Maximum time between GPS points. A point is saved when either threshold is reached.
1 · 3 · 5 · 10 · 20 · 30 s

Map

Map Provider
Switch between OpenStreetMap (free, no key) and Google Maps (requires API key).
OSM · Google
Google Maps API Key
Your own Google Maps JavaScript API key. Stored locally, never transmitted.
Text field
Photo Nearby Radius
Max distance between a photo's GPS coordinates and a track point to link them.
10 · 20 · 50 · 100 · 200 m

Language

App Language
Override the device language. All UI text including chart labels updates immediately.
EN · UA · RU · DE · IT

About

App Info
Shows app name (geo3bit), version, and confirms all data is stored locally — no registration required.
Read-only

Permissions

Each permission is requested in context with a rationale panel before the system dialog appears. Permissions that are denied do not block the app — only the relevant feature is disabled.

Location — Foreground Required
Needed to record GPS points while the app is visible. Requested when the user taps "Start Recording".
Location — Background Required for full tracking
Required for GPS recording to continue when the screen is off. On iOS: select "Always Allow". On Android 15: prompted separately by the OS.
Camera Optional
Needed to capture photos during a recording session. If denied, the camera button is hidden but all other features work normally.
Notifications (POST_NOTIFICATIONS) Recommended
Required on Android 13+ to display the live tracking notification. Without it, Pause/Stop controls are only available inside the app.
Android 15 specifics: The app declares FOREGROUND_SERVICE_LOCATION permission and targets API 35. READ/WRITE_EXTERNAL_STORAGE are limited to API ≤ 32 via maxSdkVersion="32".

Languages

geo3bit uses i18next with react-i18next for full UI localisation. The language can be changed at any time in Settings without restarting the app. All labels — including chart tab names, map point info fields, permissions panels and settings — are translated.

LanguageCodeCoverage
English en Full — reference language
Українська uk Full
Русский (Украина) ru Full
Deutsch de Full
Italiano it Full

The app detects the device locale on first launch and selects the closest supported language. If the device language is not in the list, English is used as a fallback.

Privacy & Data Storage