Parallel collection of Geotrace while collecting other information

(Dawie Joubert) #1

Dear all,

One aspect that a recent client wanted was the collection of the route travelled (Geotrace) on a public transport vehicle while documenting the stops and the commuters alighting/boarding (looped queries) until the end of the journey.

Currently we do this with two phones. However, it would be nice to be able to document the actual route the surveyor used while doing the entire survey. Thus I perceive the flow as follows:

  1. Select route;
  2. Start "background" automated geotrace;
  3. Start loop questions;
  4. End loop questions;
  5. Stop "background" automated geotrace; and
  6. Submit "form" to Aggregate.

This would be a very nice feature for this scenario, however, I was wondering if any of you may have other uses for it?

Best regards,


Collecting GPS coordinates in the background
Collect: Extend audit log to include GPS coordinates

Hi Dawie,
Have you seen this?

Although it's not exactly the same there is an overlap - something happening in the background, while you get on with other data collection.

I would also find this feature useful for monitoring paths and trails.

At present I use a separate GPS app (GPS-logger) and then attach the GPX file to my form - those lovely folk at ODK have just implemented the 'file' widget to facilitate that! This means that all the data is in one form, collected on one phone - would that work for you?

As a new feature, I don't know enough of the mechanics, but for me it would be important to make sure that if the geotrace is running, it is still possible to collect other geopoints. So far with all the apps I've used there is always a conflict in trying to 'overlay' lines and points within the same data collection process.

But it would get my thumbs up too. The program flow seems logical.
All the best

(Jefferson Francisco) #3

This may or may not be something that the community is interested in having, but I have had a couple of recent use cases where this would have been nice to have.

What is the general goal of the feature?
Collect GPS data in the background similar to collection of metadata like the "today" is collected. When a user starts a form, then the widget would start collecting the location in the background. By the time the user reaches the end of the form the GPS coordinates would be saved.

What are some example use cases for this feature?
Tracking the location of the user when they fill out forms.

What can you contribute to making this feature a reality?
I can contribute some of the software development, but my team and I would need some guidance.

(Hélène Martin) #4

@Jefferson_Francisco Great to hear this is a feature that interests you! I've combined it with @Dawie_Joubert's description so we can keep all requirements together. The first step is to get a clear specification based on community needs. @Jefferson_Francisco perhaps you could share the high-level workflow you're imagining? Some questions:

  • when does the tracking start? At the beginning of filling out a form? When an enumerator performs a certain action (e.g. tapping on a button)?
  • when does the tracking end? At the end of the form? When an enumerator performs a certain action (e.g. tapping on a button)?
  • at what interval should points be collected?
  • what should be configurable? In the app? In the form?

@Dawie_Joubert it would be great to get a little bit more details on the flow you've described. In particular, what does "select route" refer to? What are you imagining triggers the start and stop of the trace?

I've talked to organizations that do vaccinations house-to-house in remote areas and they want a full trace during filling of a form. So for them, I believe a single property in a form that says "collect a trace" would be enough. The collection would start as soon as the form is opened and stop when the form is closed. It could possibly be combined with though a geotrace field might be easier to process.

(Jefferson Francisco) #5

Basically, I would like a geopoint that does not require the user to select "Start GeoPoint" or wait during the time that Collect carries out the "Loading Location" process.

I don't know if I would call it tracking because I would only want one point to be captured.

  • When does the tracking start?
    At whichever point in the form that the widget is placed. Ideally, it would be at the beginning of filling out a form so that it has time to load the location before the form ends.

  • when does the tracking end?
    As soon as the "Loading Location" reaches a certain accuracy (30 - 50 meters would be good enough).

  • at what interval should points be collected?
    Only one point at whichever point in the form that the widget is placed.

  • what should be configurable?
    The same as geopoint.

  • In the app?
    The same as geopoint.

  • In the form?
    The same as geopoint.

(Hélène Martin) #6

I apologize, @Jefferson_Francisco, I misunderstood. You actually want Auto-gps implementation on ODK Collect. That is under way at It's something I keep meaning to get back to but haven't had the cycles for. If you anyone on your end could help with that, it would be much appreciated. They can also discuss on the dev Slack in #javarosa-code.

(Dawie Joubert) #7

@LN The selection of the "route" in my case is a form specific "input" in the form of a public transport route (apologise, I should have clarified). Either as part of that "input", or just before it, I would like an "Auto Geo-trace" to start. This Geo-trace will then continue, until a specific "input" and/or stage of the form has been completed. Geo-point collection (manual or auto, as per the @Jefferson_Francisco ) should also be possible while this auto Geo-trace is in the process.

For instance:

  1. Start form;
  2. Put in user collection details;
  3. Select taxi details;
  4. Select route;
  5. Start Auto-Geotrace;
  6. Start following Loop:
    6.1) New stop point;
    6.2) Either auto locate location, or manual location;
    6.3) Select how many people have boarded;
    6.4) Select how many people have alighted;
  7. End Loop;
  8. Stop Geo-trace;
  9. Save form;

Hope that makes more sense.

Best regards,



That's what I understood from your description, and I'd like to use the same functionality for a different purpose - which is probably why I recognised it!