GPS location Accuracy

I would like to raise an issue concerning GPS accuracy.

The issue was mentioned before by Warbirdguy1 in sep 23. At that time there was no conclusive conclusion.

I made an app with a map/locationsensor etc and the app works as well as the location sensor.

I leave the phone A55 (Samsung Android-14) outside for about 15 minutes in order to load Almanac and other stuff.

Fine location access is allowed.

Then I press the position button and it shows the location +/-100m and that doesn’t change.

Next I startup a GermanyTopo app and it is within 1 minute at +/- 8m. (starting up Google maps is also good)

Next I go back to my app and it also shows now +/- 8m. (GermanyTopo is on the background)

Best values go down to +/-5m.

How/why/what is going on. (If I stop both apps and restart mine, then the 100m location tolerance is back there soon)


This is what MIT says:

Yes, using the LocationSensor simultaneously with having Google Maps active does appear to improve 'accuracy'. I think that is because these apps trigger the device hardware gps receiver to make use of all the 'constellations' whereas App Inventor may be only using the original one or two constellations. MIT doesn't seem to agree as shown in the above link.


Satellites used by App Inventor. It is not using all available constellations on my Android 13.


Satellites used by other mapping/ positioning software at more or less the same time showing they are using almost double the 'channels'/satellites in their fix.

Here are some other discussions about the often POOR quality of positioning of App Inventor coordinates versus Google Maps and other mapping software. Several make mention of using App Inventor in conjunction with 'other' mapping software to improve accuracy. I expect this may happen because the 'other' software uses all the channels available to one's hardware gps receiver on the device and App Inventor doesn't.

It would be interesting to know, which provider is used in this case...

Did you enable GPS?

Let me suggest to check property AvailableProviders and if gps is available, then set provider to gps and lock the provider, see an example project here

Taifun

Hello SteveJG and Taifun,
thanks for the reply. A lot to study which may take a week or more to reply on that content.
My phone does not say "GPS on" but instead "improve location settings".
WIFI/Mobile-Network(gsm) and GPS/acceleration/gyroscope sensors are being used etc.
So GPS should be on and i thought that this signal that is the only able to realize a accuracy down to about 4m. (untill Gallieo comes)
CeeBee

Outstanding breakdown. Thank you for looking into this. Unfortunately I hit a burnout period with app development and had stopped shortly after asking this. Keep up the good work.

1 Like

Accuracy depends on the provider which you use.
If you use gps you would have high accuracy but it would also increase battery consumption and will take few seconds to initialize. Fused / network gives the last known location but it might not be accurate.
I suggest as Taifun recommended, to explicitly set the network provider to gps and turn off battery saving mode if on.

1 Like

Hello SteveJG / Taifun / Warbirdguy1 / Chiru,
Thanks for your replies.
When i was googling around about this issue, i found somewhere a remark from SteveJG about the GPS (fine accureau) icon.
SteveJGIcon
I noticed that this icon was not visible when running my app.
So Taifun, you asked "did you enable GPS", i thought i did by selecting fine accuracy at the location tab.
But ??
Then i decided to run the GPS_Simple2 Taifun and that gave considerable improvements. (the GPS icon was visible here) Accuracy well below 20m and sometimes close to 10m.
Then i used some of theTaifun blocks to implement in my solution and the the result was good as well. I came even down to 4m. (i don't know why.)
That gps icon was also visible at the GermanTopo app as well as GoogleMaps..
The strange thing is that this icon is not visible at an MIT app about gPS accuracy.
MIT-GPS-accuracy
Anyhow my problem is solved. Maybe i don't understand it all but that's life.
The screenshot shows the provider 'GPS' and the accuracy.
Thanks again you all.
PS I want to use this app outdoor, where there is no wifi and maybe limited cellular so this limits the use of fused solutions.

1 Like

No it does not limit the use of fused. fused means let Google decide what Provider to use and in this case will actually use gps :slightly_smiling_face: because Google will chose to use the gps. It is clever and MIT agrees.

If you do not set the Provider to gps and instead leave it at it's default, Google will use the appropriate Provider (they say). If you do not use the Map component or other features of your app requiring the internet this ability to use your gps receiver is not an issue. The LocationSensor works whether or not you have wifi or data available. The LocationSensor controls the hardware radio GPS receiver to get the location coordinates directly from the gps satellites.

If you go for a walk and you use the LocationSensor and Map component in your app, you have to turn on the device's data option that your cell phone contractor to use it to access the internet and the Map using its data capabilities instead of wifi.

Accuracy is another complex issue. It does NOT mean what most people think. The value reported as Accuracy is a statistical estimate of uncertainty. The value does not necessarily indicate that the coordinates provided are not correct. The Accuracy will go as low as 2 meters on my Android 13 without using 'Taifun's method' on occasion. :slightly_smiling_face:

Possibly because when you create your apk your app (which will work when using Companion with only gps) will not have the needed permissions; those have to be added). There are several ways to do this. Taifun has a method which works. I have another similar method that works too.

When I use my method and compile; your status bar will display a small location symbol showing that the gps Provider is set.

Hello SteveJG.

My understanding of all these things was not too high and you gave it a hard reset.
So this is not offline navigation with preloaded maps.
Did i miss this all in the MIT website 'Exploring with the location sensor' or are there others good websites concerning the specific MIT Navigation/LocationSensor issue?
Thanks for the reply and Merry Christmas.