What is the general goal of the feature?
The goal is to have a question which fills up the GPS coordinates automatically. Mostly, this happens in the background, without the data collector's knowledge. Even the auto-gps question is supposed to be hidden.
What are some example use cases for this feature?
An important problem which managers face is that they are not sure if the data collector actually went to the proper location to do the data collection or they filled up junk data from some other location. Automatic GPS will act as deterrent and give confidence to managers that the data collected is actually clean and good quality.
What can you contribute to making this feature a reality?
I have implemented this feature on our fork of ODK Collect and would like to contribute this feature back to the community, after having appropriate discussion and taking suggestions.
Some important points about this feature:
- A form designer creates a question with binding "auto_gps" which has GPS data type. The question should be hidden.
- There are 2 ways to collect GPS - through Network and through Satellite GPS. You can choose from General settings, which method you want the app to use to collect the location. Incidentally, Network GPS gives approximate location (from cell towers), but is very fast and consumes negligible battery. Satellite GPS will give a highly accurate reading, but will consume lot of battery.
- If choosing Satellite GPS, there is timeout defined (in General Settings, typically defined as 30 sec). This timeout will indicate how much time the app will try to get a GPS reading. If the Satellite GPS is able to get a reading, then that reading will be recorded. If not, then the Network GPS will be filled up inside the question (as a backup).
- While opening the form, if Location Services is turned OFF in the phone, then the form will not open. Instead, user will be taken to Location Settings page and is also given a toast, asking the user to turn on the location. Hence, the user will not be able to access the form (with auto_gps) unless he turns on the Location services.
Some final comments:
When our funder asked me to implement this feature, I had the usual thoughts coming to my mind - this will be a big drain on the battery and will be very difficult to implement properly. But I realised that enabling Network GPS consumes little battery and gives a reasonable idea of data-collector's location. In a city like Bangalore (where I tested this app), there are good number of cell-towers which give a reasonably accurate GPS reading. Also while using Satellite GPS, GPS timeout ensures that battery drain is not too much, and if Satellite is not able to return a location within the timeout period, the Network reading is anyways filled in as backup.
Hence, I feel that if the ODK community starts using this feature for their surveys in a big way, then this feature could ensure good quality data and create really huge impact in the future.