Simulate a GPS route on an iPhone.

A single fixed coordinate answers most questions about a location-aware app. It cannot answer any of the ones about movement: whether the turn instruction fires at the right moment, whether the geofence notices you crossed it, whether the ETA settles down or keeps jumping. For those you need a path, a speed and a play button. Here is how to get all three.

Updated 10 August 2026 · about 6 minutes to read

Four ways to get a path

A route in Draftpin is a list of coordinates in order. Where that list comes from is up to you, and the four sources are interchangeable once the route exists. All of them end up in the same list in the Routes panel, all of them play back the same way, and any of them can be exported as GPX afterwards.

Click out the waypoints yourself

Press Draw a route on the map and click each point in turn. The panel counts them as you go, and Undo removes the last one if you misclick. Press Finish when the shape is right. This is the quickest way to get a path that goes somewhere specific, through the corner of a geofence, say, or twice past the same shop, and it does not care whether a road exists.

Plan between two points, along real streets

Set a From and a To, either by right-clicking the map and choosing the trip start or destination, or by staging a pin. Then pick a travel mode and press Plan. Walk, cycle and drive each produce a different path, in the way your maps app does: driving obeys one-way streets, walking takes the alley and the footbridge, cycling takes neither quite the same way. The result follows the road surface, so the phone reports a position going round a building rather than through it.

Fly is deliberately different. Aircraft do not follow streets, so it never asks the router: it draws a straight great-circle line between the two points and travels it at aircraft speed. That is the right answer for getting from London to Tokyo in a demo, and the wrong one for anything that cares about roads.

Import a GPX or GeoJSON file

Press Import and pick a file. Draftpin reads GPX tracks and routes, and where a file contains neither it will fall back to its bare waypoints, which is exactly the shape of the GPX files Xcode uses. GeoJSON works too, including files with several features in them. Nothing is uploaded anywhere; the file is parsed on your machine.

The reverse works as well. Export route as GPX writes out anything you drew, planned or recorded, which is how a path becomes a fixture in a test suite or something you can send to a colleague.

Record a walk and replay it

With a device connected and a location applied, press Record joystick path. Every position sent while you steer with the on-screen joystick or the arrow keys is captured, with a running count of points. Press Stop recording and you have a route you can save to Pins and replay identically as many times as you need. It is the honest way to get a path with human hesitation in it: the pause at the kerb, the wrong turn, the doubling back, which is often what breaks navigation logic that handles a clean straight line perfectly well.

Where routes live

Save a route to Pins and it is written to a local JSON store alongside your saved places, with import and export of the whole library. Merging on import never overwrites an existing entry, so pulling in a colleague's file cannot quietly replace one of yours.

Playing it back

  1. Connect the phone and apply a location

    Plug in over USB, unlock, tap Trust. On Windows you need Apple's free Apple Devices app first, the Windows walkthrough covers it. On a Mac there is nothing to install.

  2. Open the route and press play

    Pick the route from the panel. The playback bar appears with the usual controls: play, pause, and a progress bar you can drag to seek anywhere in the path. The portion already travelled is shaded on the map, so you can see at a glance how far along you are without reading a number.

  3. Watch the telemetry rather than the map

    While the device is actually simulating, a readout follows it across the map with coordinates, current speed, heading and total distance travelled. It appears only when something is really being sent, which makes it a reliable answer to "is this working?". An empty readout means nothing is going to the phone.

  4. Stop, or put it back

    Pause holds the position where it is. Close route puts the playback bar away and leaves the phone where it stands. Reset to real, or pulling the cable, hands the phone's own GPS back immediately.

Speed, and how often it updates

Two separate settings, and confusing them is the usual cause of a playback that looks wrong.

Speed is how fast the position moves along the path. Five presets cover the common cases (walk 5, jog 10, cycle 20, drive 50 and fly 900 km/h) and a slider covers everything else, from 0.1 km/h up to 1,200 km/h. The low end is more useful than it sounds: 0.1 km/h is slow enough to sit on a geofence boundary and watch exactly what happens as it is crossed.

Tick rate is how often a new position is sent, from 0.2 to 10 times a second. The default of 1 Hz is what a real GPS receiver produces, and it is the right default for that reason: an app that behaves well at 10 Hz and badly at 1 Hz is an app that will behave badly outdoors. The two settings interact. A fast speed at a slow tick makes the position jump in long steps, which is realistic for a car with a poor fix and misleading if you were expecting smooth motion.

Interpolation and drift

Two optional settings sit under Realism, and both are off or plain by default because a location that behaves predictably is easier to debug against.

  • Smooth interpolation. Without it, playback steps from one waypoint to the next. With it, positions are interpolated along a great circle between them, so a route built from sparse points still moves continuously rather than teleporting every few seconds. Turn it on for anything that draws a trail; leave it off when you want to know precisely which waypoint triggered something.
  • Jitter radius. A real GPS fix wanders while you stand still. Set a radius and each position is nudged randomly within it, which is the difference between testing your app against a mathematical point and testing it against a phone. Off by default, because an unstable input makes a reproducible bug harder to pin down.
Latitude and longitude only

The call iOS exposes is simulateLocationWithLatitude:longitude:, which takes two arguments, and no others. Altitude and compass heading cannot be transmitted by any tool, free or paid. Draftpin derives a heading from the direction of travel and shows it in the readout, but it never sends one, so an app that reads course from Core Location will not see it.

What this is actually for

Route playback exists because four common kinds of behaviour cannot be tested with a stationary pin, and testing them for real means going outside with a phone and a notebook.

  • Turn-by-turn navigation. Instructions are timed against your approach. Playing a planned driving route at 50 km/h tells you whether "turn left in 200 metres" arrives at 200 metres or at the junction.
  • Off-route detection. Plan the route your app expects, then draw a second one that deviates from it at a known point, and you can find out exactly how far off the line the phone gets before recalculation kicks in.
  • ETA recalculation. Change speed mid-playback and watch the estimate respond. A number that oscillates every tick is a different bug from one that never updates, and both are invisible at a standstill.
  • Geofence entry and exit. A geofence that fires on entry needs an entry. There is no way to produce one from a fixed coordinate, however carefully chosen: the phone has to be outside the boundary and then inside it. That is the whole reason this feature exists, and it is the single most common thing people open Draftpin to do.

Compared with Xcode's GPX support

If you build iOS apps you already have a way to do some of this: put a GPX file in the project, choose it under Debug → Simulate Location, and the device follows it while your app runs from that scheme. It works, and for a developer with the project already open it is often enough.

One behaviour is worth knowing about, because it costs people an afternoon. Xcode's location menu lists your custom GPX files alongside its own built-in presets, City Run, Freeway Drive and the rest. Choosing one of those presets discards the custom GPX file you had selected, so a stray click means your carefully built path is simply gone from the menu and you set it up again. Draftpin has no such interaction: presets set a speed, routes are separate objects in a list, and picking one never destroys the other.

The larger difference is what is required to get started. Xcode's menu needs a project, a scheme, a build and a debug session, and it only affects the app you built. Draftpin needs a cable. The mechanism, and why the menu is greyed out.

Questions

How do I simulate a GPS route on an iPhone?

Connect the phone over USB to a computer it trusts, give the desktop app a path, and press play. The path can come from four places: clicking waypoints on the map, planning a trip between two points so it follows real streets, importing a GPX or GeoJSON file, or recording a walk you drive yourself with the joystick. Playback then moves the phone's reported location along that path at a speed you set, and every app on the phone reads it as an ordinary location update.

Can I import a GPX file to an iPhone?

Not onto the phone itself, and you do not need to. The file stays on your computer and the desktop app reads it, then feeds the phone one coordinate at a time over the cable. Draftpin imports GPX and GeoJSON, reading tracks, routes and, where a file has nothing else, bare waypoints. It also exports any route back out as GPX.

How fast can the simulated location move?

There are five presets (walk 5, jog 10, cycle 20, drive 50 and fly 900 km/h) and a slider that runs from 0.1 to 1,200 km/h for anything in between or beyond. Separately, the tick rate sets how often a new position is sent, from 0.2 to 10 times a second. The default of 1 Hz is what a real GPS receiver produces.

Can I record a real walk and replay it?

Yes. Press Record joystick path and every position the app sends while you steer with the joystick or the arrow keys is captured. Stop recording and the captured path becomes a route like any other: save it to Pins, replay it as often as you like, or export it as GPX. It records the path the app drove, not a walk taken with the phone in your pocket.

Does the route follow roads?

It does when you plan a trip between two points. Walk, cycle and drive each ask a routing service for a different path, so one-way streets are respected for driving and ignored for walking, and pedestrian shortcuts appear only on foot. Fly does not use the router at all: an aircraft does not follow streets, so it is a straight great-circle line at aircraft speed. Waypoints you click are snapped to roads when you finish drawing, unless the mode is Fly, in which case they are kept as straight lines.

Get on with it

Draw a route and press play.

Routes are part of Pro, at £29 once or £4 a month. Windows and macOS, with the same routes on both.