Quick question about existing forms that have been deployed, which might benefit from this feature...
If I update the form to use reference-geometry and that form is opened by someone using Collect v2026.2.2 or earlier what happens? Does it gracefully decline to show the reference geometry and continue as previously, or does it throw a hissy fit? I hope that @Edmonds experience of not being able to see the reference-geometry might answer it, but I want to check to be sure!
I have updated my device to the latest version of Collect, updated the form and uploaded to draft... So I can test this new version on a real form and this is an extremely powerful feature!!! Unfortunately I don't have a second device with me that has the previous version of Collect...
In my case the reference geometry is a section of path (i.e. a line) and the surveyor walks along that path recording items - so it is important to know when the surveyor has reached the end of that section. This works perfectly (the reference-geometry is the select_one_from_file that identifies the section) - and it works both in the main form (e.g.confirming the start / end location) and within repeats (recording the location of particular features).
Up until now I have had to produce an MBTiles file (a single layer showing the geometry only, using transparent background) which works, but is 'costly' (time, complexity, file size) - this simplifies things beautifully.
So I'm glad I saw this feature coming and adapted the form design appropriately! It's just that we are mid fieldwork and I can't guarantee every surveyor will have updated to the latest version....
Before I publish and break the Form, I thought I'd ask...
Love to hear this, thanks for describing your use!
The specification change is purely additive and ignored by older versions of Collect so updating your form while you still have users on older versions of Collect should not be a problem.
Hi all, testing this new valuable feature. As said previously, we have a database of 180k sites. Is there any filter option yet available on user level/login level? Ideally, I only would like to send the sites that belong to a certain partner (with filer on partner) and not all the 180k sites, which would crash the app (which is now happening when testing....). Any thoughts? Thanks!
did you check the recent possibility to filter entities by property, which can be compared to an app user property ?
We will try it in September on a smaller reference layer than yours but it's very promising. We need to think about what is actually an app user in our system and what it could be regarding this new functionality.
I did not. Very interesting. Thanks for this tip! We always have been working with filters in the X-form (pulling ALL data from the entity list and then filter on it by the user name + organisation). We did this as a workaround. But this solutions seems exactely what we need. I will check and keep you informed.
I have another question. I tried to build in the reference map in an edit function. We now use select_one_from_file monitoring_trees.csv to get a polygon from a entity list and then remap it. But it seems that the select_one_from_file monitoring_trees.csv type in combination with the reference-geometry=monitoring_trees (in the parameters column) does not work. I get an error. So this reference-geometry=monitoring_trees only seems to work with the geoshape type. Is there any way how we can select a polygon from an entity list (for editing) and then see all the surrounding polygons....?
If I'm understanding your need correctly, you currently need to do this in two questions. First you show your select and the user taps on the polygon they want to edit.
Then you have a geoshape question that lets you edit that polygon. You set its default value by putting something like instance('monitoring_trees')/root/item[name=${selected_polygon}]/geometry in the calculation column with ${tree_select} in the trigger column so that the calculation only runs if the selection changes.
Then it's on that geoshape question that you put reference-geometry=monitoring_trees to show the other polygons as context.
Looking forward to seeing how this works and what you think of the new server-side filtering functionality! Thanks for sharing the docs for that, @mathieubossaert.
I made a mistake. It does work the same way as geoshape. I wasn't aware that the follow up question for my select_one_from_file monitoring_trees.csv question was just a geoshape.... I've become a bit 'rusty' after the holidays I guess:-). And by entering the reference-geometry=monitoring_trees in the parameters column, it just works! So happy with this! What a great job you all did. This will definately help to improve the mapping quality of our partners. Many thanks to you all.
@LN , I tried to use the reference-geometry in a repeat (reference-geometry=${pcq_method_repeat}) but ODK Collect throws out an error immediately when I open te form. A snipped of the form in the attached excel. Am I doing something wrong here? I want to create multiple geopoints and see the previous ones, preferably with a polygon layer as a basemap (so that the enumerator knows if he/she is still taking geopoints inside the respective polygon.
The error of ODK Collect: Form can't be used. ..... node for itemset does not exist. I also tried with geotrace but the error still persists.
I found the issue. I needed to rename the label of geopoint to 'geometry'. That did the trick. I can now see the previous points being collected. Now there is only one question left: can I also see the selected polygon while I am doing the sampling? So, I select a polygon for monitoring (from an entity list), then start the sampling, seeing both the polygon boundaries and the sample points I am collecting. Would this be possible?
@Edmonds Is this definitely working for you? Could you please share an example if it is so I can see where I'm going wrong?
I tested it with a form with internal choices, and while it validates with 1, 2, 3 reference layers or repeat +1/2/3, only the last reference layer in the parameters column actually appears. See here: Multiple reference geometries.xlsx (99.7 KB)
@gareth@JenniferQ : is reference-geometry supported or planned for Webforms yet ? I can't see it on the feature matrix, or find a completed issue about it. I see the 'jump to extents' icon, but it's greyed out and no ref items appear for any of the combinations.
You are correct. I tested it as a real case and I now see that it is not working as I wished. With the 'solution' I posted yesterday I see the polygon reference layer but not the repeat (multi) reference layer. Hope we'll find a solution because seeing both reference layers would improve our data quality a lot.
Thanks for checking. I removed the post of yesterday, so not to confuse people. I will also do some checking. Hope there is a solution....
Beside this, I also have the issue that in the former form version, I incorporated a condition on GPS accuracy (capture-accuracy=50 warning-accuracy=20) in the parameter column. So basically, if I would like to use all those settings combined, the parameter column would need to allow multiple settings: reference-geometry=${method_repeat} reference-geometry=tree_registration capture-accuracy=50 warning-accuracy=20. Not sure if this would be possible, or another solution is needed for combined settings
Currently, Web Forms doesn't support this feature yet, and we don't have an estimated date for when it will be available—probably not this year. We'll start by reviewing user feedback from the experience in Collect first. I've already sent an update in the feature matrix. Thank you!