Parallel collection of Geotrace while collecting other information

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,


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


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.

@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.

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.

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.

1 Like

@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!

Hi all. I am new here to please excuse me if I've missed anything.

The functionality that @Dawie_Joubert mentions is exactly what I need. I have looked into the audit functionality, but critically I need the Geotrace to be running for long periods of time when there is no enumerator activity on the survey. My reading and trial with audit suggests that Geotrace points are only logged in association with actions.

So if this has been developed, I would love to use it.

No updates on this front, @bmaritz. Thanks for describing your usecase here. An external app may be your best bet. An alternative would be to have a form definition with a structure like this:

  • a geotrace and instructions for the data collector to set it up to collect points automatically. They could lock the screen and still collect points. Then when they see a snake, they could save that trace and move on to the next question
  • a block of questions about the snake encountered, possibly including a location question so you can easily map all snakes found without having to pull the last point of the trace
  • instructions for the data collector to submit this encounter and start a new form submission

That way you could stitch together all of the traces collected to get the full coverage.

A similar alternative would be to put the structure I described above in a repeat. That way a data collector could fill out some information about the current survey and then capture all of their movement and snakes as part of that survey. Again, you could stitch together all the traces to get full coverage for that one survey.

Edit: the approaches I mentioned seem reasonable in this specific case because there aren't very many snakes encountered during a survey. They would not be practical for contexts in which there are many encounters.

Another approach -
Taking geopoints in every other questions, but the taking all these coordinates will make data collection so slow and boring. So, suggestion- coordinate should be able to take with 'placement-map' appearance with pressing current location button (maybe new feature), not on the map using the index-finger.

However I would strongly vote for background geotrace like background sound recording.

Thanks. The repeated geotrace that is stitched together does seem like the most practical solution. I will try and set it up this week and see if I can get it to run properly.

1 Like