Take the 2-minute tour ×
Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. It's 100% free, no registration required.

Is there any way to configure a location offset in such a way that my phone's GPS data would still be used to set a location, but an adjustment value would be applied to the base value? (e.g. all values adjusted 6.5m SW). Two cases where this would be useful are when using programs that have base maps with bogus offset data, but you want your phone to think it's in the right place on top of the bogus data. Also, sometimes the coordinates calculated from the GPS system on a given day are just simply wrong, and usually on a given day they are wrong by a fairly fixed amount. Rather that spending the entire day with my phone marking me 30m north of where I actually am, I'd like to correct the values automatically based on a known RDP location.

Ideally I would like a way to 'zero' my GPS by calculating an offset based on my current location being a set of known coordinates, then allow the GPS to adjust my location based on that. I would enter "I am currently at X", at which point it would figure out that number is 4 meters off of the GPS readout, and thereafter sets my location to be always 4m offset.

I realize there are lots of programs to set a mock location of my choice and even ones to follow recorded routes. These sort of things that entirely replace the output of the GPS with fixed or otherwise pre-programmed output are not what I'm looking for here. If it matters, my devices are all rooted and running CyanogenMod 11 M2 so root only solutions are acceptable, although if there is a non root way to do this that would be good to note.

share|improve this question
In the UK we have trig points all around the country at well known and well characterised locations. It would be really nice to be able to go to one of these, and tell your phone 'I am at this trig point right now, please use this information to correct your position'. –  Mark Booth Jan 11 at 17:39
i may have a solution if your phone is rooted. But i am not very confident that it would work on all models/versions –  Manan Merevik Sharma Jan 15 at 8:15
@MananMerevikSharma Could I suggest that you add your suggestion as an answer. As long as you mention "This will only work if rooted" at the top, it would help distinguish it from answers which don't require root. –  Mark Booth Jan 16 at 11:12
@MananMerevikSharma Rooted is fine! I'd love to hear your solution in an answer. –  Caleb Jan 17 at 22:42

2 Answers 2

Those offsets are normally used in differential gps. A fix point (station) knows it exact location (from manual measurments), calculates from the gps data the requred offset for correction and send this (quasi constant) offset (ex. 2.5m SW) to you. The assumption is that if you are close to this station the atomospheric error (=offset) is valid also for your position in some distance.

Im not too familiar with android, but you could send manipulated D-GPS data maybe?

For radio those are send with RTCM (Radio Technical Commission for Maritime Services), (you can get down to 2cm accuracy) - for mobile phones you need to stitch to Ntrip (Networked Transport of RTCM via Internet Protocol): http://www.rtcm-ntrip.org/home most of them are non free/paid, so you need to look around (if you really want there a ways to make your own low cost server (raspberry pi..))

would you still need offset if the accuracy is already very good? Boosting accuracy seems easier!

Have a look at https://play.google.com/store/apps/details?id=com.lefebure.ntripclient ==> ACCESS_MOCK_LOCATION - Used for routing external position data to other applications. but this solution has also it downsides :-(

share|improve this answer
This is interesting stuff although it isn't a final solution. I see an port in the country near me has an NTRIP server, and I can probably rig up one of my own pretty easily. The data doesn't look complicated. Assuming I had a server that gave out the right data, now I need a program LIKE Lefebure's that allows me to connect to an arbitrary server instead of their BT device and adjust the GPS location stream (mock location is ok although not preferred!) Am I tracking you here? –  Caleb Jan 17 at 22:49
For the server looks to me like lefebure apps lets you insert arbitrary ip/port (but havent tried it by myself to be honest). Having non-mock data seems complicated to me without root, as googles code already tries to handle gps as best as possible with surly very sophisticated algorithms^^ But strange that they dont add NTRIP support out of the box in their A-GPS mode (maybe patents/licence fees?) Try to contact the app-developer, im sure they are willing to help, also they seem to be very professional in this specific topic =) –  StefanS Jan 21 at 14:14
i made a feature request for android. If you like, give it a star to push the idea. (This native implementation would be the ideal solution, but it will take the most time from all solutions) code.google.com/p/android/issues/… –  StefanS Jan 21 at 14:26

This is application specific. For example, car navigation apps generally would snap your position to the nearest street when driving around.

I'm not aware if there's any way to set an offset for all applications, a rooted application would probably be able to do that.

share|improve this answer
This is not application specific. The OS provides the API that gives a location (and estimated accuracy and other data). Some apps do choose to DISPLAY this data differently (e.g. snapping an indicator graphic to the closest point matching their data set) but that does not change the fact that they are being fed raw location data. I want that raw data to stream as usual, plus an offset. –  Caleb Jan 17 at 22:17

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.