Just to conclude the tale: I have consulted the developers of one of my 
favourite apps that tells you how far you’ve walked or cycled (maybe long 
journeys as on sees on car satnavs are a different proposition, and I am not so 
interested in these for my own purposes). I am not revealing any secrets when I 
say that the lead guy reports that they have dedicated "tens of thousands of 
lines of code” to the issue. True, they cope with elevation, which I was 
planning to ignore, but nevertheless their ways of handling changes in accuracy 
include several things like reasonableness checks, so not even just simple 
curve-fitting.

In my particular circumstances and with my own limited skills I have simply 
decided to give up on that part of my app. A user can run another app 
simultaneously to mine to find out how far they’ve travelled - that’s easy. So, 
a wiser and a sadder man, I will try to finish what I started but with limited 
functionality.

Thanks to everyone who chipped in with advice, facts etc.

Graham

> On 6 May 2020, at 18:24, Graham Samuel via use-livecode 
> <use-livecode@lists.runrev.com> wrote:
> 
> Mark, thanks for that contribution. Looks like more maths is needed. I will 
> follow up on your approach, as mine really only works if all GPS readings are 
> nearly accurate. As I have seen accuracies (really inaccuracies!) as large as 
> 65 metres even after a settling-down period, a few of those will certainly 
> put the integral-style calculation way out.
> 
> Really for this part of my app I need to emulate the work done in dozens of 
> trekking apps available in lots of countries. I have one sneaky idea, which 
> is to approach the developers of one of my favourite apps, since I have had 
> some contact with them on other matters, and just see if they might tell me 
> their approach - I can easily show that I am not a competitor! But that’s not 
> an approach I can rely on, of course!
> 
> I will keep plugging away even though the initial motivation for my app 
> (local lockdown) is probably going away. Hard to give up now.
> 
> Thanks everyone for their input.
> 
> Graham
> 
>> On 6 May 2020, at 16:52, Mark Waddingham via use-livecode 
>> <use-livecode@lists.runrev.com> wrote:
>> 
>> On 2020-05-06 14:09, Graham Samuel via use-livecode wrote:
>>> Bill, I think you are confirming that there is some mystery here.
>>> There are a lot of apps that seem to get location, and measures
>>> derived from location, almost completely right, whereas I am having
>>> trouble doing so with what must be the same essential data.
>>> How then to avoid either under- or over-estimating the trip distance?
>>> Plenty of apps have done it but I just can’t see how, although I keep
>>> tinkering with the parameters. Of course I can never forget that my
>>> scripting might just be plain wrong, but so far my incremental method
>>> hasn’t worked sufficiently well, in the sense that if run the app and
>>> choose to walk in an exact straight line, I can compare a single
>>> measure of distance from the starting point with my integral approach.
>>> So far the result is not even close. As you say, intensive Internet
>>> searches are called for.
>> 
>> I'm pretty sure that the data you are getting is precisely what all other 
>> apps will get - we are just returning the location data as provided by 
>> CoreLocation. The difference will be the analysis which these apps are doing 
>> on the data to derive an accurate assessment of the route taken I'd imagine. 
>> Indeed, it could be they also take into account other senses (compass and 
>> accelerometer) to help - but I don't know that for sure.
>> 
>> There are two functions which might help you with your endeavour:
>> 
>> mobileSetLocationHistoryLimit
>> mobileGetLocationHistory()
>> 
>> The details are in the docs, but basically the engine can collect and keep a 
>> list of locations which you can collect periodically.
>> 
>> I suspect the way to think about this is not to think about it as an 
>> incremental thing at all as any outliers will completely destroy the 
>> accuracy. Instead imagine it as a 'curve-fitting' exercise (piece-wise 
>> linear approximation is probably sufficient!) - i.e. taking sets of 
>> (slightly) overlapping samples and derive a 'best-guess' path which fits the 
>> data.
>> 
>> It is likely that some cleaning of the data would be needed first to 
>> eliminate outliers also. e.g. You can compute speed needed to get between 
>> individual points, if any given point is outside of a reasonable range of 
>> 'current' speed with approximated acceleration/deceleration taken into 
>> account then it should be discarded.
>> 
>> Doing a google search for "deriving a approximate path from gps data" turns 
>> up quite a lot of literature on the subject, so this is definitely something 
>> which has/is studied in depth...
>> 
>> Warmest Regards,
>> 
>> Mark.
>> 
>> -- 
>> Mark Waddingham ~ m...@livecode.com ~ http://www.livecode.com/
>> LiveCode: Everyone can create apps
>> 
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode@lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your subscription 
>> preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
> 
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to