Calculate distance walked on a survey from track line

255
2
Jump to solution
03-28-2024 12:36 PM
SteveBrewer
New Contributor II

Hello Everyone, 

Another question, I have been tasked as part of this survey to see if its possible to have a field in the survey that would auto populate the distance traveled based on the tracks taken in the survey. I assume this is a pulldata formula if possible. So far I figure if we capture the track lines in Quick capture, start it at the beginning of the survey, take the survey, stop tracking at end of survey then end the survey it might be able to pull that information. I just don't know how to relay that information for that specific survey in survey123 to the track lines from that survey. If anyone has any suggestions that would be great.

0 Kudos
1 Solution

Accepted Solutions
DougBrowning
MVP Esteemed Contributor

Is it an actual line or start and end points?

If it is a line check this post.  

https://community.esri.com/t5/arcgis-survey123-blog/survey123-tricks-of-the-trade-lines-and-polygons... 

But big note here try this offline.  I found that if you are offline and have no basemap you cannot collect lines at all.  It is a major bummer.  I am trying to get the 123 team to include generic basemaps for this.  For us we gave up on it since the packages are a pain  Instead we use Field Maps to collect the lines, generate an id with Arcade, then use launch links to send that key to the form that is a related record.  Best of both worlds then.  You could do this linking in Quickcapture also but not sure it does lines.

 

If you just want the distance between a start in end I use this formula in the form.  (this is where you are vs Design)

round(acos(sin(${LatitudeWGS84} * pi() div 180)*sin(${DesignLatitudeWGS84} * pi() div 180) + cos(${LatitudeWGS84} * pi() div 180)*cos(${DesignLatitudeWGS84} * pi() div 180)*cos((${DesignLongitudeWGS84} * pi() div 180)-(${LongitudeWGS84} * pi() div 180))) * 6371000,2)

 

I also have an Arcade version of this formula if you need it that works in Field Maps.  We use it mostly to give warnings when a crew is too far from the place they were supposed to be.

Hope that helps

View solution in original post

0 Kudos
2 Replies
DougBrowning
MVP Esteemed Contributor

Is it an actual line or start and end points?

If it is a line check this post.  

https://community.esri.com/t5/arcgis-survey123-blog/survey123-tricks-of-the-trade-lines-and-polygons... 

But big note here try this offline.  I found that if you are offline and have no basemap you cannot collect lines at all.  It is a major bummer.  I am trying to get the 123 team to include generic basemaps for this.  For us we gave up on it since the packages are a pain  Instead we use Field Maps to collect the lines, generate an id with Arcade, then use launch links to send that key to the form that is a related record.  Best of both worlds then.  You could do this linking in Quickcapture also but not sure it does lines.

 

If you just want the distance between a start in end I use this formula in the form.  (this is where you are vs Design)

round(acos(sin(${LatitudeWGS84} * pi() div 180)*sin(${DesignLatitudeWGS84} * pi() div 180) + cos(${LatitudeWGS84} * pi() div 180)*cos(${DesignLatitudeWGS84} * pi() div 180)*cos((${DesignLongitudeWGS84} * pi() div 180)-(${LongitudeWGS84} * pi() div 180))) * 6371000,2)

 

I also have an Arcade version of this formula if you need it that works in Field Maps.  We use it mostly to give warnings when a crew is too far from the place they were supposed to be.

Hope that helps

0 Kudos
SteveBrewer
New Contributor II

Hi Doug yeah I have had this formula and its about as close as we can get to what we want. I changed the Distance walked field to an Estimated survey coverage percentage field with a slider. then incorporated a geoshape question to highlight areas of "unsurveyable areas". I figure that actually gives more information since the geo trace amount may be inflated since its a point dropped every X minutes and people inevitably stop on surveys and take breaks and forget to end or pause tracking (this includes myself).