Select to view content in your preferred language

What's new in ArcGIS Field Maps (March 2022)

2097
18
03-28-2022 11:09 AM
JeffShaner
Esri Regular Contributor
4 18 2,097

The March 2022 release of ArcGIS Field Maps is now live! Lots of exciting new enhancements in this release. For full details, please read our blog article on the official ArcGIS Blog site:

https://www.esri.com/arcgis-blog/products/field-maps/field-mobility/whats-new-in-arcgis-field-maps-m...

18 Comments
kmsmikrud
Regular Contributor

I was just looking for what was new in Field Maps in March 2022. Thank-you for the post.

For the arcade expressions, does this work offline?

Also is it possible to get the device altitude for locations captured without an altitude attribute?  Essentially it would be the device altitude at the time of data capture.

Thank-you!,
Kathy

FrankMartin1
New Contributor III

Hi @JeffShaner 

When will the March 2022 release be available for ArcGIS Enterprise?   For example, the GetUser function doesn't seem to be available in the Enterprise Field Maps Arcade expression editor.

Thanks,

Frank

JD1016
by
Occasional Contributor III

The inclusion of calculated expressions is encouraging.  However, I would like to see more specific examples of how you can use a barcode scan event for one field to populate other related fields.  There is "talk" that this can happen but very little in the way of good examples.  I would readily adopt Field Maps over Survey123 if I could locate some corresponding information to address that functionality.

Thank you.

Jeff

JustinReynolds
Regular Contributor

@FrankMartin1 I've recently seen a few posts by the esri staff on this.  Form calculations won't be supported in Enterprise until the 11.0.0 release which is expected July 2022.

JustinReynolds
Regular Contributor

@kmsmikrud Form Calculations are currently only supported in ArcGIS Online and are a property of the map itself.  They work offline since you download the map when you take it offline.

You have access to the current features geometry or anything other features geometry that has already been collected or published.  You can access features from the current layer, a different layer in the same map or the datastore.  Since you have access to the current feature's geometry you don't need an attribute field, but you the feature service/layer will need to be z enabled to get the z value.  Note, this is not the same as accessing the devices altitude at any given time... it would be the altitude of the device at the time you collected your feature assuming it was z enabled and the gps was used to collect the point.  I don't think accessing the device's gps metadata on demand has been exposed yet.

Hope that helps.

JD1016
by
Occasional Contributor III

Thank you for the follow-up Justin.

I was initially encouraged by the potential addition of Field Calculations and especially interested with the example provided in the March 2022 "What's New" newsletter.  It appeared that the user was demonstrating how scanning a barcode, not only filled in the barcode information, but also multiple questions that were correlated to that barcode scan event.  This is exactly what I am looking to achieve in my work.

Just so I understand...the Calculated Expressions setup to achieve this is done in AGO and not within ArcGIS Field Maps?

Can someone reference to me or pass along the Arcade expression that was used to generate this very worthwhile workflow?

Thank you.

JustinReynolds
Regular Contributor

@JD1016 

Form calculations are created/authored either in the new map viewer or in the Field Maps Web App (not in the mobile device).  The calculations are a property of the map itself and not the database like attribute rules, which means they will only work if using the form (ie when using ArcGIS Field Maps Mobile or editing within the form in the Map Viewer).  So they won't work if editing data in the table view.  Also, form calculations are currently only support in ArcGIS Online.  You can't author them in Enterprise as of 10.9.1... you will have to wait until at least 11.0.0.

These are relatively new and examples are hard to come by, but more and more will come.  

To start with, you will need to first scan the barcode, which populates a single field with that barcode.  Then you will setup calculations for fields that will use that barcode information.  Each field you want to calculate will need to decode the barcode field.  This means you will need to know how the barcode is encoded... and there are many encodings, maybe even custom encodings for your organization.  You will need to get comfortable with the Arcade language and it's Form-Calculation Profile.

Here are some links:
https://developers.arcgis.com/arcade/

https://developers.arcgis.com/arcade/guide/profiles/#form-calculation



Here is an example of what's in play, but it will be a bit different than this based on your barcode and how it is encoded.

https://www.esri.com/arcgis-blog/products/collector/field-mobility/capture-barcodes-arcade-collector... 

 

var base62 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

var BARCODE = $feature.BARCODE;

// extract the encoded lot number from the barcode
var lotnumberEncoded = Mid(BARCODE,2,4);

// unencode the lot number
var manufacturerLotCode = 0;
for (var z=0;z < Count(lotnumberEncoded);z++) {
  manufacturerLotCode = manufacturerLotCode * Count(base62) +
    Find(Mid(lotnumberEncoded,z,1), base62);
};

return (manufacturerLotCode);

 

 

You can draw some inspiration from these blogs.
https://community.esri.com/t5/gas-and-pipeline-blog/bg-p/gas-and-pipeline-blog/page/2

 

JD1016
by
Occasional Contributor III

Thank you so much Justin for taking the time and including all the information at your disposal!

Your sources are much better than what I have discovered thus far.

The inclusion of actual code will be immensely helpful in providing a degree of connectivity between theory and reality.

Have a great day!

Jeff

 

JD1016
by
Occasional Contributor III

Thank you again Justin for all the resource information you supplied.  It has been very helpful in understanding barcodes and decoding.  I am hoping you can help me get through this next part that has me a bit stumped on the proper Arcade language.  In addition, my data may be a little more simplistic and the decoding aspect may not be so labor intensive.  For example...I've uploaded a hosted feature layer that contains the following table headings...Meter, Account, Address, Route, and Seq.  As you may have guessed the Meter field actually contains the number in its entirety that will be scanned from the barcode.  The other four entries correspond to that number "as a whole".  For instance, if the barcode scans the meter and the number comes back 314421199 that number is uniquely correlated to Account number...16028700, Address...69944 Elm Street, Route...5, and Seq...680.   So in essence, the entire value of the barcode is uniquely associated with an entry in the hosted feature layer whereby populating the questions in the form would be the direct result of a 1:1 relationship.  I hope that makes sense.

BrittanyBurson
Regular Contributor

@JeffShaner the addition of Linear Referencing will be an absolute game changer for us! Can you confirm for a few of us here what version of Enterprise these March features will be available? Thank you!

MichaelLohr
Occasional Contributor II

@BrittanyBurson

@JeffShaner 

I was, like Brittany, excited about the addition of Linear Referencing abilities in Field Maps. However, when we checked into it further, we were told by ESRI Tech Support (case #03031308) that the functionality will require an  additional ArcGIS Server Extension for Roads and Highways in order for that to work. That extension is fairly expensive and so it will not be practical for us. We serve most data from our ArcGIS Server but do not use the Enterprise platform.

It was not clear how the Linear Referencing function will work for ESRI hosted data, in Field Maps.  Hosted data is used very commonly, I think. Maybe Jeff can elaborate on how LR will work with hosted data on the ESRI servers. We are very interested in having this function. 

JeffShaner
Esri Regular Contributor

Hi Michael and @BrittanyBurson ,

Once again, my apologies for miscommunication with Esri support. To be clear, you DO NOT need Roads and Highways. All that we require is a selected, m-aware polyline for the Find Measure feature action to appear. This will work with hosted feature services in ArcGIS Online as well.

Here is a more recent, detailed blog article on the capability and this is the first point I make in the more details section:https://www.esri.com/arcgis-blog/products/field-maps/field-mobility/linear-referencing-comes-to-arcg...

Thank you for bringing this to my attention.

Jeff

 

JeffShaner
Esri Regular Contributor

@BrittanyBurson - apologies for not answering your question on the version number of enterprise required. Since we simply query the feature to see if it is m-aware, and we have not added any settings required from the ArcGIS Field Maps web app, you are not required to update to a more recent version of ArcGIS Enterprise to use this new functionality.

The requirements listed for use of feature services within our standard requirements doc topic applies. In fact, if its ArcGIS Server feature services, they can be read-only and the only requirement is that they have Global IDs. 

BrittanyBurson
Regular Contributor

@JeffShaner thank you so much for the follow up -- this is really exciting for us if we do not need an Enterprise update to do this. It will save our field workers a lot of time manually entering/eyeballing stations when we do levee inspections.

In your example gif in the blog post, does that point feature class need to be configured a certain type of way for the field to absorb the Measured station value? Or is that example using the github Arcade expression as a calculated expression in the Smart Form? (and if so, when will calculated expressions be coming to Enterprise?)

Thank you!

JeffShaner
Esri Regular Contributor

Hey @BrittanyBurson - thanks for following up.

When you use Collect Here, from the interpolated location, it will take the m-value from the graphic and store it inside the m-value of the new point feature you create. Note we don't expose a way to set the m-value at a vertex level in Field Maps (yet) so it's really only valuable for point features.

In the video I did use calculated expressions as well:

  1. I stored the m-value in a field (which was just taking the m-value from the geometry and shoving it into a double field).
  2. I converted the m-value to a station value and stored it in a string field (hardcoded using US Survey foot from this github repo).
  3. I used featuresets to grab the RouteID field off the route feature and store it for reference as well.

I have then been trying to model offsets from the point on the route to say a culvert or sign by leveraging the copy capability in Field Maps with calculated expressions. It's a fairly complicated workflow that I think we can simplify over time but there are a lot of possibilities with Arcade today.

Calculated expressions do require a portal update unfortunately as there are a lot of pieces to it. They are coming in ArcGIS Enterprise (11.0) (current estimated ship date for Windows/Linux is end of July). If it is all a possibility, I would consider a hybrid approach where your "portal" and web maps are stored in ArcGIS Online and your services are either ArcGIS Server feature services or hosted using replication (10.9.1 introduced bi-directional replication). Again, only if it is possible for your organization. The benefit being that you can stay up to date with all the new capabilities we bring (where there are other dependencies like this).

Thank you too for linking to your post. I must have missed that post from last year. We did not implement stationing notation (display or edit) with this release. In part, we have the challenge that measures are void of any unit and we can't hard code to US Survey Foot or Meters. We'll likely need to introduce settings in the web app to pull it off. Also, we use the native keyboard from iOS/Android and do not implement our own like S123 does. That introduces concerns with accessibility and a host of other things too. We do see stationing notation for display and entry as a candidate for future updates and would like to go after it later this year!

If possible, could you reach out to me directly via your account manager or a DM in Esri Community? We've really just started down this path of LRS support and I want to make sure we ground our future enhancements based on workflow conversations we have with customers like yourself!! Thanks!

BrittanyBurson
Regular Contributor

Hi @JeffShaner -- one more thing.

Would you mind sharing your Arcade to pull in the m-value from the line feature into the new point (as seen in the sample video on your blog post)? I have tried a few variations of snippets found around geonet but no luck so far. Maybe I am overthinking this....

"1. I stored the m-value in a field (which was just taking the m-value from the geometry and shoving it into a double field)."

Thank you!

JeffShaner
Esri Regular Contributor

Here you go Brittany. Though not really needed if the point is geometrically coincident with the line, I added in a buffer as well just for fun:

var measureBuff = Buffer($feature, 2, 'meters');
var routeID = Intersects(measureBuff,
//Make sure you use the layer name in your web map
FeatureSetByName($map,"Routes"));
if (Count(routeID) == 1){
//if multiple routes found you are not going to get a result
//ROUTE_ID is the field name for the "Routes" layer
return First(routeID).ROUTE_ID
};

Also, you might want to bookmark this blog article. We are going to continue updating this with new examples as we come across them:
https://www.esri.com/arcgis-blog/products/field-maps/field-mobility/common-calculated-expressions-fo...

Oh and make sure that the field you are calculating the expression for has editing unchecked. It should do that for you but best to measure twice and cut once (pun intended).

 

TeriL
by
New Contributor

@JeffShaner 

I'm trying out the new Linear Referencing functionality in Field Maps but even after following your advice to Brittany (above), there's still something missing.

I can get it to work using the Find Measure / Collect Here process (it populates the Measure/M field with the station value) but if I update the location of the point to be offset by 50', the Measure/M field is 0. So how do I populate the Measure/M field of my point if I want to collect it 50+ feet away from the stationing centerline?

I thought the buffering code that you provided would be the answer but I must be missing something. How does grabbing the ID of the nearest stationing centerline help me populate the Measure/M field of a point that is offset? It's like I need to update the code that calculates the Measure/M field to work with "Collect With Offset" instead of "Collect Here".

Any help you can provide will be most appreciated.

Teri

About the Author
I am the Group Product Engineering Lead for our Field Apps team at Esri. I work with an amazing team building out our field solutions. Please feel free to ask me anything about ArcGIS Field Maps, Workforce, and Navigator.