Select to view content in your preferred language

Best practice for long dropdwon menu to be filtered

167
2
2 weeks ago
ckuipers_atkb
New Contributor

Hey, I am currently looking at different apps for field work. Since I am new to ESRI Field Maps so I need a little help to get a good idea of its possibilities. 

There are a few main wishes I want to incorporate in our field apps. Can anyone, please, tell me if it is possible in Field Maps without slowing down its performance.

  • For our ecological surveys we have a short list of target species. These are the species we look for in the field. However, this list does not cover all the species we encounter in the field. We often find species that are not on the list but are important to record. Therefore, I always want to have an option to search an extensive species list (+ 90.000 species). This complete list is composed of species name and species group. To speed up the searching for a species, it would be fine to first filter the list on species group. So, if I type a few characters its only search in, let's say, a few hundred bird species instead of all 90 thousand species.
    Thus, is it possible in Field Maps alter the dropdown-list according to a value in another field? And is it possible to search the list by entering a few characters?
  • For certain monitoring protocols the research area is divided in a 100×100m grid. Each grid cell should be visited in the field. For this protocol it is mandatory to track your position as well. To control the project progress and to check if all grid cells are crossed, I want to use an expression-based symbology on the grid. When the tracking line is intersecting with a grid cell it should change colour at refreshing the map. So, in the office it is easy to check if cells are missed. 
    Thus, is is possible in Field Maps to add an expression-based symbology? And it is possible to use the active track for the symbology?
  • When adding a new observation I want to have a build-in check for an active track. This should actively remind the fieldworker to activate the track and the fieldworker gets a warning when the position tracking has stopped for some reason.
  • Our observations layer should have an updating symbology based on the time of recording. When an observation is added more than 8 hours ago it is an old observation of a previous visit. All those observations should be grey while the recent observations (less than 8 hours old) should be red. The fieldworker can turn both categories on / off, depending on the situation. 

 

Like I said I am new to Field Maps and ArcGIS Pro. The tutorials I have read and the video's I have seen do not explain the features I want. According to the information I have found "contingent values" could help to filter the dropdown list, but it is not working with extremely long lists like I have.
I also found that the position tracking is not available for Arcade expressions. Thus, the symbology of the grid cells, as I explain, above should not be possible. 

Can anyone help me and perhaps send me a tutorial to get me on the right track if the above features are possible.

Thanks in advance!

0 Kudos
2 Replies
TimWalker_esri
New Contributor

Hello, here are some ideas and suggestions that might help you.

  1. 90K is probably too high a number to get good performance for a drop-down list. I did some quick testing, and while it appears this high a number is not blocked, performance becomes unusable, the system was not set up to handle this high of a volume. Doing some quick testing on my end, it appears that 500-2000 is probably the upper range you want to shoot for. That being said, some options/info you can consider:
    • 90K species is high, can you filter this down geographically at all for your survey?
    • Combo-boxes do automatically have text filtering built in. So no matter the length of choices you upload if your user starts typing in "Red.." you will get the filter of all species with Red in them. You could set up your list to have a code first such as #AV Red where only birds have the #AV tag on them and that could help further, however this will have the draw-back that its order dependent, so "Red" must follow the "#AV" so bird starting in "Red.." will show up, but not those starting in something else like "Greater Red …"
    • Contingent values may not work here has the 90K will likely have the same performance issues with contingent values.
    • Add fields, break things apart. A set up you could use is:
      • Group Field (Bird, Reptile, Mammal, etc)
      • One additional field for each group (Bird List, Reptile List, Mammal List)
      • One field for final species name

        Using form logic, only show the group drop down field depending on the answer to the Group Field. Then use arcade calculation to bring in the answer from the group drop down field into a final species name field, so all your species names are in a common field. You can also expand this so you store both species / common name in the drop down and pull each out into their own final common / species name fields. This solution limits your domain lengths, but means you have to manage extra fields.
    • Use subtypes. Subtypes have the ability to call upon different domain definitions depending on your subtype field. Here if you use your group as your subtype field you could make your species drown downs dependent on it. Subtypes have drawbacks in terms of flexibility post-publish though, so best to do some testing here before committing to this route.
  2. I cannot find a way to make this work personally. The primary issue I see here is that FeatureSet functions and access to other layers in a map (i.e. $layer and $map variables) are not available for Arcade in symbology functions. This is likely due to performance considerations, imagine running spatial queries on each of 1000's of a features against 1000's of other features.
  3. Assuming you are using tracking capabilities in ArcGIS Online, you can use Geofences in Field Maps Designer to automatically start and stop tracking when a user enters an area. If you are tracking by some other means, you can also set up Geofences to provide users with notification upon entering an area that requires tracking. If you want a notification in an observation form you can use an info element to remind them additionally.
  4. Yes, this is possible through Arcade functions such as DateDiff() and Now(), you can take your comparison datetime field and use DateDiff(Now(), $feature.my_date_field, 'hours') to get the number of hours since a feature was collected and then use that to symbolize on.
0 Kudos
DougBrowning
MVP Esteemed Contributor

Survey123 is going to be the better choice for this.  It can handle the lists that size much better.  We have 12 state lists that are all around 60,000 and can flip between then with ease.  We set our label as Code  Common name  Scientific name (all 3) so that the user can use type ahead and find any of those.

 

Fast lookups by plant name on a 6000 long list.JPG

 If you still want the spatial side use Field Maps for that then launch 123 forms from those points.  That is what we do and it is slick.  123 if the best for forms and Field Maps is the best for spatial maps.

0 Kudos