|Issue 35:||Waypoints in wrong place when marking while moving|
|2 people starred this issue and may be notified of changes.||Back to list|
What steps will reproduce the problem? 1. Start tracking, move @50+ km/h 2. Mark some waypoints when you drive besides them 3. Compare the real position of waypoints with their position in the track. Position will be WAY close to the beginning of track (50-200+ m) than it is in the reality. What is the expected output? What do you see instead? Positions inaccurate to <10-20m, i.e. distance between track points + inaccurate timing while driving besides something + GPS error. What version of the product are you using (See "About" screen)? 0.4.1 Make/model of your device, and Android version? HTC Hero (Scandinavian), original firmware, Android 1.5 Please provide any additional information below. While using osmtracker, I noticed that my track shapes correspond with that other people with other hardware record. But waypoints are in the wrong places sometimes by hundred meters (while driving @90+ km/h and making voice records what I see around). Therefore I made an experiment. I have attached file with unaltered track. It is from the street with lots of level crossings. Each of them goes perpendicular to the street (no Z shaped at all). I pressed crossing button when my car was over each of crossings (I missed one). And therefore expected to find all the crossing well aligned. As you can see, they are shifted up to about 50m from each other. And this shift I can not explain with GPS errors, or early/late press of the button. The only explanation what comes to mind is it takes several seconds for data from GPS sensor to reach osmtracker. Osmtracker records waypoint at the last reported position. Which can be way behind the real track. Would it help to ask GPS sensor for the position NOW when waypoint button is pressed I have no idea. Would it help to record point less often, I have no idea too.
May 2, 2010
OMSTracker does indeed record waypoint for the last position it has already tracked, and doesn't ask the GPS for the current position. Theoretically requesting the position when marking a waypoint shouldn't help because the last one that we have is the most recent one and there is no "new" position available, or it would have already been recorded... However theory and practice are often different especially when it involves hardware devices like GPS ! I should probably give a try at this suggestion.
Jan 19, 2011
Just an idea: Some gps logging tools for android give the possibility to use "satellite time" for logging the data. I suppose Location.getTime() should give this "satellite time" but I haven't tried if this is a timestamp extracted from the gps-signals or the system-time when the location was recorded on the device. If the latter is right it should be possible to record the time when the waypoint was "created" in the ui and then wait for the location-notification with the closest timestamp.
Jan 20, 2011
Hi, in v0.4.3 the way voice recordings are handled has changed. It should be a bit better now (for voice recordings). The other issue mentioned is difficult to resolve. First of all: android gives us a location update every 1 second. So while driving with 90+ km/h we'll get a location update every 25+ meters. (if the gps accuracy is at +/- 0 meters, on my phone i usually have an accuracy from 3-9m) The best case is that you press the waypoint button just after a new location is received. A waypoint will then just be e.g. 0-5meters away from the real position. The worst case is that you press the button just before a new location is received. The waypoint will then be 25 meters away from it's real position. One can try to reduce this if we check gps time of the current location and the next location and check the time difference to find the "nearest" location. Location.getTime() returns the timestamp of the "gps time" which can differ in some seconds/minutes compared to the android time (so we need to check the difference). It could be possible to save the difference between gps time and android time and compare the timestamps to a waypoint timestamp when getting a new location. Another possibility is to record the heading and speed of the previous location (if available) and calculate the new position... but i'm not sure how this could be done and how good this will work... I'll think about a way that could be used to get some more accuracy to the waypoints... If there are any other ideas please let me know. best regards Matthias
|► Sign in to add a comment|