Wondering if there are plans to integrate Survey123 into Field Maps, like most of the rest of the app suite? It looks like you're on your way, with the ability to create Smart Forms, but there are several features in Survey123 that are not possible in Field Maps - notably, the ability to multi-select values and store them in one comma-delimited text field.
Just trying to figure out if I should be migrating away from it and looking for solutions in Field Maps...
Solved! Go to Solution.
Ok here are some examples
Calc the lat long - really nice when points move no need to recalc static fields
CurrentLat
var originShift = 2.0 * PI * 6378137.0 / 2.0;
var lon = (Geometry($feature).x / originShift) * 180.0;
var lat = (Geometry($feature).y / originShift) * 180.0;
lat = 180.0 / PI * (2.0 * Atan( Exp( lat * PI / 180.0)) - PI / 2.0);
return lat;
CurrentLong
var originShift = 2.0 * PI * 6378137.0 / 2.0;
var lon = (Geometry($feature).x / originShift) * 180.0;
var lat = (Geometry($feature).y / originShift) * 180.0;
lat = 180.0 / PI * (2.0 * Atan( Exp( lat * PI / 180.0)) - PI / 2.0);
return lon;
Distance between 2 points - good for seeing how far off they are
Current point distance from design (meters)
var originShift = 2.0 * PI * 6378137.0 / 2.0;
var lon = (Geometry($feature).x / originShift) * 180.0;
var lat = (Geometry($feature).y / originShift) * 180.0;
lat = 180.0 / PI * (2.0 * Atan( Exp( lat * PI / 180.0)) - PI / 2.0);
return Round(Acos(Sin(lat * PI / 180)*Sin($feature.DesignLat * PI / 180) + Cos(lat * PI / 180)*Cos($feature.DesignLat * PI / 180)*Cos(($feature.DesignLong * PI / 180)-(lon * PI / 180))) * 6371000,2)
Create a date base ID
EvaluationID {expression/expr0}
Concatenate($feature.PointID, "_", text($feature.FieldEvalDate, "Y-MM-DD"))
Calc an avg
AvgTypicalBankfullWidths {expression/expr1}
($feature.BankfullMeters1 + $feature.BankfullMeters2 + $feature.BankfullMeters3 + $feature.BankfullMeters4 + $feature.BankfullMeters5)/5
Calc spacing of the plot
MidTransectSpacing {expression/expr4}
var bfavg = ($feature.BankfullMeters1 + $feature.BankfullMeters2 + $feature.BankfullMeters3 + $feature.BankfullMeters4 + $feature.BankfullMeters5)/5
var rl
if (bfavg < 7.5)
{
rl = 150
}
else {
rl = Round(20 * bfavg,0)
}
if (rl <= 4000)
{
return (rl/10)/2
}
else
{
return 200
}
Lookup a value from the parent for use in the child
DesignLat {expression/expr6}
var sql = "PointID = '" + $feature.PointID + "'";
var tbl = Filter(FeatureSetByName($map,"Points", ['DesignLat'], false), sql);
return First(tbl).DesignLat
Count the number of children
QC Comments {expression/expr31}
var EvaluationID = Concatenate($feature.PointID, "_", text($feature.FieldEvalDate, "Y-MM-DD"))
var sql = "EvaluationID = '" + EvaluationID + "'";
var tbl = Filter(FeatureSetByName($map,"QC Comments", ['EvaluationID'], false), sql);
return count(tbl)
Warn if children forms are missing
Photos and Reach Coordinates {expression/expr30}
var EvaluationID = Concatenate($feature.PointID, "_", text($feature.FieldEvalDate, "Y-MM-DD"))
var sql = "EvaluationID = '" + EvaluationID + "'";
var tbl = Filter(FeatureSetByName($map,"Photos and Reach Coordinates", ['EvaluationID'], false), sql);
if (count(tbl) > 1) {
return "More than one form found"
}
else if (count(tbl) < 1) {
return "No forms found"
}
else {
return "1"
}
Then any of the above can be passed to a form using the {expression/expr0} syntax
arcgis-survey123://?itemID=9a40b535e4534e041e5e417a9db&field:PointID={PointID}&field:EvaluationID={expression/expr0}
Hope that gives you some ideas
Thank you very much!
In terms of cross-platform data sharing, is it possible to use coordinates taken from Survey 123 and used to make a Map Layer to be used in Field Maps?
My survey team regularly does check ups for camera and sensory placements as well as sightings and would like to show the customers these kinds of details (as well as being able to manage it themselves).
In an even more ideal scenario, I am trying to use Microsoft`s Power Automate to store the data in an excel spreadsheet, but I don`t know if Field Maps can acess that kind of data...
All 123 data is just hosted layers that work like any other layer in Arc. So yes we look at 123 data in Field Maps all the time. I would get users to use the webmap and not Excel all the time. A dashboard or something would be more modern. It can be done though just look around. I used to have Python build google sheets.
Yea I actually just posted about it here.
But basically just have an Arcade with your formula then pass via {expression/expr1} (which is the arcade ref)