{"id":66731,"date":"2015-03-16T10:50:11","date_gmt":"2015-03-16T10:50:11","guid":{"rendered":"http:\/\/www.esri.com\/arcgis-blog\/products\/product\/uncategorized\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net\/"},"modified":"2023-08-23T11:53:03","modified_gmt":"2023-08-23T18:53:03","slug":"measuring-distances-and-area-with-arcgis-runtime-sdk-for-net","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net","title":{"rendered":"Measuring distances and area with ArcGIS Runtime SDK for .NET"},"author":6351,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[738191],"tags":[23641,23451,24291],"industry":[],"product":[36871,36601],"class_list":["post-66731","blog","type-blog","status-publish","format-standard","hentry","category-developers","tag-net","tag-arcgis-runtime","tag-runtime","product-api-net-win-desktop","product-developers"],"acf":{"short_description":"The ArcGIS Runtime SDK for .NET enables developers to build connected or offline Windows apps that provide end users with focused editing...","flexible_content":[{"acf_fc_layout":"content","content":"<p>The <a href=\"https:\/\/developers.arcgis.com\/net\/\">ArcGIS Runtime SDK for .NET<\/a> enables developers to build connected or offline Windows apps that provide end users with focused editing workflows across native Microsoft platforms (Desktop, Store, Phone).\u00a0 A common developer requirement is to implement a measure tool for calculating distances and areas based on a geometric shape sketched by a user who is interacting with the map.\u00a0 The <em>Editor<\/em> provides support for drawing shapes that aid in building a functional measure tool.<\/p>\n<p>This blog post aims to help you build your own measure tool by introducing the following Editor concepts:<\/p>\n<p>I.\u00a0\u00a0\u00a0\u00a0 Sketching with the Editor.<\/p>\n<p>II.\u00a0\u00a0\u00a0 Editor vs. Map Navigation.<\/p>\n<p>III.\u00a0\u00a0 Customizing Editor Symbology.<\/p>\n<p>IV.\u00a0\u00a0 Tracking Editor\u2019s progress.<\/p>\n<p>Two <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/apps\/dn609832.aspx\">universal apps<\/a> \u00a0(Simple and Advanced measure tool) will be used to provide examples that help clarify these concepts; these apps target both\u00a0 <a href=\"http:\/\/msdn.microsoft.com\/en-us\/windows\/apps\/br211386.aspx\">Windows Store<\/a> and <a href=\"http:\/\/dev.windowsphone.com\/en-us\/getstarted\">Windows Phone<\/a> platforms and illustrate that the ArcGIS Runtime SDK for .NET implementation helps facilitate creating shared logic between apps.\u00a0 The Simple measure tool will cover concepts from the first two sections, while the Advanced measure tool will build on those concepts and cover sections III and IV. \u00a0Demo code can be obtained <a href=\"https:\/\/github.com\/Esri\/arcgis-runtime-demos-dotnet\/tree\/master\/src\/MeasureTool\">here<\/a>.<\/p>\n<p><strong><span style=\"text-decoration: underline\">I \u2013 Sketching with the Editor.<\/span><\/strong><\/p>\n<p>In order to measure distance and area on the map, you can work with the <em>Editor <\/em>to <a href=\"https:\/\/developers.arcgis.com\/net\/desktop\/api-reference\/html\/4803e224-52fb-4f82-9d96-5135655837d9.htm\">sketch geometries<\/a> as graphics on the topmost layer of the map.\u00a0 The <a href=\"https:\/\/developers.arcgis.com\/net\/desktop\/api-reference?T_Esri_ArcGISRuntime_Controls_MapView.htm\"><em>MapView<\/em><\/a> control maintains a Graphics overlay collection which can be used to create and display these geometries on a temporary basis. \u00a0The MapView control also provides convenient access to an <a href=\"https:\/\/developers.arcgis.com\/net\/desktop\/api-reference\/html\/P_Esri_ArcGISRuntime_Controls_ViewBase_Editor.htm\">Editor instance<\/a> that will support geometry creation via the <em>RequestShapeAsync<\/em> method. \u00a0Calling <em>RequestShapeAsync<\/em> will return geometry based on a specified <em>DrawShape<\/em> parameter.<\/p>\n<p><a href=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2015\/03\/2_NET_Editor_DrawShape_PolyLine.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-46888 noIMGBackground\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2015\/03\/2_NET_Editor_DrawShape_PolyLine.png\" alt=\"\" width=\"639\" height=\"50\" \/><\/a><\/p>\n<p>Tip:\u00a0 <em>RequestShapeAsync<\/em> is an awaitable task that uses the (TAP) <a href=\"https:\/\/developers.arcgis.com\/net\/desktop\/guide\/asynchronous-programming.htm#GUID-AFE8DEAB-6316-4696-9ABC-7373F979A06F\">Task-based asynchronous pattern<\/a>.<\/p>\n<p>The following code puts the map in sketch mode and returns a polyline geometry upon completion of the asynchronous task.<\/p>\n<p>Example <em>DrawShape<\/em> parameters and the geometry types that are returned based on a user sketch are listed in the following table:<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"240\">\n<p style=\"text-align: justify\" align=\"right\"><strong>DrawShape Parameter<\/strong><\/p>\n<\/td>\n<td style=\"text-align: justify\" valign=\"top\" width=\"240\"><strong>Return Geometry<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"240\">Point<\/td>\n<td valign=\"top\" width=\"240\">MapPoint<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"240\">Polyline,\u00a0 LineSegment,\u00a0 Freehand<\/td>\n<td valign=\"top\" width=\"240\">Polyline<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"240\">Polygon, Triangle, RectangleCircle, Ellipse, Arrow<\/td>\n<td valign=\"top\" width=\"240\">Polygon<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"240\">Envelope<\/td>\n<td valign=\"top\" width=\"240\">Envelope<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Once a geometry is returned, it can be analyzed using the <a href=\"https:\/\/developers.arcgis.com\/net\/desktop\/api-reference\/html\/T_Esri_ArcGISRuntime_Geometry_GeometryEngine.htm\"><em>GeometryEngine<\/em><\/a> to compute area and length (including Geodesic calculations).<\/p>\n<p><strong><span style=\"text-decoration: underline\">II \u2013 Editor vs. Map Navigation.<\/span><\/strong><\/p>\n<p>While digitizing a new geometry for measurement, you may need to interact with the map.\u00a0 For example, you may need to change the current map position by panning to a new location or zooming to an area of interest.<\/p>\n<p>It is helpful to gain some familiarity with some of the Editor properties and commands that can be used to distinguish whether or not the Editor needs to respond to a platform event.\u00a0 Some of the key properties and commands are listed in the following table:<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"240\"><strong>Name<\/strong><\/td>\n<td valign=\"top\" width=\"240\"><strong>Property \/ Command<\/strong><\/td>\n<td valign=\"top\" width=\"240\"><strong>Use When:<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"240\">IsActive<\/td>\n<td valign=\"top\" width=\"240\">Property<\/td>\n<td valign=\"top\" width=\"240\">Indicate when the Editor is in the middle of a sketch or edit<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"240\">IsSuspended<\/td>\n<td valign=\"top\" width=\"240\">Property<\/td>\n<td valign=\"top\" width=\"240\">Indicate when the Editor has been suppressed from responding to a platform event property<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"240\">Cancel<\/td>\n<td valign=\"top\" width=\"240\">Command<\/td>\n<td valign=\"top\" width=\"240\">Deactivate the Editor without returning geometry<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"240\">Complete<\/td>\n<td valign=\"top\" width=\"240\">Command<\/td>\n<td valign=\"top\" width=\"240\">Allow the Editor to return geometry before it is deactivated<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The following code example illustrates how to enable a Suspend button (based on the IsActive property) and a Complete command.<\/p>\n<p><a href=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2015\/03\/NET_Editor_AppBars2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"noIMGBackground\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2015\/03\/NET_Editor_AppBars2.png\" alt=\"\" width=\"600\" height=\"203\" \/><\/a><\/p>\n<p><strong><span style=\"text-decoration: underline\">III Customizing Editor Symbology.<\/span><\/strong><\/p>\n<p>The following image shows the default symbology used by the edit tools of the Editor:<\/p>\n<p><a href=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2015\/03\/NET_Editor_DefaultSymbols1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-47620 noIMGBackground\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2015\/03\/NET_Editor_DefaultSymbols1.png\" alt=\"\" width=\"383\" height=\"255\" \/><\/a><\/p>\n<p>There are various use cases for overriding the Editor symbology:<\/p>\n<ul>\n<li>Display incremental distances during measure<\/li>\n<li>Number vertices to indicate their position in the collection<\/li>\n<li>De-emphasize the mid-vertex<\/li>\n<li>Disregard vertex selection state.<\/li>\n<\/ul>\n<div><span style=\"font-size: 16px;line-height: 24px\"><a href=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2015\/03\/NET_Editor_CustomSymbols.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-46847 noIMGBackground\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2015\/03\/NET_Editor_CustomSymbols.png\" alt=\"\" width=\"177\" height=\"189\" \/><\/a><\/span><\/div>\n<p>In addition, there are several approaches for providing custom symbology based on the application requirements.<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"240\"><strong>Approach<\/strong><\/td>\n<td valign=\"top\" width=\"240\"><strong>Use When:<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"240\">Pass a symbol to <em>RequestShapeAsync()<\/em><\/td>\n<td valign=\"top\" width=\"240\">Overriding the symbol used while sketching a geometry shape.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"240\">Use <em>EditorConfiguration<\/em><\/td>\n<td valign=\"top\" width=\"240\">Defining a new symbol for an edit tool.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"240\">Sub-class Editor and override the <em>OnGenerateSymbol <\/em>method<\/td>\n<td valign=\"top\" width=\"240\">Defining a new symbol for an edit tool that requires a CompositeSymbol<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Tip: <a href=\"https:\/\/developers.arcgis.com\/net\/desktop\/api-reference\/html\/8d0c59f6-66d8-4602-911a-6d9d08e826a6.htm\">EditorConfiguration<\/a> is useful for modifying both symbology and general editor capabilities at the same time.<\/p>\n<p>The following example overrides the symbol for the requested geometry shape:<\/p>\n<p><a href=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2015\/03\/two_DrawShapeSymbol1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-46890 noIMGBackground\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2015\/03\/two_DrawShapeSymbol1.png\" alt=\"\" width=\"701\" height=\"48\" \/><\/a><\/p>\n<p>The next example uses EditorConfiguration to provide an edit tool with a symbol that matches the required geometry type:<\/p>\n<p><a href=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2015\/03\/NET_Editor_PageResources2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-46886 noIMGBackground\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2015\/03\/NET_Editor_PageResources2.png\" alt=\"\" width=\"711\" height=\"179\" \/><\/a><\/p>\n<p>The final code example demonstrates sub-classing the Editor and overriding the OnGenerateSymbol method:<\/p>\n<p><a href=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2015\/03\/NET_Editor_SubClassEditor21.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-46895 noIMGBackground\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2015\/03\/NET_Editor_SubClassEditor21.png\" alt=\"\" width=\"734\" height=\"213\" \/><\/a><\/p>\n<p><strong><span style=\"text-decoration: underline\">IV \u2013 Tracking Editor\u2019s progress.<\/span><\/strong><\/p>\n<p>The third optional parameter of RequestShapeAsync can be used to track sketch progress; this is useful when you need a measure tool to calculate lengths between intermediate segments as you digitize a geometry.\u00a0 This parameter (of type <em>IProgress&lt;GeometryEditStatus&gt;<\/em>) is responsible for capturing various changes to vertices (add, move or delete).<\/p>\n<p>Tapping into progress reporting requires two steps:<\/p>\n<ol>\n<li>Declare an instance of Progress&lt;GeometryEditStatus&gt;, which accepts an Action delegate that takes the same parameter type<\/li>\n<li>Pass the Progress instance a parameter to <em>RequestShapeAsync<\/em>.<\/li>\n<\/ol>\n<p>The following code illustrates the two steps that are needed to start tracking:<\/p>\n<p><a href=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2015\/03\/NET_Editor_Monitor_Progress24.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-46897 noIMGBackground\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2015\/03\/NET_Editor_Monitor_Progress24.png\" alt=\"\" width=\"711\" height=\"87\" \/><\/a><\/p>\n<p>The <em>GeometryEditStatus <\/em>\u00a0delegate is used to capture the current state of geometry through its <em>NewGeometry<\/em> property.<\/p>\n<p><a href=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2015\/03\/NET_Editor_OnStatus1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-46899 noIMGBackground\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2015\/03\/NET_Editor_OnStatus1.png\" alt=\"\" width=\"571\" height=\"106\" \/><\/a><\/p>\n<p>GeometryEditStatus also contains other useful information pertaining to geometry and vertex updates:<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"240\"><strong>Property<\/strong><\/td>\n<td valign=\"top\" width=\"240\"><strong>Use When:<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"240\"><em>\u00a0GeometryEditAction<\/em><\/td>\n<td valign=\"top\" width=\"240\">Determining whether a geometry was rotated, scaled, moved, or a vertex was added, moved, or deleted<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"240\"><em>OldGeometry<\/em><\/td>\n<td valign=\"top\" width=\"240\">Getting the geometry before an edit.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"240\"><em>OldVertex<\/em><\/td>\n<td valign=\"top\" width=\"240\">Getting the removed vertex or the vertex prior to it being moved.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"240\"><em>NewVertex<\/em><\/td>\n<td valign=\"top\" width=\"240\">Getting the added vertex or the vertex after it was moved.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>In conclusion, the Editor exposes properties, commands, configuration parameters and override methods for customization and progress reporting.\u00a0 All of these capabilities in combination enable you to quickly sketch geometries and perform necessary calculations to implement robust measurement and analysis capabilities.<\/p>\n<p>To gain familiarity with other general editing workflows, download the ArcGIS Runtime SDK for .NET samples from <a href=\"https:\/\/github.com\/Esri\/arcgis-runtime-samples-dotnet\">GitHub<\/a>, or take advantage of the newly enhanced ability to search and browse the samples with the <a href=\"https:\/\/developers.arcgis.com\/net\/sample-code\/\">ArcGIS for Developers<\/a> site.<\/p>\n<p>If you are interested in a seeing another example of a measure tool that calculates both area and distance as a component of a more complex implementation, check out the <a href=\"https:\/\/github.com\/Esri\/arcgis-portalviewer-dotnet\">ArcGIS Portal Viewer for .NET<\/a>. \u00a0\u00a0This application has a rich set of functionality, illustrating MVVM patterns and tight integration with the ArcGIS Platform.<\/p>\n<p>As always the development team welcomes your feedback and would like to hear examples of how you successfully created custom editing solutions using the ArcGIS Runtime SDK for .NET!<\/p>\n"}],"authors":[{"ID":6351,"user_firstname":"Jennifer","user_lastname":"Nery","nickname":"Jennifer Nery","user_nicename":"jenniferdnery","display_name":"Jennifer Nery","user_email":"JNery@esri.com","user_url":"","user_registered":"2018-03-02 00:18:18","user_description":"Jennifer Nery is a Principal Software Development Engineer for the ArcGIS Maps SDK for .NET with over 15 years of experience in designing and developing APIs, toolkits, samples, and applications for desktop and mobile. Jennifer actively participates in the full development of utility networks, enhancement of feature layers, expanding support for branch versioning and session management, and is passionate about seeing these awesome features come to life for developers in ArcGIS Maps SDK for Native Apps!","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/Profile2-465x465.jpeg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"related_articles":"","card_image":false,"wide_image":false},"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>Measuring distances and area with ArcGIS Runtime SDK for .NET<\/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\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Measuring distances and area with ArcGIS Runtime SDK for .NET\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net\" \/>\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=\"2023-08-23T18:53:03+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\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\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net\"},\"author\":{\"name\":\"Jennifer Nery\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/a3b7b2d1ed972b03f0e342613bc2b690\"},\"headline\":\"Measuring distances and area with ArcGIS Runtime SDK for .NET\",\"datePublished\":\"2015-03-16T10:50:11+00:00\",\"dateModified\":\"2023-08-23T18:53:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net\"},\"wordCount\":10,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\".NET\",\"ArcGIS Runtime\",\"runtime\"],\"articleSection\":[\"Developers\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net\",\"name\":\"Measuring distances and area with ArcGIS Runtime SDK for .NET\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2015-03-16T10:50:11+00:00\",\"dateModified\":\"2023-08-23T18:53:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Measuring distances and area with ArcGIS Runtime SDK for .NET\"}]},{\"@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\/a3b7b2d1ed972b03f0e342613bc2b690\",\"name\":\"Jennifer Nery\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/Profile2-465x465.jpeg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/Profile2-465x465.jpeg\",\"caption\":\"Jennifer Nery\"},\"description\":\"Jennifer Nery is a Principal Software Development Engineer for the ArcGIS Maps SDK for .NET with over 15 years of experience in designing and developing APIs, toolkits, samples, and applications for desktop and mobile. Jennifer actively participates in the full development of utility networks, enhancement of feature layers, expanding support for branch versioning and session management, and is passionate about seeing these awesome features come to life for developers in ArcGIS Maps SDK for Native Apps!\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/jenniferdnery\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Measuring distances and area with ArcGIS Runtime SDK for .NET","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\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net","og_locale":"en_US","og_type":"article","og_title":"Measuring distances and area with ArcGIS Runtime SDK for .NET","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2023-08-23T18:53:03+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net"},"author":{"name":"Jennifer Nery","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/a3b7b2d1ed972b03f0e342613bc2b690"},"headline":"Measuring distances and area with ArcGIS Runtime SDK for .NET","datePublished":"2015-03-16T10:50:11+00:00","dateModified":"2023-08-23T18:53:03+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net"},"wordCount":10,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":[".NET","ArcGIS Runtime","runtime"],"articleSection":["Developers"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net","name":"Measuring distances and area with ArcGIS Runtime SDK for .NET","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2015-03-16T10:50:11+00:00","dateModified":"2023-08-23T18:53:03+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-net-win-desktop\/developers\/measuring-distances-and-area-with-arcgis-runtime-sdk-for-net#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Measuring distances and area with ArcGIS Runtime SDK for .NET"}]},{"@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\/a3b7b2d1ed972b03f0e342613bc2b690","name":"Jennifer Nery","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/Profile2-465x465.jpeg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/01\/Profile2-465x465.jpeg","caption":"Jennifer Nery"},"description":"Jennifer Nery is a Principal Software Development Engineer for the ArcGIS Maps SDK for .NET with over 15 years of experience in designing and developing APIs, toolkits, samples, and applications for desktop and mobile. Jennifer actively participates in the full development of utility networks, enhancement of feature layers, expanding support for branch versioning and session management, and is passionate about seeing these awesome features come to life for developers in ArcGIS Maps SDK for Native Apps!","url":"https:\/\/www.esri.com\/arcgis-blog\/author\/jenniferdnery"}]}},"text_date":"March 16, 2015","author_name":"Jennifer Nery","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/jenniferdnery","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/08\/Newsroom-Keyart-Wide-1920-x-1080.jpg","primary_product":"ArcGIS Runtime SDK for .NET","tag_data":[{"term_id":23641,"name":".NET","slug":"net","term_group":0,"term_taxonomy_id":23641,"taxonomy":"post_tag","description":"","parent":0,"count":65,"filter":"raw"},{"term_id":23451,"name":"ArcGIS Runtime","slug":"arcgis-runtime","term_group":0,"term_taxonomy_id":23451,"taxonomy":"post_tag","description":"","parent":0,"count":91,"filter":"raw"},{"term_id":24291,"name":"runtime","slug":"runtime","term_group":0,"term_taxonomy_id":24291,"taxonomy":"post_tag","description":"","parent":0,"count":12,"filter":"raw"}],"category_data":[{"term_id":738191,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":738191,"taxonomy":"category","description":"","parent":0,"count":422,"filter":"raw"}],"product_data":[{"term_id":36871,"name":"ArcGIS Runtime SDK for .NET","slug":"api-net-win-desktop","term_group":0,"term_taxonomy_id":36871,"taxonomy":"product","description":"","parent":36601,"count":65,"filter":"raw"},{"term_id":36601,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":36601,"taxonomy":"product","description":"","parent":0,"count":763,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=api-net-win-desktop","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/66731","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\/6351"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=66731"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/66731\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=66731"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=66731"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=66731"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=66731"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=66731"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}