I have read a lot of discussion about changes to ODK's location (geopoint, etc.) measures recently, and the changes that occurred in early 2018. Yaw explained some of the changes here:
Hello,
I have been searching around the forum for more information on this, but have not had success, wonder if it is a device-specific issue:
I am trying to use the whole network + wifi + bluetooth + GPS-determined location on my phone with ODK collect, just like e.g. google maps uses my location. (Not trying to limit to GPS only, opposite problem.) I think ODK collect is only using GPS satellite data for some reason. I have tried to thoroughly check my settings and will include a link to som…
Helene opened an issue and there was a follow-up, here, which are either open or works-in-progress:
opened 08:19PM - 01 Nov 18 UTC
closed 12:47PM - 18 Jun 20 UTC
- [x] Implement changes
- [ ] Explore and document how users can force GPS-only… results
- [ ] Understand and document implications for external high-precision GPS sensors
- [ ] Document implications for accuracy and location data availability for user-facing docs
`FusedLocationProvider` is the location provider recommended by Google. It's supposed to balance accuracy, resource usage, etc.
Collect used to use it but in Feb 2018, it started capping accuracy at 10m (https://github.com/opendatakit/collect/issues/2008). This turned out to be [an Android bug](https://issuetracker.google.com/u/0/issues/79189573#comment20) which is now fixed. However, accuracy **[is still capped at 3m](https://issuetracker.google.com/issues/118789585)**.
It would probably make sense for the 3m issue to be addressed before switching back to using it.
Regardless, there are some higher-level questions about whether it's the right way to go. It's supposed to provide better battery management but that's only if less accuracy is acceptable. It may make sense to continue only using the GPS since accuracy is almost always important. That said, there are certain environments (urban) where other location sources may be more accurate. Users could force using the GPS by turning other providers off at the Android level, I think, but that may be harder to use.
This may be a conversation more appropriate for the forum. I wanted to at least file the issue so the content and history is not forgotten but feel free to close and start a thread elsewhere or comment here.
getodk:master
← boscacci:master
opened 12:12AM - 11 Jan 19 UTC
Closes #2717
<!--
Thank you for contributing to ODK Collect!
Before send… ing this PR, please read
https://github.com/opendatakit/collect/blob/master/CONTRIBUTING.md
-->
#### What has been done to verify that this works as intended?
Tested on my Pixel 2XL; now I can take GeoPoints in my local urban canyons. I'd be curious to see how location accuracy performs out in the open though.
#### Why is this the best possible solution? Were any other approaches considered?
Honestly, I just wanted this capability back for myself. Curious to hear from the community whether or not it's a good idea to put it into production, but here's the switch flipped anyhow
#### How does this change affect users? Describe intentional changes to behavior and behavior that could have accidentally been affected by code changes. In other words, what are the regression risks?
#### Do we need any specific form for testing your changes? If so, please attach one.
#### Does this change require updates to documentation? If so, please file an issue [here]( https://github.com/opendatakit/docs/issues/new) and include the link below.
There are a few lines of old comments in the code that might be irrelevant now
#### Before submitting this PR, please make sure you have:
- [ ] run `./gradlew checkAll` and confirmed all checks still pass OR confirm CircleCI build passes and run `./gradlew connectedDebugAndroidTest` locally.
- [ ] verified that any code or assets from external sources are properly credited in comments and/or in the [about file](https://github.com/opendatakit/collect/blob/master/collect_app/src/main/assets/open_source_licenses.html).
- [ ] verified that any new UI elements use theme colors. [UI Components Style guidelines](https://github.com/opendatakit/collect/blob/master/CONTRIBUTING.md#ui-components-style-guidelines)
I'm not sure how to do these things. I apologize
My questions are about the current status of location collection in ODK Collect.
Is the latest version using the fused location provider or strictly GPS?
Does the answer to #1 (or, more generally, how location is determined) depend on the Android version being used? If so, how can one tell without testing accuracy with and without wifi/network location turned on?
Of course, I'd also be interested to know about progress towards better accuracy, but I can also follow the github threads for that.
As of v1.20 (the latest release), we use the non-fused provider which relies on GPS. If you use Collect and you don't have the GPS on, Collect will ask you to turn it on.
Fused providers will return once we've verified that the accuracy is good enough (or Google deprecates the non-fused provider).
1 Like