Install GPS Odometer

Purchase GPS Odometer Pro


October 2021 update

August 2019 update

December 2017 update

August 2017 update

User Guide

Background operation

Frequently asked questions

How to enable crash reports

How to redeem a promo code


Other GPS related apps

Distance and Area Measure (iOS and macOS)

My GPS Coordinates (iOS)

Radius on Map (iOS and macOS)


A simple and easy to use odometer. GPS Odometer only does one thing, and does it well: measure distance traveled. Includes run in background capability. Ideal for almost anything that requires measuring outdoor distance traveled such as walking, running, driving, boating, hiking, horseback riding. Note that GPS does not work well under a roof. For best results, use outdoors.

Benefits of the paid version:
  • Multiple trips.
  • Custom distance unit for each trip.
  • Landscape and splitscreen support.
  • No advertisements.
  • Features:
  • Accurate to within 1 percent when compared to most car odometers under normal driving conditions.
  • Includes a timer.
  • Includes a lock to help prevent accidental reset of your trip. After unlocked, it locks back in a few seconds, or you can lock it yourself.
  • Includes displacement readout (straight line distance from your starting point)
  • Average or actual speed readout.
  • Includes meters, kilometers, yards, feet, miles and nautical miles
  • Approximates distance traveled in some GPS dead spots such as driving through a tunnel by adding the as-a-bird flies distance to your trip.
  • Distance units include:
  • Kilometers (1000m)
  • Miles (1609.34m)
  • Nautical miles (1852m)
  • Meters
  • Feet (0.305m)
  • Yards (0.914m)
  • Speed units include:
  • Kilometers per hour
  • Miles per hour
  • Nautical miles per hour
  • Meters per second
  • Feet per second

  • October 2021 update

    Pro Version:

    All Versions:

    August 2019 update

    Free Version:

    All Versions:

    Pro Version:

    December 2017 update

    August 2017 update

    User Guide

    Main Page

    How the main page may appear:

    The center button has two states: 'locked' and 'unlocked.' In order to press the left or right buttons, this must be in the unlocked state.

    The left button resets the trip distance and time.

    The right button indicates if the trip is paused or running.
    Paused (Press to start)
    Running (Press to pause)

    List Page

    How the list page may appear:

    Note that 1 trip in the list is highlighted blue. This is the 'selected trip'. The selected trip is the trip that is displayed on the main screen. Also, all 5 of the buttons at the bottom the this screen act only on the selected trip. To change the selected trip, tap its cell/box towards the left to avoid the button and switch.

    Top button bar

    Import/restore saved trip(s).
    Export trip(s).
    Shows or hides 4 buttons. The first 3 pause, reset, and delete trips in bulk.
    Toggles between two layout options for the cells in the list that represent a trip.
    2 / 2 displays this cell (instead of the ones show above):
    Add a new trip. New trips are always added to the beginning of the list and automatically become the 'selected trip'.

    Bottom button bar

    Deletes the selected trip after showing a 'confirm delete' popup.
    Resets the selected trip after showing a 'confirm reset' popup.
    Move the selected trip up or down in the list. Long pressing will move the trip to the top or bottom of the list.
    Edit the selected trip.


    How the settings page may appear:

    This defaults to your device's language preference. If you are a non-native English speaker and you are reading this, you may want to set to English since the translations are probably are not the best.

    Light or dark background.
    Dark is better for night use.

    Small distance units
    Used for small distance unit readout and GPS precision. Three options:
  • meters
  • feet
  • yards
    By default, American users are set to feet. The rest of the world is set to meters or metres (however you prefer to spell it).

    Large distance units
    Used for large distance unit readout and displacement. Three options:
  • kilometers (km)
  • miles (mi) 1609.34 meters
  • nautical miles (1852 meters)
    By default, American users are set to miles. The rest of the world is set to kilometers or kilometres (however you prefer to spell it).

    Speed units
    The unit of measure that your speed is reported in. Five options:
  • kilometers per hour (kph)
  • miles per hour (mph)
  • nautical miles per hour (knots)
  • meters per second (m/s)
  • feet per second (ft/s)
    By default, American users are set to miles per hour(mph). The rest of the world is set to kilometers per hour (kph).

    Number format
    Specify your desired decimal and grouping characters.
    By default, your device region settings are used.

    Default name for new trip
    Instead of the default Trip 1, Trip 2, Trip 3,
    you can replace 'Trip' with whatever you like. Each new default name will start numbering at 1...
    Walk 1, Walk 2...
    Bike ride 1, Bike ride 2...

    Alert to turn off when not moving
    To remind the user to pause the app if they have not moved in a given time period. ie.. they used the app and forgot to pause it.
    Instead you could just glance at the status bar to check for the location icon. If it's there, something is using GPS and draining battery.

    Filter level
    The filter level setting represents a tradeoff between false movement due to GPS inaccuracies and the required distance threshold between waypoints (distance update intervals).
    Decreasing the filter level will result in tighter waypoints at the cost of more false movement.
    Increasing the filter level will result in less false movements at the cost of looser waypoints.
    Required distance to set new waypoint = [(last waypoint accuracy) * (filter level) + (potential new waypoint accuracy) * (filter level)] * penalty
    penalty is usually 1.0 - 1.1, but may be higher to combat false movement. Reported location discrepancies that would result in sudden acceleration sufficient to kill most vertebrates are assigned a very high penalty. Other factors, like slow speed might add something like 20% to the penalty.

    This is an example of sequential locations that your device may report to the app while stationary:
    Location 1 is 2 meters North of your actual position (+2 meters)(total:2 meters)
    Location 2 is 2 meters South of your actual position (+4 meters)(total:6 meters)
    Location 3 is 4 meters North of your actual position (+6 meters)(total:12 meters)
    Location 4 is 4 meters West of your actual position (+5.66 meters sqrt(4 * sqrt(2)) or sqrt(32)(total:17.66 meters)
    Location 5 is 4 meters East of your actual position (+8 meters)(total:25.66 meters)

    Without filtering that would be 25+ meters of false movement.
    This is an extreme example, but you can observe this by putting your iPhone / iPad in Airplane mode, setting the filter level to 0.05, and letting a trip run while the device is stationary in a place where GPS accuracy is less that 30 meters. You will probably notice some false movement within a few minutes.

    Minimum waypoint distance for each filter level setting assuming 5 meter accuracy:
    Filter level setting Minimum waypoint distance
    0.05 (not recommended)0.55 m
    0.20 (not recommended)2.2 m
    0.30 (not recommended)3.3 m
    0.404.5 m
    0.45 (default)5.0 m
    0.505.5 m
    0.606.6 m
    0.707.7 m
    0.808.8 m
    0.909.9 m
    1.0011 m
    1.2514 m
    1.5017 m
    2.0022 m

    Minimum waypoint distance for each filter level setting assuming 10 meter accuracy:
    Filter level settingMinimum waypoint distance
    0.05 (not recommended)1.2 m
    0.20 (not recommended)4.6 m
    0.30 (not recommended)6.9 m
    0.409.2 m
    0.45 (default)10.4 m
    0.5011.5 m
    0.6013.8 m
    0.7016.1 m
    0.8018.4 m
    0.9021 m
    1.0023 m
    1.2529 m
    1.5035 m
    2.0046 m

    Background Operation

    If one or more trips are left running when you exit the application, it will continue requesting location updates indefinitely.
    Most people agree that an odometer that can't run in the background is not a very useful odometer.

    How to get rid of that annoying blue bar.

    Open Settings and scroll down until you find GPS Odometer or GPS Odometer Pro

    Open Location

    Change the selection from 'While Using' to 'Always' and notice that the annoying flashing bar is gone.

    Note that the location icon is still present in the status bar... When any application is requsting location updates, this icon will appear.

    Frequently asked questions

    The most frequently asked question is how to adjust the main screen layout.
    Press ->
    Notice that 3 buttons temporarily appear while in the unlocked state. Each button adjusts part of the layout.

    The top button cycles though 4 options:
    1/4 = long distance unit
    2/4 = short distance unit
    3/4 = long and short distance units
    4/4 = long and custom unit (full version only)

    The leftmost button toggles between average and current speed.

    The final button hides/unhides the displacement readout to give more space to the speed readout if desired.

    Q What is displacement?
    A Displacement is the shortest possible distance to your starting point. Also known as the "As a bird flies" distance.

    Q Is there any limit to the number of trips that can be stored or that can be running simultaneously?
    A There is no artificial limit, but keep in mind that your device has a finite amount of processing power and memory. We have tested 10 concurrently running trips with 90 paused trips (100 total) with no appreciable performance impact.

    Q The application keeps running in the background even when I don't want it to. Why?
    A You probably have one or more active trips. Pause any running trips when you are done using the application. For users with the paid version which allows for multiple trips there's a 'pause all trips' button on the list page.

    Q Why does instantaneous speed update more often than distance?
    A As described above, filtering is necessary to reduce false movement.
    Instantaneous speed, on the other hand, is not filtered at all. It simply displays the value reported by the iPhone/iPad. Speed changes quickly because it is initially derived from the accelerometer, but that's only good for a second or two since small errors compound quickly.


    Please include 'GPS Odometer (Apple)' in the subject.