Assisted positioning

Knowing where you are should not depend on a signal bar.

Most location software stops being useful the moment the connection does. The map goes grey, the tracker loses a day of history, and the receiver in the vehicle spends four minutes hunting for satellites it was never told to look for. DENGPS is built for the other case: the whole world is already on the device, positions are queued and delivered when a link returns, and the satellite assistance a cold receiver needs is computed here rather than fetched from somewhere.

Assistance pack 5.6037 N, 0.1870 W
G08 el 72.0° az 254.1° -839 Hz
G04 el 52.6° az 108.6° +2 294 Hz
E05 el 50.2° az 141.4° +1 971 Hz
visible 22 pdop 0.98 hdop 0.52
Computed on this server from stored GPS and Galileo almanacs. No third party is asked, and the same figures come out with the network unplugged.
168 KB
The whole world's coastlines and borders, shipped with the app and cached on the device
60
GPS and Galileo satellites in the almanacs loaded right now, newest reference time 1.0 days ago
2 000
Positions a device may deliver in one batch after coming back into coverage
2
Constellations, GPS and Galileo, from sources that need no account or API key

The whole world, offline

Not "offline in the areas you remembered to download". Offline anywhere.

No tile server needed

The basemap is vector outlines of every coastline, border, lake and major place on earth, drawn on a canvas. It is 168 KB for the world view and 1.3 MB for the detailed set, both cached on first load. A map made of image tiles can only show you the squares you downloaded in advance; this one draws Nunavut and the Sahel just as readily as the route you planned for.

Street detail when you have it

Point the platform at a tile source you run or hold a licence for and street-level detail layers underneath the vectors, cached as you browse. Draw a box, and that region is stored for a trip. Detail tiles are off by default, because bulk-downloading somebody else's tile server is not a default anyone should ship.

The maths runs on the device

Distance, bearing, grid conversion and fence tests are computed in the browser from the same formulas the server uses, and a parity test asserts the two agree to a millimetre. A coordinate tool that needs a connection is useless at the moment somebody needs it, which is usually standing in a field.

Satellite assistance, computed here

Two constellations, from two providers, neither of which needs an account or a key.

A receiver that has been switched off, or has moved a long way since it last had a fix, does not know which satellites are overhead. It searches the whole sky and the whole Doppler range, one satellite at a time. That is why a cold start takes minutes in the open and often never finishes under cover.

DENGPS answers the question in advance. From stored GPS and Galileo almanacs it propagates all sixty satellites' orbits, works out which are above the horizon at your rough position, and predicts the Doppler shift on each one. The receiver then searches only those bins. The pack carries the orbital elements as well as the predictions, so a device that keeps it can recompute its own assistance for a new day and a new place with no link at all.

Adding Galileo roughly doubles what is in view: at Accra it takes ten satellites to twenty-two, and position dilution of precision from 1.44 to 0.98. That figure counts the cost as well as the benefit. The two systems keep their own time, so a mixed fix has five unknowns rather than four and needs five satellites rather than four, and the numbers here are computed that way. Quoting the improvement without the extra unknown is how a mixed constellation gets oversold.

Almanac, not ephemeris

Broadcast ephemeris is precise to about a metre and expires in four hours, which is no use to a vehicle that will be out of contact for a week. An almanac is coarse and stays usable for months. A few kilometres of satellite position error is nothing when the search window is thousands of hertz wide, so the almanac is the right instrument for the offline case.

Plan the window before you drive out

Because the geometry is computable for any place and any time, the console will tell you when the sky over a work site is good. A survey crew can be told that between 14:10 and 14:50 the satellites there are clustered and the fix will be several times worse than usual, and wait, rather than discover it afterwards in the data.

A day out of coverage loses nothing

The failure this platform was designed around, rather than one it hopes to avoid.

Queued on the device

Positions are held in the device's own storage while there is no link and delivered in one batch when there is. The browser tracker uses exactly the same contract as a hardware tracker, which is also how that contract stays tested.

Sending twice changes nothing

Every position carries a fingerprint of its device, its second and its coordinates, with a uniqueness constraint behind it. A device may resend a backlog as often as it likes after a timeout. An odometer that can be doubled by a flaky link cannot be billed on, so this one cannot be.

Late data lands in its right place

A backlog arriving after newer positions is inserted by its own timestamps, not appended, and the affected journey is recomputed from scratch. The distance you get is the same whether the data arrived in order or nine hours late.

Bad fixes are shown, not hidden

A position implying 900 km/h is stored and flagged rather than discarded. It does not move the odometer, and it stays visible, because a device producing them has a fault its owner needs to see.

A parked vehicle stays parked

Consecutive fixes closer together than the noise floor add no distance. Without that rule a stationary tracker quietly accumulates kilometres overnight, which is the most common complaint about cheap tracking.

Fences catch what happened, not what is happening

Crossings made while out of coverage are recorded when the backlog lands, with both the time they happened and the time we heard, so a six-hour-old breach reads as history rather than as an alarm.

Every grid people actually use

One point, written the eight ways different trades write it. All convertible offline, both directions.

Decimal degrees
5.603700, -0.187000
Degrees minutes seconds
5°36′13.32″N 0°11′13.20″W
MGRS
30NZM1165420144
UTM
30N 811654mE 620145mN
Plus Code
6CQXJR37+F5Q
Geohash
ebzzgspgf

MGRS is what a field team reads out over a radio. Plus Codes matter because most of the world has no street address, and a code is speakable over a phone. Geohash matters because a prefix is a bounding box, which is how "what is near here" stays fast without a spatial database. Each of these exists because a specific job needs it, so each of them is here, with a decoder as well as an encoder.

Who this is for

Fleets that leave coverage

Haulage across borders, mining and quarry vehicles, agricultural machinery, boats, anything that spends part of its day where there is no signal and all of its day needing to be accounted for afterwards.

  • Live map of every vehicle, with heading and how stale each position is
  • Journeys segmented automatically, with distances measured on the ellipsoid
  • Geofences on depots, sites, borders and restricted areas
  • Export as GPX for any mapping tool, or CSV that a spreadsheet sums correctly

Work that depends on a good fix

Survey, construction setting-out, drone operations, antenna alignment, anyone who needs to know not just where the satellites are but whether the geometry will be good enough at the hour they are booked to be there.

  • Sky plot and satellite list for any place and any time
  • Predicted dilution of precision, with what the number means in plain words
  • The best window in the next twelve hours, worked out rather than guessed
  • An assistance file you can carry to a site on a memory stick

Start with the phone in your hand

No hardware and no procurement to see whether this fits.

Sign in, create a device, and open the reporting page on a phone. It reads the browser's own positioning, queues fixes in the phone's storage, and uploads them whenever there is a link, using the same store-and-forward path a hardware tracker uses. When you are ready for real trackers, the device API is one POST and is documented on a single page.