Select to view content in your preferred language

Select Features on a Map?

2621
5
09-13-2021 11:31 AM
BobChristensen
Frequent Contributor

Hi, I would like to include a map in a survey 123 form that we can use to gather data on the popularity of roads near a community. Is it possible to include a map of roads and allow folks to do something like select their top 3 most used road segments? I see there may be an option to do this using an .svg but was hoping that this could be done with a map document so I could avoid the process of converting to an .svg and then editing the .svg to include a bunch of mapped areas around each road, but I will go that way if necessary. 

If .svg is the only option, hoping for some advice for my scenario if you have similar experience. For example, can someone point me to a tutorial workflow that might include illustrator and or photoshop for how to export a map with polylines that I can convert to an .svg that has the proper paths for each line feature to utilize as an image map for survey 123?

 

b

0 Kudos
5 Replies
RyanBohan
Frequent Contributor

You might have some luck with experience builder.  There is a url pass that can send a selected feature to a survey123.  However it will works with one selected feature.

Do you need the geometry or just the Street name? or street id? It's possible to pass both.

https://www.esri.com/arcgis-blog/products/experience-builder/real-time/using-experience-builder-and-...

If you do need all 3 roads, please add on your use case to the survey123 idea

https://community.esri.com/t5/arcgis-survey123-ideas/allow-multiple-selected-polygons-to-be-sent-to/...

BobChristensen
Frequent Contributor

This looks helpful Ryan, though I may need it to to work in an offline environment and I have not researched experience building functionality in this regard. 

I do need all three roads but not necessarily the geometry for this case, just the road names. 

For this project, I would like our form users to be able to select up to 5 road segments out of 25 and have that data passed to a multiple choice question in survey 123. I am currently investigating how to do that using an .svg approach but would much prefer using a web map that can be made available offline. 

b

DougBrowning
MVP Esteemed Contributor

You could use Field Maps and send the ID to 123.  I do not think you can select multiple features in Field Maps however.

0 Kudos
AlfredBaldenweck
MVP Regular Contributor

For the .svg, try the workflow here A Guide to Making SVG maps with MapShaper - Resources | Simplemaps.com

Also see this post for a general guide on their usage in S123 Work with SVG files—ArcGIS Survey123 | Documentation

The output will be all black, so open it in Illustrator and edit it there for colors. Do not save in Illustrator; this will overwrite your id paths entirely. Instead, export it. 

Afterwards, open it up in notepad or another text editor, and find/Replace all instances of "id=_" with "id=" and you should be good to go.

Be warned as well with SVGs; S123 will only show them to a max size of about 750 px high, even if you resize them or the questionheight parameter. So if your features are too small, you might not be able to select everything you want.

A possible solution is dividing up your area into regions, and then concatenating the answers to all the regions into one field for the final data. Another thing I recently did was creating a second question that had all the options as the SVG, but filtered itself based on what was selected in the SVG question.  I then had my following questions filter based on the two questions, or off of a hidden question that combined both choices.

QuestiontypeNamelabelRelevantChoice filter
select_multiple StreetsStreetsStreets  
select_one YesNoStreetsYesAre the streets on the map too small to be selected?selected-at(${Streets},0)
This makes it only appear after you've selected one choice already
 
select_multiple StreetsStreets2Streets${StreetsYes} = 'Yes'

(not(selected(${Streets}, name)))

If you are combining with another filter clause, the not() statement must be completely wrapped in parentheses, as above, or else your filter will not work correctly.

 

I will also say I don't know how to edit them well enough to put labels on them, or a basemap, so if you can figure that out, I'd love to know how to do it.

 

 

0 Kudos
BobChristensen
Frequent Contributor

Very helpful post Alfred. Thanks very much. I am going to dig into this approach tomorrow. I googled up an adobe plugin for ArcGIS that I am also going to take a look at and will report anything promising there. In the short term I may have to just embed and image in the form and use a multiple choice list below because I am on a tight schedule. 

Thanks again.

b