{"id":2944263,"date":"2025-10-24T03:00:52","date_gmt":"2025-10-24T10:00:52","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2944263"},"modified":"2025-11-06T12:52:01","modified_gmt":"2025-11-06T20:52:01","slug":"stationing-and-offset-capture-using-arcgis-field-maps","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps","title":{"rendered":"Stationing and Offset capture using ArcGIS Field Maps"},"author":3651,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[23261],"tags":[780875,35131,310982,29431,23401],"industry":[],"product":[679821],"class_list":["post-2944263","blog","type-blog","status-publish","format-standard","hentry","category-field-mobility","tag-alignment","tag-autodesk","tag-construction","tag-pipeline","tag-transportation","product-field-maps"],"acf":{"short_description":"Whether capturing assets or inspecting construction activities along linear assets, Field Maps can support capture of stationing and offset value","flexible_content":[{"acf_fc_layout":"content","content":"<p><strong>Stationing and offset<\/strong> is a simple and precise method of locating and capturing information, typically during a construction project, along linear assets like roads, railways, or pipelines.<\/p>\n<p>Stationing is the measurement of distance along a designated centerline or alignment. In ArcGIS, stationing is a measurement value (m-value) that is dynamically associated with a linear feature or route in an Linear Referencing System (LRS). Offset is the perpendicular distance from the centerline to a specific point \u2013 like where the mobile worker is capturing information.<\/p>\n<p>Within a civil construction project, stationing and offset information is captured as part of specific inspection tasks to ensure roads or pipelines are built according to design specifications. Stationing provides reference and when combined with offset, provide accuracy of measurements.<\/p>\n<p>Now, with ArcGIS Field Maps, you can automatically capture <strong>stationing and offset<\/strong> <strong>values<\/strong> along with other route characteristics while filling out inspection form details. Paired with an external GNSS receiver, referenced locations can be accurate to the cm. If a design surface is provided, Field Maps can also validate that current construction is &#8220;at grade&#8221; with design. Please read our <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/earthwork-calculations-from-a-surface-using-arcgis-field-maps\" target=\"_blank\" rel=\"noopener\">earthworks blog article<\/a> for how to configure Field Maps to capture cut and fill measurements.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2945179,"id":2945179,"title":"Blog - Station and Offset (720) v2","filename":"Blog-Station-and-Offset-720-v2.gif","filesize":18684512,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/10\/Blog-Station-and-Offset-720-v2.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps\/blog-station-and-offset-720-v2","alt":"Automatically capture station, offset, and the unique route id of linear features.","author":"3651","description":"Automatically capture station, offset, and the unique route id of linear features.","caption":"Automatically capture station, offset, and the unique route id of linear features.","name":"blog-station-and-offset-720-v2","status":"inherit","uploaded_to":2944263,"date":"2025-10-23 19:18:17","modified":"2025-10-23 19:18:33","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1280,"height":720,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/10\/Blog-Station-and-Offset-720-v2-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/10\/Blog-Station-and-Offset-720-v2.gif","medium-width":464,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/10\/Blog-Station-and-Offset-720-v2.gif","medium_large-width":768,"medium_large-height":432,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/10\/Blog-Station-and-Offset-720-v2.gif","large-width":1280,"large-height":720,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/10\/Blog-Station-and-Offset-720-v2.gif","1536x1536-width":1280,"1536x1536-height":720,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/10\/Blog-Station-and-Offset-720-v2.gif","2048x2048-width":1280,"2048x2048-height":720,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/10\/Blog-Station-and-Offset-720-v2-826x465.gif","card_image-width":826,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/10\/Blog-Station-and-Offset-720-v2.gif","wide_image-width":1280,"wide_image-height":720}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>In this article, we\u2019ll show you how to configure your map to capture these important attributes. Not included below is the expectation that you already have a horizontal alignment published as a linear feature layer that includes m-values. This may be a route stored and managed using <a href=\"https:\/\/www.esri.com\/en-us\/arcgis\/products\/arcgis-roads-highways\/overview\" target=\"_blank\" rel=\"noopener\">ArcGIS Roads and Highways<\/a> or <a href=\"https:\/\/www.esri.com\/en-us\/arcgis\/products\/arcgis-pipeline-referencing\/overview\" target=\"_blank\" rel=\"noopener\">ArcGIS Pipeline Referencing<\/a>, or an alignment that has been imported from a CAD drawing using ArcGIS Pro.<\/p>\n"},{"acf_fc_layout":"sidebar","content":"<p><span data-teams=\"true\">The November 2025 release of <a id=\"menur1881\" class=\"fui-Link ___1q1shib f2hkw1w f3rmtva f1ewtqcl fyind8e f1k6fduh f1w7gpdv fk6fouc fjoy568 figsok6 f1s184ao f1mk8lai fnbmjn9 f1o700av f13mvf36 f1cmlufx f9n3di6 f1ids18y f1tx3yz7 f1deo86v f1eh06m1 f1iescvh fhgqx19 f1olyrje f1p93eir f1nev41a f1h8hb77 f1lqvz6u f10aw75t fsle3fq f17ae5zn\" title=\"https:\/\/www.esri.com\/en-us\/arcgis\/products\/arcgis-for-autocad\/overview\" href=\"https:\/\/www.esri.com\/en-us\/arcgis\/products\/arcgis-for-autocad\/overview\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Link ArcGIS for AutoCAD\">ArcGIS for AutoCAD<\/a> includes support for customization using a .NET SDK. Using a sample provided, civil designers can now create and publish m-enabled polylines to a feature service directly from alignments inside Civil 3D.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center\">To learn more, please read:<\/p>\n<p style=\"text-align: center\"><a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/autocad\/announcements\/whats-new-in-arcgis-for-autocad-november-2025\" target=\"_blank\" rel=\"noopener\">What&#8217;s New in ArcGIS for AutoCAD (November 2025)<\/a><\/p>\n","image_reference":false,"layout":"standard","image_reference_figure":"","snippet":"","spotlight_name":"","section_title":"","position":"Center","spotlight_image":false},{"acf_fc_layout":"content","content":"<p>For step-by-step instructions on how to add expressions to the form in Field Maps Designer, see <a href=\"https:\/\/doc.arcgis.com\/en\/field-maps\/android\/help\/configure-the-form.htm#ESRI_SECTION2_5F65DF4B642C4A4D9CAFE6A4BF6BB676\" target=\"_blank\" rel=\"noopener\" data-cke-saved-href=\"https:\/\/doc.arcgis.com\/en\/field-maps\/android\/help\/configure-the-form.htm#ESRI_SECTION2_5F65DF4B642C4A4D9CAFE6A4BF6BB676\">Add calculated expressions<\/a>. These expressions utilize the <a href=\"https:\/\/developers.arcgis.com\/arcade\/function-reference\/geometry_functions\/#pointtocoordinate\" target=\"_blank\" rel=\"noopener\" data-cke-saved-href=\"https:\/\/developers.arcgis.com\/arcade\/function-reference\/geometry_functions\/#pointtocoordinate\">PointToCoordinate function<\/a> available in the latest release of ArcGIS Field Maps.<\/p>\n<h1>Add Alignment Form Elements<\/h1>\n<p>Using Field Maps Designer, start by adding these attributes and form elements to your form:<\/p>\n<ul>\n<li>Station &#8211; <em>Field type: String, Field name: Station, Input type: Text &#8211; single line<\/em><\/li>\n<li>Offset (ft) &#8211;\u00a0<em>Field type: String, Field name: RelOffset, Input type: Text &#8211; single line<\/em><\/li>\n<li>RouteID &#8211;\u00a0<em>Field type: String, Field name: RouteID, Input type: Text &#8211; single line<\/em><\/li>\n<li>Measure (mile) &#8211;\u00a0<em>Field type double, Field name: Measure, Input type: number &#8211; double<\/em><\/li>\n<\/ul>\n"},{"acf_fc_layout":"image","image":{"ID":2944264,"id":2944264,"title":"Designer","filename":"Designer.png","filesize":125802,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/10\/Designer.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps\/designer","alt":"Use Field Maps Designer to add the necessary form inputs.","author":"3651","description":"Use Field Maps Designer to add the necessary form inputs.","caption":"Use Field Maps Designer to add the necessary form inputs.","name":"designer","status":"inherit","uploaded_to":2944263,"date":"2025-10-21 02:56:44","modified":"2025-10-21 02:57:12","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1224,"height":624,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/10\/Designer-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/10\/Designer.png","medium-width":464,"medium-height":237,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/10\/Designer.png","medium_large-width":768,"medium_large-height":392,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/10\/Designer.png","large-width":1224,"large-height":624,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/10\/Designer.png","1536x1536-width":1224,"1536x1536-height":624,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/10\/Designer.png","2048x2048-width":1224,"2048x2048-height":624,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/10\/Designer-826x421.png","card_image-width":826,"card_image-height":421,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/10\/Designer.png","wide_image-width":1224,"wide_image-height":624}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h1>Calculated expressions<\/h1>\n<p>With the above form elements added, follow the directions below to include calculated expressions that will reference values from your horizontal alignment feature layer.<\/p>\n<h3><strong>Station field<\/strong>: get road alignment station<\/h3>\n<p><span data-cc-colorbutton=\"bg\"><span style=\"color: #999999\">\/\/The measure value is in miles, and it is converted to feet<\/span><br \/>\n<\/span><span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">var<\/span>\u00a0<span style=\"color: #000080\">station<\/span>\u00a0=\u00a0$<span style=\"color: #000080\">feature.Measure<\/span>*<span style=\"color: #339966\">5280<\/span>;<\/span><br \/>\n<span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">var<\/span>\u00a0<span style=\"color: #000080\">IsNegative<\/span>\u00a0=\u00a0<span style=\"color: #339966\">0<\/span>\u00a0<span style=\"color: #999999\">\/\/tracks +\/- values<\/span><\/span><br \/>\n<span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">var<\/span>\u00a0Type\u00a0=\u00a0<span style=\"color: #993300\">&#8216;Feet&#8217;\u00a0<\/span><span style=\"color: #999999\">\/\/&#8221;Meters&#8221; Switch type as needed<\/span><\/span><\/p>\n<p><span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">if<\/span>\u00a0(<span style=\"color: #000080\">station<\/span>\u00a0&lt;\u00a0<span style=\"color: #339966\">0<\/span>) {<\/span><br \/>\n<span data-cc-colorbutton=\"bg\">\u00a0\u00a0<span style=\"color: #999999\">\/\/convert all negative stations to positive and append back the &#8211; at the end<\/span><\/span><br \/>\n<span data-cc-colorbutton=\"bg\">\u00a0\u00a0<span style=\"color: #000080\">station<\/span>\u00a0=\u00a0<span style=\"color: #000080\">station<\/span>\u00a0* &#8211;<span style=\"color: #339966\">1<\/span><\/span><br \/>\n<span data-cc-colorbutton=\"bg\">\u00a0\u00a0<span style=\"color: #000080\">IsNegative<\/span>\u00a0=\u00a0<span style=\"color: #339966\">1<\/span><\/span><br \/>\n<span data-cc-colorbutton=\"bg\">}<\/span><\/p>\n<p><span style=\"color: #999999\" data-cc-colorbutton=\"bg\">\/\/##00+00.0 or ##0+000.0 &#8211; These functions will provide this format regardless the length of the field<\/span><br \/>\n<span style=\"color: #999999\" data-cc-colorbutton=\"bg\">\/\/formatting with decimals after the + sign &#8211; if there is not<\/span><\/p>\n<p><span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">if<\/span>\u00a0(<span style=\"color: #000080\">Type<\/span>\u00a0==\u00a0&#8216;<span style=\"color: #993300\">Feet<\/span>&#8216;) <\/span><span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">var<\/span>\u00a0<span style=\"color: #000080\">StationlbR<\/span>\u00a0=\u00a0<span style=\"color: #000080\">Text<\/span>(<span style=\"color: #000080\">station<\/span>,\u00a0&#8216;<span style=\"color: #993300\">00.0<\/span>&#8216;)<\/span><br \/>\n<span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">if<\/span>\u00a0(<span style=\"color: #000080\">Type<\/span> ==\u00a0&#8216;Meters&#8217;)\u00a0<span style=\"color: #993300\">var<\/span>\u00a0<span style=\"color: #000080\">StationlbR<\/span>\u00a0=\u00a0<span style=\"color: #000080\">Text<\/span>(<span style=\"color: #000080\">station<\/span>,\u00a0&#8216;<span style=\"color: #993300\">000.0<\/span>&#8216;)<\/span><br \/>\n<span style=\"color: #999999\" data-cc-colorbutton=\"bg\">\/\/Getting rid of the two initial character dividing by 100 or 1000. formatting result with 2 zeros and room for more characters<\/span><br \/>\n<span style=\"color: #999999\" data-cc-colorbutton=\"bg\">\/\/using the Split function to extract from the second character from the left of the decimal point<\/span><\/p>\n<p><span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">if<\/span>\u00a0(<span style=\"color: #000080\">Type<\/span>\u00a0==\u00a0&#8216;<span style=\"color: #993300\">Feet<\/span>&#8216;)<\/span><br \/>\n<span data-cc-colorbutton=\"bg\">\u00a0\u00a0<span style=\"color: #993300\">var<\/span>\u00a0<span style=\"color: #000080\">StationlbL<\/span>\u00a0=\u00a0<span style=\"color: #000080\">Text<\/span>(<span style=\"color: #000080\">First<\/span>(<span style=\"color: #000080\">Split<\/span>(<span style=\"color: #000080\">station<\/span>\u00a0\/\u00a0<span style=\"color: #339966\">100<\/span>,\u00a0&#8216;.&#8217;,\u00a0<span style=\"color: #000080\">1<\/span>)),\u00a0&#8216;<span style=\"color: #993300\">###00<\/span>&#8216;)<\/span><br \/>\n<span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">if<\/span>\u00a0(<span style=\"color: #000080\">Type<\/span>\u00a0==\u00a0&#8216;<span style=\"color: #993300\">Meters<\/span>&#8216;)<\/span><br \/>\n<span data-cc-colorbutton=\"bg\">\u00a0\u00a0<span style=\"color: #993300\">var<\/span>\u00a0<span style=\"color: #000080\">StationlbL<\/span>\u00a0=\u00a0<span style=\"color: #000080\">Text<\/span>(<span style=\"color: #000080\">First<\/span>(<span style=\"color: #000080\">Split<\/span>(<span style=\"color: #000080\">station<\/span>\u00a0\/\u00a0<span style=\"color: #339966\">1000<\/span>,\u00a0&#8216;.&#8217;,\u00a0<span style=\"color: #000080\">1<\/span>)),\u00a0&#8216;<span style=\"color: #993300\">###000<\/span>&#8216;)<\/span><br \/>\n<span data-cc-colorbutton=\"bg\">\u00a0\u00a0<span style=\"color: #993300\">var<\/span>\u00a0<span style=\"color: #000080\">Stationlb<\/span>\u00a0=\u00a0<span style=\"color: #000080\">Concatenate<\/span>([<span style=\"color: #000080\">StationlbL<\/span>,\u00a0<span style=\"color: #000080\">StationlbR<\/span>],\u00a0&#8216;<span style=\"color: #993300\">+<\/span>&#8216;)<\/span><br \/>\n<span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">if<\/span>\u00a0(<span style=\"color: #000080\">IsNegative<\/span>\u00a0==\u00a01)\u00a0<span style=\"color: #000080\">Stationlb<\/span>\u00a0=\u00a0&#8216;-&#8216;\u00a0+\u00a0<span style=\"color: #000080\">Stationlb<\/span><\/span><br \/>\n<span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">return<\/span>\u00a0<span style=\"color: #000080\">Stationlb<\/span><\/span><\/p>\n"},{"acf_fc_layout":"content","content":"<h3><strong>Offset (ft) field<\/strong>: get road alignment offset distance (geodetic)<\/h3>\n<p><span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">var<\/span>\u00a0<span style=\"color: #000080\">roads<\/span>\u00a0=\u00a0<span style=\"color: #000080\">FeatureSetByName<\/span>(<span style=\"color: #000080\">$map<\/span>,\u00a0&#8220;<span style=\"color: #993300\">AllRoutes<\/span>&#8220;)<\/span><br \/>\n<span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">var<\/span>\u00a0<span style=\"color: #000080\">nearestFeature<\/span>\u00a0=\u00a0<span style=\"color: #000080\">First<\/span>(<span style=\"color: #000080\">Intersects<\/span>(<span style=\"color: #000080\">roads<\/span>,\u00a0<span style=\"color: #000080\">BufferGeodetic<\/span>(<span style=\"color: #000080\">$feature<\/span>,\u00a0<span style=\"color: #339966\">10<\/span>,\u00a0&#8220;<span style=\"color: #993300\">meter<\/span>&#8220;)));<\/span><\/p>\n<p><span style=\"color: #999999\" data-cc-colorbutton=\"bg\">\/\/Get the nearest point coordinate in the road alignment<\/span><br \/>\n<span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">var<\/span>\u00a0<span style=\"color: #000080\">m_point<\/span>\u00a0=\u00a0<span style=\"color: #000080\">PointToCoordinate<\/span>(<span style=\"color: #000080\">nearestFeature<\/span>,\u00a0<span style=\"color: #000080\">$feature<\/span>).<span style=\"color: #000080\">coordinate<\/span><\/span><\/p>\n<p><span style=\"color: #999999\" data-cc-colorbutton=\"bg\">\/\/Get the geodetic distance between point feature and the nearest point coordinate<\/span><br \/>\n<span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">var<\/span>\u00a0<span style=\"color: #000080\">offsetGeodeticDis_ft<\/span>\u00a0=\u00a0<span style=\"color: #000080\">Round<\/span>(<span style=\"color: #000080\">distanceGeodetic<\/span>(<span style=\"color: #000080\">$feature<\/span>,\u00a0<span style=\"color: #000080\">m_point<\/span>,\u00a0&#8216;<span style=\"color: #993300\">feet<\/span>&#8216;),<span style=\"color: #339966\">2<\/span>)\u00a0\/<span style=\"color: #999999\">\/Return geodetic distance<\/span><\/span><br \/>\n<span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">return<\/span>\u00a0<span style=\"color: #000080\">offsetGeodeticDis_ft<\/span><\/span><\/p>\n<h3><strong>RouteID field<\/strong>: get the route identifier field value of linear referenced feature<\/h3>\n<p><span style=\"color: #999999\" data-cc-colorbutton=\"bg\">\/\/Get the routes layer<\/span><br \/>\n<span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">var<\/span>\u00a0<span style=\"color: #000080\">roads<\/span>\u00a0=\u00a0<span style=\"color: #000080\">FeatureSetByName<\/span>(<span style=\"color: #000080\">$map<\/span>,\u00a0&#8220;<span style=\"color: #993300\">AllRoutes<\/span>&#8220;)<\/span><\/p>\n<p><span style=\"color: #999999\" data-cc-colorbutton=\"bg\">\/\/Find the nearest route feature<\/span><br \/>\n<span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">var<\/span>\u00a0<span style=\"color: #000080\">nearestFeature<\/span>\u00a0=\u00a0<span style=\"color: #000080\">First<\/span>(<span style=\"color: #000080\">Intersects<\/span>(<span style=\"color: #000080\">roads<\/span>,\u00a0<span style=\"color: #000080\">BufferGeodetic<\/span>(<span style=\"color: #000080\">$feature<\/span>,\u00a0<span style=\"color: #339966\">10<\/span>,\u00a0&#8220;<span style=\"color: #993300\">meter<\/span>&#8220;)));<\/span><\/p>\n<p><span style=\"color: #999999\" data-cc-colorbutton=\"bg\">\/\/Return Route ID<\/span><br \/>\n<span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">return<\/span>\u00a0<span style=\"color: #000080\">nearestFeature.RouteID<\/span><\/span><\/p>\n<h3><strong>Measure (miles):<\/strong>\u00a0Get measure m-value in miles<\/h3>\n<p><span style=\"color: #999999\" data-cc-colorbutton=\"bg\">\/\/Get the routes layer<\/span><br \/>\n<span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">var<\/span>\u00a0<span style=\"color: #000080\">roads<\/span>\u00a0=\u00a0<span style=\"color: #000080\">FeatureSetByName<\/span>(<span style=\"color: #000080\">$map<\/span>,\u00a0&#8220;<span style=\"color: #993300\">AllRoutes<\/span>&#8220;)<\/span><\/p>\n<p><span style=\"color: #999999\" data-cc-colorbutton=\"bg\">\/\/Find the nearest route feature<\/span><br \/>\n<span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">var<\/span>\u00a0<span style=\"color: #000080\">nearestFeature<\/span>\u00a0=\u00a0<span style=\"color: #000080\">First<\/span>(<span style=\"color: #000080\">Intersects<\/span>(<span style=\"color: #000080\">roads<\/span>,\u00a0<span style=\"color: #000080\">BufferGeodetic<\/span>(<span style=\"color: #000080\">$feature<\/span>,\u00a0<span style=\"color: #339966\">10<\/span>,\u00a0&#8220;<span style=\"color: #993300\">meter<\/span>&#8220;)));<\/span><\/p>\n<p><span style=\"color: #999999\">\/\/ Find the nearest coordinate\u2019s M value of the search point feature to the route<\/span><br \/>\n<span style=\"color: #993300\">var<\/span>\u00a0<span style=\"color: #000080\">closestM<\/span>=\u00a0<span style=\"color: #000080\">Round<\/span>(<span style=\"color: #000080\">PointToCoordinate<\/span>(<span style=\"color: #000080\">nearestFeature<\/span>,\u00a0<span style=\"color: #000080\">$feature<\/span>).<span style=\"color: #000080\">coordinate<\/span>.<span style=\"color: #000080\">m<\/span>,<span style=\"color: #339966\">4<\/span>)<\/p>\n<p><span style=\"color: #999999\" data-cc-colorbutton=\"bg\">\/\/ Return measure M-value. It uses miles<\/span><br \/>\n<span data-cc-colorbutton=\"bg\"><span style=\"color: #993300\">return<\/span>\u00a0<span style=\"color: #000080\">closestM<\/span><\/span><\/p>\n"},{"acf_fc_layout":"content","content":"<p>After constructing the form and including the horizontal alignment in your map, all that&#8217;s left is to test and deploy your new <strong>stationing and offset<\/strong> solution!<\/p>\n<p>In a related article, learn how you can capture elevation values in Field Maps and compare the elevation from your GNSS receiver to a surface model. Combining stationing and offset with earthwork capture can streamline construction inspection workflows.<\/p>\n"}],"authors":[{"ID":3651,"user_firstname":"Jeff","user_lastname":"Shaner","nickname":"Jeff Shaner","user_nicename":"jeffs","display_name":"Jeff Shaner","user_email":"jshaner@esri.com","user_url":"","user_registered":"2018-03-02 00:15:17","user_description":"Jeff Shaner is a Product Engineering Director with the software products team at Esri. With 30 years experience, Jeff is focused on delivering apps that enable users to work more productively, safely, and effectively. In his spare time, you are likely to find Jeff on the golf course or hockey rink.\u00a0","user_avatar":"<img alt='' src='https:\/\/secure.gravatar.com\/avatar\/6bfe4b81e250b7cf2d6e46c21da33b3f142233feb7bb4770c7416e16b17331f5?s=96&#038;d=blank&#038;r=g' srcset='https:\/\/secure.gravatar.com\/avatar\/6bfe4b81e250b7cf2d6e46c21da33b3f142233feb7bb4770c7416e16b17331f5?s=192&#038;d=blank&#038;r=g 2x' class='avatar avatar-96 photo' height='96' width='96' loading='lazy' decoding='async'\/>"},{"ID":396823,"user_firstname":"Miaogeng","user_lastname":"Zhang","nickname":"Morgan Zhang","user_nicename":"miaogeng_zhangesri-com_esriinc","display_name":"Morgan Zhang","user_email":"miaogeng_zhang@esri.com","user_url":"","user_registered":"2025-08-27 22:24:14","user_description":"With a background in Electrical and Mechanical Engineering and over 15 years of experience in mobile data collection, I have consistently viewed GIS as a complex engineering challenge. As a Principal Product Engineer at Esri, I bring a cross-discipline approach to tackling exciting problems in GIS, like integrating GNSS and other sensors with location-based field applications to create innovative solutions.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/10\/PXL_20210607_011130315.PORTRAIT_3-213x200.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"show_article_image":false,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2020\/06\/ArcGISFieldMaps826.png","wide_image":false,"related_articles":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Stationing and Offset capture using ArcGIS Field Maps<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Stationing and Offset capture using ArcGIS Field Maps\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-06T20:52:01+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps\"},\"author\":{\"name\":\"Jeff Shaner\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/1ac40c1c36df764e66b62b643e486963\"},\"headline\":\"Stationing and Offset capture using ArcGIS Field Maps\",\"datePublished\":\"2025-10-24T10:00:52+00:00\",\"dateModified\":\"2025-11-06T20:52:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps\"},\"wordCount\":8,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"Alignment\",\"Autodesk\",\"Construction\",\"pipeline\",\"Transportation\"],\"articleSection\":[\"Field Operations\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps\",\"name\":\"Stationing and Offset capture using ArcGIS Field Maps\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2025-10-24T10:00:52+00:00\",\"dateModified\":\"2025-11-06T20:52:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Stationing and Offset capture using ArcGIS Field Maps\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/1ac40c1c36df764e66b62b643e486963\",\"name\":\"Jeff Shaner\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6bfe4b81e250b7cf2d6e46c21da33b3f142233feb7bb4770c7416e16b17331f5?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6bfe4b81e250b7cf2d6e46c21da33b3f142233feb7bb4770c7416e16b17331f5?s=96&d=blank&r=g\",\"caption\":\"Jeff Shaner\"},\"description\":\"Jeff Shaner is a Product Engineering Director with the software products team at Esri. With 30 years experience, Jeff is focused on delivering apps that enable users to work more productively, safely, and effectively. In his spare time, you are likely to find Jeff on the golf course or hockey rink.\u00a0\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/jeff-shaner-b77bb311\/\",\"https:\/\/x.com\/jeffshaner\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/jeffs\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Stationing and Offset capture using ArcGIS Field Maps","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps","og_locale":"en_US","og_type":"article","og_title":"Stationing and Offset capture using ArcGIS Field Maps","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2025-11-06T20:52:01+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps"},"author":{"name":"Jeff Shaner","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/1ac40c1c36df764e66b62b643e486963"},"headline":"Stationing and Offset capture using ArcGIS Field Maps","datePublished":"2025-10-24T10:00:52+00:00","dateModified":"2025-11-06T20:52:01+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps"},"wordCount":8,"commentCount":2,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["Alignment","Autodesk","Construction","pipeline","Transportation"],"articleSection":["Field Operations"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps","name":"Stationing and Offset capture using ArcGIS Field Maps","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2025-10-24T10:00:52+00:00","dateModified":"2025-11-06T20:52:01+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Stationing and Offset capture using ArcGIS Field Maps"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/1ac40c1c36df764e66b62b643e486963","name":"Jeff Shaner","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6bfe4b81e250b7cf2d6e46c21da33b3f142233feb7bb4770c7416e16b17331f5?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6bfe4b81e250b7cf2d6e46c21da33b3f142233feb7bb4770c7416e16b17331f5?s=96&d=blank&r=g","caption":"Jeff Shaner"},"description":"Jeff Shaner is a Product Engineering Director with the software products team at Esri. With 30 years experience, Jeff is focused on delivering apps that enable users to work more productively, safely, and effectively. In his spare time, you are likely to find Jeff on the golf course or hockey rink.\u00a0","sameAs":["https:\/\/www.linkedin.com\/in\/jeff-shaner-b77bb311\/","https:\/\/x.com\/jeffshaner"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/jeffs"}]}},"text_date":"October 24, 2025","author_name":"Multiple Authors","author_page":"https:\/\/www.esri.com\/arcgis-blog\/products\/field-maps\/field-mobility\/stationing-and-offset-capture-using-arcgis-field-maps","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/08\/Newsroom-Keyart-Wide-1920-x-1080.jpg","primary_product":"ArcGIS Field Maps","tag_data":[{"term_id":780875,"name":"Alignment","slug":"alignment","term_group":0,"term_taxonomy_id":780875,"taxonomy":"post_tag","description":"","parent":0,"count":3,"filter":"raw"},{"term_id":35131,"name":"Autodesk","slug":"autodesk","term_group":0,"term_taxonomy_id":35131,"taxonomy":"post_tag","description":"","parent":0,"count":38,"filter":"raw"},{"term_id":310982,"name":"Construction","slug":"construction","term_group":0,"term_taxonomy_id":310982,"taxonomy":"post_tag","description":"","parent":0,"count":5,"filter":"raw"},{"term_id":29431,"name":"pipeline","slug":"pipeline","term_group":0,"term_taxonomy_id":29431,"taxonomy":"post_tag","description":"","parent":0,"count":4,"filter":"raw"},{"term_id":23401,"name":"Transportation","slug":"transportation","term_group":0,"term_taxonomy_id":23401,"taxonomy":"post_tag","description":"","parent":0,"count":150,"filter":"raw"}],"category_data":[{"term_id":23261,"name":"Field Operations","slug":"field-mobility","term_group":0,"term_taxonomy_id":23261,"taxonomy":"category","description":"","parent":0,"count":617,"filter":"raw"}],"product_data":[{"term_id":679821,"name":"ArcGIS Field Maps","slug":"field-maps","term_group":0,"term_taxonomy_id":679821,"taxonomy":"product","description":"","parent":36591,"count":153,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=field-maps","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2944263","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/3651"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=2944263"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2944263\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=2944263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=2944263"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=2944263"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=2944263"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=2944263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}