OK,
I don't have a lot of experience navigating a github project, so I can't seem to find any detailed info about the methods and events from the original developer.
Even though Don's info doesn't mention this, I do see a
.GeoAddress2(Lattitude As Double, Longitude As Double) method using the object's intellisense.
.GeoAddress2(Lattitude As Double, Longitude As Double) - My guess is that this method provides a way to force the "
GeoLocation_Location" event to trigger and return the address of the manually ("Mock") location provided via the lat and long parameters (instead of the device's detected GPS lat/long).
Also, you will notice that this lib doesn't really specify the accuracy of the lat and long it detected. It will specify the "service" that was used to obtain the lat/long (GPS/Wifi/Fused, etc) which can somewhat be used to know the accuracy of the lat/long, but I would not depend on it.
What I would do is use the more robust GPS object of Erel's example (
https://www.b4x.com/android/forum/threads/background-location-tracking.99873/) and when that object detects a location, it will provide the accuracy of that location in meters.
So if my assumption on how the
GeoAddress2 method works is correct, I would use the GPS object in Erel's example and wait for an acquisition that has an accuracy that meets my needs (like less then 25 meters), then I would use the lat/long reported from Erel's GPS object and call this lib's .
GeoAddress2 method to force it to calculate the address based on the mock/manually provided via the lat/long of Erel's GPS object.
You will then notice that the
GeoLocation_Location event has a "
isMockLocation" parameter, I'm thinking that this value will be
False for the times that this lib's geo library detects a location, and will be
True when we force the lat/long location using the
GeoAddress2 method. If all my assumptions are correct, then you would just need to make sure that this param is
True before doing a .GeoAddress, so you'll know that the resulting street address is based on the manually provided lat/long (from Erel's GSP object) and not from this geo libs possibly inaccurate GPS location.