I am using Survey123 that generates a feature point at a default location after the end user completes and submits the form. Every new point that is created, contains the name of the Road and FROM/TO information for the line segment. I am wondering whether there is a way to auto move the point right on top of the line segment leveraging the Road Name and FROM/TO information. It is possible to have multiple entries for each of those Road segments so I would want to make sure the points do not overlap each other.
Is there a way to achieve this task?
If you're in ArcGIS Online, you can try using the pulldata function with the roads layer as detailed in this blog post.
Alternatively, you can do this database-side if you're on ArcGIS Enterprise. First, make sure the service backing the survey is published using Enterprise Geodatabase data. You can find a guide on pointing your survey to an existing service here and the feature class requirements here. Once you've done that, you now have access to Attribute Rules, which means every new survey can take the road info from the feature, filter the road features to find the matching segment, grab a point from that matching road segment and return that as the new location. The advantage here is you guarantee every new point has been snapped to a road if it exists and it'll also work better in offline situations.
We use Survey123 for Marine Mammal Monitoring and one of the workflows I set up was to have the animal location calculated and adjusted on the fly based on the location of the observer and the direction/distance data they enter.
I attached a working xlsform of how I do this so you can see it in action. The first Geopoint is hidden, so it doesn't try to create 2 geometries for one feature layer. That is the geopoint layer that the monitor inputs their location. I use pulldata to extract the lat and long from that and pass it on to some calculate fields where it does a bunch of math and then spits out the calculated animal location which is recorded as the geopoint for that feature.
*Note* If you publish the form with a hidden geopoint that comes before a non-hidden geopoint it will be published as a table and won't have geometry enabled. To work around that, move the non-hidden geopoint to the top of the xlsx form and publish it. That will publish it as a feature layer and not a table, so you will have geometry enabled. Then move the non-hidden geopoint back to where you want it in the xlsx sheet and republish. Republishing won't change it from feature layer to table.
You might look at doing something like this in conjunction with pulling data from your road layer or LRS to adjust your point.