I am seeking to improve the accuracy of iOS device GPS data, for use in a GPS mapping app. To do this, RTK (Realtime Kinematic) correction data must be applied to the raw GPS unit's output.

I don’t see iOS supporting the direct application of RTK (NTRIP) data to the GPS module's output, before passing this data to apps on the device.

Is there a configuration setting in iOS itself to enable this feature or a third-party app that could run incoming GPS data through corrections (similar to how audio processing apps can transform audio data and route it on to another app) before it gets passed on to the requesting app?

  • Welcome to Ask Different, Ryan. I wanted to confirm you’re seeking to program using SDK or API and not just looking for a product or app that does this already?
    – bmike
    Apr 22 at 20:42
  • @bmike either of these options may be viable, but technically we would need a way behind the scenes to provide enhanced accuracy GPS location data to our existing app (ESRI ArcGIS Collector). Apr 22 at 23:37
  • The reason I ask is SDK/API level questions are off topic here but software recommendations or hardware recommendations are on topic here. Perhaps an edit to steer it away from close votes here would be a good next step and asking on SO the software development side would work best to get you some answers?
    – bmike
    Apr 22 at 23:58
  • @bmike thanks for your input. I tried to clarify the question to indicate that I'm seeking a configuration setting or third party app that could accomplish this task, not API/SDK assistance. Apr 23 at 3:03
  • There is no native capability to receive RTK/GNSS data/signaling on the device or within iOS. You’ll need a hardware and software solution to make this work.
    – Allan
    Apr 23 at 4:35

1 Answer 1


The built-in GPS

The internal GPS implementation in iPhones and iPads do not support apps getting the raw output that is necessary for them to apply RTK corrections themselves, nor does it support inputting RTK corrections into the internal GPS implementation in order for that to apply the corrections.

External Hardware Requirement

In order to get RTK corrected GPS on the iPhone/iPad, you'll need external hardware. The external hardware can either be an RTK-enabled GPS receiver, or it can be a GPS-receiver that supports raw output, which an app on the iPhone/iPad then applies the RTK corrections to.

The former option is readily available on the market in many shapes and forms. The latter currently requires you to develop your own app, and is thus out of reach of many.

iOS device to GPS connectivity

For the former option, there's several different options on how to implement it, depending on your requirements:

If you want the RTK-corrected GPS signal to work in any app (including Apple's built-in apps, such as the Maps app) - the easiest is to buy a RTK-enabled GPS receiver that supports Bluetooth position output. They usually come with some disadvantages, such as for example only supporting a lower rate of position updates. Typically such devices come with their own battery that needs to charged, and so on.

It is also possible to deliver the GPS signal via the Lightning connector to any app, including the built-in apps. That can be seen with for example the (now discontinued) Bad Elf GPS for Lightning. That product is powered through the Lightning port, so you have no battery to charge and no wireless communication signals to consider (besides GPS itself of course).

If you just want the RTK-correct GPS signal to work in a specific app, perhaps even one you have made yourself, there are many more options. A huge range of apps support GPS input via a relatively standardised network option (TCP/IP), which means you can use GPS receivers with WiFi, cabled Ethernet, etc. It is also possible to use RS-232 connected receivers with the right hardware. On iPads (not iPhones) it is also possible to use RTK-enabled GPS-receivers with proprietary USB protocols.

Getting the RTK correction signal to the GPS

For the RTK-correction signal, there's generally 3 options in use in the market place today. The simplest is to use a GPS receiver that supports a correction service delivered by satellite (and obtain a subscription for said service). A bit more involved is to get an RTK-enabled GPS receiver that comes complete with an RTK input system of some sort - that is usually either a cellular modem, RF radio or a variation of LoRA. And the third option is to incorporate the correction signal input handling directly in your own (or third party) app, that just relays the data to the GPS.

Range of choices for GPS receiver

Note that there's a huge range of RTK-enabled GPS receivers to choose from. There are very cheap modules of the "DIY"-sort, going over low performance cheap professional modules and all the way to very expensive systems.

What to choose depends very much on what you need to use the positions for. This can be a bit counterintuitive, as many seem to think of "surveying grade" as being "the best" - but it is actually possible to obtain "surveying grade" accuracy with very cheap equipment available today. However, if you have a moving system (i.e. a vehicle, drone, or similar) that require very frequent position updates, you're in an area with lots of obstructions (i.e. for example multi-pathing becomes a serious issue) and you're dealing with interference, scintilations or even jamming, you're generally looking for higher quality equipment.

  • Thank you so much for a detailed explanation. One of the most helpful statements was "The internal GPS implementation in iPhones and iPads do not support apps getting the raw output that is necessary for them to apply RTK corrections themselves". This explains why an app can't simply connect to an NTRIP server and apply corrections to the internal GPS output. This is where I was confused, as this seemed like it would be a simple matter, but you explained why it's not. Do you have any hardware recommendations for low-cost, high accuracy external GNSS receivers? Apr 24 at 16:45
  • @RyanGriggs It depends on what you mean by "high accuracy" exactly. It is a typical mistake to automatically go for "highest accuracy" - it's typically much better to go for just the accuracy you need, as "highest accuracy" brings disadvantages along the way. Can you explain what you're going to use it for?
    – jksoegaard
    Apr 25 at 7:22
  • Sorry for being vague about accuracy. The use-case is a municipal utility with field crews who are assigned to do locates. Once they perform the locate (pipe, valve, meter, etc) they save the location in ArcGIS using their iPads. They have discovered that these locations aren't good enough to find the items later. Points that are accurate within 10 cm or less should be perfectly suitable for this task, although single digit cm accuracy would be very nice. Have you seen the Sparkfun RTK Facet? It's quite inexpensive, and also quite accurate in its class. Your thoughts? Apr 25 at 15:50
  • Also, the nearest existing corrections base station is about 20-25 km away from the field work area. (Provided by our state's DOT.) If greater accuracy could be achieved by setting up a local base station, and the cost is not prohibitive, I'm fine with that too. We have survey-grade GPS equipment that could be used to precisely place the base. I think NTRIP over cellular to the iPads would be better than trying to set up a local unlicensed radio link for the RTK data, and would allow us greater range. The field area is a circle of approx 5km radius with very few tall buildings. Apr 25 at 16:02

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .