Hi there,
I made application "Right Route" that helps oars men to keep right side of center line.
I use it on lake Sagamiko in Kanagawa, japan.
But when I row in south side of the line, this application tells me I am north side.
So I recorded my rowing trace by another application "NavTrace" with same cellar phone. I can find recorded points are different from actual route. All are more north and some are on the ground.
Details are submitted as the followings
This location error depends on cellar phone GPS quality,
Which provider do you use?
At the beginning did you check for available providers and if gps is available, set the provider to gps and lock the provider?
The coordinate data is collected with various degrees of uncertainty. Read about the gps property called Accuracy in Using the Location Sensor
It is almost impossible for the gps hardware in cell phones to provide the precision your app requires. Android phones higher than Android 10 may need to lock gps provider to gps as Taifun indicated. He shares one way to do this; there are other ways.
A locked gps will not necessarily guarantee better Accuracy and precision. or solve your problem. Try his suggestion and tell us whether it solves your issue.
If it doesn't improve your N/S determination, post the Blocks you use to determine whether your actual location is North or South of the LineString that you probably use as the 'center line' .
Hi Taifun,
Tanks for your quick response.
I do not have any idea about GPS provider.
I think GPS on cell phone indicates its location by only signal from GPS satellites.
So it is the first time to hear that there is GPS providers.
In this circumstances, I must study GPS provider first.
It would really help if you provided a screenshot of your relevant blocks, so we can see what you are trying to do, and where the problem may be.
To get an image of your blocks, right click in the Blocks Editor and select "Download Blocks as Image". You might want to use an image editor to crop etc. if required. Then post it here in the community.
One can only speculate the cause for points you collected being onshore rather than in the water.
My guess is App Inventor uses only a few satellites to provide a position coordinates and/or it is using a 'fused' Provider in your app. BC may be using a gps provider and locking the provider and may have the capability of using more satellites.
As Taifun mentioned, more information is necessary before anyone can provide specific information to help you improve your position data. Taifun guesses the problem is not using a locked gps Provider. I agree that may be part of your issue but I really expect App Inventor is using fewer satellites when determining locations. That is something only MIT can fix.
Analysis
BoatCoach posts it's Marker data to a Google Map. App Inventor uses the Map component with OpenStreetMap tiles. That BC uses a Google Map is an indicator BoatCoach is programmed probably using Android Studio.
means it uses different LocationSensor code than AI. Here is a possible difference: BC may be using multiple satellite constellations, AI probably does not as far as I can tell. Using more satellites and thus more satellite fixes possibly results in better precision for BC.
Some things that affect the precision of a satellite fix.
locations provided when using the LocationSensor is based on number of satellite fixes your GPS receives. BC might be providing data from more satellites than AI does be cause it provides less precision while using fewer satellites in the fixes.
rain, over head sky being partially blocked by trees, buildings, mountains or large hills. It could also result from intentional jamming of the satellite signals or intentional degredation of their signals. Was any of these conditions true while you collected minimal data about your app. You collect the following data once 60 seconds as best as I can tell 1, 6/11/2024 12:18:30 ____ 35.78638, 139.2659,0,0,0
This point plots onshore on OSM tiles or Google Map tiles ( indicating the issue is not the OSM tile being corrupted)
Have you ever collected the Accuracy property estimate for each point? It would be useful to know what it was when you plotted your boat as being onshore. Unfortunately App Inventor does not collect or expose information about how many satellites are used in the fix. Is you app constantly plotting points onshore or was this situation random?
Hi JG and Taifun,
Tanks for kind cooperation,
I get some idea on what causes of the location difference between 2 applications on same device.
I am satisfied with JGs explanation that BC gets more satellite data than NavTrace my application made by App Inventor.
BC depends on GoogleMaps and Android Studio ,
I am satisfied that I can know why this difference is and also this is the limit of AI GPS location , that can not use more satellites than BC.
I try to improve my application to add 2 blocks, location sensor provider change and lock near day.