Sie sind auf Seite 1von 420

ArcGIS Runtime SDK for

.NET

Copyright 1995-2015 Esri. All rights reserved.


ArcGIS Runtime SDK for .NET

Table of Contents
Developer's guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
What you can do . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Get started
Install the SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Install the toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Add ArcGIS Runtime SDK references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Class diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Tutorials
Add a map to your app . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Use ArcGIS basemaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Access feature data in the cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Access maps and content from your portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Add geocoding to your app . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Get driving directions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Create an offline app . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Use the MVVM design pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Fundamentals
Maps and layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Layer Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Features and graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Graphics rendering modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Symbols and renderers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Spatial references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Work with local services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Asynchronous programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Threading considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Guidelines, best practices, tips, and tricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Build a map
Use a MapView to display a map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Navigate the map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Work with web maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Add layers with code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Create an offline map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Multiple maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Display information
Add graphics and text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Label map features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Display map overlays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Show device location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Display military messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Work with 3D

Copyright 1995-2015 Esri. All rights reserved. 2


ArcGIS Runtime SDK for .NET

Create a scene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175


Navigate a scene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Add layers to your scene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Display graphics in a scene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Search
Search for features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Search for places . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Search for coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Edit features
Editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Edit features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Sync offline edits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Work with feature attachments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Route and get directions
Find a route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Display driving directions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Perform analysis
Geometry operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Geoprocessing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Run a geoprocessing task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
Geoprocessing task parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Use the cloud and servers
Access the ArcGIS platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Search portal content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Access portal content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Use ArcGIS token authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Use OAuth 2.0 authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Supported web map features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Release your app
License your app . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Deploy an app . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Create an ArcGIS Runtime deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Design considerations
Design considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Determine your app/map pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Provide map tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Performance considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Native vs. web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Reference
Release notes for 10.2.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Release notes for 10.2.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303

Copyright 1995-2015 Esri. All rights reserved. 3


ArcGIS Runtime SDK for .NET

System requirements for 10.2.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307


System requirements for 10.2.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Essential vocabulary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Supported geodatabase formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Geographic coordinate systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Projected coordinate systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Local Server package support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
Local Server raster support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Local Server geoprocessing tools support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
Supported languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
Legal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420

Copyright 1995-2015 Esri. All rights reserved. 4


ArcGIS Runtime SDK for .NET

Developer's guide
This guide describes how to use ArcGIS Runtime SDK for .NET to build Windows (Desktop, Store, or Phone) apps that incorporate
capabilities such as mapping, query, analysis, routing and navigation, and more. A great place to start developing once you've installed
the SDK is to add a map to your app or browse the wide variety of samples. For release notes and known issues with this release, see the
Release notes topic.
ArcGIS Runtime SDK for .NET enables developers to create applications for Windows Desktop, Windows Store app, and Windows Phone
platforms with high-quality interactive mapping, queries, geocoding, routing, data editing, and advanced geographic analysis.
The three APIs included with the SDK share a common design and implementation that enables the reuse of the application logic between
apps built for each platform. Functionally, the SDK combines the powerful, high performance mapping and analysis capabilities of the
ArcGIS Runtime with features of the ArcGIS platform that supports connected and disconnected workflows.
ArcGIS Runtime SDK for .NET allows your apps to provide functionality like the following:
Display an interactive map with rich cartography that contains data from a variety of sources
Add features, rasters, and basemaps stored locally on a device
Use a powerful set of tasks that leverage ArcGIS capabilities to analyze your maps and provide information to your users
Search, query, and identify geographic features using any combination of spatial, attribute, or temporal criteria
Calculate optimal routes between locations and generate directions
Enable users to collect and edit data in the field
Synchronize data collected in the field with your enterprise geodatabase
Reuse your app's logic across the Windows Desktop, Windows Store app, and Windows Phone platforms

What you get


In addition to the three platform-specific APIs (Windows Desktop API, Windows Store apps API, and WIndows Phone API), ArcGIS
Runtime SDK for .NET includes the following documentation, samples, and utilities.
Online developer's guide (the one you're currently reading), where you can download the SDK setup, get information about getting
started, and browse conceptual overviews of the ArcGIS Runtime SDK for .NET.
API reference for each platform (Windows Desktop, Windows Store, and Windows Phone) that describes the details of all public
classes and members.
A comprehensive set of samples for each platform.
A Toolkit that provides the source code for controls for ArcGIS Runtime SDK for .NET apps, including a legend, scale line, sign-in
dialog, and feature data form.
The Portal viewer app, a fully functional Windows Store app that illustrates best practices for building an ArcGIS Runtime app
using the MVVM design pattern and working with maps available in an ArcGIS Online organization or on-premises Portal for
ArcGIS.
The ArcGIS Runtime SDK for .NET forum where you can ask questions and interact with other ArcGIS Runtime SDK developers.
An online community of ArcGIS developers, including @ArcGISRuntime on Twitter, ArcGIS developer blogs, and ArcGIS Runtime
developer forums.

Copyright 1995-2015 Esri. All rights reserved. 5


ArcGIS Runtime SDK for .NET

What you can do


ArcGIS Runtime SDK for .NET enables developers to create applications for the Windows Desktop, Windows Store app, and Windows
Phone platforms with high-quality interactive mapping, queries, geocoding, routing, data editing, and advanced geographic analysis.
The three APIs included with the SDK share a common design and implementation, that enables the reuse of application logic between
apps built for each platform. Functionally, the SDK combines the powerful, high performance mapping and analysis capabilities of the
ArcGIS Runtime with features of the ArcGIS platform to support connected and disconnected workflows.
ArcGIS Runtime SDK for .NET allows you to:
Open maps with rich cartography from ArcGIS Online, your ArcGIS Portal, or ArcGIS Server
Add features, rasters, and basemaps stored locally on a device
Combine data from online services and local sources to create workflow specific maps
Visualize data in three dimensions
Display maps in one of many projected or geographic coordinate systems
Identify features in the map and view rich pop-up windows authored in ArcGIS Online or ArcGIS Professional
Use a powerful set of tasks that leverage ArcGIS capabilities to analyze your maps and provide information to your users
Search for features in a map using any combination of attribute, spatial, or temporal criteria
Perform advanced geometric operations locally
Execute sophisticated geoprocessing tasks and display their results
Find locations using an address (geocode)
Determine an approximate address based on a location (reverse geocode)
Calculate optimal routes between locations and generate directions
Work with your devices' location, including support for GPS
Find closest facilities and service areas on a network
Collect locations by sketching on the map or using the device's location sensor
Enable users to collect and edit data in the field
Synchronize data collected in the field with your enterprise geodatabase
Use the .NET Task model to build robust, responsive applications
Take advantage of the MVVM design pattern to separate the UI from your app logic
Reuse your app logic across the Windows Desktop, Store app, and Phone platforms
Use templates and controls integrated with Visual Studio to build ArcGIS into your Windows app projects
Natively support 32-bit and 64-bit Windows platforms
Deploy apps independently of other ArcGIS software versions on the target machine
Allow users to unlock application functionality by authenticating themselves with the ArcGIS platform or create OEM-style
applications with embedded licenses
Deploy only the ArcGIS Runtime components required by your app to minimize the footprint

Copyright 1995-2015 Esri. All rights reserved. 6


ArcGIS Runtime SDK for .NET

Install the SDK


The ArcGIS Runtime SDK for .NET contains APIs for developing for Windows Desktop, Windows Store, and Windows Phone. Any or all of
the three APIs can be installed when running the SDK setup.

Download the SDK


Steps:
1. Make sure your development computer meets the system requirements.
2. Download the SDK from the downloads page. You'll need to log in with an ArcGIS developer account. Sign up for a free
account if you don't already have one.
3. Save the file to a location on your development machine.

Install the ArcGIS Runtime SDK for .NET


The ArcGIS Runtime SDK for .NET setup can install any of the three .NET APIs you want to use (Windows Desktop, Windows Store, and
Windows Phone).

Note: All three APIs install when running the default setup if the system requirements for each are met. If you don't
have the option to install one of the APIs, check your development machine to ensure it meets the system
requirements for that API.

Steps:
1. Double-click the setup file (downloaded previously) to start the setup.
2. Click Next in the welcome screen.

3. If you accept the license agreement, click the I accept the license agreement option and click Next.

Copyright 1995-2015 Esri. All rights reserved. 7


ArcGIS Runtime SDK for .NET

4. In the Select Features panel, choose each API you want to install.
5. Click Change if you want to install to a location other than the default.
6. Click Next.

7. Finally, click Install in the last panel of the wizard to begin the installation.

The installation takes a few moments to copy and register the required files.
Once your ArcGIS Runtime SDK for .NET successfully installs, you are ready to start programming with the ArcGIS
Runtime SDK for .NET.

Copyright 1995-2015 Esri. All rights reserved. 8


ArcGIS Runtime SDK for .NET

What you get


ArcGIS Runtime SDK for .NET contains everything you need to develop ArcGIS Runtime apps.
Libraries.NET assemblies and controls.
Visual Studio project and page templatesto give you a head start on your app development.
Online documentationSDK Guide and API Reference doc for all three ArcGIS Runtime for .NET APIs, that is, Windows Desktop
API, Windows Store API, and the Windows Phone API.
Code samplesVisual Studio sample projects available on GitHub. See the code samples page for more information.
ToolkitAddtional controls to enhance your ArcGIS Runtime applications. Follow the instructions in the Install the toolkit topic to
add the toolkit to your Visual Studio projects.

Next steps
You are ready to begin developing ArcGIS applications using the ArcGIS Runtime SDK for .NET. Here are a few ways you can get started:
Work through the Add a map to your app tutorial.
Explore code samples.
Explore SDK concepts and features.
Install the toolkit

Related Topics
Tutorial: Add a map to your app
Install the toolkit
System requirements

Copyright 1995-2015 Esri. All rights reserved. 9


ArcGIS Runtime SDK for .NET

Install the toolkit


The ArcGIS Runtime SDK for .NET Toolkit is an open source project available on GitHub that provides additional controls and utilities that
you may find useful when creating ArcGIS Runtime SDK for .NET apps. To use the toolkit, download the source code from GitHub and
build it locally, or install it in your Visual Studio project from a NuGet package.

Note: The toolkit is not required for building ArcGIS Runtime apps. It contains additional controls and utilities that
facilitate implementing some functionality in your app. The ArcGIS Runtime SDK for .NET Toolkit GitHub
repository describes the features of the toolkit.
The easiest way to use the toolkit in your project is to install ArcGIS Runtime SDK for .NET Toolkit NuGet Package using the Visual Studio
NuGet Package Manager.
1. Right-click your project node in the Visual Studio Solution Explorer window
2. Choose Manage NuGet Packages from the context menu

3. In the dialog box, search for ArcGIS Runtime.


4. Click Install in the listing for ArcGIS Runtime SDK for .NET - Toolkit to add the package to your project.

If you want to download the source code for the toolkit and include it in your project, follow these steps to get the toolkit solution from
GitHub.
1. Clone the ArcGIS Runtime SDK for .NET Toolkit GitHub repository to your desktop or download the ZIP file.
2. Open the Esri.ArcGISRuntime.Toolkit.sln solution in Visual Studio.
3. Build the solution for the platform and configuration you need.
4. In the project for your app, add a reference to the toolkit by browsing to the output assembly created by the build.
See the README.md file for the arcgis-toolkit-dotnet repository for a description of toolkit features and additional information.

Copyright 1995-2015 Esri. All rights reserved. 10


ArcGIS Runtime SDK for .NET

Add ArcGIS Runtime SDK references


In order to work with ArcGIS Runtime SDK for .NET using Visual Studio, you will need to reference the assembly in your project and also
add any required XML namespace references in your XAML. This process is not unique to ArcGIS Runtime SDK for .NET, you will follow it
for any additional assembly you want to use in your project.
The following steps guide you through creating a new Visual Studio project for your Windows Store application. You will also learn how to
add the proper project and namespace references for working with ArcGIS Runtime SDK for .NET classes. You can follow these same
basic steps for every ArcGIS Runtime SDK for .NET project you create.

Tip: ArcGIS Runtime SDK for .NET provides a project template for creating your mapping app, called ArcGIS
Runtime 10.2.7 for .NET App. Creating your project from the template will add the appropriate references
and a page with a map view containing a single base layer. In this tutorial, you'll build your app from a blank
template.
Create a Windows Store app
You'll use Visual Studio to create a Windows Store app.
Steps:
1. Open a supported version of Microsoft Visual Studio.
2. Choose File > New > Project (or click New Project on the Start page) to create a project.
3. Click Store Apps > Windows Apps > Blank App (Windows) in the New Project dialog box (you can create your project in
either C# or VB .NET).
Note: Visual Studio 2015 organizes project types slightly differently. You'll find Store projects under
Windows 8 > Windows

Tip: If you decide to use the ArcGIS Runtime template, you will not need to complete the steps
described in this topic.

4. Choose a folder location for your new project and give it a name.

5. Click OK to create the project.


Your project opens in Visual Studio and contains a single page called MainPage.xaml.
Next, you'll add a reference to the ArcGIS Runtime SDK for .NET API assembly.

Add a project reference to ArcGIS Runtime


When you create a new project from one of the standard templates, Visual Studio does not know about the ArcGIS Runtime. To use the
ArcGIS Runtime classes, you must add a reference to the ArcGIS Runtime assembly in your project.

Steps:
1. Right-click the References node under your project listing in the Visual Studio Solution Explorer window, and click Add
Reference in the context menu.
2. Check the listing for the ArcGIS Runtime for Windows Store apps assembly under Windows 8.1 > Extensions.

Copyright 1995-2015 Esri. All rights reserved. 11


ArcGIS Runtime SDK for .NET

3. Click OK to add the reference to ArcGIS Runtime for .NET.

Note: In order for your app to build, you need to specify a build target for the project. The default value of
Any CPU will not work and is why the new references are shown with a yellow warning icon.
You will now specify a build platform for the app.
4. Choose BUILD > Configuration Manager.
5. Choose x86 in the Active solution platform drop-down menu. This will target a 32-bit platform for the app.

6. Click Close in the Configuration Manager dialog box.


The warning icons no longer appear in the Solution Explorer window for these references.

Add XML namespace references


In addition to the project reference you made to the ArcGIS Runtime assembly, you must also add one or several XML namespace
references in your XAML page (MainPage.xaml, for example).

Steps:
1. Open the MainPage.xaml file in the Visual Studio designer.
2. Go to the XAML view of the designer and add the following XML namespace reference to the Page XAML element. Visual
Studio offers Intellisense to help complete the URL portion of the statement.
xmlns:esri="using:Esri.ArcGISRuntime.Controls"
xmlns:layers="using:Esri.ArcGISRuntime.Layers"

The Esri.ArcGISRuntime.Controls namespace contains the MapView control and Map class that you will need if you
want to place a map on your page. Esri.ArcGISRuntime.Layers contains, as you might expect, a variety of Layer

Copyright 1995-2015 Esri. All rights reserved. 12


ArcGIS Runtime SDK for .NET

classes that can be added to the Map. You can now use the prefixes for the references (esri and layers) to add objects
from these namespaces. Depending on the objects you need to work with in your XAML, you may need to make additional
namespace references. When making a reference, Visual Studio Intellisense helps you by displaying a list of available
namespaces, as shown below.

Tip: For readability, define your XML namespaces with prefixes that allow you to easily identify to
which namespace it refers. For example, use sym to refer to the
Esri.ArcGISRuntime.Symbology namespace. Being consistent in your naming also allows
you to move XAML between projects without having to make edits.

3. You can now use the XML prefixes you've defined to work with ArcGIS Runtime SDK objects in your XAML. The following
code sample defines a new MapView control and Map containing a single basemap layer.
<esri:MapView x:Name="MyMapView">
<esri:Map x:Name="MyMap">
<layers:ArcGISTiledMapServiceLayer ID="BaseMap"
ServiceUri="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/>
</esri:Map>
</esri:MapView>

The process described in this topic is generally the first thing you'll do for each ArcGIS Runtime SDK for .NET project you create from a
standard Visual Studio template. The details for adding these references differ slightly between SDK platforms.

Related Topics
Tutorial: Add a map to your app

Copyright 1995-2015 Esri. All rights reserved. 13


ArcGIS Runtime SDK for .NET

Class diagrams
The following object model diagrams (OMD) describe the classes available in the ArcGIS Runtime assemblies.
Overview
Esri.ArcGISRuntime.ArcGISServices
Esri.ArcGISRuntime.Controls
Esri.ArcGISRuntime.Data
Esri.ArcGISRuntime.Geometry
Esri.ArcGISRuntime.Http
Esri.ArcGISRuntime.Hydrographic
Esri.ArcGISRuntime.Layers
Esri.ArcGISRuntime.Location
Esri.ArcGISRuntime
Esri.ArcGISRuntime.Portal
Esri.ArcGISRuntime.Security
Esri.ArcGISRuntime.Symbology
Esri.ArcGISRuntime.Tasks (1/2)
Esri.ArcGISRuntime.Tasks (2/2)
Esri.ArcGISRuntime.WebMap

Copyright 1995-2015 Esri. All rights reserved. 14


ArcGIS Runtime SDK for .NET

Add a map to your app


At the heart of most ArcGIS Runtime SDK for .NET apps are the MapView and Map controls. These controls allow you to easily add a map
to your app with a few lines of XAML or .NET code. See the Use the MapView to display a map topic for details about using these
controls.
This tutorial guides you through the process of creating a Hello, World Map app using Microsoft Visual Studio and the ArcGIS Runtime
API. It introduces you to the basics of working with ArcGIS Runtime SDK for .NET and describes fundamental principles to help your
future app development. Your completed app will contain a simple map that displays at a specified initial extent when opened.

Prerequisites
This tutorial requires a supported version of Microsoft Visual Studio and ArcGIS Runtime SDK for .NET. Refer to the appropriate topics in
the guide for information on installing the SDK and system requirements.
Familiarity with Visual Studio and a basic understanding of XAML is recommended but not required.

Create a Windows Store app


You'll use Visual Studio to create a Windows Store app.
Steps:
1. Open a supported version of Microsoft Visual Studio.
2. Choose File > New > Project (or click New Project on the Start page) to create a project.
3. Click Store Apps > Windows Apps > Blank App (Windows) in the New Project dialog box (you can create your project in
either C# or VB .NET).
Note: Visual Studio 2015 organizes project types slightly differently. You'll find Store projects under
Windows 8 > Windows

Tip: ArcGIS Runtime SDK for .NET provides a project template for creating your mapping app, called
ArcGIS Runtime 10.2.7 for .NET App. Creating your project from the template will add the
appropriate references and a page with a map view containing a single base layer. In this tutorial,
you'll build your app from a blank template.

4. Choose a folder location for your new project and name it HelloWorldMap.

5. Click OK to create the project.


Your project opens in Visual Studio and contains a single page called MainPage.xaml.
Next, you'll add a reference to the ArcGIS Runtime SDK for .NET API assembly.
6. Right-click the References node under the HelloWorldMap project listing in the Visual Studio Solution Explorer window, and
click Add Reference in the context menu.

Copyright 1995-2015 Esri. All rights reserved. 15


ArcGIS Runtime SDK for .NET

7. Check the listing for the ArcGIS Runtime for Windows Store apps assembly under Windows 8.1 > Extensions.

8. Click OK to add the reference to ArcGIS Runtime for .NET.

Note: In order for your app to build, you need to specify a build target for the project. The default value of
Any CPU will not work and is why the new references are shown with a yellow warning icon.
You will now specify a build platform for the app.
9. Choose BUILD > Configuration Manager.
10. Choose x86 in the Active solution platform drop-down menu. This will target a 32-bit platform for the app.

11. Click Close in the Configuration Manager dialog box.


The warning icons no longer appear in the Solution Explorer window for these references.

Hello, World!
Now that you've created a blank project and referenced ArcGIS Runtime SDK for .NET, you're ready to add a map to your app. ArcGIS
Runtime allows you to work with geographic data from a variety of sources, including those local to your app as well as data provided
remotely as an Internet service. In this tutorial, you'll display street data from a public map service provided by ArcGIS Online.

Copyright 1995-2015 Esri. All rights reserved. 16


ArcGIS Runtime SDK for .NET

Steps:
To use the library in the XAML designer, you must first make a reference to the XML namespace for ArcGIS Runtime.
1. Double click the MainPage.xaml file in the Visual Studio Solution Explorer to open it in the designer.
2. Go to the XAML view of the designer, and add the following XML namespace reference to the Page XAML element. Visual
Studio offers IntelliSense to help complete the URL portion of the statement.
xmlns:esri="using:Esri.ArcGISRuntime.Controls"
xmlns:layers="using:Esri.ArcGISRuntime.Layers"

Next, you'll add a MapView control and define a layer to display.


3. Add the following XAML inside the <Grid> element to define a new MapView control and Map on the page:
<esri:MapView x:Name="MyMapView">
<esri:Map x:Name="MyMap">
</esri:Map>
</esri:MapView>

4. Add the following XAML inside the <Map> element to define a new layer to display in the map:
<layers:ArcGISTiledMapServiceLayer ID="BaseMap"
ServiceUri="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/>

The ArcGISTiledMapServiceLayer represents a map layer based on a cached map service hosted by ArcGIS for
Server. The ID property provides a unique identifier for the layer that can be used to refer to the layer programmatically
(although you won't need to in this tutorial). ServiceUri defines the source for the layer. The layer in your map will come
from a tiled map service hosted on ArcGIS Online.

Tip: In addition to the World imagery map, ArcGIS Online provides basemaps of streets, topographic
data, historical maps, and many others. Visit Living Atlas of the World to browse some of the
available basemaps. If you find a basemap you'd like to use in your app, you can copy the service
URI from its description page.

You are now ready to test your app.


Note: You can test a Windows Store app on a device simulator by choosing Simulator in the Start
Debugging menu. Unless you change this setting, debugging will run your app on the local
machine.

5. Click the Start button on the Standard toolbar (or DEBUG > Start Debugging) to start your app. You'll see a map similar to
the following:

Copyright 1995-2015 Esri. All rights reserved. 17


ArcGIS Runtime SDK for .NET

By default, the map displays at the full extent of the first (bottom) layer it contains. To show the initial view of the map at a
particular location, you can add logic to the map's XAML or programmatically adjust the extent when the app starts. To
practice setting the initial extent, proceed to the next section.

Hello, Cleveland!
As a finishing touch to your app, you will add a ViewpointExtent element to the map's XAML to define the extent at which the map
should initially be displayed.

Steps:
1. Add the following XAML inside your Map element. It can go either before or after the existing
ArcGISTiledMapServiceLayer element.
<esri:Map.InitialViewpoint>
<esri:ViewpointExtent XMin="-9113800"
YMin="5077300"
XMax="-9078300"
YMax="5091800"/>
</esri:Map.InitialViewpoint>

The previous XAML sets the map's InitialViewpoint property with an ViewpointExtent element that defines the
desired extent (centered on Cleveland, Ohio USA). The dimensions of the envelope are specified with Web Mercator
coordinate values to match the coordinate system of the map.
2. Run the app again. The map displays with an initial extent centered on Cleveland Ohio, as shown in the following screen
capture:

Copyright 1995-2015 Esri. All rights reserved. 18


ArcGIS Runtime SDK for .NET

Here is the complete XAML for the app:


<Page
x:Class="HelloWorldMap.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:HelloWorldMap"
xmlns:esri="using:Esri.ArcGISRuntime.Controls"
xmlns:layers="using:Esri.ArcGISRuntime.Layers"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

<Grid>
<esri:MapView x:Name="MyMapView">
<esri:Map x:Name="MyMap" >
<esri:Map.InitialViewpoint>
<esri:ViewpointExtent XMin="-9113800"
YMin="5077300"
XMax="-9078300"
YMax="5091800"/>
</esri:Map.InitialViewpoint>
<layers:ArcGISTiledMapServiceLayer ID="BaseMap"
ServiceUri="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/>
</esri:Map>
</esri:MapView>
</Grid>
</Page>

That's it. You created a simple map app with only a few lines of XAML. As a next step, consider exploring the functionality provided by
ArcGIS Runtime SDK for .NET by stepping through more advanced tutorials or by examining the many samples provided with the SDK.

Related Topics
Work with web maps
Navigate the map
Use a MapView to display a map
Access feature data in the cloud
Use ArcGIS basemaps

Copyright 1995-2015 Esri. All rights reserved. 19


ArcGIS Runtime SDK for .NET

Use ArcGIS basemaps


ArcGIS Online includes a suite of basemaps that provide reference maps for our world and context for your work. These maps are built
from the best available data from a community of authoritative data providers and presented in multiple cartographic styles. These maps
are designed to emphasize different views of our world, from physical to political. You can choose the basemap that is most appropriate
for your app.
This tutorial describes the recommended technique for switching the basemap layers of your map. It introduces the basic properties of
layers and explains how to work with them at design time in XAML or programmatically using C# or Visual Basic .NET (VB .NET). Your
completed app will provide a drop-down selection to allow users to quickly change which basemap is displayed in the map when the app
is running.

Prerequisites
This tutorial requires a supported version of Microsoft Visual Studio and ArcGIS Runtime SDK for .NET. Refer to the appropriate topics in
the guide for information on installing the SDK and system requirements.
Familiarity with Visual Studio and a basic understanding of XAML and C# or VB.NET is recommended.

Create a Windows Store app


You'll use Visual Studio to create a Windows Store app.
Steps:
1. Open a supported version of Microsoft Visual Studio.
2. Choose File > New > Project (or click New Project on the Start page) to create a project.
3. Click Store Apps > Windows Apps > Blank App (Windows) in the New Project dialog box (you can create your project in
either C# or VB .NET).
Note: Visual Studio 2015 organizes project types slightly differently. You'll find Store projects under
Windows 8 > Windows

Tip: ArcGIS Runtime SDK for .NET provides a project template for creating your mapping app, called
ArcGIS Runtime 10.2.7 for .NET App. Creating your project from the template will add the
appropriate references and a page with a map view containing a single base layer. In this tutorial,
you'll build your app from a blank template.

4. Choose a folder location for your new project and name it Basemaps.

5. Click OK to create the project.


Your project opens in Visual Studio and contains a single page called MainPage.xaml.
Next, you'll add a reference to the ArcGIS Runtime SDK for .NET API assembly.
6. Right-click the References node under the Basemaps project listing in the Visual Studio Solution Explorer window, and click
Add Reference in the context menu.
7. Check the listing for the ArcGIS Runtime for Windows Store apps assembly under Windows 8.1 > Extensions.

Copyright 1995-2015 Esri. All rights reserved. 20


ArcGIS Runtime SDK for .NET

8. Click OK to add the reference to ArcGIS Runtime for .NET.

Note: In order for your app to build, you need to specify a build target for the project. The default value of
Any CPU will not work and is why the new references are shown with a yellow warning icon.
You will now specify a build platform for the app.
9. Choose BUILD > Configuration Manager.
10. Choose x86 in the Active solution platform drop-down menu. This will target a 32-bit platform for the app.

11. Click Close in the Configuration Manager dialog box.


The warning icons no longer appear in the Solution Explorer window for these references.

Display hurricane activity with a basemap


Now that you've created a simple project and added a reference to ArcGIS Runtime, you're ready to add a map to your app. ArcGIS
Runtime allows you to work with geographic data from a variety of sources, including those local to your app as well as data provided
remotely as an Internet service. In your initial map, you'll display an ArcGIS Online streets map as your basemap to provide context for a
dynamic layer showing hurricane activity in the Atlantic Ocean.

Steps:
To use the library in the XAML designer, you must first make a reference to the XML namespace for ArcGIS Runtime.
1. Open the MainPage.xaml file in the Visual Studio designer.
2. Go to the XAML view of the designer, and add the following XML namespace reference to the Page XAML element. Visual
Studio offers IntelliSense to help complete the URL portion of the statement.

Copyright 1995-2015 Esri. All rights reserved. 21


ArcGIS Runtime SDK for .NET

xmlns:esri="using:Esri.ArcGISRuntime.Controls"
xmlns:layers="using:Esri.ArcGISRuntime.Layers"

Next, you'll add a MapView control to the window and define a layer to display.
3. Add the following XAML inside the <Grid> element to define a new MapView control on the page:
<esri:MapView x:Name="MyMapView">
<esri:Map x:Name="MyMap">
</esri:Map>
</esri:MapView>

4. Add the following XAML inside the <Map> element to define the basemap layer (World street map) to display in the map:
<layers:ArcGISTiledMapServiceLayer ID="BaseMap"
ServiceUri="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/>

The ArcGISTiledMapServiceLayer represents a map layer based on a cached map service hosted by ArcGIS for
Server. The ID property provides a unique identifier for the layer that can be used to refer to the layer programmatically,
which is something you'll do later in the tutorial. ServiceUri defines the source for the layer. The layer in your map will
come from a tiled map service hosted on ArcGIS Online.

Tip: In addition to the World imagery map, ArcGIS Online provides basemaps of streets, topographic
data, historical maps, and many others. Visit Living Atlas of the World to browse some of the
available basemaps. If you find a basemap you'd like to use in your app, you can copy the service
URI from its description page.

5. Add the following XAML to define the hurricane layer (ArcGISDynamicMapServiceLayer). By adding this XAML below
the line that defines the basemap, you are ensuring that it will draw on top of the tiled basemap (world streets) layer.
<layers:ArcGISDynamicMapServiceLayer ID="Hurricanes"
ServiceUri="http://sampleserver6.arcgisonline.com/arcgis/rest/services/Hurricanes/MapServer"/>

You are now ready to test your app.


6. Click the Start button on the Standard toolbar (or DEBUG > Start Debugging) to start your app. You'll see a map similar to
the following:

The map displays a layer of hurricane activity over the World Street Map basemap from ArcGIS Online. When the app is
complete, your user will be able to change the basemap layer while the app is running.

Add a basemap selection control


You will now use standard controls to create a user interface that allows the user to choose which basemap to display in the map.

Steps:
1. Drag a ComboBox control from the Visual Studio Toolbox onto the design surface for MainWindow.xaml. Make sure the
new ComboBox displays on top of the MapView control.

Copyright 1995-2015 Esri. All rights reserved. 22


ArcGIS Runtime SDK for .NET

Tip: To change the draw order for a control, simply change its position in the XAML. Elements that
appear below the Map definition in the XAML document, for example, will appear on top of the
MapView control.

2. Edit the XAML for the new ComboBox to contain three new items, as shown in the following code sample. Each item defines
a basemap that the user can choose to display in the map.
<ComboBox HorizontalAlignment="Left" VerticalAlignment="Top"
Margin="10,10,0,0" Width="120">
<ComboBox.Items>
<ComboBoxItem Content="Streets" IsSelected="True"
Tag="http://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer"/>
<ComboBoxItem Content="Topo"
Tag="http://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer"/>
<ComboBoxItem Content="Imagery"
Tag="http://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"/>
</ComboBox.Items>
</ComboBox>

3. Define a new event handler forthe SelectionChanged event, as shown in the following code sample. As you type, Visual
Studio provides IntelliSense to create the event handler for you.
<ComboBox
HorizontalAlignment="Left" VerticalAlignment="Top"
Margin="10,10,0,0" Width="120"
SelectionChanged="ComboBox_SelectionChanged">

4. Right-click the name of the handler (ComboBox_SelectionChanged) in the designer, and choose Go To Definition from
the context menu.
5. Add the following code to the ComboBox_SelectionChanged event handler:
var combo = sender as ComboBox;
var sel = combo.SelectedItem as ComboBoxItem;
if (sel.Tag == null) { return; }

// Find and remove the current basemap layer from the map
if (MyMap == null) { return; }
var oldBasemap = MyMap.Layers["BaseMap"];
MyMap.Layers.Remove(oldBasemap);
// Create a new basemap layer
var newBasemap = new Esri.ArcGISRuntime.Layers.ArcGISTiledMapServiceLayer();

// Set the ServiceUri with the url defined for the ComboBoxItem's Tag
newBasemap.ServiceUri = sel.Tag.ToString();

// Give the layer the same ID so it can still be found with the code above
newBasemap.ID = "BaseMap";
// Insert the new basemap layer as the first (bottom) layer in the map
MyMap.Layers.Insert(0, newBasemap);

The current basemap layer is referenced in the code using the ID value that you assigned in the XAML (BaseMap). A new
layer is created, and the Tag property of the selected item is used to set the ServiceUri property. Your XAML defines a
Tag for each ComboBoxItem with a URL that points to a basemap service hosted on ArcGIS Online. The same ID is then
given to the new layer so the next time the code runs, the current basemap layer can again be found.
Finally, the new basemap is added to the map's layer collection using the Insert method. This method allows you to
specify where in the collection you want the new layer to appear. The Add method can also be used to add a new layer but
will always add the layer to the end of the collection (which will appear as the top layer in the map).

Test the basemap selection functionality


You are now ready to test the app.

Steps:
1. Click the Start button on the Standard toolbar (or DEBUG > Start Debugging) to start your app.
2. Choose a different basemap layer from the UI (that is, something other than Streets).
The map updates to display the new basemap. Notice that the new basemap layer is added to the bottom of the layer
display, ensuring that the dynamic layer (hurricanes) is not obscured.

Copyright 1995-2015 Esri. All rights reserved. 23


ArcGIS Runtime SDK for .NET

Tip: You can also use your own basemaps, hosted on ArcGIS Online or with ArcGIS for Server, in
your ArcGIS Runtime SDK for .NET apps.

Your app is now complete. By providing a unique ID for each layer in your map, you can reference them later when you need to make a
change. You may also find this technique useful when you need to change layer visibility, add a graphic to an existing graphics layer, alter
a feature layer's renderer, and so on.
As a next step, consider exploring the functionality provided by ArcGIS Runtime SDK for .NET by stepping through more tutorials or by
examining the many samples provided with the SDK.

Related Topics
Tutorial: Access maps and content from your portal
Access feature data in the cloud
Use a MapView to display a map
Navigate the map

Copyright 1995-2015 Esri. All rights reserved. 24


ArcGIS Runtime SDK for .NET

Access feature data in the cloud


An ArcGIS feature service provide features (geometry, attributes, and symbology) from a REST endpoint. ArcGIS Runtime SDK
applications can query a service to get a set of features to display in the map. You can display features with the symbols that have been
defined with the service, or create custom ones.
This tutorial introduces you to using ArcGIS feature services for displaying information in your map. You will learn the basic techniques
involved for working with feature services both in XAML and programmatically using C# or Visual Basic .NET (VB .NET). Your completed
app will display a filtered subset of features from a feature service using a custom symbol. You will also add identify functionality to show
feature attributes when a feature is clicked on the map.

Prerequisites
This tutorial requires a supported version of Microsoft Visual Studio and ArcGIS Runtime SDK for .NET. Refer to the appropriate topics in
the guide for information on installing the SDK and system requirements.
Familiarity with Visual Studio and a basic understanding of XAML and C# or VB .NET is recommended.

Create a Windows Store app


You'll use Visual Studio to create a Windows Store app.
Steps:
1. Open a supported version of Microsoft Visual Studio.
2. Choose File > New > Project (or click New Project on the Start page) to create a project.
3. Click Store Apps > Windows Apps > Blank App (Windows) in the New Project dialog box (you can create your project in
either C# or VB .NET).
Note: Visual Studio 2015 organizes project types slightly differently. You'll find Store projects under
Windows 8 > Windows

Tip: ArcGIS Runtime SDK for .NET provides a project template for creating your mapping app, called
ArcGIS Runtime 10.2.7 for .NET App. Creating your project from the template will add the
appropriate references and a page with a map view containing a single base layer. In this tutorial,
you'll build your app from a blank template.

4. Choose a folder location for your new project and name it AccessFeatureData.

5. Click OK to create the project.


Your project opens in Visual Studio and contains a single page called MainPage.xaml.
Next, you'll add a reference to the ArcGIS Runtime SDK for .NET API assembly.
6. Right-click the References node under the AccessFeatureData project listing in the Visual Studio Solution Explorer
window, and click Add Reference in the context menu.
7. Check the listing for the ArcGIS Runtime for Windows Store apps assembly under Windows 8.1 > Extensions.

Copyright 1995-2015 Esri. All rights reserved. 25


ArcGIS Runtime SDK for .NET

8. Click OK to add the reference to ArcGIS Runtime for .NET.

Note: In order for your app to build, you need to specify a build target for the project. The default value of
Any CPU will not work and is why the new references are shown with a yellow warning icon.
You will now specify a build platform for the app.
9. Choose BUILD > Configuration Manager.
10. Choose x86 in the Active solution platform drop-down menu. This will target a 32-bit platform for the app.

11. Click Close in the Configuration Manager dialog box.


The warning icons no longer appear in the Solution Explorer window for these references.

Create a map control with an imagery basemap


Now that you've created a simple project and added a reference to ArcGIS Runtime, you're ready to add a map to your app. ArcGIS
Runtime allows you to work with geographic data from a variety of sources, including those local to your app as well as data provided
remotely as an Internet service. In your map, you'll display satellite imagery data from a public map service provided by ArcGIS Online.

Steps:
To use the library in the XAML designer, you must first make a reference to the XML namespace for ArcGIS Runtime.
1. Open the MainPage.xaml file in the Visual Studio designer.
2. Go to the XAML view of the designer, and add the following XML namespace reference to the Page XAML element. Visual
Studio offers IntelliSense to help complete the URL portion of the statement.

Copyright 1995-2015 Esri. All rights reserved. 26


ArcGIS Runtime SDK for .NET

xmlns:esri="using:Esri.ArcGISRuntime.Controls"
xmlns:layers="using:Esri.ArcGISRuntime.Layers"
xmlns:data="using:Esri.ArcGISRuntime.Data"
xmlns:sym="using:Esri.ArcGISRuntime.Symbology"

Next, you'll add a MapView containing a Map control to the window and define a basemap layer.
3. Add the following XAML inside the <Grid> element to define a new MapView control on the page:
<esri:MapView x:Name="MyMapView">
<esri:Map x:Name="MyMap">
</esri:Map>
</esri:MapView>

4. Add the following XAML inside the Map element to define an ArcGIS Online basemap layer to display in the map:
<layers:ArcGISTiledMapServiceLayer ID="BaseMap"
ServiceUri="http://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"/>

Basemaps provide the context and a framework for working with information geographically. A basemap is used for
locational reference and presents a framework on which to overlay your operational layers, perform tasks, and visualize
geographic information. In the following steps, you'll overlay a feature layer with the basemap.

Tip: In addition to the World imagery map, ArcGIS Online provides basemaps of streets, topographic
data, historical maps, and many others. Visit Living Atlas of the World to browse some of the
available basemaps. If you find a basemap you'd like to use in your app, you can copy the service
URI from its description page.

Add a feature layer to provide operational data


Next, you'll add a FeatureLayer to serve as your operational layer. Operational layers are layers whose data is generally more dynamic
and represents the focus of the work performed in the map, such as performing analysis or edits on features.

Steps:
1. Add the following XAML to define a FeatureLayer to display on top of the imagery basemap layer you defined earlier.
Note that layers appearing first inside the Map contents display below layers that are defined later. The following XAML,
therefore, is placed below the XAML that defines the basemap layer.
<layers:FeatureLayer ID="PoolPermits">
<layers:FeatureLayer.FeatureTable>
<data:ServiceFeatureTable
ServiceUri="http://sampleserver6.arcgisonline.com/arcgis/rest/services/PoolPermits/FeatureServer/0"/>
</layers:FeatureLayer.FeatureTable>
</layers:FeatureLayer>

The FeatureLayer represents a single layer from an ArcGIS feature service. The ID property provides a unique identifier
for the layer that can be used to refer to the layer programmatically. The FeatureTable defines the data source for the
layer by specifying a ServiceFeatureTable and its ServiceUri property. The layer above will display parcels in
Riverside, California. It has attributes to describe whether or not each parcel has a swimming pool and whether the proper
permit has been obtained.
Since the operational layer in your app is focused on a small area of the city of Riverside California, you'll define an initial
extent for the map that centers on the area of interest.
2. Add the following XAML inside your Map element:
<esri:Map.InitialViewpoint>
<esri:ViewpointExtent XMin="-13075816.40"
YMin="4014771.46"
XMax="-13073005.67"
YMax="4016869.78"/>
</esri:Map.InitialViewpoint>

The values for the initial map extent were obtained by consulting the REST page for the pool permits layer (available through
the ServiceUri property). This ensures that the map extent contains the full extent of the operational layer when the app is
initially started.
You are now ready to test your app.
3. Click the Start button on the Standard toolbar (or DEBUG > Start Debugging) to start your app. A map similar to the
following is displayed:

Copyright 1995-2015 Esri. All rights reserved. 27


ArcGIS Runtime SDK for .NET

The map displays an imagery basemap overlaid with the swimming pool permits layer at the extent of the operational layer.
The features in red are lots that have a pool but have not been issued a permit for one. To simplify the map display, you'll
filter this layer to include only the parcels that are in violation and display them with a custom polygon symbol.

Filter features displayed in the feature layer


When working with a feature layer, you have the option of filtering the display of features in the layer based on an attribute expression.
This allows you to customize the data source to fit your app by excluding irrelevant information.
You'll use the service's REST page to see what attribute values are available for the layer.

Steps:
1. Open a web browser and navigate to the URI for the pool permits layer: http://sampleserver6.arcgisonline.com/arcgis/rest/
services/PoolPermits/FeatureServer/0.
2. Scroll to the Fields section.

To filter the display of the features in your pool permits layer, you'll use values in the pool_permit and has_pool fields.
Notice that these fields are of integer type, and based on the coded value domain, a value of 0 means "No" and 1 means
"Yes".
3. Add the following XAML to the GeodatabaseFeatureTable element to define the Where property for the FeatureLayer:
<layers:FeatureLayer ID="PoolPermits">
<layers:FeatureLayer.FeatureTable>
<data:ServiceFeatureTable Where="has_pool = 1 AND pool_permit = 0"
ServiceUri="http://sampleserver6.arcgisonline.com/arcgis/rest/services/PoolPermits/FeatureServer/0"/>
</layers:FeatureLayer.FeatureTable>
</layers:FeatureLayer>

4. Run the app. Your map now displays only those features that meet the criteria you've specified: lots with a pool that do not
have a permit.

Copyright 1995-2015 Esri. All rights reserved. 28


ArcGIS Runtime SDK for .NET

Customize feature layer display


In addition to controlling which features appear in a feature layer, you can also apply your own rendering suited to your app. In the
following steps, you'll symbolize the pool permits layer with your own polygon symbol rather than the rendering defined in the feature
service.

Steps:
1. Add the following XAML inside the FeatureLayer element to define a new SimpleRenderer for the layer. This defines a
simple renderer with a single fill symbol. The symbol will have a hashed aqua fill and a dotted red outline.
<layers:FeatureLayer.Renderer>
<sym:SimpleRenderer>
<sym:SimpleFillSymbol Color="Aqua" Style="DiagonalCross">
<sym:SimpleFillSymbol.Outline>
<sym:SimpleLineSymbol Color="Firebrick" Width="4" Style="Solid"/>
</sym:SimpleFillSymbol.Outline>
</sym:SimpleFillSymbol>
</sym:SimpleRenderer>
</layers:FeatureLayer.Renderer>

2. Run the app. Your custom symbology is applied to the features.

Copyright 1995-2015 Esri. All rights reserved. 29


ArcGIS Runtime SDK for .NET

Display information about features


A map or feature service can also be accessed programmatically to return information about particular features. In the following steps,
you'll create functionality to retrieve information about a feature clicked by the user on the map. This functionality will work for all features
in the service, including those that are not currently shown on the map.

Steps:
1. Add the following XAML to define a UI for displaying parcel information (APN and address). This XAML should go below the
XAML that defines your MapView to ensure it displays on top of that control.
<StackPanel Orientation="Vertical" Background="Blue" Opacity=".8"
HorizontalAlignment="Left" VerticalAlignment="Top">
<StackPanel Orientation="Horizontal" Margin="5">
<TextBlock Text="Address:" FontWeight="Bold"/>
<TextBlock x:Name="AddressTextBlock" Text="--" Margin="5,0"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="5">
<TextBlock Text="APN:" FontWeight="Bold"/>
<TextBlock x:Name="ApnTextBlock" Text="--" Margin="5,0"/>
</StackPanel>
<Button x:Name="GetParcelAddressButton" Content="Get Parcel Info"/>
</StackPanel>

2. Add the following XAML to the GetParcelAddressButton button to define an event handler for the Click event. When
prompted by IntelliSense, create a new event handler. The event handler is given the default name of
GetParcelAddressButton_Click.
<Button x:Name="GetParcelAddressButton"
Content="Get Parcel Info"
Click="GetParcelAddressButton_Click"/>

3. In the XAML Editor, right-click the name of the event handler (GetParcelAddressButton_Click) and choose Go To
Definition in the context menu that appears.

Visual Studio takes you to the Code Editor view. Before working on the code for the button click handler, you need to add a
couple of using statements for required namespaces.
4. At the top of your MainPage.xaml.cs code module, add the following using statements:
using Esri.ArcGISRuntime.Layers;
using Esri.ArcGISRuntime.Tasks.Query;

While the MapView control exposes interaction events, such as MouseUp, MouseDown, TouchUp, and TouchDown, these
events aren't always the best places to capture geometry from the user. Such events on the control will fire when the user
zooms and pans on the map, which might require you to add logic to handle multiple types of map interaction.
Each MapView control has an associated Editor that is accessible from the Editor property. In addition to helping you
configure editing functionality, the Editor class provides methods for obtaining geometry from the user. You'll use the
RequestPointAsync method on the Editor to get a point for identifying a parcel on the map.
5. Return to the GetParcelAddressButton_Click event handler. Start your function with the following code to get the map
point for the location clicked by the user:
var mapPoint = await MyMapView.Editor.RequestPointAsync();

Using the await keyword, your query will complete asynchronously before the code below it is executed. The compiler
treats this code as a callback for the function called with await. To use the await keyword, however, you must mark the
function containing it with the async keyword.

Note: See the Asynchronous programming topic for more information about the .NET task-based
asynchronous pattern.

6. Add the async keyword to the definition of the GetParcelAddressButton_Click handler.

Copyright 1995-2015 Esri. All rights reserved. 30


ArcGIS Runtime SDK for .NET

private async void GetParcelAddressButton_Click(object sender, RoutedEventArgs e)

7. Return to the body of your function. Add the following code to set up a QueryTask object that will find a feature at the
location specified by the user:
var poolPermitUrl = "http://sampleserver6.arcgisonline.com/arcgis/rest/services/PoolPermits/FeatureServer/0";
var queryTask = new QueryTask(new System.Uri(poolPermitUrl));
var queryFilter = new Query(mapPoint);
queryFilter.OutFields.Add("apn");
queryFilter.OutFields.Add("address");

Notice that the QueryTask constructor takes an argument that specifies the URI for the service to query. The Query object
defines the spatial and/or attribute criteria (the where clause) for the query. The previous code uses the map point to do a
spatial search using the default spatial relationship, which is SpatialRelationship.Intersects. Since you need to
display the APN and address values for the feature, those fields must be added to the OutFields collection, as shown in
the previous code example.
8. Add the following code to execute the query. If a result is found, its APN and address values are displayed in the UI.
var queryResult = await queryTask.ExecuteAsync(queryFilter);
if (queryResult.FeatureSet.Features.Count > 0)
{
var resultGraphic = queryResult.FeatureSet.Features[0] as Graphic;
ApnTextBlock.Text = resultGraphic.Attributes["apn"].ToString();
AddressTextBlock.Text = resultGraphic.Attributes["address"].ToString();
}

9. Run your app. Zoom in to a part of the map displaying pool permit features. Click the Get Parcel Info button, then click one
of the features in the map to display its APN and address values. Click the button again, and try a neighboring parcel that is
not currently displayed in the map. You'll see information for these locations as well.

In this tutorial, you learned how to access, filter, and display data from an ArcGIS feature service. As you can see, feature layers give you
flexibility to modify the content and appearance of feature service data for use in your app. To learn more, take a look at the many
samples available that illustrate the use of feature layers.

Related Topics
Tutorial: Access maps and content from your portal
Work with web maps
Add layers with code
Search for features

Copyright 1995-2015 Esri. All rights reserved. 31


ArcGIS Runtime SDK for .NET

Access maps and content from your portal


Web GIS is a pattern for delivering GIS capabilities as Internet services that can be consumed by a variety of clients including web,
desktop, and mobile applications. A server that hosts GIS content, such as ArcGIS Online, is generically referred to as a portal. Your
ArcGIS Runtime SDK for .NET apps can consume GIS services from portals using classes available in the
Esri.ArcGISRuntime.Portal namespace.
The ArcGIS platform offers two deployment models for hosting web GIS services: ArcGIS Online and Portal for ArcGIS.
ArcGIS Online is a cloud-based, collaborative content management system for maps, apps, data, and other geographic information. You
can access ArcGIS Online through ArcGIS.com, mobile devices, and desktop map viewers to:
Create web maps
Web enable your data
Share your maps, data, and applications
Find relevant and useful basemaps, data, and configurable GIS resources
Manage content and people in your organization

Tip: With your free ArcGIS for Developers account, you have access to ArcGIS Online for development and
testing, including the ability to create hosted feature services.
Learn more about ArcGIS Online.
Portal for ArcGIS provides you with the same core capabilities as ArcGIS Online, but can be installed and hosted on-premises, behind the
firewall for controlled distribution of content. Portal for ArcGIS is the technology that powers ArcGIS Online and is available to implement in
your organization.
ArcGIS Online for organizations, on the other hand, lets your organization be a part of ArcGIS Online through a subscription, without
needing to install or manage any server technology. With this subscription, you can set up a configurable secured site that includes
administrative controls, flexible data storage capabilities, and other provisions that enable geospatial information to be more pervasive
within your organization or general public. Through the subscription, you can also access the Esri cloud to turn your data into web
accessible maps.
The ArcGIS Runtime SDK allows developers to access and search content, users, and groups of a general portal (on-premises instance
or ArcGIS Online) or a specific organization's subscription within that portal. Classes in the API wrap calls to the ArcGIS REST API to
communicate with the back end portal.
In this tutorial, you learn how to find and access content stored in a portal, and to incorporate that content into your app.

Prerequisites
This tutorial requires a supported version of Microsoft Visual Studio and ArcGIS Runtime SDK for .NET. Refer to the appropriate topics in
the guide for information on installing the SDK and system requirements.
Familiarity with Visual Studio, XAML, and C# is recommended.

Create a Windows Store app


You'll use Visual Studio to create a Windows Store app.
Steps:
1. Open a supported version of Microsoft Visual Studio.
2. Choose File > New > Project (or click New Project on the Start page) to create a project.
3. Click Store Apps > Windows Apps > Blank App (Windows) in the New Project dialog box (you can create your project in
either C# or VB .NET).
Note: Visual Studio 2015 organizes project types slightly differently. You'll find Store projects under
Windows 8 > Windows

Tip: ArcGIS Runtime SDK for .NET provides a project template for creating your mapping app, called
ArcGIS Runtime 10.2.7 for .NET App. Creating your project from the template will add the
appropriate references and a page with a map view containing a single base layer. In this tutorial,
you'll build your app from a blank template.

4. Choose a folder location for your new project and name it PortalApp.

Copyright 1995-2015 Esri. All rights reserved. 32


ArcGIS Runtime SDK for .NET

5. Click OK to create the project.


Your project opens in Visual Studio and contains a single page called MainPage.xaml.
Next, you'll add a reference to the ArcGIS Runtime SDK for .NET API assembly.
6. Right-click the References node under the PortalApp project listing in the Visual Studio Solution Explorer window, and click
Add Reference in the context menu.
7. Check the listing for the ArcGIS Runtime for Windows Store apps assembly under Windows 8.1 > Extensions.

8. Click OK to add the reference to ArcGIS Runtime for .NET.

Note: In order for your app to build, you need to specify a build target for the project. The default value of
Any CPU will not work and is why the new references are shown with a yellow warning icon.
You will now specify a build platform for the app.
9. Choose BUILD > Configuration Manager.
10. Choose x86 in the Active solution platform drop-down menu. This will target a 32-bit platform for the app.

11. Click Close in the Configuration Manager dialog box.


The warning icons no longer appear in the Solution Explorer window for these references.

Copyright 1995-2015 Esri. All rights reserved. 33


ArcGIS Runtime SDK for .NET

Add a MapView
Your app will contain an empty MapView control. At runtime, your app will connect to, and display content from, ArcGIS Online.

Begin by creating a basic UI for your app. To use the classes in the ArcGIS Runtime API, define XML namespace references in
MainPage.xaml.
Steps:
1. Open the MainPage.xaml page in XAML view.
2. Add the following XAML in the Page element of MainPage.xaml to define an XML namespace reference for the ArcGIS
Runtime API controls.
xmlns:esri="using:Esri.ArcGISRuntime.Controls"

3. Inside the Grid element on the page, add the XAML below to create an empty MapView control. Assign the name
MyMapView to the control so you can reference it in your code behind.
<esri:MapView x:Name="MyMapView"/>

Your MapView displays maps and layers from a portal (ArcGIS Online) while the app runs.

Create a search UI
Your app allows the user to search a portal for web maps, feature services, and basemap layers. The user can get a description and
thumbnail for search results, and display an item on the map. Begin by creating a UI to receive search criteria from the user and display a
list of results.
When complete, your UI looks like the following:

Steps:
1. Open your MainPage.xaml page in XAML view. Add the following XAML inside the existing Grid element on the page,
immediately below the line that defines the MapView.

Copyright 1995-2015 Esri. All rights reserved. 34


ArcGIS Runtime SDK for .NET

<StackPanel Width="300"
HorizontalAlignment="Right"
Margin="10">
<StackPanel Orientation="Horizontal"
Margin="5">
<TextBlock Text="Search:"/>
<TextBox x:Name="SearchTextBox"
Width="100"
Margin="10,0"
HorizontalContentAlignment="Right"
Text="Turtle"/>
<ComboBox x:Name="ItemTypeComboBox"
SelectedValuePath="Content"
Width="120">
<ComboBoxItem Content="Web map" IsSelected="True"/>
<ComboBoxItem Content="Feature service"/>
<ComboBoxItem Content="Basemap"/>
</ComboBox>
</StackPanel>
<Button x:Name="SearchButton"
Content="Search ArcGIS.com"
Margin="20"
HorizontalAlignment="Center"/>
<ListBox x:Name="ResultListBox"
Margin="20,0"
MaxHeight="200">
<!-- results shown here -->
</ListBox>
<TextBlock x:Name="SnippetTextBlock"
Text=""
Height="50"
Margin="10"
TextWrapping="Wrap"/>
<Image x:Name="ThumbnailImage"
Stretch="UniformToFill"
Width="200" Height="133"/>
<Button x:Name="ShowMapButton"
Content="Show Map"
Margin="5"
Width="150"
HorizontalAlignment="Center"
IsEnabled="False"/>
</StackPanel>

The ResultListBox shows portal items that match your user's search criteria. Add an ItemTemplate to the list box to
define how the result items display.
2. Add the following XAML inside the ListBox element, below the <!-- results shown here --> comment.
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Title}"/>
<TextBlock Text="{Binding Owner}" FontSize="9"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>

The DataTemplate uses data binding to display the Title and Owner for each search result. At runtime, the ListBox
binds to a list of ArcGISPortalItem objects. Title and Owner are properties of those objects.
3. Define a click event handler for the search button as shown in the following example.
<Button x:Name="SearchButton"
Content="Search ArcGIS.com"
Margin="20"
Click="SearchButton_Click"/>

4. Right-click the SearchButton_Click handler in your XAML and choose Go To Definition in the context menu. You will
add code to this handler to search the portal.

Add code to search the portal


You can search a portal, such as ArcGIS Online, using keywords that describe portal items. You can also narrow your search to specific
types of items, such as web maps, layer packages, text files, and so on. Add code to the app's search button to perform such a search
based on input from the user.

Steps:
1. At the top of the MainPage.xaml.cs file, add the following using statements for ArcGIS Runtime API namespaces you
need.
using Esri.ArcGISRuntime.Controls;
using Esri.ArcGISRuntime.Portal;
using Esri.ArcGISRuntime.WebMap;

2. Inside the MainPage class, add the variable declarations below. These variables store private references to the portal
(ArcGIS Online) and to the currently selected search result (if any).

Copyright 1995-2015 Esri. All rights reserved. 35


ArcGIS Runtime SDK for .NET

private ArcGISPortal arcGISOnline;


private ArcGISPortalItem selectedPortalItem;

3. Add the async keyword to the definition of the SearchButton_Click function, as shown in bold in the following example.
private async void SearchButton_Click(object sender, RoutedEventArgs e)

The async keyword in the function definition indicates that asynchronous calls are made in the function that uses the await
keyword.
4. Add the following try catch block to the SearchButton_Click function. If an exception is encountered while searching,
the error message is shown to the user.
try
{

}
catch (Exception ex)
{
var msg = new Windows.UI.Popups.MessageDialog(ex.Message, "Error searching portal");
msg.ShowAsync();
}

5. Inside the try portion of the block, add the following code to initialize a connection to the portal, if it doesn't already exist.
// if first run, get a ref to the portal (ArcGIS Online)
if (this.arcGISOnline == null)
{
// create the uri for the portal
var portalUri = new Uri("https://www.arcgis.com/sharing/rest");
// create the portal
this.arcGISOnline = await ArcGISPortal.CreateAsync(portalUri);
}

The Esri.ArcGISRuntime.Portal.ArcGISPortal class provides static methods that allow you to connect to a portal.

Note: If you call the static ArcGISPortal.CreateAsync method without arguments, a connection is
made to ArcGIS Online. In the previous code, the portalUri variable can be omitted from the
arguments and it works the same. If you want to connect to another portal, you provide the portal
URI as shown.

6. After the if block that initializes the arcGISOnline variable, declare a variable to store results of a portal search. The
results are an enumerable of ArcGISPortalItem.
// create a variable to store search results (collection of portal items)
IEnumerable<ArcGISPortalItem> results = null;

7. Next, add the following branching statement based on the type of item the user wants to search.
if (this.ItemTypeComboBox.SelectedValue.ToString() == "Basemap")
{

}
else
{

A search for basemaps uses a different method (SearchBasemapGalleryAsync) and doesn't require a query expression.
8. In the if portion of your branching statement, add the following code for basemap searches. This asynchronously searches
the portal for basemaps and stores the results.
// basemap search returns web maps that contain the basemap layer
var basemapSearch = await this.arcGISOnline.ArcGISPortalInfo.SearchBasemapGalleryAsync();
results = basemapSearch.Results;

Note: SearchBasemapGalleryAsync returns a collection of web maps. Each web map in the results
contains the basemap layer described in the portal item.

9. Below the branching statement, add the following code to bind the collection of portal items to the results list box. You will
add the code for the else portion of the branching statement in a following step.
// show the results in the list box
this.ResultListBox.ItemsSource = results;

Here's the code you've written so far:

Copyright 1995-2015 Esri. All rights reserved. 36


ArcGIS Runtime SDK for .NET

private async void SearchButton_Click(object sender, RoutedEventArgs e)


{
try
{
// if first run, get a ref to the portal (ArcGIS Online)
if (this.arcGISOnline == null)
{
// create the uri for the portal
var portalUri = new Uri("https://www.arcgis.com/sharing/rest");
// create the portal
this.arcGISOnline = await ArcGISPortal.CreateAsync(portalUri);
}
// create a variable to store search results (collection of portal items)
IEnumerable <ArcGISPortalItem> results = null;
if (this.ItemTypeComboBox.SelectedValue.ToString() == "Basemap")
{
// basemap search returns web maps that contain the basemap layer
var basemapSearch = await this.arcGISOnline.ArcGISPortalInfo.SearchBasemapGalleryAsync();
results = basemapSearch.Results;
}
else
{
}

// show the results in the list box


this.ResultListBox.ItemsSource = results;
}
catch (Exception ex)
{
var msg = new Windows.UI.Popups.MessageDialog(ex.Message, "Error searching portal");
msg.ShowAsync();
}
}

10. Run your app. Choose Basemap from the combo box and click the Search ArcGIS.com button. Several results appear in
the list.
Note: Your app does not use the query text when searching
basemaps.

11. Stop running your app and return to Visual Studio. Next, you will add code to find web map and feature service portal items
using a search term.
12. In the else portion of your branching statement, add the following code to build a query expression using information
provided by the user.
// get the search term and item type provided in the UI
var searchTerm = this.SearchTextBox.Text.Trim();
var searchItem = this.ItemTypeComboBox.SelectedValue.ToString();
// build a query that searches for the specified type
// ('web mapping application' is excluded from the search since 'web map' will match those item types too)
var queryString = string.Format("\"{0}\" type:(\"{1}\" NOT \"web mapping application\")", searchTerm, searchItem);

Note: The query string uses the search term provided by the user and also narrows the search to a
specified item type. Because a search for items of type Web map also matches items of type Web
mapping application, those items have been explicitly excluded from the search using the
NOT portion of the expression.

13. A search for portal items requires a SearchParameters object. Add the following code (directly below the code you added
previously) to create a new SearchParameters object that defines the query expression, search result sorting preferences,
and maximum number of results for the search.

Copyright 1995-2015 Esri. All rights reserved. 37


ArcGIS Runtime SDK for .NET

// create a SearchParameters object, set options


var searchParameters = new SearchParameters()
{
QueryString = queryString,
SortField = "avgrating",
SortOrder = QuerySortOrder.Descending,
Limit = 10
};

A maximum of 10 portal items return for the search, sorted highest to lowest according to the average user rating.
14. Add the following code to execute the search using the search parameters and store the results.
// execute the search
var itemSearch = await this.arcGISOnline.SearchItemsAsync(searchParameters);
results = itemSearch.Results;

15. Run your app and test the search. Find web maps and feature services using search terms.

Next, you will display properties for the chosen portal item in the list, including a thumbnail image and item description.

Show portal item properties


Currently, the title and owner name are the only information displayed for portal items found in a search. You will now add code to display
a short description and a thumbnail image for the chosen portal item.

Steps:
1. In MainPage.xaml, add an event handler for the ResultListBox control's SelectionChanged event, as shown in the
following example.
<ListBox x:Name="ResultListBox"
Margin="20,0"
MaxHeight="200"
SelectionChanged="ResultList_SelectionChanged">

2. Right-click ResultList_SelectionChanged in your XAML and choose Go To Definition in the context menu.
3. Before coding the ResultList_SelectionChanged handler, add the following function (ResetUI) to reset values for
several of the UI controls. You will call this function when a new selection is made in the results list to make sure the UI is in
sync with the currently chosen portal item.
private void ResetUI()
{
// clear UI controls
this.SnippetTextBlock.Text = "";
this.ThumbnailImage.Source = null;
this.ShowMapButton.IsEnabled = false;
}

4. Return to the ResultList_SelectionChanged function. Add the following code to call your new ResetUI function.
// clear UI controls
this.ResetUI();

5. Add the following code to store the chosen portal item in the private variable you defined previously
(selectedPortalItem). Return from the handler if the current item is null.
// store the currently selected portal item
this.selectedPortalItem = this.ResultListBox.SelectedItem as ArcGISPortalItem;
if (this.selectedPortalItem == null) { return; }

In the rest of the code in this function, you can safely assume that selectedPortalItem refers to a portal item.

Copyright 1995-2015 Esri. All rights reserved. 38


ArcGIS Runtime SDK for .NET

6. The Snippet property on ArcGISPortalItem contains a brief description of the item in plain text. Add the following code
to show a description of the item if the snippet is not null.
// show the portal item snippet (brief description) in the UI
if (!string.IsNullOrEmpty(this.selectedPortalItem.Snippet))
{
this.SnippetTextBlock.Text = this.selectedPortalItem.Snippet;
}

Note: ArcGISPortalItem also provides a Description property, which provides information about
the item formatted as HTML.

7. A portal may or may not have a thumbnail image. Add the following code to display an image for the chosen portal item if the
ThumbnailUri property is not null.
// show a thumbnail for the selected portal item (if there is one)
if (this.selectedPortalItem.ThumbnailUri != null)
{
var src = new Windows.UI.Xaml.Media.Imaging.BitmapImage(this.selectedPortalItem.ThumbnailUri);
this.ThumbnailImage.Source = src;
}

8. Run your app and test the new code. Search for portal items and choose one in the list of results. A description and
thumbnail image displays on the page.

Display portal items in the map


After finding a portal item, you can work with the data it represents. You may want to show a web map from a portal item, including all the
layers it contains or you may want to choose individual layers to display. In the following steps, add code to display a web map from a
chosen portal item.

Steps:
1. Open your MainPage.xaml page in XAML view.
2. Add a click handler to ShowMapButton as shown in the following example.
<Button x:Name="ShowMapButton"
Content="Show Map"
Margin="5"
Width="150"
IsEnabled="False"
Click="ShowMapButton_Click"/>

Copyright 1995-2015 Esri. All rights reserved. 39


ArcGIS Runtime SDK for .NET

3. Right-click ShowMapButton_Click in your XAML and choose Go To Definition in the context menu.
4. In MainPage.xaml.cs, add the async keyword to the ShowMapButton_Click event handler, as shown in the following
example.
private async void ShowMapButton_Click(object sender, RoutedEventArgs e)

Before coding the ShowMapButton_Click event handler, add code to enable the button only when a portal item of type web
map is chosen in the result list.
5. At the end of the ResultList_SelectionChanged event handler, add the code shown in the following example to enable
the ShowMapButton control when a web map type of portal item is chosen in the list.
// enable the show map button when a web map portal item is chosen
this.ShowMapButton.IsEnabled = (this.selectedPortalItem.Type == ItemType.WebMap);

You can now add code to the ShowMapButton_Click event handler with the assumption that a web map portal item is
currently chosen. The static FromPortalItemAsync method on the Esri.ArcGISRuntime.WebMap.WebMap class opens
a web map from a portal item. Use this method to get the web map represented by the currently chosen portal item in the list.
6. Return to ShowMapButton_Click and add the code shown in the following example to open the web map represented by
the chosen portal item.
// create a web map from the selected portal item
var webMap = await WebMap.FromPortalItemAsync(this.selectedPortalItem);

The WebMap class contains properties for accessing the basemap layers, operational layers, and tasks the map contains. To
display the entire map, load the web map into a WebMapViewModel object and reference its Map property.

Tip: For more information about the Model-View-ViewModel design pattern, for which the
WebMapViewModel is designed, refer to the Use the MVVM design pattern tutorial.

7. Add the code shown in the following example to create a new WebMapViewModel containing the web map. LoadAsync is a
static method on the WebMapViewModel class.
// load the web map into a web map view model
var webMapVM = await WebMapViewModel.LoadAsync(webMap, this.arcGISOnline);

8. Complete the ShowMapButton_Click event handler by adding the code in the following example to show the web map on
your page's MapView control.
// show the web map view model's map in the page's map view control
this.MyMapView.Map = webMapVM.Map;

9. Run your app. Search for web maps, select one in the result list, then click the Show Map button. The chosen web map
displays in your map view. Try searching the feature services. The Show Map button is not enabled when a feature service
portal item is chosen in the list.

Copyright 1995-2015 Esri. All rights reserved. 40


ArcGIS Runtime SDK for .NET

Well done, you've completed the tutorial. For more examples of working with content from a portal, see the arcgis-runtime-samples-dotnet
repository on GitHub. For a fully functional portal viewer application built using the Model-View-ViewModel (MVVM) design pattern, see
the arcgis-portalviewer-dotnet repository.

Related Topics
Access the ArcGIS platform
Access portal content
Search portal content
Security

Copyright 1995-2015 Esri. All rights reserved. 41


ArcGIS Runtime SDK for .NET

Add geocoding to your app


The process of transforming an address or place name to a geographical location on a map is known as geocoding. The opposite task,
searching for the nearest address to a particular point on a map using geographic coordinates, is referred to as reverse geocoding. This
tutorial describes how to perform geocoding and reverse geocoding using a LocatorTask.
The ArcGIS Runtime SDK for .NET provides two LocatorTask classes. The OnlineLocatorTask relies on ArcGIS for Server geocode
services to perform these functions, while the LocalLocatorTask can use a locally available locator (*.loc file).
This tutorial introduces you to the OnlineLocatorTask, which you can use to work with address information in your app. Your
completed app will allow users to search for an address, zoom to a match, and display a result on the map. It will also provide reverse
geocoding functionality, allowing users to get an interpolated address for a point on the map.

Prerequisites
This tutorial requires a supported version of Microsoft Visual Studio and ArcGIS Runtime SDK for .NET. See Install the SDK and System
requirements for more information.
Familiarity with Visual Studio and a basic understanding of XAML and C# or Visual Basic .NET (VB .NET) is recommended.

Create a Windows Store app


You'll use Visual Studio to create a Windows Store app.
Steps:
1. Open a supported version of Microsoft Visual Studio.
2. Choose File > New > Project (or click New Project on the Start page) to create a project.
3. Click Store Apps > Windows Apps > Blank App (Windows) in the New Project dialog box (you can create your project in
either C# or VB .NET).
Note: Visual Studio 2015 organizes project types slightly differently. You'll find Store projects under
Windows 8 > Windows

Tip: ArcGIS Runtime SDK for .NET provides a project template for creating your mapping app, called
ArcGIS Runtime 10.2.7 for .NET App. Creating your project from the template will add the
appropriate references and a page with a map view containing a single base layer. In this tutorial,
you'll build your app from a blank template.

4. Choose a folder location for your new project and name it Geocoding.

5. Click OK to create the project.


Your project opens in Visual Studio and contains a single page called MainPage.xaml.
Next, you'll add a reference to the ArcGIS Runtime SDK for .NET API assembly.
6. Right-click the References node under the Geocoding project listing in the Visual Studio Solution Explorer window, and
click Add Reference in the context menu.
7. Check the listing for the ArcGIS Runtime for Windows Store apps assembly under Windows 8.1 > Extensions.

Copyright 1995-2015 Esri. All rights reserved. 42


ArcGIS Runtime SDK for .NET

8. Click OK to add the reference to ArcGIS Runtime for .NET.

Note: In order for your app to build, you need to specify a build target for the project. The default value of
Any CPU will not work and is why the new references are shown with a yellow warning icon.
You will now specify a build platform for the app.
9. Choose BUILD > Configuration Manager.
10. Choose x86 in the Active solution platform drop-down menu. This will target a 32-bit platform for the app.

11. Click Close in the Configuration Manager dialog box.


The warning icons no longer appear in the Solution Explorer window for these references.

Create a map with a streets basemap layer


Now that you've created a simple project and referenced ArcGIS Runtime SDK, you're ready to add a map to your app. You'll create a
map to display the ArcGIS Online world street maps basemap layer to provide context for your address results. After implementing the
geocoding functionality, your results will be displayed as graphics on top of this layer.

Steps:
To use the ESRI.ArcGISRuntime library in the XAML designer, you must first make the required reference to its XML
namespace.
1. Open the MainPage.xaml file in the Visual Studio designer.
2. Go to the XAML view of the designer, and add the following XML namespace reference to the Page XAML element. Visual
Studio offers IntelliSense to help complete the URL portion of the statement.

Copyright 1995-2015 Esri. All rights reserved. 43


ArcGIS Runtime SDK for .NET

xmlns:esri="using:Esri.ArcGISRuntime.Controls"
xmlns:layers="using:Esri.ArcGISRuntime.Layers"

Next, you'll add a MapView control to the window and define a layer to display.
3. Add the following XAML inside the <Grid> element to define a new MapView control on the page. The map will contain the
World Streets Map basemap layer from ArcGIS Online and an empty graphics layer for displaying geocode results.
<esri:MapView x:Name="MyMapView">
<esri:Map x:Name="MyMap">
<layers:ArcGISTiledMapServiceLayer ID="Streets"
ServiceUri="http://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer"/>
<layers:GraphicsLayer ID="GeocodeResults"/>
</esri:Map>
</esri:MapView>

Note: In the previous XAML, a value is provided for each layer's ID property. This simplifies referring to
the layer programmatically. For the MapView and Map controls, the x:Name property serves the
same purpose.

Tip: In addition to the World imagery map, ArcGIS Online provides basemaps of streets, topographic
data, historical maps, and many others. Visit Living Atlas of the World to browse some of the
available basemaps. If you find a basemap you'd like to use in your app, you can copy the service
URI from its description page.

Create a UI for finding an address


You'll add some simple controls to allow users to enter an address to locate on the map.

Steps:
1. Add the following XAML to define a simple UI for address input. It's important to add this XAML below the code for your
MapView element to ensure the address controls display on top of the map.
<StackPanel Orientation="Vertical"
HorizontalAlignment="Left" VerticalAlignment="Top" Background="Blue">
<StackPanel Orientation="Horizontal">
<TextBox x:Name="AddressTextBox" Text="1145 17th St NW, Washington, DC 20036" Margin="10,0"/>
<Button x:Name="FindAddressButton" Content="Find"/>
</StackPanel>
</StackPanel>

2. Add the following XAML to the Button element to define a handler for its Click event. When prompted by Visual Studio
IntelliSense, press the Tab key to create the new event handler, which will be called FindAddressButton_Click as
shown in the following code example:
<Button x:Name="FindAddressButton" Content="Find" Click="FindAddressButton_Click"/>

3. Right-click the text FindAddressButton_Click in the designer and choose Go To Definition from the context menu that
appears.

The code view opens for your page, to the new FindAddressButton_Click handler.

Add code to find an address


In the following steps, you'll add code to find matches for an address string provided by the user.

Steps:

Copyright 1995-2015 Esri. All rights reserved. 44


ArcGIS Runtime SDK for .NET

1. At the top of the MainPage.xaml.cs file, add the following using statements to bring in required geocoding and geometry
functionality.
using Esri.ArcGISRuntime.Tasks.Geocoding;
using Esri.ArcGISRuntime.Geometry;

2. Return to the FindAddressButton_Click event handler and add the following code to create an OnlineLocatorTask
object. The constructor takes two arguments: the URI for the geocode service and a token (required for secured services).
var uri = new Uri("http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer");
var token = String.Empty;
var locator = new OnlineLocatorTask(uri, token);

Finding an address using the OnlineLocatorTask requires an OnlineLocatorFindParameters object, which holds all
relevant information for the address search.
3. Add the following code to define the find parameter:
var findParams = new OnlineLocatorFindParameters(AddressTextBox.Text);
findParams.OutSpatialReference = MyMapView.SpatialReference;
findParams.SourceCountry = "US";

The Text property defines the address to locate. By setting the OutSpatialReference property to that of the MapView,
you'll get results that can be used in the map without having to reproject. SourceCountry is an optional property that can
be set to restrict address searches to a specific country (which can improve performance). This value can be set using the
ISO country code, a list of which can be found at www.iso.org.
4. Call the FindAsync method on the locator by adding the following code:
var results = await locator.FindAsync(findParams, new System.Threading.CancellationToken());

The FindAsync method takes two arguments: OnlineLocatorFindParameters and


System.Threading.CancellationToken. The cancellation token can be used to allow the user to cancel long-running
tasks. By passing in a new CancellationToken, you have essentially ignored this argument.
Using the await keyword, your query will complete asynchronously, then resume execution with the lines that follow. The
compiler treats this code as a callback for the function called with await.To use the await keyword, however, you must
mark the function containing it with the async keyword.
5. Mark the FindAddressButton_Click event handler with the async keyword, as shown in the following code example:
private async void FindAddressButton_Click(object sender, RoutedEventArgs e)

6. After the call to FindAsync completes, check for results. If there is at least one result (address match), you'll get the
location of the first match, as shown in the following code example:
if (results.Count > 0)
{
var firstMatch = results[0].Feature;
var matchLocation = firstMatch.Geometry as MapPoint;
}

7. Continue the code in the if statement with the following code to build an Envelope that surrounds the location. Zoom the
map to that extent by passing the envelope to SetViewAsync.
var matchExtent = new Envelope(matchLocation.X - 100,
matchLocation.Y - 100,
matchLocation.X + 100,
matchLocation.Y + 100);
await MyMapView.SetViewAsync(matchExtent);

The Envelope is created by subtracting 100 meters from the location's minimum X and Y values and adding 100 meters to
the maximum X and Y values.
8. Run the app and test the Find button.

Copyright 1995-2015 Esri. All rights reserved. 45


ArcGIS Runtime SDK for .NET

The map zooms to the extent of the first result found.

Tip: If you want the user to review all matches, you can modify the app to show the list of results along with the
value of each candidate's Score property (an int between 0 and 100).
Add a point graphic at the address location
Your app currently zooms to the extent of a match but does not show its precise location. In the following steps, you'll add code to place a
point graphic to indicate the location of the match.

Steps:
1. At the top of your MainPage.xaml.cs code file, add the following using statements to bring in the required
Esri.ArcGISRuntime.Symbology and Esri.ArcGISRuntime.Layers namespaces.
using Esri.ArcGISRuntime.Symbology;
using Esri.ArcGISRuntime.Layers;

2. Return to the FindAddressButton_Click event handler. Below the line that instantiates the matchLocation variable,
add the following code to instantiate a new PictureMarkerSymbol for displaying the point. Set the source of the marker's
picture using the SetSourceAsync method with the await keyword.
var matchSym = new PictureMarkerSymbol();
var pictureUri = new Uri("http://static.arcgis.com/images/Symbols/Basic/GreenStickpin.png");
await matchSym.SetSourceAsync(pictureUri);

Tip: The Static Images topic in the API reference contains a list of available images hosted on
static.arcgis.com.

3. Create a new Graphic. Pass in the geometry and symbol to the constructor.
var matchGraphic = new Graphic(matchLocation, matchSym);

4. Get a reference to the graphic layer you defined for the map, and add the new graphic.
var graphicsLayer = MyMap.Layers["GeocodeResults"] as GraphicsLayer;
graphicsLayer.Graphics.Add(matchGraphic);

5. Test the app. In addition to zooming to the match location, you'll also see a pushpin marker at the match location.

Copyright 1995-2015 Esri. All rights reserved. 46


ArcGIS Runtime SDK for .NET

6. Instead of an address, search for a well known place name. Try Smithsonian or White House, for example.
The world geocoding service allows you to find locations by providing an address orfor well known placesa name.

Use reverse geocoding to determine addresses for locations on the map


In the previous sections, you used geocoding to find points on the map using an input address string. In this section, you'll use the
opposite approach: taking a location on the map as input and determining the (approximate) address for the point supplied.

Steps:
1. Open the MainPage.xaml page and add a new Button called ReverseGeocodeButton to your existing XAML as shown
in the following code example:
<StackPanel Orientation="Vertical"
HorizontalAlignment="Left" VerticalAlignment="Top" Background="Blue">
<StackPanel Orientation="Horizontal">
<TextBox x:Name="AddressTextBox" Text="1145 17th St NW, Washington, DC 20036" Margin="10,0"/>
<Button x:Name="FindAddressButton" Content="Find" Click="FindAddressButton_Click"/>
</StackPanel>
<Button x:Name="ReverseGeocodeButton" Content="Reverse Geocode"/>
</StackPanel>

2. Add a click handler to the button. When prompted by IntelliSense, create a New Event Handler named
ReverseGeocodeButton_Click.
<Button x:Name="ReverseGeocodeButton" Content="Reverse Geocode" Click="ReverseGeocodeButton_Click"/>

3. Right-click the ReverseGeocodeButton_Click handler in the XAML, and choose Go To Definition in the context menu
that appears.

The code view opens to the ReverseGeocodeButton_Click event handler.


While the MapView control exposes touch and mouse events, such as MapViewTapped, MapViewDoupleTapped, and
MapViewHolding, these events aren't always the best places to capture geometry from the user. Since such events fire
when the user zooms and pans on the map, you need to add logic to prevent your code from running in those scenarios.

Copyright 1995-2015 Esri. All rights reserved. 47


ArcGIS Runtime SDK for .NET

The MapView control has an associated Editor that is accessible from the Editor property. In addition to helping you
configure editing functionality, the Editor class provides methods for obtaining geometry from the user. You'll use the
RequestPointAsync method on the Editor to get a point to reverse geocode from the user.
4. Start the ReverseGeocodeButton_Click event handler with the following code to get a point from the user:
var mapPoint = await MyMapView.Editor.RequestPointAsync();

Because the call to RequestPointAsync is asynchronous, you must use the await keyword. This means that the function
that contains the call must also be marked with the async keyword.
5. Add the async keyword to the definition of the ReverseGeocodeButton_Click handler.
private async void ReverseGeocodeButton_Click(object sender, RoutedEventArgs e)

RequestPointAsync returns the user's map click as a MapPoint object. Because the map is in a Web Mercator spatial
reference, and the OnlineLocatorTask you're using requires geographic points (decimal degrees of longitude and
latitude), you need to project the point before performing the reverse geocode.
6. Add the following code (after the line that instantiates the mapPoint variable) to project the user's point to geographic units:
var mapPointGeo = GeometryEngine.Project(mapPoint, SpatialReferences.Wgs84) as MapPoint;

7. Create an OnlineLocatorTask using the same code you wrote for the geocoding operation, as shown in the following
code example:
var uri = new Uri("http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer");
var token = String.Empty;
var locator = new OnlineLocatorTask(uri, token);

8. Use the OnlineLocatorTask to perform the reverse geocode on the geographic point by calling its
ReverseGeocodeAsync method.
var addressInfo = await locator.ReverseGeocodeAsync(mapPointGeo, 100, new System.Threading.CancellationToken());

The ReverseGeocdodeAsync method returns a LocatorReverseGeocodeResult. The information about the address is
available in the AddressFields property.
9. Build the estimated reverse geocoding address string by reading values in the LocatorReverseGeocodeResult
AddressFields property, which is a dictionary of strings.
var address = addressInfo.AddressFields["Address"] + ", " +
addressInfo.AddressFields["City"] + ", " +
addressInfo.AddressFields["Region"] + " " +
addressInfo.AddressFields["Postal"];

The following keys are available in the AddressFields dictionary:


Address: house number and street, intersection, or place name.
City: city or municipality containing the address.
Region: the largest administrative division associated with an address, such as a state or province.
Subregion: the next largest administrative division, such as county (not used for US or Mexico addresses).
Neighborhood: the smallest administrative division associated with an address (not used for US addresses).
Postal: standard postal code for an address, typically a 3-6 digit alpha-numeric code
PostalExt: postal code extension (additional postal code information, such as the last four digits of a "zip + 4"
postal code)
CountryCode: the full country name in English or the official language of the country, the ISO 3166-1 2-digit country
code, or the ISO 3166-1 3-digit country code.
Loc_name
10. Display the address to the user.
var dialog = new Windows.UI.Popups.MessageDialog(address);
await dialog.ShowAsync();

11. Test the app. Zoom to a portion of the map where streets are visible, click the Reverse Geocode button, and click near a
street to see an interpolated address.

Copyright 1995-2015 Esri. All rights reserved. 48


ArcGIS Runtime SDK for .NET

In this tutorial, you used the OnlineLocatorTask to perform geocoding and reverse geocoding operations using an ArcGIS for Server
geocode service. To perform the same operations using a locator on the local file system, use the LocalLocatorTask class. To learn
about providing routing functionality and detailed driving directions using the ArcGIS Runtime SDK for .NET, see the Get driving directions
tutorial.

Related Topics
Get driving directions
Search for places

Copyright 1995-2015 Esri. All rights reserved. 49


ArcGIS Runtime SDK for .NET

Get driving directions


ArcGIS Runtime API for .NET provides a RouteTask abstract class, which is a base class for the OnlineRouteTask and
LocalRouteTask classes. These classes allow you to perform routing functionality, including detailed directions between locations,
leveraging either online or local data sources.
This tutorial introduces you to using the classes available for working with routes in your app. Your completed app will allow users to
locate "from" and "to" address locations, determine the best route between them, and display the route on the map along with turn-by-turn
directions.

Prerequisites
This tutorial requires a supported version of Microsoft Visual Studio and ArcGIS Runtime SDK for .NET. Refer to the appropriate topics in
the guide for information on installing the SDK and system requirements.
Familiarity with Visual Studio and a basic understanding of XAML and C# or Visual Basic .NET (VB .NET) is recommended.

Note: You must have an ArcGIS Online organizational account in order to connect to the world route service used
to complete this tutorial. Visit the Esri website for information about pricing and trial subscriptions.
Create a Windows Store app
You'll use Visual Studio to create a Windows Store app.
Steps:
1. Open a supported version of Microsoft Visual Studio.
2. Choose File > New > Project (or click New Project on the Start page) to create a project.
3. Click Store Apps > Windows Apps > Blank App (Windows) in the New Project dialog box (you can create your project in
either C# or VB .NET).
Note: Visual Studio 2015 organizes project types slightly differently. You'll find Store projects under
Windows 8 > Windows

Tip: ArcGIS Runtime SDK for .NET provides a project template for creating your mapping app, called
ArcGIS Runtime 10.2.7 for .NET App. Creating your project from the template will add the
appropriate references and a page with a map view containing a single base layer. In this tutorial,
you'll build your app from a blank template.

4. Choose a folder location for your new project and name it DrivingDirections.

5. Click OK to create the project.


Your project opens in Visual Studio and contains a single page called MainPage.xaml.
Next, you'll add a reference to the ArcGIS Runtime SDK for .NET API assembly.
6. Right-click the References node under the DrivingDirections project listing in the Visual Studio Solution Explorer window,
and click Add Reference in the context menu.
7. Check the listing for the ArcGIS Runtime for Windows Store apps assembly under Windows 8.1 > Extensions.

Copyright 1995-2015 Esri. All rights reserved. 50


ArcGIS Runtime SDK for .NET

8. Click OK to add the reference to ArcGIS Runtime for .NET.

Note: In order for your app to build, you need to specify a build target for the project. The default value of
Any CPU will not work and is why the new references are shown with a yellow warning icon.
You will now specify a build platform for the app.
9. Choose BUILD > Configuration Manager.
10. Choose x86 in the Active solution platform drop-down menu. This will target a 32-bit platform for the app.

11. Click Close in the Configuration Manager dialog box.


The warning icons no longer appear in the Solution Explorer window for these references.

Create a map with a streets basemap layer


Now that you've created a simple project and referenced ArcGIS Runtime SDK, you're ready to add a map to your app. You'll create a
map to display the ArcGIS Online world streets basemap layer to provide context for your route results and driving directions. After
implementing the routing functionality, your results will be displayed as graphics on top of this layer.

Steps:
To use the ESRI.ArcGISRuntime library in the XAML designer, you must first make some required references to XML
namespaces.
1. Open the MainPage.xaml file in the Visual Studio designer.
2. Go to the XAML view of the designer, and add the following XML namespace reference to the Page XAML element. Visual
Studio offers IntelliSense to help complete the URL portion of the statement.

Copyright 1995-2015 Esri. All rights reserved. 51


ArcGIS Runtime SDK for .NET

xmlns:esri="using:Esri.ArcGISRuntime.Controls"
xmlns:layers="using:Esri.ArcGISRuntime.Layers"

Next, you'll add a Map control to the window and define a layer to display.
3. Add the following XAML inside the <Grid> element to define a new MapView control on the page. The map will contain a
Map displaying the World Streets Map basemap layer from ArcGIS Online and an empty graphics layer for showing route
results.
<esri:MapView x:Name="MyMapView" >
<esri:Map x:Name="MyMap">
<layers:ArcGISTiledMapServiceLayer ID="Streets"
ServiceUri="http://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer"/>
<layers:GraphicsLayer ID="RouteResults"/>
</esri:Map>
</esri:MapView>

Note: In the previous XAML, a value is provided for each layer's ID property. This simplifies referring to
the layer programmatically. For the MapView and Map controls, the x:Name property serves the
same purpose.

Tip: In addition to the World imagery map, ArcGIS Online provides basemaps of streets, topographic
data, historical maps, and many others. Visit Living Atlas of the World to browse some of the
available basemaps. If you find a basemap you'd like to use in your app, you can copy the service
URI from its description page.

Create a UI for routing between two addresses


In this section, you'll create a simple UI that will allow the user to input a "from" and a "to" address and view step-by-step driving directions
in a scrolling panel adjacent to the map control. You'll use a Grid element to layout your app's UI according to the following graphic:

Steps:
1. Add the following XAML immediately inside the Grid element that contains your map. This will divide the Grid into four
sections defined by two rows and two columns.
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="300"/>
</Grid.ColumnDefinitions>

To define an element's location within your grid, you must set the Grid.Row and Grid.Column attached properties. These
properties default to 0, which means an element will appear in the first column of the first row (upper-left cell) unless
otherwise specified.
2. Move your MapView control to the correct position in the grid by setting its Grid.Row and Grid.Column properties as
shown in the following code example:

Copyright 1995-2015 Esri. All rights reserved. 52


ArcGIS Runtime SDK for .NET

<esri:MapView x:Name="MyMapView" Grid.Row="1" Grid.Column="0">

Tip: Since the default value is 0 for Grid.Row and Grid.Column, these properties do not need to be
explicitly set for controls appearing in those positions. You can set them to make your XAML
more readable for those not aware of the default values.

3. Inside the same Grid, below the XAML that defines your MapView, add the following XAML to define the address input
portion of the UI. This will create a StackPanel element with TextBox controls for addresses and a Button element to
initiate execution of the route.
<StackPanel Orientation="Horizontal" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
<TextBox x:Name="FromTextBox" Text="380 New York Street, Redlands CA" Width="300" Margin="5"/>
<TextBox x:Name="ToTextBox" Text="277 N Ave Caballeros, Palm Springs CA" Width="300" Margin="5"/>
<Button x:Name="GetDirectionsButton" Content="Get Directions" Margin="5"/>
</StackPanel>

The Grid.RowSpan and Grid.ColumnSpan properties allow an element to occupy multiple rows or columns. The
StackPanel occupies the entire top row of the grid (two columns).
4. Add the following XAML to define the driving directions portion of the UI. This takes up the right side of the app's UI,
immediately to the right of the Map. It contains TextBlock controls to display the total route time and distance, as well as a
ScrollViewer and TextBlock for showing the step-by-step driving directions.
<StackPanel Orientation="Vertical" Grid.Row="1" Grid.Column="1" Margin="10">
<TextBlock x:Name="RouteDistance"/>
<TextBlock x:Name="RouteTime"/>
<ScrollViewer HorizontalScrollBarVisibility="Auto" Height="250" Margin="10">
<TextBlock x:Name="DirectionsTextBlock"/>
</ScrollViewer>
</StackPanel>

Add code to geocode the input addresses


In this section, you'll begin writing code for the Get Directions button. You'll start by geocoding the addresses provided by the user for the
route's from and to locations.

Steps:
1. Add a click handler to the XAML definition of the GetDirectionsButton element. When prompted by IntelliSense, create
a New Event Handler called GetDirectionsButton_Click as shown in the following code example:
<Button x:Name="GetDirectionsButton" Content="Get Directions" Margin="5"
Click="GetDirectionsButton_Click"/>

2. Right-click the XAML for the GetDirectionsButton_Click event handler, and choose Go To Definition from the
context menu.
Visual Studio switches to code view and displays the GetDirectionsButton_Click function.
3. Add the async keyword to the definition of your GetDirectionsButton_Click event handler as shown in the following
code example. Because you're calling asynchronous methods using the await keyword, the containing function must be
defined with async.
private async void GetDirectionsButton_Click(object sender, RoutedEventArgs e)

Before fleshing out the code for GetDirectionsButton_Click, you'll add a function that asynchronously geocodes an
address that's passed in. You'll then return to the GetDirectionsButton_Click handler and call your function to get the
from and to locations for the route.
4. Add the following using statements at the top of your MainPage.xaml.cs module for namespaces in the ArcGIS Runtime
assembly that you'll need.
using Esri.ArcGISRuntime.Geometry;
using Esri.ArcGISRuntime.Layers;
using Esri.ArcGISRuntime.Symbology;
using Esri.ArcGISRuntime.Tasks.Geocoding;
using Esri.ArcGISRuntime.Tasks.NetworkAnalyst;

5. Add the following function to asynchronously geocode an address:

Copyright 1995-2015 Esri. All rights reserved. 53


ArcGIS Runtime SDK for .NET

private async System.Threading.Tasks.Task<Graphic> FindAddress(string address)


{
var uri = new Uri("http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer");
var locator = new OnlineLocatorTask(uri, string.Empty);

var findParams = new OnlineLocatorFindParameters(address);


findParams.OutSpatialReference = new SpatialReference(4326);
Graphic matchGraphic = null;
var results = await locator.FindAsync(findParams, new System.Threading.CancellationToken());
if (results.Count > 0)
{
var firstMatch = results[0].Feature;
var matchLocation = firstMatch.Geometry as MapPoint;
matchGraphic = new Graphic();
matchGraphic.Geometry = matchLocation;
matchGraphic.Attributes.Add("Name", address);
}
return matchGraphic;
}

The previous function is defined as async, which means it must return void or a value of Task or Task<T>. The
FindAddress function uses an OnlineLocatorTask to asynchronously locate the first match for the address provided. If
a match is found, its Geometry is used to create a Graphic. A Name attribute is added and populated with the value of the
address string. This is important for your app, because the driving directions returned from the route task will refer to the
stops using a Name attribute (if it exists). The function returns the Graphic (which will be null if a match was not found).
To learn more about geocoding, see the Add geocoding to your app tutorial.
6. Return to the GetDirectionsButton_Click event handler. Add two calls to the FindAddress function to get the start
and end locations using the address strings provided by the user as shown in the following code example:
var from = await this.FindAddress(this.FromTextBox.Text);
var to = await this.FindAddress(this.ToTextBox.Text);

7. Below the code that gets the from and to locations, create a try catch block similar to the following. This code checks
for the required route points and the graphics layer for displaying results. If a required object is null, the appropriate
exception message is shown in the driving directions panel.
try
{
if (from == null)
{
throw new Exception("Unable to find a match for '" + this.FromTextBox.Text + "'.");
}
if (to == null)
{
throw new Exception("Unable to find a match for '" + this.ToTextBox.Text + "'.");
}
// get the RouteResults graphics layer; add the from/to graphics
var routeGraphics = MyMap.Layers["RouteResults"] as GraphicsLayer;
if (routeGraphics == null)
{
throw new Exception("A graphics layer named 'RouteResults' was not found in the map.");
}

// code here to show address locations on the map


}
catch (Exception exp)
{
this.DirectionsTextBlock.Text = exp.Message;
}

8. Add the following code immediately below the comment that says // code here to show address locations on
the map. This adds the from address location to the results graphics layer as a green circle and the to address location as a
red circle.
var fromMapPoint = GeometryEngine.Project(from.Geometry, new SpatialReference(102100));
var toMapPoint = GeometryEngine.Project(to.Geometry, new SpatialReference(102100));

var fromSym = new SimpleMarkerSymbol { Style = SimpleMarkerStyle.Circle, Size = 16, Color = Windows.UI.Colors.Green };
var toSym = new SimpleMarkerSymbol { Style = SimpleMarkerStyle.Circle, Size = 16, Color = Windows.UI.Colors.Red };

var fromMapGraphic = new Graphic { Geometry = fromMapPoint, Symbol = fromSym };


var toMapGraphic = new Graphic { Geometry = toMapPoint, Symbol = toSym };
routeGraphics.Graphics.Add(fromMapGraphic);
routeGraphics.Graphics.Add(toMapGraphic);

The previous code projects the address match points from a geographic spatial reference (required for the
OnlineRouteTask) to Web Mercator (to match the map) before creating and adding the graphics.
9. Test the functionality you've added to this point. Run the app and click the Get Directions button with the default address
values in the text boxes. You'll see graphics added to the southern California region of the map. Zoom in and you'll see both
graphics as shown in the following screen capture:

Copyright 1995-2015 Esri. All rights reserved. 54


ArcGIS Runtime SDK for .NET

Enable access to a secured service


To instantiate an OnlineRouteTask, you need to provide a URL to a REST resource that represents a Route layer in a Network Analyst
service. If the service is secured, you will also need to provide the credentials that can be used to access the service. In the following
steps, you'll add code that allows your app to connect to a secured ArcGIS Online route service. More information about accessing
secured services is available in the Security topic.

Note: You must have an ArcGIS Online organizational account in order to connect to the world route service used
in this tutorial. Visit the Esri website for information about pricing and trial subscriptions.

Steps:
1. Add the following using statements to the top of your code module to bring in some security-related classes.
using Esri.ArcGISRuntime.Security;
using Esri.ArcGISRuntime.Http;

2. Create two new string variables to hold your ArcGIS Online organizational username and password, as shown in the
following code (replace the values with your login info). Add these lines immediately inside your class definition.
private const string ArcGISOnineUser = "MyUsername"; // update value with your username
private const string ArcGISOninePassword = "my-P@SSw0rd"; // update value with your password

3. Add the following function to serve as a ChallengeHandler. When a request for a secured service is encountered, this
function will handle getting credentials for a user that can connect to the service.
private async Task<Credential> CreateHardCodedCredentialAsync(CredentialRequestInfo requestInfo)
{
Credential cred = null;
try
{
var options = new GenerateTokenOptions();
options.TokenAuthenticationType = TokenAuthenticationType.ArcGISToken;
cred = await IdentityManager.Current.GenerateCredentialAsync(requestInfo.ServiceUri, ArcGISOnineUser, ArcGISOninePassword, options);
}
catch (ArcGISWebException webEx)
{
// couldn't generate a token, probably a bad login

var msgBox = new MessageDialog("Unable to authenticate with portal: " + webEx.Message);


msgBox.ShowAsync();
}

return cred;
}

This function will attempt to obtain credentials for any secured services with the username and password provided in your
code. If the login fails, an ArcGISWebException is thrown. For more information about using ArcGIS Token authentication
(including how to prompt users for their credentials), see the Use ArcGIS token authentication topic.
4. Next, set the app to use the challenge handler function above by assigning the IdentityManager.ChallengeHandler
property as shown in the following example. This code should go in your class constructor, immediately following the call to
InitializeComponent.

Copyright 1995-2015 Esri. All rights reserved. 55


ArcGIS Runtime SDK for .NET

IdentityManager.Current.ChallengeHandler = new ChallengeHandler(CreateHardCodedCredentialAsync);

You are now able to connect to the secured ArcGIS Online world routing service to solve routes and get driving directions.

Find the best route and display it on the map


Next, you'll use an OnlineRouteTask to solve a route using the geocoded locations. If the route is solved successfully, you'll display the
result as a graphic on the map.

Steps:
1. Continue the code in your GetDirectionsButton_Click function by adding the following code to create an
OnlineRouteTask. Add this code immediately after the code that adds the geocoded point graphics to the map.
var uri = new Uri(
"http://route.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World"
);
var routeTask = new OnlineRouteTask(uri);

The OnlineRouteTask requires an ArcGIS Network Analyst service, whose URI is passed into the constructor. The
Route_World service is a secured ArcGIS Online service available to users with an organizational account.
2. Add the following code to set route parameters using the RouteParameters class:
var routeParams = await routeTask.GetDefaultParametersAsync();
routeParams.OutSpatialReference = MyMapView.SpatialReference;
routeParams.DirectionsLengthUnit = LinearUnits.Miles;
routeParams.ReturnDirections = true;

The RouteParameters object is used to specify properties such as the output spatial reference for route result features,
the length unit to use in driving directions, whether certain restrictions should be placed on routing (for example, no u-turns),
barriers to consider, and so on. It also holds a Stops collection, which you'll set using your geocoded points.
3. Add the following code to create the required stops for the RouteParameters. Make sure you use the graphics in
geographic units (from and to variables), rather than those you projected to Web Mercator for display on the map.
var stopGraphics = new List<Graphic>();
stopGraphics.Add(from);
stopGraphics.Add(to);
routeParams.SetStops(stopGraphics);

4. Solve the route by calling SolveAsync. If no results are returned, you'll throw an exception to display in the app. Otherwise,
get a reference to the first (only) route in the results.
var routeResult = await routeTask.SolveAsync(routeParams);
if (routeResult == null || routeResult.Routes == null || routeResult.Routes.Count == 0)
{
throw new Exception("Unable to solve the route.");
}

var firstRoute = routeResult.Routes[0];

5. Get the result RouteFeature, create a new Graphic using the route geometry and a new SimpleLineSymbol.
var routeFeature = firstRoute.RouteFeature;
var routeSym = new SimpleLineSymbol
{
Color = Windows.UI.Colors.Navy,
Style = SimpleLineStyle.Dash,
Width = 2
};
var routeGraphic = new Graphic(routeFeature.Geometry, routeSym);

6. Add the route graphic to the results layer, and set the map view to the extent of the route.
routeGraphics.Graphics.Add(routeGraphic);
await MyMapView.SetViewAsync(routeGraphic.Geometry.Extent);

7. Test the functionality you've coded to this point. Run the app, and click the Get Directions button with the default address
values. The map zooms to the extent of the resulting route as shown in the following screen capture:

Copyright 1995-2015 Esri. All rights reserved. 56


ArcGIS Runtime SDK for .NET

Display driving directions for the route


The Route class exposes a collection of RouteDirection objects that can be used to get driving directions along all segments in the
route. In this section, you'll iterate over this collection and build the driving direction text to display in the app.

Steps:
1. Continue your code in GetDirectionsButton_Click immediately below the line that zooms the map to the extent of the
route. Begin by defining the following variables to store driving directions as well as information about the route:
var directionsBuilder = new System.Text.StringBuilder();
var totalMiles = 0.0;
var totalMinutes = 0.0;
var step = 1;

2. Create the following loop to iterate over each RouteDirection in the RouteDirections collection:
foreach (var d in firstRoute.RouteDirections)
{
}

3. Inside the foreach loop, add the following code to append the current directions text to the directionsBuilder variable
(StringBuilder):
directionsBuilder.AppendFormat("{0} \t {1}", step.ToString(), d.Text + "\n");
step++;

This code will append a step number, followed by a TAB, followed by the directions text, and finally a new line. The step
variable is then incremented.
4. Add the following code inside the loop to keep a running total of the segment length (miles) and time (minutes):
totalMiles += d.GetLength(LinearUnits.Miles);
totalMinutes += d.Time.TotalMinutes;

5. Add the following code outside of the loop to update the app UI with the route info and driving directions:
this.RouteDistance.Text = totalMiles.ToString("0.00") + " miles";
this.RouteTime.Text = totalMinutes.ToString("0.00") + " minutes";
this.DirectionsTextBlock.Text = directionsBuilder.ToString();

6. Test the app again. Click the Get Directions button with the default address values. An image similar to the following
displays:

Copyright 1995-2015 Esri. All rights reserved. 57


ArcGIS Runtime SDK for .NET

In this tutorial, you used the OnlineRouteTask to perform routing operations using an ArcGIS for Server Network Analyst service. To
perform the same operations using a network dataset on the local file system, use the LocalRouteTask class. To learn more about
using geocode functionality with ArcGIS Runtime SDK for .NET, see the Add geocoding to your app tutorial.

Related Topics
Add geocoding to your app
Search for places

Copyright 1995-2015 Esri. All rights reserved. 58


ArcGIS Runtime SDK for .NET

Create an offline app


When in a connected environment, ArcGIS Runtime SDK apps can use online services hosted by ArcGIS for Server or ArcGIS for Portal
(ArcGIS Online, for example) to provide data. These services can provide map tiles, features, or even functionality like geocoding or
routing for your app. An advantage of using online services is that you do not need to store large datasets locally. Instead, you can
request the maps, features, or functionality you need from the service. You also don't need to maintain numerous copies of the data since
online services allow you to maintain a consistent centralized view of your data. Apps that consume your services can be assured that
they have the most current (or at least the same) version of the data.
There are several use cases, however, where working with data locally may provide a good strategy. You can design your app to work
exclusively with local data (completely disconnected, in other words) or as a hybrid solution that leverages both online and local data
sources.
Here are some common motivating factors for using local data in an ArcGIS Runtime app.
Mobile apps with unpredictable connectivityYou can design your app to automatically respond to loss of connectivity by
switching to local datasets.
Disconnected appsDue to hardware or security limitations, you may need an app that works completely offline and only uses
local data.
Mobile editingEdits can be made by field workers while connected or disconnected. When a connection becomes available,
offline edits can be synchronized with the service.
Increased performanceData and functionality accessed locally does not have the network communication overhead involved
when accessing online services.
The primary concerns when working with local data are creating copies of the datasets you need and getting them onto the device. There
are two patterns you can use for working with offline data, characterized by how the local versions of the data are created and used by the
app: the desktop pattern and the services pattern.
Desktop patternData packages are created using ArcGIS for Desktop, then provisioned for your app. Such packages are
deployed with the installation of your app and make things like features, tiles, network datasets, and locators (geocoding
functionality) available on the client. In the desktop pattern, the local datasets are read-only.
Note: Shapefiles can also be copied to a device and read by your ArcGIS Runtime app. They are read-only
and do not support projection on-the-fly.

Services patternDatasets (features or tiles) are downloaded from configured services to generate local versions of the data. This
pattern lets multiple offline users edit the same data layers and synchronize their edits back to the service later (when an Internet
connection is available, for example). When more than one user is editing the same feature and the edits conflict, the last edit
committed overrides the others.
The desktop pattern allows you to deliver the data with your app, which works well when you know exactly what data the app needs.
Feature data provisioned using the desktop pattern is read-only, so if editing is required in your app, you must use the services pattern to
create the offline features. The services pattern provides local copies of the data directly from the service, and allows you to filter the
features you need according to layers and map extent. Most importantly, local datasets copied from the service allow editing of features.
Those edits can be synchronized with the service when needed. Be aware that the services pattern may require a lot of time and
bandwidth to produce local copies of large datasets, especially a local map tile cache.
A hybrid solution for working with local data is often a good approach. Local feature data can be obtained using the services pattern to
ensure the data are current, editable, and can be synchronized with the service. Local tile caches can be provisioned using the desktop
pattern to ensure the large datasets are available when needed, without requiring the user to wait for them to generate and download.

License: An app licensed at the Basic level can include viewing offline basemaps and feature data from a runtime
geodatabase. You must license your app at the Standard level if it includes any of the following functionality:
offline editing, syncing offline edits with an upload, offline routing, and offline geocoding. See License your
app for more information on license levels.

This tutorial introduces you to techniques that can give your user a seamless experience when working with an app in connected and
offline modes. Specifically, you will learn how to:
Create a local database of features using the services pattern.
Create a local tile package.
Access local datasets for display.
Switch between online and local data sources in the map.

Copyright 1995-2015 Esri. All rights reserved. 59


ArcGIS Runtime SDK for .NET

Prerequisites
This tutorial requires a supported version of Microsoft Visual Studio and ArcGIS Runtime SDK for .NET. See Install the SDK and System
requirements for more information.
Familiarity with Visual Studio and a basic understanding of XAML, and C# or Visual Basic .NET (VB .NET) is recommended.

Create a Windows Store app


You'll use Visual Studio to create a Windows Store app.
Steps:
1. Open a supported version of Microsoft Visual Studio.
2. Click File > New > Project (or click New Project on the Start page) to create a project.
3. Click Store Apps > Windows Apps > Blank App (Windows) on the New Project dialog box (you can create your project in
either C# or VB .NET).
Note: Visual Studio 2015 organizes project types slightly differently. You'll find Store projects under
Windows 8 > Windows

Tip: ArcGIS Runtime SDK for .NET provides a project template for creating your mapping app, called
ArcGIS Runtime 10.2.7 for .NET App. Creating your project from the template will add the
appropriate references and a page with a map view containing a single base layer. In this tutorial,
you'll build your app from a blank template.

4. Choose a folder location for your new project and name it OfflineApp.

5. Click OK to create the project.


Your project opens in Visual Studio and contains a single page called MainPage.xaml.
Next, add a reference to the ArcGIS Runtime SDK for .NET API assembly.
6. Right-click the References node under the OfflineApp project listing in the Visual Studio Solution Explorer window, and
click Add Reference in the context menu.
7. Check the listing for the ArcGIS Runtime for Windows Store apps assembly under Windows 8.1 > Extensions.

8. Click OK to add the reference to ArcGIS Runtime for .NET.

Copyright 1995-2015 Esri. All rights reserved. 60


ArcGIS Runtime SDK for .NET

Note: For your app to build, specify a build target for the project. The default value of Any CPU will not
work and is why the new references show with a yellow warning icon.
You will now specify a build platform for the app.
9. Choose BUILD > Configuration Manager.
10. Choose x86 in the Active solution platform drop-down menu. This targets a 32-bit platform for the app.

11. Click Close on the Configuration Manager dialog box.


The warning icons no longer appear in the Solution Explorer window for these references.

Add an empty map control


To start with, your app contains a MapView control with an empty Map. At runtime, your app attempts to display content from ArcGIS
Online. If it is unable to use the online datasets, it reports an error.

Begin by creating a basic UI for your app. To use the classes in the ArcGIS Runtime API, define XML namespace references in
MainPage.xaml.
Steps:
1. Open the MainPage.xaml page in XAML view.
2. Add the following XAML in the Page element of MainPage.xaml to define an XML namespace reference for the ArcGIS
Runtime API controls.
xmlns:esri="using:Esri.ArcGISRuntime.Controls"

3. Inside the Grid element on the page, add the XAML below to create an empty MapView control. Assign the name
MyMapView to the control so you can reference it in your code behind.
<esri:MapView x:Name="MyMapView">
<esri:Map>
</esri:Map>
</esri:MapView>

Depending on connectivity, at runtime your MapView displays maps and layers from online or local sources.

Create the UI
The UI for your app have controls for creating local versions of the online data sources (map tiles and features), and for switching between
online and local data sources. The XAML to define the app's UI has been created for you.

Steps:

Copyright 1995-2015 Esri. All rights reserved. 61


ArcGIS Runtime SDK for .NET

1. Copy the following XAML and paste it into your MainPage.xaml page to create your app's UI. Paste it immediately after the
XAML that defines your map view.
<Canvas
Width="370" Height="197"
HorizontalAlignment="Left" VerticalAlignment="Bottom"
Margin="20,0,0,143" >
<Border x:Name="ToolsPanel"
CornerRadius="10"
Background="DarkGray" Opacity="0.85"
Width="370"
Canvas.Top="0">
<Grid x:Name="Controls"
Opacity="1"
Margin="10">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<RadioButton x:Name="UseOnlineDataOption"
Grid.Row="0" Grid.Column="0"
Click="DataOptionChecked"
Content="Online Data"
HorizontalAlignment="Center" VerticalAlignment="Center"
IsChecked="True"/>
<RadioButton x:Name="UseLocalDataOption"
Grid.Row="0" Grid.Column="1"
Click="DataOptionChecked"
Content="Local Data"
HorizontalAlignment="Center" VerticalAlignment="Center" />
<StackPanel Orientation="Horizontal"
Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3"
Margin="0,10,0,5">
<Button x:Name="GenerateLocalGeodatabaseButton"
Click="GetFeatures"
ToolTipService.ToolTip="Generate local geodatabase"
Margin="0,0,3,0" >
<Image Source="http://static.arcgis.com/images/Symbols/Cartographic/esriCartographyMarker_60_White.png" Width="20" Height="20">
<Image.RenderTransform>
<RotateTransform Angle="180" CenterX="10" CenterY="10"/>
</Image.RenderTransform>
</Image>
</Button>
<TextBlock Text="Local features: " VerticalAlignment="Center" FontSize="14"/>
<TextBlock x:Name="LocalDataPathTextBlock"
Text="&lt; none &gt;" VerticalAlignment="Center" FontSize="14"/>
</StackPanel>
<StackPanel Orientation="Horizontal"
Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3"
Margin="0,5,0,10">
<Button x:Name="GenerateLocalTilesButton"
Click="GetTiles"
ToolTipService.ToolTip="Generate local tiles"
Margin="0,0,3,0" >
<Image Source="http://static.arcgis.com/images/Symbols/Cartographic/esriCartographyMarker_60_White.png" Width="20" Height="20">
<Image.RenderTransform>
<RotateTransform Angle="180" CenterX="10" CenterY="10"/>
</Image.RenderTransform>
</Image>
</Button>
<TextBlock Text="Local tiles: " VerticalAlignment="Center" FontSize="14"/>
<TextBlock x:Name="LocalTilesPathTextBlock"
Text="&lt; none &gt;" VerticalAlignment="Center" FontSize="14"
Margin="10,0"/>
</StackPanel>
<StackPanel x:Name="StatusPanel"
Grid.Row="5" Grid.Column="0" Grid.ColumnSpan="3"
Orientation="Vertical"
Visibility="Collapsed"
Margin="0,10">
<ListBox x:Name="StatusMessagesList"
Width="350" Height="80"
ScrollViewer.VerticalScrollBarVisibility="Visible"/>
<ProgressBar x:Name="StatusProgressBar"
Width="350" Height="5"/>
</StackPanel>
</Grid>
</Border>
</Canvas>

Many of the controls in the preceding XAML refer to event handlers that do not exist in your code behind.

2. Create stubs in your code behind for the event handlers referenced in your UI's XAML by copying the following code into
your MainPage.xaml.cs file. Some of the handlers require the async keyword.

Copyright 1995-2015 Esri. All rights reserved. 62


ArcGIS Runtime SDK for .NET

private void DataOptionChecked(object sender, RoutedEventArgs e)


{
}

private async void GetTiles(object sender, RoutedEventArgs e)


{
}

private async void GetFeatures(object sender, RoutedEventArgs e)


{
}

Tip: You can create event handlers for your XAML controls by right-clicking the name of a handler and
clicking Go to definition in the context menu. If the handler does not exist, Visual Studio creates
it for you.

Load online layers


When the empty map in your app loads, call a function to load layers from online services (ArcGIS Online). If the online sources cannot be
loaded, an error message displays to the user. If local versions of the data are available, the user can load local layers that display in the
map.

Start by adding some required using statements, variables, and an event handler for the map loaded event.
Steps:
1. Open the MainPage.xaml.cs code behind.
2. Add the following using statements at the top of the code module for additional namespaces you'll require.
using Esri.ArcGISRuntime.Controls;
using Esri.ArcGISRuntime.Data;
using Esri.ArcGISRuntime.Geometry;
using Esri.ArcGISRuntime.Http;
using Esri.ArcGISRuntime.Layers;
using Esri.ArcGISRuntime.Tasks.Offline;
using System.Threading;
using System.Threading.Tasks;
using Windows.UI.Popups;
using Windows.Storage;
using Windows.UI.Core;

3. Inside the class definition, add the following variable declarations. These variables contain the information you need to load
layers from online or local sources.
private const string basemapUrl = "http://sampleserver6.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer";
private const string operationalUrl = "http://sampleserver6.arcgisonline.com/arcgis/rest/services/Sync/SaveTheBaySync/FeatureServer/0";
private string localTileCachePath;
private string localGeodatabasePath;

4. In the class constructor, create a handler for the MyMapView.Loaded event. When prompted, click the Tab key to have
Visual Studio generate the stub for the handler. Your code should look like the following.
public MainPage()
{
InitializeComponent();

MyMapView.Loaded += MyMapView_Loaded;
}

private void MyMapView_Loaded(object sender, RoutedEventArgs e)


{
}

The MyMapView_Loaded handler calls a function that attempts to load online layers.
5. Create a new async function called TryLoadOnlineLayers. Inside the function, add a try block that catches three types
of exception: Esri.ArcGISRuntime.Http.ArcGISWebException, System.Net.Http.HttpRequestException,
and System.Exception as shown in the following code.

Copyright 1995-2015 Esri. All rights reserved. 63


ArcGIS Runtime SDK for .NET

private async void TryLoadOnlineLayers()


{
try
{

// handle a variety of possible exceptions


}
catch (ArcGISWebException arcGISExp)
{
// token required?

var messageDialog = new MessageDialog("Unable to load online layers: credentials may be required", "Load Error");
messageDialog.ShowAsync();
}
catch (System.Net.Http.HttpRequestException httpExp)
{
// not connected? server down? wrong URI?
var messageDialog = new MessageDialog("Unable to load online layers: check your connection and verify service URLs", "Load Error");
messageDialog.ShowAsync();
}
catch (Exception exp)
{
// other problems ...

var messageDialog = new MessageDialog("Unable to load online layers: " + exp.Message, "Load Error");
messageDialog.ShowAsync();
}
}

By handling exceptions in your try block from specific to general, you can better identify problems encountered when
accessing online services. An ArcGISWebException is commonly thrown when access to a secured online service is
made without the proper credentials. An HttpRequestException may be thrown for a variety of network connectivity
problems, such as an incorrect URI or an unavailable server resource. Other problems are handled by catching the generic
System.Exception.
6. Inside the try block, add code to create two new layers: an ArcGISTiledMapServiceLayer to display a streets
basemap, and a FeatureLayer to display marine wildlife sightings from an online feature service. Give the
FeatureLayer an ID so you can find it in the map's layer collection later.
// create an online tiled map service layer, an online feature layer
var basemapLayer = new ArcGISTiledMapServiceLayer(new Uri(basemapUrl));
var operationalLayer = new FeatureLayer(new Uri(operationalUrl));
// give the feature layer an ID so it can be found later
operationalLayer.ID = "Sightings";

7. Initialize the layers by calling InitializeAsync. Since this is an asynchronous call, you must use the await keyword to
await the result. After initializing, check each layer's InitializationException property to see if initialization was
successful.
// initialize the layers
await basemapLayer.InitializeAsync();
await operationalLayer.InitializeAsync();
// see if there was an exception when initializing the layers, if so throw an exception
if (basemapLayer.InitializationException != null ||
operationalLayer.InitializationException != null)
{
// unable to load one or more of the layers, throw an exception
throw new Exception("Could not initialize layers");
}

8. If the layers were initialized without an exception, add them to the map.
// add layers
MyMapView.Map.Layers.Add(basemapLayer);
MyMapView.Map.Layers.Add(operationalLayer);

9. Call the TryLoadOnlineLayers function from your MyMapView_Loaded event handler.


private void MyMapView_Loaded(object sender, RoutedEventArgs e)
{
// try to load the online layers
TryLoadOnlineLayers();
}

10. Run the app. If you have an Internet connection, you should see the online layers load.

Copyright 1995-2015 Esri. All rights reserved. 64


ArcGIS Runtime SDK for .NET

Create a local tile cache


A set of map images (tiles) can be generated from a tiled map service if its ExportTiles capability is enabled. Since the world street
map layer in your map supports this capability, you can request tiles for a specified map extent and scale levels. Tiles can be generated as
compact cache or tile package format. Once they've been generated by the server, you can download them to the local device.

Before you can create a local version of the map, create local datasets for the basemap (a local tile cache) and for the operational layer
(a local geodatabase table). To control the size of the datasets generated, only enable the generate tiles button when the user zooms in
to a smaller portion of the map.
Steps:
1. Add the following code in your page's constructor to handle the MyMapView.NavigationCompleted event. When a
navigation operation completes (the user pans or zooms in or out, in other words), the GenerateLocalTilesButton
control is only enabled if the user has zoomed to a reasonable extent for creating the tile cache.
public MainPage()
{
InitializeComponent();

MyMapView.NavigationCompleted += (s, e) => { GenerateLocalTilesButton.IsEnabled = MyMapView.Scale < 6000000; };


MyMapView.Loaded += MyMapView_Loaded;
}

Tip: You can use ExportTileCacheTask.EstimateTileCacheSizeAsync to estimate the


physical size required for a desired tile cache. This can help you determine if the creation of a
particular cache is practical for your app or not.

2. Declare a private CancellationTokenSource variable at the top of your class to manage user requests to cancel cache
generation.
private CancellationTokenSource cancellationTokenSource;

3. The cache generation code goes in the GetTiles function, which is the event handler for the
GenerateLocalTilesButton.Click event. Start the code with a Try block. In the catch portion of the block, show the
exception in the messages list. Use a finally statement to reset the progress bar to zero.
private async void GetTiles(object sender, RoutedEventArgs e)
{
try
{
}
catch (Exception exp)
{
StatusMessagesList.Items.Clear();
StatusMessagesList.Items.Add("Unable to get local tiles: " + exp.Message);
}
finally
{
// reset the progress indicator
StatusProgressBar.Value = 0;
}
}

4. Start the code in the try block by showing the controls for reporting the status of the task. Add a message that reports the
cache is being requested.

Copyright 1995-2015 Esri. All rights reserved. 65


ArcGIS Runtime SDK for .NET

// show the status controls


StatusPanel.Visibility = Visibility.Visible;
StatusMessagesList.Items.Add("Requesting tile cache ...");

5. Cancel any previously submitted tasks that might still be executing (in case the user clicked the button before an earlier
request was completed, for example). Create the CancellationTokenSource and CancellationToken for the current
request.
// cancel if an earlier call was made
if (cancellationTokenSource != null)
{
cancellationTokenSource.Cancel();
}

// get a cancellation token for this task


cancellationTokenSource = new CancellationTokenSource();
var cancelToken = cancellationTokenSource.Token;

6. Create a new ExportTileCacheTask that uses the URL for the world street map service in your map.
// create a new ExportTileCacheTask to generate the tiles
var exportTilesTask = new ExportTileCacheTask(new Uri(basemapUrl));

There are two broad steps involved for creating a local tile cache from a service: 1) generate the tiles on the server, and 2)
download the tiles to the local device. The ExportTileCache class has methods for performing each of these tasks
individually (GenerateTileCacheAsync and DownloadTileCacheAsync). In the following steps, however, call a single
method, GenerateTileCacheAndDownloadAsync, that performs both steps.
ExportTileCachTask.GenerateTileCacheAndDownloadAsync requires the following parameters.
Generation options (GenerateTileCacheParameters)Defines the output format, map extent, and scale levels
to include in the cache.
Download options (DownloadTileCacheParameters)Specifies the location on the local disk, and whether or
not to overwrite an existing cache.
Check interval (TimeSpan)The interval at which to check the status of the cache generation.
Cancellation token (System.Threading.CancellationToken)Allows the task to be cancelled.
Progress callbacks (IProgress<T>)Callbacks to report progress for both cache generation and download
(optional).
7. Create a new GenerateTileCacheParameters object and define some options for the cache, such as the extent and
scale levels to create.
// define options for the new tiles (extent, scale levels, format)
var generateOptions = new GenerateTileCacheParameters();
generateOptions.Format = ExportTileCacheFormat.CompactCache;
generateOptions.GeometryFilter = MyMapView.Extent;
generateOptions.MinScale = 6000000.0;
generateOptions.MaxScale = 1.0;

Note: Since the MinScale and MaxScale values for the cache parameters are specified with the scale
denominator, the value of MinScale is always larger than the MaxScale value (a scale
numerator value of 1.0 is implied). In the previous code, the minimum scale is 1.0 /
6000000.0 = 0.00000017 and the maximum is 1.0 / 1.0 = 1.0.

8. Create a new DownloadTileCacheParameters object and define the location for the output file.
// download the tile package to the app's local folder
var outFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
var downloadOptions = new DownloadTileCacheParameters(outFolder);

// overwrite the file if it already exists


downloadOptions.OverwriteExistingFiles = true;

9. Define a two-second interval for checking the status of the cache creation.
// check generation progress every two seconds
var checkInterval = TimeSpan.FromSeconds(2);

10. The optional IProgress<T> arguments report status while the task is running. Create one for the cache generation
progress (Progress<ExportTileCacheJob>) using the following code. In the callback handler, parse out the percentage
complete and update the progress bar. Other progress messages are added to the StatusMessageList for the user to
see.

Copyright 1995-2015 Esri. All rights reserved. 66


ArcGIS Runtime SDK for .NET

var creationProgress = new Progress<ExportTileCacheJob>(p =>


{
StatusMessagesList.Items.Clear();
foreach (var m in p.Messages)
{
// find messages with percent complete
// "Finished:: 9 percent", e.g.
if (m.Description.Contains("Finished::"))
{
// parse out the percentage complete and update the progress bar
var numString = m.Description.Substring(m.Description.IndexOf("::") + 2, 3).Trim();
var pct = 0.0;
if (double.TryParse(numString, out pct))
{
StatusProgressBar.Value = pct;
}
}
else
{
// show other status messages in the list
StatusMessagesList.Items.Add(m.Description);
}
}
});

11. Create another IProgress<T> variable to report the download progress


(Progress<ExportTileCacheDownloadProgress>). Use the ProgressPercentage property to update the progress
bar.
// show download progress
var downloadProgress = new Progress<ExportTileCacheDownloadProgress>(p =>
{
StatusProgressBar.Value = p.ProgressPercentage;
});

12. Call ExportTileCacheTask.GenerateTileCacheAndDownloadAsync to create the local cache. Pass in the required
arguments created previously. Use the await keyword to await the result.
// generate the tiles and download them
var result = await exportTilesTask.GenerateTileCacheAndDownloadAsync(generateOptions,
downloadOptions,
checkInterval,
cancelToken,
creationProgress,
downloadProgress);

13. When the task completes, store the path to the local cache and report success to the user.
// when complete, store the path to the new local tile cache
this.localTileCachePath = result.OutputPath;
LocalTilesPathTextBlock.Text = this.localTileCachePath;

ToolTipService.SetToolTip(LocalTilesPathTextBlock, this.localTileCachePath);
// clear the working messages, report success
StatusProgressBar.Value = 100;
StatusMessagesList.Items.Clear();
StatusMessagesList.Items.Add("Local tiles created at " + this.localTileCachePath);

14. Run your app, zoom into an area, and test creating a local tile cache.

In the next section, you will follow similar steps to create a local geodatabase containing the features in the sightings layer.

Copyright 1995-2015 Esri. All rights reserved. 67


ArcGIS Runtime SDK for .NET

Add code to create a local runtime geodatabase


A geodatabase containing datasets (tables) can be generated from a feature service if it is sync enabled (the CreateReplica capability
is enabled, in other words). Since the SaveTheBaySync feature service containing the marine sightings layer in your map supports this
capability, you can request features for specified layers within a defined extent. Features are generated as a runtime geodatabase
containing a table for each layer requested. Once generated by the server, you can download the geodatabase to the local device.

Tip: You can sync enable your ArcGIS Online hosted feature services by checking Enable Sync in the
item properties.

The user will be able to create a copy of the features in the feature service and store them in a geodatabase locally. In the following
steps, you write code to create a local geodatabase for a single layer in the service and at the current map extent.
Steps:
1. The geodatabase generation code goes in the GetFeatures function, which is the event handler for the
GenerateLocalGeodatabaseButton.Click event. Start the code with a try block as shown in the following example.
private async void GetFeatures(object sender, RoutedEventArgs e)
{
try
{

}
catch (Exception ex)
{
}
}

2. Inside the try portion of the block, show the status controls, add a message that the generate geodatabase job has been
submitted, and show the progress bar.
// show the status controls
StatusPanel.Visibility = Visibility.Visible;
StatusMessagesList.Items.Add("Submitting generate geodatabase job ...");
StatusProgressBar.IsIndeterminate = true;
StatusProgressBar.IsEnabled = true;

Note: The IsIndeterminate setting for the ProgressBar control means that it continually scrolls to
show that an operation is working, as opposed to showing the percent complete.

3. In the catch portion of the block, show the exception in the messages list and reset the IsIndeterminate property of the
progress bar false.
catch (Exception ex)
{
StatusMessagesList.Items.Add("Unable to create offline database: " + ex.Message);
StatusProgressBar.IsIndeterminate = false;
}

4. Return to the try block. After the code to show the status controls, add code to cancel any previously submitted jobs that
may be running and to create a new CancellationToken for the current job.
// cancel if an earlier call was made
if (cancellationTokenSource != null)
{
cancellationTokenSource.Cancel();
}

// get a cancellation token


cancellationTokenSource = new CancellationTokenSource();
var cancelToken = cancellationTokenSource.Token;

A GeodatabaseSyncTask is created by passing in the URI for the feature service you want to work with. The feature service
must be sync enabled to create a local geodatabase.
5. Use the URL to the sightings layer to get the URL of the feature service by stripping off the layer index at the end ("/0").
// create a new GeodatabaseSyncTask with the uri of the feature service to pull from
var serverUrl = operationalUrl.Substring(0, operationalUrl.LastIndexOf('/'));
var uri = new Uri(serverUrl);
var getFeaturesTask = new GeodatabaseSyncTask(uri);

The GeodatabaseSyncTask.GenerateGeodatabaseAsync method creates the desired geodatabase on the server and
requires the following parameters.

Copyright 1995-2015 Esri. All rights reserved. 68


ArcGIS Runtime SDK for .NET

Generation options (GenerateGeodatabaseParameters)Defines the output spatial reference, map extent, and
layers to include in the geodatabase.
Generate complete callbackA callback that executes when the geodatabase generation is complete. Use the
callback to see if generation was successful and to download the data locally.
Check interval (TimeSpan)The interval at which to check the status of the geodatabase generation.
Progress callback (IProgress<T>)A callback to report progress for geodatabase creation (optional).
Cancellation token (System.Threading.CancellationToken)Allows the task to be cancelled.
6. Create a GenerateGeodatabaseParameters and set the layers, extent, and spatial reference for the output
geodatabase.
// create parameters for the task: layers and extent to include, out spatial reference, and sync model
var layers = new List<int>(new int[1] { 0 }); // just get the first layer
var extent = MyMapView.Extent;
var getFeaturesParams = new GenerateGeodatabaseParameters(layers, extent)
{
OutSpatialReference = MyMapView.SpatialReference,
SyncModel = SyncModel.PerLayer
};

Note: The SyncModel property has two possible values: PerGeodatabase or PerLayer. This setting
controls the granularity of synchronization of edits with the service, managed either on a layer-by-
layer basis or for the geodatabase as a whole.

7. Create a two-second interval for checking the status of the job. Use a Progress<GeodatabaseStatusInfo> to show the
current status.
// check progress every two seconds
var checkInterval = TimeSpan.FromSeconds(2);
var creationProgress = new Progress<GeodatabaseStatusInfo>(p =>
{
this.StatusMessagesList.Items.Add(DateTime.Now.TimeOfDay.ToString() + ": " + p.Status);
});

The last thing required before generating the geodatabase is a callback handler to execute when the server job is complete.
The callback sees if the database was created successfully on the server, then downloads it locally.
8. Create a new function to act as the callback handler for the GenerateGeodatabaseAsync method. The function will be
asynchronous and take two arguments: a GeodatabaseStatusInfo and an Exception.
// provide a callback to execute when the GeodatabaseSyncTask completes (successfully or with an exception)
private async void GenerateFeaturesCompleteCallback(GeodatabaseStatusInfo statusInfo, Exception ex)
{

9. Start the callback function by checking for an exception. If an exception has occurred, report it to the user and return.
// if unsuccessful, report the exception and return
if (ex != null)
{

await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() => StatusMessagesList.Items.Add("An exception occurred: " + ex.Message));
return;
}

Caution: Because the callback may be executing on a thread other than the UI thread, you must use
Dispatcher.RunAsync to update elements in the UI, as shown in the preceding code. See
Threading considerations for more information.

10. If the geodatabase was generated without exceptions, download it using ArcGISHttpClient. The
GeodatabaseStatusInfo object passed into the callback provides the URI for the database.
// if successful, download the generated geodatabase from the server
var client = new ArcGISHttpClient();
var geodatabaseStream = client.GetOrPostAsync(statusInfo.ResultUri, null);

11. Create an output path for the geodatabase. Call it Wildlife.geodatabase and store it in the app's directory.
// create a path for the local geodatabase

var outFolder = Windows.Storage.ApplicationData.Current.LocalFolder;


var outGdb = await outFolder.CreateFileAsync("Wildlife.geodatabase", CreationCollisionOption.ReplaceExisting);

12. Use a TaskFactory to create a new task to copy the database stream to the output file. Use Dispatcher.RunAsync to
update UI elements with the local geodatabase path when the copy completes.

Copyright 1995-2015 Esri. All rights reserved. 69


ArcGIS Runtime SDK for .NET

// download the geodatabase to the local machine


await Task.Factory.StartNew(async delegate
{
using (var stream = await outGdb.OpenStreamForWriteAsync())
{
await geodatabaseStream.Result.Content.CopyToAsync(stream);
}
this.localGeodatabasePath = outGdb.Path;
await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() => LocalDataPathTextBlock.Text = outGdb.Path);
await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() => ToolTipService.SetToolTip(LocalDataPathTextBlock, outGdb.Path));
await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() => StatusMessagesList.Items.Add("Features downloaded to " + outGdb.Path));
await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() => StatusProgressBar.IsIndeterminate = false);
});

Your callback handler for generating the geodatabase is complete.


13. Return to the GetFeatures function and add a call to GenerateGeodatabaseAsync. Pass in the required parameters
and the callback to execute when it completes.
// call GenerateGeodatabaseAsync, the GenerateFeaturesCompleteCallback callback will execute when it's complete
var gdbResult = await getFeaturesTask.GenerateGeodatabaseAsync(getFeaturesParams,
GenerateFeaturesCompleteCallback,
checkInterval,
creationProgress,
cancelToken);

14. Run your app, zoom into an area, and test creating a local geodatabase.

Switch between offline and online modes


Many ArcGIS Runtime SDK for .NET classes have online and local versions. In your current map, you're using an
ArcGISTiledMapServiceLayer to display a tiled service from an online source. The equivalent layer for displaying tiles from a local
cache is ArcGISLocalTiledLayer. Similarly, you can display features from an online source using a FeatureLayer with a
ServiceFeatureTable. For features stored in a local runtime geodatabase, you use the same FeatureLayer class, but with a
GeodatabaseFeatureTable.

In the following steps, add code to switch the map between using online and local sources. When the app is in online mode, the map
displays the online data sources (services). When offline, display data from the local tile cache and geodatabase (if they've been
created).
Steps:
Previously, you created a function to load the online layers in your map (TryLoadOnlineLayers). You will now create the
equivalent code for loading local (offline) layers.
1. Create a new asynchronous function in your code behind (MainPage.xaml.cs) called TryLoadLocalLayers.
2. Add a try block and handle exceptions with a single catch block that displays a message to the user.

Copyright 1995-2015 Esri. All rights reserved. 70


ArcGIS Runtime SDK for .NET

private async void TryLoadLocalLayers()


{
try
{

}
catch (Exception exp)
{
var messageDialog = new MessageDialog("Unable to load local layers: " + exp.Message);
messageDialog.ShowAsync();
}
}

3. Inside the try block, check to see that the local tiles and geodatabase exist. If they don't, throw an exception with the
appropriate message to the user.
if (string.IsNullOrEmpty(this.localGeodatabasePath))
{
throw new Exception("Local features do not yet exist. Please generate them first.");
}

if (string.IsNullOrEmpty(this.localTileCachePath))
{
throw new Exception("Local tiles do not yet exist. Please generate them first.");
}

4. Create a new ArcGISLocalTiledLayer. Pass the path to the local cache in the constructor.
// create a local tiled layer
var basemapLayer = new ArcGISLocalTiledLayer(this.localTileCachePath);

A local runtime geodatabase can be accessed using the static OpenAsync method on the Geodatabase class. Once
opened, you can access the tables inside. A geodatabase table that has geometry can be added to the map and displayed
with a FeatureLayer.
5. Open the local geodatabase and get a reference to the first table (it should contain only the marine wildlife sightings table).
Create a new FeatureLayer to display the table.
// open the local geodatabase, get the first (only) table, create a FeatureLayer to display it
var localGdb = await Geodatabase.OpenAsync(this.localGeodatabasePath);
var gdbTable = localGdb.FeatureTables.FirstOrDefault();
var operationalLayer = new FeatureLayer(gdbTable);
// give the feature layer an ID so it can be found later
operationalLayer.ID = "Sightings";

6. Initialize the local layers and await completion. If either layer was not initialized successfully, throw an exception with a
message for the user.
await basemapLayer.InitializeAsync();
await operationalLayer.InitializeAsync();
// see if there was an exception when initializing the layers
if (basemapLayer.InitializationException != null ||
operationalLayer.InitializationException != null)
{
// unable to load one or more of the layers, throw an exception
throw new Exception("Could not initialize local layers");
}

7. Add the local layers to the map.


MyMapView.Map.Layers.Add(basemapLayer);
MyMapView.Map.Layers.Add(operationalLayer);

Add code to call the functions to load online (TryLoadOnlineLayers) or local data (TryLoadLocalLayers) when the
corresponding radio buttons in the UI are clicked.
8. Navigate to the DataOptionChecked function in your code behind. This is the event handler for the local and online radio
buttons.
9. Before calling code to load layers, clear all current layers in the map.
private void DataOptionChecked(object sender, RoutedEventArgs e)
{
MyMapView.Map.Layers.Clear();

10. Use a branching statement to load either online or local layers depending on what the user selected.

Copyright 1995-2015 Esri. All rights reserved. 71


ArcGIS Runtime SDK for .NET

if (UseOnlineDataOption.IsChecked == true)
{
TryLoadOnlineLayers();
}
else // offline
{
TryLoadLocalLayers();
}

11. Test your code: run the app, zoom into an area of interest, generate local features and tiles, then toggle between online and
local data for the map.

As you zoom out of the map when using your local data, you'll notice that the map tiles and features only exist within the original extent at
which they were generated.

You've completed the tutorial, nice work. You now have a better understanding of how to generate local datasets from online services and
how to display them in your map. For more information about editing with offline feature data and synchronizing edits with the original
service, see the Editing, Edit features, and Sync offline edits topics.

Copyright 1995-2015 Esri. All rights reserved. 72


ArcGIS Runtime SDK for .NET

Use the MVVM design pattern


Model-View-ViewModel (MVVM) is a popular design pattern for XAML-based app development. MVVM helps you separate the user
interface components of your app from the data and logic components.To accomplish this, the pattern divides components into the
following three categories.
ModelClasses to represent data consumed in the app
ViewUser interface (UI) elements with which the user interacts
ViewModelClasses that wrap data (coming from a model) and provide business logic for the UI (views)
In a pure MVVM implementation, components should fall exclusively within one of these categories. A UI class, such as a XAML page,
should not contain code for the controls it contains. Instead, all code that is not directly related to the View (such as code for setting a
page's data context) must be provided by a ViewModel. The data binding support provided in WPF, Windows Store, and Windows
Phone apps allows you to define your UI with XAML and to bind controls in the View to ViewModel classes for required data and
functionality
Generally, when creating an app using MVVM, most of your time is spent working within ViewModels. These classes provide data
(either coming from a Model or within the ViewModel) in a form that is usable for the View. ViewModels may also contain code to handle
events for controls on the page or other logic required by the View.
The MVVM pattern is well documented. The purpose of this tutorial is not to teach the details of the pattern, but rather to introduce it and
illustrate its use with ArcGIS Runtime SDK for .NET. To learn more about the MVVM design pattern, refer to the links at the end of the
tutorial.

Prerequisites
This tutorial requires a supported version of Microsoft Visual Studio and ArcGIS Runtime SDK for .NET. Refer to the appropriate topics in
the guide for information on installing the SDK and system requirements.
Familiarity with Visual Studio, XAML, and C# is recommended.

Create a Windows Store app


You'll use Visual Studio to create a Windows Store app.
Steps:
1. Open a supported version of Microsoft Visual Studio.
2. Choose File > New > Project (or click New Project on the Start page) to create a project.
3. Click Store Apps > Windows Apps > Blank App (Windows) in the New Project dialog box (you can create your project in
either C# or VB .NET).
Note: Visual Studio 2015 organizes project types slightly differently. You'll find Store projects under
Windows 8 > Windows

Tip: ArcGIS Runtime SDK for .NET provides a project template for creating your mapping app, called
ArcGIS Runtime 10.2.7 for .NET App. Creating your project from the template will add the
appropriate references and a page with a map view containing a single base layer. In this tutorial,
you'll build your app from a blank template.

4. Choose a folder location for your new project and name it MvvmApp.

5. Click OK to create the project.


Your project opens in Visual Studio and contains a single page called MainPage.xaml.
Next, you'll add a reference to the ArcGIS Runtime SDK for .NET API assembly.

Copyright 1995-2015 Esri. All rights reserved. 73


ArcGIS Runtime SDK for .NET

6. Right-click the References node under the MvvmApp project listing in the Visual Studio Solution Explorer window, and click
Add Reference in the context menu.
7. Check the listing for the ArcGIS Runtime for Windows Store apps assembly under Windows 8.1 > Extensions.

8. Click OK to add the reference to ArcGIS Runtime for .NET.

Note: In order for your app to build, you need to specify a build target for the project. The default value of
Any CPU will not work and is why the new references are shown with a yellow warning icon.
You will now specify a build platform for the app.
9. Choose BUILD > Configuration Manager.
10. Choose x86 in the Active solution platform drop-down menu. This will target a 32-bit platform for the app.

11. Click Close in the Configuration Manager dialog box.


The warning icons no longer appear in the Solution Explorer window for these references.

Add a map
Now that you've created your project and added a reference to ArcGIS Runtime, you're ready to add a map to your app. In your map,
you'll display a satellite imagery basemap from a public map service provided by ArcGIS Online and a point layer showing (fictional)
community submitted incident reports. You'll define a custom renderer for the points and set an initial extent centered on Europe.

Steps:
To use the ArcGIS Runtime in the XAML designer, make references to required XML namespaces.
1. Open the MainPage.xaml file in the Visual Studio designer.

Copyright 1995-2015 Esri. All rights reserved. 74


ArcGIS Runtime SDK for .NET

2. Go to the XAML view of the designer, and add the following XML namespace references to the Page XAML element. Visual
Studio offers IntelliSense to help complete the URL portion of the statement.
xmlns:esri="using:Esri.ArcGISRuntime.Controls"
xmlns:layers="using:Esri.ArcGISRuntime.Layers"
xmlns:data="using:Esri.ArcGISRuntime.Data"
xmlns:sym="using:Esri.ArcGISRuntime.Symbology"

3. Add the following XAML inside the <Grid> element to define a new MapView control on the page containing a Map control
with a few layers.
<esri:MapView x:Name="MyMapView">
<esri:Map>
<esri:Map.InitialViewpoint>
<esri:ViewpointExtent XMin="-1631122.453"
YMin="4253523.549"
XMax="4163264.136"
YMax="8976345.495" />
</esri:Map.InitialViewpoint>
<layers:ArcGISTiledMapServiceLayer ID="BaseMap"
ServiceUri="http://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"/>
<layers:FeatureLayer ID="Incidents">
<data:ServiceFeatureTable
ServiceUri="http://sampleserver6.arcgisonline.com/arcgis/rest/services/SF311/FeatureServer/0"/>
<layers:FeatureLayer.Renderer>
<sym:SimpleRenderer>
<sym:SimpleMarkerSymbol Color="Red" Size="16" Style="Triangle"/>
</sym:SimpleRenderer>
</layers:FeatureLayer.Renderer>
</layers:FeatureLayer>
<layers:GraphicsLayer ID="PointGraphics"/>
</esri:Map>
</esri:MapView>

4. Run your app. A map similar to the one shown below appears.
Note: The Incidents layer is based on an editable feature service. The number and location of
features (red triangles) can vary day to day. If features (red triangles) don't appear in your initial
map extent, try zooming to another location.

Move the map out of the page


As a step towards separating the UI from data and app logic, move the XAML that defines the contents of the MapView control (the map)
out of the page. You will store it in the application's resource dictionary and use data binding to display it in the MapView control.

Steps:
1. In your MainPage.xaml file, select the entire contents of the MapView control (but not the map view itself). Choose Cut
from the Edit menu to remove this XAML from its containing MapView.
Your page should now contain an empty MapView, as shown in the following example:
<Grid>
<esri:MapView x:Name="MyMapView">
</esri:MapView>
</Grid>

2. Open the App.xaml file in your project.

Copyright 1995-2015 Esri. All rights reserved. 75


ArcGIS Runtime SDK for .NET

3. If it doesn't exist, create an Application.Resources element, as shown in the following example.


<Application.Resources>

</Application.Resources>

4. Place your mouse cursor inside the Application.Resources element in the page, and choose Paste from the Edit
menu.
The XAML that defines your map is added to the application's resource dictionary as shown in the example below.
<Application.Resources>
<esri:Map>
<esri:Map.InitialViewpoint>
<esri:ViewpointExtent XMin="-1631122.453"
YMin="4253523.549"
XMax="4163264.136"
YMax="8976345.495" />
</esri:Map.InitialViewpoint>
<layers:ArcGISTiledMapServiceLayer ID="BaseMap"
ServiceUri="http://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"/>
<layers:FeatureLayer ID="Incidents">
<data:ServiceFeatureTable
ServiceUri="http://sampleserver6.arcgisonline.com/arcgis/rest/services/SF311/FeatureServer/0"/>
<layers:FeatureLayer.Renderer>
<sym:SimpleRenderer>
<sym:SimpleMarkerSymbol Color="Red" Size="16" Style="Triangle"/>
</sym:SimpleRenderer>
</layers:FeatureLayer.Renderer>
</layers:FeatureLayer>
<layers:GraphicsLayer ID="PointGraphics"/>
</esri:Map>
</Application.Resources>

You now have several warnings displayed in your Visual Studio designer. You will add required XML namespace references
and provide a value for the x:Key property to fix them.
5. Add the same XML namespace references you added earlier to the Application element of the App.xaml page, as
shown in bold in the following example.
xmlns:esri="using:Esri.ArcGISRuntime.Controls"
xmlns:layers="using:Esri.ArcGISRuntime.Layers"
xmlns:data="using:Esri.ArcGISRuntime.Data"
xmlns:geometry="using:Esri.ArcGISRuntime.Geometry"
xmlns:sym="using:Esri.ArcGISRuntime.Symbology"

6. Add an x:Key property to the Map element and give it a value of IncidentMap.
<esri:Map x:Key="IncidentMap">

Note: The x:Key property is used to identify a resource and should be unique within the scope of the
object (in this case, the entire application).

7. Return to the XAML for your Page and add XAML to bind the IncidentMap resource to the MapView element, as shown
below.
<esri:MapView x:Name="MyMapView" Map="{Binding Source={StaticResource IncidentMap}}">
</esri:MapView>

A data binding for the Map property is specified using the binding markup extension in XAML. Bindings can be made to
resources in the application, other elements on the page, or to a class in the app that provides data. More information about
data binding in a XAML app can be found at Data binding overview (MSDN).
8. Run your app. The map displays as it did when it was defined directly in the MapView.

Is your app implementing the MVVM pattern? Not in its purest form, but the App.xaml page is acting as a view model by providing a Map
to which the MapView can bind. This illustrates one of the benefits of using the pattern, which is clearly separating the UI from
implementation details where possible. The MapView is a UI control, which belongs on the page. The Map and the layers it contains are
data displayed in the control, which is subject to change and should be managed outside the UI. With this architecture, the page and the
map are loosely coupled, which means you can easily make changes to one without affecting the other. To change the map displayed in
the page, for example, you could point the binding to another resource available in your application.
To implement the more traditional form of the MVVM pattern, you will create a view model class. The class acts as the data context for the
page, and exposes data and functionality to which the UI can bind.

Create a view model class


A view model provides data and functionality that a view can access through data binding. It's common for a view to use a single view
model, but it's not unusual for several view models to be associated with a single view. You can also have one view model that is used by

Copyright 1995-2015 Esri. All rights reserved. 76


ArcGIS Runtime SDK for .NET

several different views in your app. You will create a single view model (MapViewModel) to provide all data and functionality needed by
your view.

Steps:
1. Right-click the MvvmApp node in the Solution Explorer and choose Add > Class from the context menu to add a new
class to your project. Name the class MapViewModel.cs.

2. At the top of the MapViewModel code module, add the following using statements.
using Esri.ArcGISRuntime.Controls;
using Esri.ArcGISRuntime.Layers;

The Esri.ArcGISRuntime.Controls namespace contains the Map class. You will use classes from the
Esri.ArcGISRuntime.Layers namespace later.
3. Add a new property to the class called IncidentMap, as shown in the following example.
private Map map;
public Map IncidentMap
{
get { return this.map; }
set { this.map = value; }
}

The IncidentMap property provides a Map to which the view can bind.
4. Add a constructor to the MapViewModel class that initializes the map, as shown in the following example. You could build
the map programmatically by creating all of the required layers, symbolizing them, and setting the initial extent, and so on.
Instead, reference the Map that you defined earlier in the App.xaml resources.
public MapViewModel()
{
// when the view model initializes, read the map from the App.xaml resources
this.map = App.Current.Resources["IncidentMap"] as Map;
}

The map property of your view model is complete. Next, you will update the data binding to display the map on the page.

Bind the view model to the view using XAML


To associate a view model with a view, you set the view's DataContext property to an instance of a view model. You can set the data
context using XAML or by adding code to the view's code behind. In the following steps, you will use XAML to set the data context and
bind the IncidentMap property in the view model to the Map property of the page's MapView.

Note: If you want to set the view's data context programmatically, you can add the following two lines of code to
the constructor in your code behind for (MainPage.xaml.cs). If you add this code, proceed to step 4 to
update the data binding for the map.
this.DataContext = new MapViewModel();

Steps:

Copyright 1995-2015 Esri. All rights reserved. 77


ArcGIS Runtime SDK for .NET

1. Open your App.xaml page. At the top of the page, inside the Application element, add an XML namespace reference
for the local assembly (MvvmApp), as shown in the following example.
<Application
x:Class="MvvmApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:esri="using:Esri.ArcGISRuntime.Controls"
xmlns:layers="using:Esri.ArcGISRuntime.Layers"
xmlns:data="using:Esri.ArcGISRuntime.Data"
xmlns:geometry="using:Esri.ArcGISRuntime.Geometry"
xmlns:sym="using:Esri.ArcGISRuntime.Symbology"
xmlns:local="using:MvvmApp">

You need to define this namespace to access the MapViewModel class in your XAML.
2. Inside the Application.Resources element (below where the IncidentMap is defined), add XAML to define a new
MapViewModel object (from the local namespace) with the key MapVM.
<local:MapViewModel x:Key="MapVM"/>

This object serves as the data context for the main page. You can refer to it using its key, MapVM. By defining it in the App,
you can be assured that the object is created before any of the pages that use it as their data context.
3. Open the MainPage.xaml page. Set the data context for the entire page to the MapVM object, as shown in bold in the
following example.
<Page
x:Class="MvvmApp.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:MvvmApp"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:esri="using:Esri.ArcGISRuntime.Controls"
xmlns:layers="using:Esri.ArcGISRuntime.Layers"
xmlns:data="using:Esri.ArcGISRuntime.Data"
xmlns:geometry="using:Esri.ArcGISRuntime.Geometry"
xmlns:sym="using:Esri.ArcGISRuntime.Symbology"
DataContext="{Binding Source={StaticResource MapVM}}">

Since the view model is set as the data context for the entire page, any control on the page can bind to properties exposed
by the view model class. You will bind the IncidentMap property to the Map property of the MapView control.
4. Change the binding statement for the MapView to point to the IncidentMap property. Because the page's data context is
set to a MapViewModel instance, it's implied that the binding comes from one of the properties of that object.
<esri:MapView x:Name="MyMapView" Map="{Binding IncidentMap}">
</esri:MapView>

5. Run your code. Again, the map should appear as it did when it was defined directly on the page.

What is the advantage of using such a scheme to display a map? The app looks the same regardless of where you define the map, yet
using a view model seems to add a lot of complexity. For a basic app like this, there really is no advantage to using the MVVM pattern. As
your app becomes more complex, however, you'll find that using an MVVM architecture makes your app much easier to maintain and
promotes sharing of code between apps.

Handle a button click in the view model


Keeping data in a view model and binding it to the UI is straightforward, but what about view functionality?
To properly implement the MVVM pattern, all code logic should be contained in a view model. The code behind for UI classes should not
contain event handling code for controls in the page. Fortunately, data binding can also be used to bind control events in the view to code
in the view model.

Implement a command
Some controls, such as Button, CheckBox, RadioButton, and MenuItem provide a Command property. Commands are custom
classes that implement the ICommand interface and define what happens when a control is clicked (Execute method), and determine
when it should be enabled (CanExecute method). Commands can be created in your view model, and bound to the Command property
of the appropriate control.

Tip: There are several MVVM frameworks available that provide an implementation for ICommand. When using
these frameworks, you can instantiate command objects in your view model without the intermediate step
of creating your own command class, as described in this section. If you plan to use MVVM extensively,
consider using a framework when developing your apps, such as MVVM Light.

Copyright 1995-2015 Esri. All rights reserved. 78


ArcGIS Runtime SDK for .NET

Steps:
1. Add a new class to your project. Name it DelegateCommand.cs.
2. The ICommand interface is in the System.Windows.Input namespace. Add a using statement at the top of the class
for this namespace.
using System.Windows.Input;

3. Implement the System.Windows.Input.ICommand interface in your class. The complete implementation for the class
is provided in the following example for you to paste into your class.
class DelegateCommand : System.Windows.Input.ICommand
{
// a var to store the command's execute logic (button click, for example)
private readonly Action<object> execute;
// a var to store the command's logic for enabling/disabling
private readonly Func<object, bool> canExecute;

// an event for when the value of "CanExecute" changes (not implemented)


public event EventHandler CanExecuteChanged;

// constructor: store the logic for executing and enabling the command
public DelegateCommand(Action<object> executeAction, Func<object, bool> canExecuteFunc = null)
{
this.canExecute = canExecuteFunc;
this.execute = executeAction;
}

// if it was passed in, execute the enabling logic for the command
public bool CanExecute(object parameter)
{
if (this.canExecute == null) { return true; }
return this.canExecute(parameter);
}

// execute the command logic


public void Execute(object parameter)
{
this.execute(parameter);
}
}

When you need to bind a button to a command, create an instance of your DelegateCommand and pass in the behavior
for the command execution and for enabling the control to the constructor. The parameter for the execute action is of type
object to give maximum flexibility to the command.
4. Save and close DelegateCommand.cs, since you no longer need to work in this class.

Create a command property in the view model


Anything you need to bind in your view must be defined as a public property in your view model. In this step, you'll create a new
property in the MapViewModel that returns a DelegateCommand object. The command is defined with execution and enabling logic so
it can be bound to a button in your view.

Steps:
1. Open your MapViewModel class. Define a public property called ToggleLayerCommand that returns a
DelegateCommand object, as shown in the following example.
public DelegateCommand ToggleLayerCommand { get; set; }

2. Create a new function to handle command execution, called ToggleLayer. This function toggles the visibility of a layer in
the map. The input parameter specifies the name of the layer to toggle.
private void ToggleLayer(object parameter)
{
var lyr = this.map.Layers[parameter.ToString()];
lyr.IsVisible = !(lyr.IsVisible);
}

3. Create another new function to determine the CanExecute state of the command. Since the command toggles a specific
layer, it should only execute (be enabled, in other words) if that layer exists in the current map. The same parameter, the
layer's name, is passed to this function.
private bool OkToExecute(object parameter)
{
var lyr = this.map.Layers[parameter.ToString()] as FeatureLayer;
return (lyr != null);
}

Copyright 1995-2015 Esri. All rights reserved. 79


ArcGIS Runtime SDK for .NET

If a feature layer with the specified name does not exist in the map, OkToExecute returns false, which disables the
associated control.
4. In the MapViewModel constructor, add the following line of code to instantiate the ToggleLayerCommand. Pass in
theToggleLayer function as the command's execution logic and OkToExecute as the enabling logic.
public MapViewModel()
{
// when the view model initializes, read the map from the App.xaml resources
this.map = MvvmApp.App.Current.Resources["IncidentMap"] as Map;
ToggleLayerCommand = new DelegateCommand(ToggleLayer, OkToExecute);
}

Note: The CanExecute parameter for the DelegateCommand constructor was defined as optional.
You don't need to provide a value if you want the command to always be enabled.

Bind a button to the view model command


Buttons provide a Click event that you can handle to execute code. Assigning a Command defines code for a button click, but has the
advanatage of also containing logic to indicate when the button should be enabled or disabled. A Button object's Command property
can be bound to an object that implements the ICommand interface.
In this section, you'll create a new button and bind the DelegateCommand object you created to its Command property.

Steps:
1. Add a new button to your MainPage.xaml page below the existing XAML for the MapView control.
<Button Height="50" Width="100"
HorizontalAlignment="Left" VerticalAlignment="Center"
Content="Toggle" />

2. Set the new button's Command property by binding it to the ToggleLayerCommand property of the view model.
<Button Height="50" Width="100"
HorizontalAlignment="Left" VerticalAlignment="Center"
Content="Toggle"
Command="{Binding ToggleLayerCommand}" />

3. Provide the incident layer's name as the command parameter by setting a value for the button's CommandParameter
property.
<Button Height="50" Width="100"
HorizontalAlignment="Left" VerticalAlignment="Center"
Content="Toggle"
Command="{Binding ToggleLayerCommand}"
CommandParameter="Incidents" />

4. Run your app. Click the Toggle button to verify that the code in the view model executes to turn the incidents layer on and
off.

Copyright 1995-2015 Esri. All rights reserved. 80


ArcGIS Runtime SDK for .NET

Commands work well for binding functionality in your view model to certain controls in your view, such as buttons and menu choices.
But what if you need to handle other events, such as a selection change in a combo box, or mouse and touch events on the map view?
If you're interested in binding other event handlers from your view model, continue to the following section.

Handle other events in the view model


The process of binding to commands in the view model described previously works well for controls that provide the required Command
property. What if you need to handle other events that cannot be directly bound using a command property? Fortunately, .NET provides
additional classes that enable you to bind an event in the view to a command or function in your view model.
In the following steps, you will handle the ExtentChanged event of the MapView control using classes in the Behaviors SDK (XAML)
assembly.

Steps:
1. Choose Project > Add Reference. In the Reference Manager dialog box, on the Extensions tab, check the listing for
Behaviors SDK (XAML). You'll find it under Windows 8.1 > Extensions.

After updating the project references, you must add an XML namespace reference to your MainPage.xaml page so those
classes can be used in your XAML.
2. Inside your page's Page element, add the XML namespace reference shown in the following example.
xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:action="using:Microsoft.Xaml.Interactions.Core"

3. Add the following XAML inside the MapView element to define an EventTriggerBehavior for the map view's
ExtentChanged event.
<esri:MapView x:Name="MyMapView" Map="{Binding IncidentMap}">
<interactivity:Interaction.Behaviors>
<action:EventTriggerBehavior EventName="ExtentChanged">
</action:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>
</esri:MapView>

You can respond to the EventTriggerBehavior using a function (method) or with a Command object. Because you need
a parameter (the MapView), use a Command and provide a CommandParameter to pass the current map view to the view
model code.
4. Add the XAML in the following example to define an InvokeCommandAction in response to the event. The
ExtentChangedCommand command does not yet exist in your view model; however, you will create it soon.
<action:InvokeCommandAction
Command="{Binding ExtentChangedCommand}"
CommandParameter="{Binding ElementName=MyMapView}"/>

The binding syntax shown in the previous code provides an example of binding to a XAML element. The command
parameter is being set with an element on the page called MyMapView, which is your map view control. The map view object
is needed to read current extent values.
Next, you will create the ExtentChangedCommand to handle the event.

Copyright 1995-2015 Esri. All rights reserved. 81


ArcGIS Runtime SDK for .NET

5. Open MapViewModel.cs and add the following code to define a new DelegateCommand object called
ExtentChangedCommand.
public DelegateCommand ExtentChangedCommand { get; set; }

6. Create the function shown in the following example to respond to an extent change. For now, verify that you can get the
extent object from the map view.
public void MyMapViewExtentChanged(object parameter)
{
var mv = parameter as MapView;
var extent = mv.Extent;

7. In the constructor for MapViewModel, add the code shown in the following example to create the
ExtentChangedCommand.
public MapViewModel()
{
// when the view model initializes, read the map from the App.xaml resources
this.map = MvvmApp.App.Current.Resources["IncidentMap"] as Map;
ToggleLayerCommand = new DelegateCommand(ToggleLayer, OkToExecute);
ExtentChangedCommand = new DelegateCommand(MyMapViewExtentChanged);
}

The CanExecute logic for DelegateCommand is optional, which is why you didn't need to specify it.
8. Set a breakpoint on the last line of the MyMapViewExtentChanged function and run your app. You hit the breakpoint as
soon as the app starts.

9. When you are done testing, remove the breakpoint.

The binding successfully handles the extent changed event in the view model. The process described here could be used to handle any
event raised by UI controls, including those that don't provide a Command property.
More work is required to show the extent values in the UI. If you're interested in completing this functionality, proceed to the next section.

Bind extent values to the view


To show the current extent coordinates in the app, you need to create a new public property on the view model to expose that information.
Your property can then be bound to a UI element, such as a TextBox.

Steps:
1. Open MapViewModel.cs and add the following code to define a CurrentExtentString property.
private string extentString;
public string CurrentExtentString
{
get
{
return this.extentString;
}
set
{
this.extentString = value;
}
}

2. Add the following code to set the value of CurrentExtentString in the extent changed event handler.
public void MyMapViewExtentChanged(object parameter)
{
var mv = parameter as MapView;
var extent = mv.Extent;
CurrentExtentString = string.Format("XMin={0:F2} YMin={1:F2} XMax={2:F2} YMax={3:F2}",
extent.XMin, extent.YMin, extent.XMax, extent.YMax);
}

Extent coordinates are formatted in a string that looks like this: XMin=-2598746.47 YMin=4253523.55
XMax=5130888.16 YMax=8976345.50.

Copyright 1995-2015 Esri. All rights reserved. 82


ArcGIS Runtime SDK for .NET

3. Open your view, MainPage.xaml, and add the following XAML to define a new TextBlock to display the extent string.
Place this XAML below the XAML that defines your map view.
<TextBlock Height="30" Width="Auto"
FontSize="16" Foreground="AliceBlue"
HorizontalAlignment="Center" VerticalAlignment="Bottom"
Text="{Binding CurrentExtentString}"/>

The text block appears along the bottom center of the application and is bound to the property containing the extent values.
4. Run your app. The extent string does not appear as expected.

For data binding to work as expected, you must raise a notification event when bound properties change. In this case, the
extent string is being bound to the text block before it is given a value (it contains an empty string). When the value updates
in the extent changed handler, the view is never notified that it should get an updated value. If you provided a default value
for CurrentExtentString, you would see that value display when the app starts, but the value would not change.
If that's the case, why does the binding for the map work? The IncidentMap property of the view model is set in the class
constructor, which executes before the view model is set as the page's data context.
To raise the required notification when a property changes, you must implement the INotifyPropertyChanged interface
in the System.ComponentModel namespace.
5. Add the following using statements to the top of your MapViewModel class
using System.ComponentModel;
using System.Runtime.CompilerServices;

6. Implement System.ComponentModel.INotifyPropertyChanged in your MapViewModel class, as shown in the


following example.
class MapViewModel : INotifyPropertyChanged
{
...

The INotifyPropertyChanged interface requires the implementation of a single event:


PropertyChangedEventHandler.
7. Implement PropertyChangedEventHandler by adding the code shown in the following example.
public event PropertyChangedEventHandler PropertyChanged;
private void RaiseNotifyPropertyChanged([CallerMemberName]string propertyName = null)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}

8. Raise the change notification in your CurrentExtentString property's setter by calling the
RaiseNotifyPropertyChanged function.

Copyright 1995-2015 Esri. All rights reserved. 83


ArcGIS Runtime SDK for .NET

private string extentString;


public string CurrentExtentString
{
get
{
return this.extentString;
}
set
{
this.extentString = value;
this.RaiseNotifyPropertyChanged();
}
}

9. Run your app again. The extent information appears at the bottom of the map. Zoom and pan the display to see the
information update.

You've completed the tutorial, nice work. You now have an understanding of how to construct an app using the MVVM design pattern,
including: data binding, commands, event triggers, and property change notification. To appreciate the usefulness of the MVVM pattern,
create a new project (perhaps for another .NET platform) and reuse your ViewModel and Command classes for a different UI (View).
To learn more about these topics, consult the following resources:
Data binding overview (MSDN)
MVVM pattern made simple (CodeProject)
MVVM Commands (MSDN)
INotifyPropertyChanged (.Net Documentation)
MVVM Light toolkit (CodePlex)
Caliburn.Micro framework (GitHub)

Related Topics
Determine your app/map pattern
Provide map tools
Native vs. web

Copyright 1995-2015 Esri. All rights reserved. 84


ArcGIS Runtime SDK for .NET

Maps and layers


A map is a canvas that draws layers of geographic data. Different layer types are used to draw different data types. For example, you may
have data that is provided by a service or from local files; the data might be static in nature, or change over time. Maps can also show
information relating to the map and its layers, such as GPS locations, and pop-ups.
A MapView is a control that acts as a container for a Map. A MapView can contain a single Map and a Map may contain zero or several
layers. This architecture allows you to take advantage of the MVVM design pattern by defining your map as a property on a ViewModel
class and binding it to the MapView.Map property in your View (XAML).
To enable the workflows your app requires, and to maximize display performance, always consider the factors below when you create
your map.

Layer types
Layers can generally be thought of as basemaps, operational, or graphics layers, depending on the data they display and how they are
used, with each type of layer offering different functionality and performance characteristics.
Background data that provides context and does not change often is generally considered as the basemap, for example,
topography, imagery, streets, or buildings data. Basemap data is generally prepared and cached on a server as ready-to-access
image tiles that are efficient to request and display in an app. ArcGIS Online provides a free set of ready-to-use basemap layers
that are pre-rendered and cached to ensure they draw quickly. Alternatively, you can use the ArcGIS platform to create your own
basemaps. For details on functionality and performance, see Basemap layers in the Layer types topic. For details on using offline
basemaps, see Create an offline map.
Data edited by app users, periodically changing data, or data resulting from analyses, may best be considered as operational
layers. Typically, operational data is created and maintained by your organization. Displaying or working with operational data is
often the main focus of an app. For details on functionality and performance and how to take operational layers offline, see
Operational layers in the Layer types topic.
Live, rapidly changing, ephemeral data may be appropriate for a graphics layer. For example, vehicle or workforce locations,
geotriggered events, or temporary query results. Graphics are generated in memory in an app, or created in an app based on an
external information feed. For details on functionality and performance, see Graphics layers in the Layer types topic.
Other types of specialized layers provide the ability to add a wide range of data and services to a map, for example WMS services and
OpenStreetMap.
A wide variety of layer classes are provided by the API. Each can be used to display a specific data type, and each has its own
functionality and performance characteristics. Generally, each layer class is used for basemap, operational, or graphics layers. However,
these are not absolute rules, and the choice of class should be based on an understanding of the characteristics of each type. For
information on the functionality and performance of different types of layers, see Layer Types.

Layer order
The layer order in a map is important. Basemaps typically cover the entire surface of the map. They are added to the map first so that they
draw under the layer and do not obscure other layers. Layers can be re-ordered, but this will not change the map's spatial reference.
Add operational layers to the map next. Graphics layers are typically added last and show on top of all other layers.

Spatial reference
Maps and layers use spatial references to help define where coordinates are located on the earth's surface. Distance units and
coordinates of map operations are determined by the spatial reference of the map. The first layer in a map, typically the basemap, defines
the spatial reference of the map, and this cannot be changed.
If the spatial reference of layers in a map are different to the spatial reference of the map, the layers must be reprojected to the spatial
reference of the map before displaying. Some layer types cannot be re-projected, for example, tiled map layer services draw and cache on
a server, and cannot be changed on the client.
To maximize performance, avoid reprojection entirely by ensuring all layers have the same spatial reference as the map.

Choose how to author a map


You can author a map in ArcGIS Online, add the data layers you require, define how the layers should appear, and use this map in your
app.
This allows you to interactively experiment with many aspects of the appearance and behavior of the map layers, and immediately view
your changes online. By loading an online map in your app, you also gain the advantage of a centrally managed map, with the ability to

Copyright 1995-2015 Esri. All rights reserved. 85


ArcGIS Runtime SDK for .NET

change the map online independent of your application code, reducing the need for application redeployment. It is also easier to offer the
user a choice of pre-defined online maps to open using the Portal API. Note that online maps may only contain online data.
Alternatively, you can build a map by defining and adding layers at runtime programmatically, or even add code to allow your users to add
their layers. You can also make temporary changes to a map that you created online, by adding or removing layers, and changing a
layer's appearance. This approach enables you to add offline layers to your map, and offers the flexibility of programmatic control, but
lacks the centralized maintainable map.
It is not possible to directly load map package (MPK) files or map documents saved from ArcGIS for Desktop into the map.

Behavior at runtime
Also consider how the map draws and behaves at runtime, and how the user interacts with it.

Map and layer initialization


Maps are initialized asynchronously after being created. Layers are also initialized asynchronously when added to the map. Attempting
to access certain properties or operations of the map or its layers before they are initialized may throw errors. For example, getting the
spatial reference or center of a map, or the name or extent of a layer. You can handle the LayerLoaded event on the MapView to
know if (and when) each layer is loaded successfully into the map. You can also await the LayersLoadedAsync method to get the
status of all layers after the map view attempts to load them. It's also good practice to set the initial extent of the map to ensure the user
starts in a location relevant to the map's usage.
The following code example uses the LayersLoadedAsync method to await the loading of all the map's layers. After loading is
attempted for all layers, the InitializationException property will be populated for layers that encountered an exception while
loading (otherwise, the property will contain null). The following code would be called in the constructor for the page.
private async Task TryLoadLayers()
{
var builder = new StringBuilder();
await this.MyMapView.LayersLoadedAsync();
foreach (var layer in MyMapView.Map.Layers)
{
if (layer.InitializationException != null)
{
builder.AppendLine(layer.InitializationException.Message);
}
}

// report layer initialization exception messages here ...


}

Wraparound maps
Most flat representations of the world only extend to 180 degrees east and west longitude, the approximate location of the international
date line, making it more difficult to visualize routes or shapes that cross the pacific ocean. However, the map can be configured to
display the eastern and western hemispheres wrapping around each other and forming a continuous surface, giving the impression that
the map is endless. Panning a map becomes similar to spinning a globe.

Navigation and interaction


Consider what actions or gestures you enable to allow users to zoom, pan, and rotate the map. The MapView provides map navigation
out-of-the-box using actions such as mouse clicks and drags, rolling the mouse wheel, and using touch gestures. This built-in behavior
allows users to pan and zoom map contents and explore attributes of individual features.

Temporal data
Geographic data can change over time; therefore, some layers may show stored temporal data, which is information about the changing
state of a dataset over time. For example, the progression of a hurricane changes in sea temperature, destruction of wildlife habitat, or
the spread of disease. These layers are called time-aware layers.
You can configure a map with time-aware layers to display different periods of time. Stepping through time in your map can help you
easily identify trends and patterns in the data that may have otherwise remained unnoticed. See the temporal renderer section of the
Symbols and renderers topic for information about displaying temporal data on the map.

Related Topics
Layer Types
Use a MapView to display a map
Add layers with code

Copyright 1995-2015 Esri. All rights reserved. 86


ArcGIS Runtime SDK for .NET

Work with web maps

Copyright 1995-2015 Esri. All rights reserved. 87


ArcGIS Runtime SDK for .NET

Layer Types
Different layer types are used to draw different data types. Generally, the layers in a map can be categorized as either basemap,
operational, or graphics layers. The functionality and performance may differ, depending on the characteristics of the data and how it is
accessed and displayed in an app.
See Maps and layers to learn more about choosing how to build maps from layers.

Choosing layer types


Most layers display content from GIS server web services, such as ArcGIS for Server services, Bing Maps, Open Street Map, or WMS
services.
One kind of service is known as a map service. Map services fall into two broad categories: dynamic or tiled. Dynamic map services return
map images created on-the-fly when requested by a client. Tiled map services provide pre-generated images based on some tiling
scheme, and the layer assembles these tiles in the client app. Another kind of service is known as a feature service. ArcGIS for Server
feature services return sets of features from a single layer as a response.
Other layers display different types of content. A graphics layer does not rely on a web service for its content. Specialized layers are also
available for working with data sources such as Web Map Services (WMS) information, and KML.
The sections below suggest the typical classes to use for your basemap, operational, and graphics layers. However, these are not
absolute rules, and the choice of class should be based on an understanding of the characteristics of each type. Some examples of
exceptions are discussed in the sections below.
A wide variety of layer classes are provided by the API. Each can be used to display a specific data type, and each has its own
functionality and performance characteristics. Generally, each layer class is used for a particular layer typebasemap, operational, or
graphics.

Common layer properties


All layer types inherit from a common Layer class, which allows certain properties to be queried or changed for any layer type.
Get the layer's full extent, using the FullExtent property.
Determine what spatial reference is used by the layer, using the DefaultSpatialReference property.
Hide and show the layer, using the IsVisible property.
Control how transparent or opaque a layer is, using the Opacity property.
Change the visible layer's scale range thresholds, using the MinScale and MaxScale properties.

Basemap layers
Basemap data is typically provisioned as a tiled map layer. Different classes are used to create basemap layers, depending on the
displayed data.

Copyright 1995-2015 Esri. All rights reserved. 88


ArcGIS Runtime SDK for .NET

If your basemap must be used in maps with a wide variety of different spatial references, or changes frequently, or is used infrequently, it
may be more appropriate to publish data as a dynamic map service. Additionally, if your operational data changes infrequently and is used
by a large amount of users, it may be more appropriate to publish it as a tiled map service.

Tiled service layers


API classes: ArcGISTiledMapServiceLayer, BingLayer, WebTiledLayer, WmtsLayerTiled map service layers are connected
to cached map services (from ArcGIS for Server, an OpenGIS Web Map Tile Service implementation, OpenStreetMap, or Bing), which
provide map images at predefined scales in a tiling scheme. The tiling scheme is set by the server. The map image tiles are raster (also
called bitmap) images drawn on the map view and arranged into their tiling scheme by the client API. These services can contain
multiple sublayers.

Functional characteristics

Because each tile image already exists on the server, it is not possible to change the visibility of the individual layers or the service's
default spatial reference of the map (they can be considered as static map services). In addition, the data cannot change over time
unless the cache is refreshed. Tiled service layers cannot be queried.

Performance characteristics

Tiled map services are some of the fastest map services available in the runtime. Map images are pre-created and cached by the
server, and returned from the server very quickly. Multiple images are usually returned for a single map extent. Requests are made on
multiple threads and the responses are handled asynchronously (tiles are requested and drawn individually from one another). This
approach results in many small requests to the server and little client-side processing to draw the returned images. The size of each
returned image increases as the resolution or complexity of the images increase. For example, high-resolution imagery tiles are larger
in file size than topographic mapping for the same area and map extent.

Offline tiled layers


API classes ArcGISLocalTiledLayer A cache of tiles can be downloaded from the server to the client device and displayed as a
layer in an app, without the need to remain connected to the service. The cache can be downloaded as a single Tile Package (TPK )
file, or as an ArcGIS Compact Cache, or can be created using ArcGIS for Desktop and directly provisioned to the device. Learn more
about creating offline maps.

Functional and performance characteristics

Local tiled layers display even faster than tiled service layers, as no network calls are required to retrieve the image tiles. However,
data must be prepared in advance by being generated and downloaded to the device over the network, or by provisioning the
generated files directly to the device file storage. Other functional and performance characteristics are similar to that of tiled service
layers.

Operational layers
Operational data is typically provisioned as a feature service, or as a dynamic map service. The choice of service type depends on what
functionality and performance characteristics are required for the layers. If editing is required, use feature services; however, if complex
rendering is required, dynamic map services may be more appropriate. More differences are highlighted below.
If your operational data does not require editing, changes infrequently, and is used by a very large amount of users, it may be more
appropriate to publish it as a tiled map service. Conversely, if you have a basemap that must be used in maps with a wide variety of
different spatial references, or changes frequently, or is used infrequently, it may be more appropriate to publish data as a dynamic map
service.

Feature layers
Feature layers display data from feature services. Feature layers can be used to display, select, and query features in a layer. Use
feature layers to edit geometry, attributes, and attachments, if the underlying feature service supports editing.
Features can be retrieved from the server as the app is used, or alternatively downloaded when the device is connected, and cached
locally for use when the device is offline. Choosing the most appropriate API option enables your app to provide the workflows required,
and allows it to adapt to the requirements of the situation. See the sections below for more information on the different options available.

Copyright 1995-2015 Esri. All rights reserved. 89


ArcGIS Runtime SDK for .NET

Online

API classes: ServiceFeatureTable, FeatureLayerThe geometry, attributes, and attachments of features from a feature
service are temporarily cached in a table on the client. The feature layer uses this table to draw the features natively in the map,
based on the map extent. New features are retrieved automatically when you navigate the map. Changes to features already cached
in the app are not retrieved from the server table unless the layer is specifically refreshed. The local table cache is discarded when
the layer is disposed.
Create and initialize a ServiceFeatureTable, then create a FeatureLayer by passing in the ServiceFeatureTable to the
constructor, and add the FeatureLayer to the map. The ServiceFeatureTable class is a subtype of ArcGISFeatureTable,
which is an abstract base class for online and offline feature tables.

Offline

API classes: GeodatabaseFeatureTable, FeatureLayerA local cache of a feature service can be downloaded from ArcGIS
for Server and displayed as a layer in your app, without the need to remain connected to the service. Features are downloaded to a
local geodatabase file, using the GeodatabaseSyncTask.
Create and initialize a GeodatabaseFeatureTable, and create a FeatureLayer by passing in the GeodatabaseFeatureTable
to the constructor, then add the FeatureLayer to the map. Learn more about creating offline maps.

Functional characteristics

As the feature attribute, geometry, and attachment information is cached locally, individual features in these layers can be queried
and filtered based on spatial queries or text-based WHERE clauses. If the layer is created from an editable ArcGIS for Server feature
service, the feature layer can be edited, and edits pushed to the service when required.
If the feature service the layer was originally created from supports syncing, edits made to the features in an offline layer can be
uploaded to the service, and updates from the service can be synced to the client app.

Performance characteristics

As full feature information is cached locally, and features are drawn natively, this layer type offers excellent performance of display
when zooming and panning the map, within the extent of cached features. Querying such features is also efficient, enabling app
functions such as providing real-time updates of query results in a map. This performance comes at a slight cost of initial display
speed when the layer is first created from the service, as the local feature cache must be built. Additionally, app memory increases
with the number and complexity of the features cached.
Offline feature layers may display faster than online feature service layers, as no network calls are required to retrieve the feature
information. Additionally, querying and filtering is equally efficient. The cache must be initially created, which requires server-side
processing time, and the download to the device may require extensive network usage and subsequent local device storage. Network
usage can be eliminated by provisioning the cache directly to the device in advance, by creating the cache using a desktop computer
and copying it to the device internal memory (or expandable memory cards if your device supports this).

Dynamic map service layers


API classes: ArcGISDynamicMapServiceLayer, ArcGISImageServiceLayer, WmsLayer, GpResultImageLayerA dynamic
map service can contain multiple layers, rendered by the server each time a request is made, and returned to the client as a single
raster image. The image does not contain any additional information about the features in the map. Dynamic map layers are connected
to ArcGIS for Server dynamic map services.

Functional characteristics

Since map images are drawn by the server on every request, if your data changes, those changes are seen as soon as a new map
image is requested. In addition, the visibility of individual map layers can be changed, and the data shown can be filtered by adding
individual layer definition expressions. The spatial reference of this layer type can be changed from the service's default, and ArcGIS
for Server re-projects each image on-the-fly to the requested output spatial reference (that of the map).
The API does not include specific methods to query individual dynamic map service layers. However, the layer's end point URL can
be used by a find task, identify task, query task, or used to create a separate queryable feature layer.

Copyright 1995-2015 Esri. All rights reserved. 90


ArcGIS Runtime SDK for .NET

Performance characteristics

For every map request, ArcGIS for Server creates a map image on-the-fly. Consequently, the server rendering time depends on the
amount and complexity of the data in the map. However, if the map service is well optimized, this should result in a relatively quick
response to the client, but will typically be longer than responses for an equivalent tiled map service layer. The file size of the returned
map image also depends on the data in the map. As the server response is an image, this can be drawn quickly as it requires little
client-side processing.
Dynamic map service layers are good candidates for showing features that change periodically over time, or that require some sort of
filtering by the user, as long as the feature information (attributes, geometry, or symbol) is not required in the client. They are often
used in conjunction with a feature layer in selection mode to show the latest map data without having to pull all of the feature
information from the server (as with feature layers) on every map request.

Graphics layers
API classes: GraphicsLayerGraphics layers can be used to display information that is not covered by the other types of layer
above. Graphics are defined in memory in your app, based on user actions, resulting from an operation, or converted from the
information in an external information feed. Graphics in a graphics layer can contain geometry and attribute information, and can draw
graphics using individual symbols or a layer-based renderer. Like features in a feature layer, each graphic draws natively in the map.
Feature layers share a little functionality with graphics layers. For more information about when to use feature layers versus graphics
layers, see Features and graphics.

Functional characteristics

As a graphic contains geometry and attribute information, you can display information about the graphics. For example, you can show
pop-ups for graphics in a graphics layer. You can also find graphics using screen coordinates HitTestAsync method, in repsonse to
user action events on the map. The graphics layer is responsible for drawing graphics on the map in spatial coordinates. It is not
designed for drawing non-geographical marginalia such as north arrows or copyright text.

Performance characteristics

It is not recommended to add too many graphics to the graphics layer, as they are held in the device memory. If you're working with a
lot of features (thousands), it may be more appropriate to put these into a feature layer, by creating a feature service.
Graphics layers are designed to best perform when graphics change location regularly, with optimal animation of the features upon
zooming in and out on the map. It is possible to change the default rendering mode of a graphics layer to instead be optimized to
draw greater numbers of features added to the layer in batches. Layers with the same rendering mode should be grouped together.

3D layers
In general, you work with layers in 3D (added to a Scene control, in other words) the same way you work with them in 2D (added to a
Map). All of the layer types that are supported for display in a Map can also be used in a Scene. Just like those included in a Map, layers
can be added to a Scene at design time using XAML or at runtime using code, and are drawn in the order in which they are added.
Elevation values for 3D visualization are applied to layers using an elevation source defined on the Scene control.
With the 10.3 release of ArcGIS for Server, scene services are now available for delivering 3D content. They support publishing and
consuming large volumes of multipatch features, such as buildings for entire cityscapes. Scene services are created by publishing a
scene using ArcGIS Pro. These services can be consumed in your ArcGIS Runtime app using a SceneLayer.
The GraphicsLayer and GraphicsOverlay classes provide a SceneProperties property to define behavior when rendering
graphics in a scene. The property is set with a LayerSceneProperties object that defines the SurfacePlacement setting to control
how graphics display relative to the scene's elevation source. When displaying in a map, SceneProperties for graphics are ignored.
Feature services may provide z-coordinate values for feature geometry, but these values are not used when displaying a feature layer in
a scene. As a workaround, query the feature service (with ReturnZ = true) and add the results to a graphics layer with the
appropriate surface placement. The following example queries a z-enabled feature service then displays the graphics in a scene.

Copyright 1995-2015 Esri. All rights reserved. 91


ArcGIS Runtime SDK for .NET

// query for all graphics in the feature service, include z-coordinate values
var queryTask = new QueryTask(new Uri("http://myserver.com/arcgis/rest/services/FlightPaths/FeatureServer/0"));
var query = new Query("1=1");
query.ReturnZ = true;
var result = await queryTask.ExecuteAsync(query);

// create a graphics layer to show the graphics using absolute placement using the z values
var graphicsLayer = new GraphicsLayer();
graphicsLayer.SceneProperties.SurfacePlacement = SurfacePlacement.Absolute;

// build graphics from the results, symbolize with a red line


var lineSym = new SimpleLineSymbol { Color = Colors.Red, Style = SimpleLineStyle.Solid, Width = 5 };
graphicsLayer.GraphicsSource = from f in result.FeatureSet.Features select new Graphic(f.Geometry, lineSym);
// add the layer to the scene
MySceneView.Scene.Layers.Add(graphicsLayer);

See the Add layers to your Scene topic for more information about working with layers in 3D.

Kml layers
Keyhole Markup Language (KML) is an XML format for describing geographic features for visualization in two dimensions (in a Map) or
three dimensions (in a Scene). A KML document defines a set of geographic features using coordinates of latitude, longitude, and
elevation. Rendering information describes how features are symbolized, and may reference local resources, such as image files.
Additional information can define a time component for the data or three dimensional visualization properties such as pitch, heading,
and elevation to describe a camera position.
A KML file can contain one or more network links, which simply point to another KML file. The referenced file can be updated and
maintained seperately, ensuring that the user sees the most current version of the data. Network links can be set to refresh their data
based on a time interval or when the user interacts with the display, making them especially useful for displaying dynamic data.
The following network link is included in the KML file at http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/
1.0_week_age_link.kml and is used to display earthquakes from the USGS website. The data in the layer will be refreshed every 300
seconds (five minutes).
<NetworkLink>
<visibility>1</visibility>
<refreshVisibility>0</refreshVisibility>
<open>1</open>
<name>USGS Magnitude 1.0+ Earthquakes, Past Week</name>
<Snippet maxLines="1">Updates every 5 minutes</Snippet>
<Link>
<href>http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/1.0_week_age.kml</href>
<refreshMode>onInterval</refreshMode>
<refreshInterval>300</refreshInterval>
</Link>
</NetworkLink>

KML files use a .kml extension for plain KML text files or .kmz for compressed files, which contain a KML file (called "doc.kml" by
convention) and optionally includes subfolders containing resources referenced by the file, such as images, icons, or 3D models used to
display the features. In your ArcGIS Runtime apps, you can use KmlLayer to read and display geographic information from a .kml or
.kmz file, either stored locally or accessed from an online source.
The following example adds a layer from a KML file hosted by the USGS showing recent earthquakes. This KML file contains the
network link shown in the previous example, and will cause the layer to update every five minutes.
// create a KML layer from an online file
var sourceUri = new Uri("http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/1.0_week_age_link.kml");
var kmlLayer = new KmlLayer(sourceUri);

// Add the kml layer to the map


MyMapView.Map.Layers.Add(kmlLayer);

Copyright 1995-2015 Esri. All rights reserved. 92


ArcGIS Runtime SDK for .NET

In 2008, KML became an international standard of the Open Geospatial Consortium (OGC). The specification for the current version,
which is 2.2, can be found on the OGC Website. The standard also provides a mechanism for extensions, which allows the addition of
elements beyond the scope of the standard. Google, for example, provides several extensions to the KML standard that are described
in the Google Developers KML Reference. If an extension is not supported by a client, it is silently ignored and the rest of the document
is loaded. This allows a new client to support additional functionality from an extension without breaking support for existing clients.
ArcGIS Runtime SDK for .NET is targeting support for KML version 2.2 and some extensions. The following lists some of the
functionality, either from the KML 2.2 specification or Google extensions, that you won't yet find in the ArcGIS Runtime KML
implementation.
Tour
NetworkLinkControl message

Specialized layers
Several specialized layer types are available to provide geographic information from a variety of formats, including Bing, Open Street Map,
and Web Map Service (WMS). The following layer classes are available to support the use of specialized types of data in a map.
WMSWeb Map Service layers allow you to add Open Geospatial Consortium (OGC) WMS services to a map. These services
are a type of dynamic map service, and may function as basemap or operational layers. The WmsLayer is used to add WMS
services to a map.
Bing mapsBing maps services can be added as layers in a map by using the specialist BingLayer class. These services are
tiled map services that usually provide basemap layers for a map.
OpenStreetMapOpen StreetMap services can be added as layers in a map by using the specialist OpenStreetMapLayer
class. These services are tiled map services that usually provide basemap layers for a map
Message groupsMessage group layers display graphics with military symbols from one of the supported symbol dictionary
types.
Group layersGroup layers are composed of a collection of other layers, and are used to represent datasets that are composed
of many different layers.

Related Topics
Add layers with code
Use a MapView to display a map

Copyright 1995-2015 Esri. All rights reserved. 93


ArcGIS Runtime SDK for .NET

Features and graphics


In ArcGIS Runtime SDKs, features and graphics are typically representations of real-world objects on a map, such as polygons that
represent parcels or points that represent address locations. They have a shape (geometry, in other words) and a collection of attributes to
describe them. For display on a map, they can be rendered using a variety of symbols. Whether you use features, graphics, or both in
your app depends on things like whether or not you need to save them for future use and whether you want to render items in a layer
separately.
A Graphic is a type of Feature. The Feature class provides an abstract base class for the instantiable classes Graphic and
GeodatabaseFeature. Since Geometry and Attributes properties are defined on this base class, all features, including graphics,
have geometry and attributes, and are therefore indistinguishable when displayed on the map. So, what's the difference between features
and graphics?
In addition to the fact that Graphic defines some extra properties, the biggest difference is that features are stored with a dataset and
graphics are stored in memory. Features are displayed in a feature layer, which may use data from an online service or from a local
cache. In either case, those features are physically stored on disk somewhere. Graphics, on the other hand, are always stored in memory
on the client. They live in a graphics layer, and must be instantiated programmatically at runtime.

Note: Although the term can also refer to a graphic, "feature" is most often used to refer to things like geodatabase
or geopackage features, meaning features stored in a database. Graphics are usually called "graphics",
although "graphic feature" would be more precise.

Features...
Have geometry
Have attributes stored in a table
Are stored on disk
Are displayed through a feature layer (of a single geometry type)
Are symbolized according to the renderer defined for the feature service or the feature layer that contains them
Can be selected via the feature layer
Graphics...
Have geometry
Have attributes stored in a collection of key/value pairs
Are stored in memory
Are displayed through a graphics layer (that can display graphics of diverse geometry types)
Can be symbolized individually or according to the renderer applied to the graphics layer that contains them
Can be selected (the selection state is managed by the graphic)
Some display properties can be defined by the graphic, such as visibility and draw order

When to use features


Because features are stored in a database, they can be used to display a common set of data to all users of your app and between user
sessions. On the other hand, graphics are created in the client app at runtime and therefore can only be used for a single user's session
(unless you add logic to persist the graphics between sessions, such as serialization). Features can define a geometry type and an
attribute schema that is consistent for the data you want to represent.
With these differences in mind, perhaps the most common use of features is to share data among several users.

Copyright 1995-2015 Esri. All rights reserved. 94


ArcGIS Runtime SDK for .NET

You can publish features as part of a feature service. Layers in a feature service can be displayed in a map, symbolized in various ways,
and queried using attribute, spatial, or temporal criteria. The rich editing tools available in the Runtime SDK also make it possible to
expose editing functionality in your application, including the ability to control the types of edits made and who gets to make them.
The following example adds a new feature layer to the map based on an online data source. The symbology (renderer) used to display the
layer is defined with the feature service.
// define the online data source (ServiceFeatureTable), get features in Web Mercator coordinates
var incidentsFeatureTable = await ServiceFeatureTable.OpenAsync
(new Uri("http://sampleserver6.arcgisonline.com/arcgis/rest/services/SF311/FeatureServer/0"),
sr_override: SpatialReferences.WebMercator);
// create a new feature layer, pass the data source to the constructor
var incidentsLayer = new Esri.ArcGISRuntime.Layers.FeatureLayer(incidentsFeatureTable);

// add the feature layer to the map


MyMap.Layers.Add(incidentsLayer);

When to use graphics


Graphics are created programmatically at runtime and do not need to be physically stored. This makes them ideal for displaying things
specific to the current user's session with the application, or anything that only needs to be displayed temporarily.
Graphics are commonly used to perform things such as:
Show the results of spatial analysis, such as buffer polygons around input features
Highlight a selection in the map
Add geometry drawn interactively by the user
Provide animation for data that changes quickly (such as GPS positions or moving objects)
Show text on the map
The following example creates a new graphics layer (if it doesn't already exist in the map) and adds a user-defined line as a graphic. The
symbol for the graphic is created and applied explicitly.
var graphicsLayer = MyMap.Layers["MyGraphics"] as Esri.ArcGISRuntime.Layers.GraphicsLayer;
if (graphicsLayer == null)
{
graphicsLayer = new Esri.ArcGISRuntime.Layers.GraphicsLayer();
graphicsLayer.ID = "MyGraphics";
MyMap.Layers.Add(graphicsLayer);
}

// define a line symbol (dashed blue)


var lineSymbol = new Esri.ArcGISRuntime.Symbology.SimpleLineSymbol();
lineSymbol.Color = Windows.UI.Colors.Blue;
lineSymbol.Style = Esri.ArcGISRuntime.Symbology.SimpleLineStyle.Dash;
lineSymbol.Width = 2;

// use the MapView's Editor to get polyline geometry from the user
var line = await MyMapView.Editor.RequestShapeAsync(Esri.ArcGISRuntime.Controls.DrawShape.Polyline,
lineSymbol, null);

// create a new graphic; set the Geometry and Symbol


var lineGraphic = new Esri.ArcGISRuntime.Layers.Graphic();
lineGraphic.Geometry = line;
lineGraphic.Symbol = lineSymbol;

// add the graphic to the graphics layer


graphicsLayer.Graphics.Add(lineGraphic);

Copyright 1995-2015 Esri. All rights reserved. 95


ArcGIS Runtime SDK for .NET

Related Topics
Search for features
Edit features
Add graphics and text

Copyright 1995-2015 Esri. All rights reserved. 96


ArcGIS Runtime SDK for .NET

Graphics rendering modes


Graphics layers and overlays can be rendered in a map or scene view using one of two rendering modes: dynamic or static. The rendering
mode most appropriate for your graphics depends on a few factors, and making the right choice can significantly improve performance
and provide a better user experience.
A RenderingMode property is exposed on both the GraphicsLayer and GraphicsOverlay classes. You can set this property to one
of two values: GraphicsRenderingMode.Dynamic or GraphicsRenderingMode.Static.
<layers:GraphicsLayer ID="VehicleTrackingGraphics" RenderingMode="Dynamic"/>
<layers:GraphicsLayer ID="CustomerLocationGraphics" RenderingMode="Static"/>

Dynamic rendering
Dynamic rendering leverages the graphics processing unit (GPU) to render graphics. The amount of graphics processing that can be
handled is directly tied to the processing power and memory available for the GPU. Dynamic rendering is well suited for animation and
ensures that graphics are updated while navigation operations are running. As the user pans or zooms, for example, the graphics will
update their display immediately (without waiting for navigation to complete, in other words). Dynamic rendering provides a smoother
display experience for the user but can cause decreased performance when working with a large number of graphics.

Static rendering
Static rendering relies on the system central processing unit (CPU) and system memory rather than on GPU resources. Graphics that are
rendered in static mode are not immediately updated while the user pans or zooms the display. Instead, the graphics are updated only
after navigation is complete. This allows you to display a large number of graphics without a performance penalty during navigation but
produces a less polished graphic display.

Copyright 1995-2015 Esri. All rights reserved. 97


ArcGIS Runtime SDK for .NET

Note: Static rendering of graphics can be CPU and memory intensive, which can impact device
battery life.
Alignment properties related to graphic display are ignored when the rendering mode of a graphics layer or overlay is set to static.
Symbols align with the map or scene view regardless of the value of AngleAlignment. If the view rotates, for example, the symbols will
follow the orientation of the view and not the screen regardless of the value of the MarkerSymbol.AngleAlignment property.

Rendering in 3D
Rendering in a scene (in three dimensions, in other words) has some unique challenges. Understanding how dynamic and static rendering
affect three-dimensional graphic display can help you decide which mode is most appropriate for particular graphics in your scene.
Dynamic rendering in three dimensions is especially resource-intensive and may degrade performance. Static rendering, on the other
hand, has limitations that affect three-dimensional display.

Drawing graphics relative to the surface


For display in a scene, there are three options for how elevation (z-values) will be used to position a graphic. The following list describes
the available values for a graphic layer or overlay ElevationMode property:
DrapedThe elevation (z-value) for a point, line, or polygon graphic is ignored. Graphics appear draped on the surface of the
globe, like a sheet.
AbsoluteElevation of each graphic is calculated from sea level, regardless of the terrain elevation at the x,y locations of the
graphics.

Copyright 1995-2015 Esri. All rights reserved. 98


ArcGIS Runtime SDK for .NET

RelativeElevation of each graphic is calculated relative to the terrain elevation at the x,y location. This simply adds the
graphic's z-value to the elevation at the surface.
To display graphics using the Draped elevation mode, you can use either dynamic or static rendering. Only dynamic rendering,
however, supports Absolute or Relative mode. If graphics are rendered in static mode, they are always draped on the surface,
regardless of the value assigned to the elevation mode property. The following image shows two graphics layers with the elevation
mode set to absolute. Only the dynamic layer (red) supports this placement option and applies the z values for the graphics.

Updating graphics
If graphics are updated frequently, either by moving their geographic position (x, y, z coordinates) or changing symbol properties (color,
size, style, and so on), dynamic rendering is better suited to display them. For display in a scene, static rendering requires that graphics
are created for every level of detail. If graphics are updated, therefore, the scene tiles will be recreated at all levels and may cause the
display to flash as they are being generated.

Symbol size
When graphics are rendered in a scene in static mode, the size of the symbol is determined for each tile in the underlying base map.
The size of graphic symbols (line width, for example) is determined based on the level of detail for each tile. Symbol size for the same
graphic may vary, therefore, between tiles displayed in the scene. This may produce an inconsistent symbol across tile boundaries, as
shown in the following image:

Copyright 1995-2015 Esri. All rights reserved. 99


ArcGIS Runtime SDK for .NET

Choosing a rendering mode


It's important to remember that a rendering mode is applied to individual graphics layers and graphics overlays. In other words, you do not
need to choose a single rendering mode for all graphics in your map or scene view. It's perfectly acceptable, for example, to have some
layers in your view render in static mode while others in the same view render dynamically. This gives you the flexibility to define the right
rendering mode for each set of graphics in your view, and to organize your graphics accordingly.
Based on the preceding descriptions of static and dynamic rendering modes, the following guidelines can be used to choose a rendering
mode for a graphics layer or overlay. See the Performance considerations topic for more information about how rendering affects
performance.

When to use dynamic rendering


Dynamic rendering provides the best graphic display at the expense of less efficient use of resources. You should choose dynamic
graphic rendering in the following situations:
Crisp display of graphics while navigating the map or scene is important. In static mode, graphic display is stretched as zooming
occurs.
Symbols must be consistent across tile boundaries when displayed in a scene.
Graphics are frequently updated on the display (change position or symbol, for example).
You need to display z-coordinate values (altitude, for example) for a set of graphics. When rendered in static mode, graphics are
draped on the scene surface regardless of the value you provide for surface placement.
Symbols, such as text or pictures, for a set of graphics must be aligned to the screen. If you need to rotate the map or scene
view without rotating graphic symbols, you must use dynamic rendering mode.
The performance of dynamic rendering of your graphics is acceptable. If you are not drawing a large number of graphics (or
complicated geometry) and are confident that the target devices for your app will perform well, dynamic rendering mode
provides a better experience for the user.

When to use static rendering


Static rendering provides the most efficient rendering of graphics at the expense of quality of display (especially crispness of symbols
while navigation occurs). You should choose static rendering in the following situations:
Performance is an issue. If you are drawing a large number of graphics in a layer or overlay (or complicated geometry) and are
not confident that the target devices for your app will perform well when displaying your graphics, static rendering mode will
draw using less resources.
A somewhat rough display of graphics while navigating the map or scene is an acceptable trade off. Dynamic mode produces a
much more polished display as zooming occurs, but it is not as efficient.
The potential for inconsistent symbol size across tile boundaries in a scene is acceptable.

Copyright 1995-2015 Esri. All rights reserved. 100


ArcGIS Runtime SDK for .NET

Graphics are not updated frequently (do not change position or symbol, for example).
You don't need to display z-coordinate values (altitude, for example) for a set of graphics in a scene. When rendered in static
mode, graphics are draped on the scene surface regardless of the value you provide for surface placement.

Related Topics
Performance considerations
Add graphics and text
Symbols and renderers

Copyright 1995-2015 Esri. All rights reserved. 101


ArcGIS Runtime SDK for .NET

Symbols and renderers


This topic describes the symbology and rendering options available with the ArcGIS Runtime SDK for .NET. Symbols define all the non-
geographic aspects of a graphic or feature's appearance, including color, size, border, and transparency. You can apply a symbol directly
to individual graphics when you create them. You can also use symbols to create a renderer for graphics layers or feature layers. You can
then set the renderer on the layer to symbolize all the features or graphics in the layer. Renderers allow you to symbolize features
differently based on one or more of their attribute values.

Symbols
Remember that a symbol is not the thing being represented on the map. Instead, it controls how those things (graphics or features)
display. The relationship is similar, for example, between the words you are reading now (the content) and the font that is used to display
them (presentation). Changing the font style, size, and color will not change the meaning of the text, but is likely to have an impact on the
effectiveness of the presentation. Likewise, the quality of a map's presentation can improve with the proper use of symbols to convey
information.
Each symbol type is specific to a geometry type (point, line, or polygon). Whether you're applying a symbol directly to a graphic or using a
symbol to create a renderer, ensure the geometry type of the graphic or feature being symbolized is compatible with the symbol you want
to use. The following is a table of the symbols available in the API with the compatible geometry types and a brief description:

Symbol/Class Geometry Description


SimpleMarkerSymbol Point, MultiPoint Symbolizes points with basic shapes.
(API reference)
PictureMarkerSymbol Point, MultiPoint Symbolizes points with images.
(API reference)
SimpleLineSymbol Polyline Symbolizes lines with pre-defined styles.
(API reference)
SimpleFillSymbol Polygon Fills polygons with a color and pre-defined styles.
(API reference)
PictureFillSymbol Polygon Fills polygons with a tiled image.
(API reference)
TextSymbol Point, MultiPoint, Polyline, Displays text.
(API reference) Polygon
CompositeSymbol Point, MultiPoint, Polyline, A collection of other symbols applied in order (first to last) to produce a layering of
(API reference) Polygon symbols.

Depending on the type of geometry you want to symbolize, you will have different options available for defining your symbol. Points, lines,
and polygons all have a basic symbol you can use: SimpleMarkerSymbol, SimpleLineSymbol, and SimpleFillSymbol
respectively. You may also choose to symbolize points or polygons using the appropriate picture symbol: PictureMarkerSymbol or
PictureFillSymbol. Finally, a CompositeSymbol may be used to build more complex symbols for any type of geometry by layering a
group of symbols together.
Some symbols provide the ability to set an angle for rotating the symbol. This might be useful for showing things like direction (for wind
measurements or moving vehicles, for example). You may also have the ability to define an x or y offset, meaning the symbol displays at a
specified distance from the location of the feature it represents. This can be especially useful when working with text or with composite
symbols (described in a following section) where you may need to arrange several symbols to represent a feature.

Simple symbols
The simple symbol types (SimpleMarkerSymbol, SimpleLineSymbol, and SimpleFillSymbol) give you the ability to quickly
create a symbol by choosing a predefined style, setting a color, and defining a size (for markers) or width (for lines). For markers and
fills, you can also define an outline symbol (using a line symbol).
Symbols can be created using C# (in your code behind) or using XAML (in your UI markup). The example below illustrates creating
simple marker, line, and fill symbols using XAML. Notice that the outline for the fill symbol is specified using the line symbol that was
defined immediately above it.

Copyright 1995-2015 Esri. All rights reserved. 102


ArcGIS Runtime SDK for .NET

<Grid>
<Grid.Resources>
<!--Define symbols in the Resources section (of a UIControl, Page, or App)-->
<symbols:SimpleMarkerSymbol x:Key="RedXSym" Color="Red" Style="X" Size="10"/>
<symbols:SimpleLineSymbol x:Key="DashedGreenLineSym" Color="Green" Style="Dash" Width="3"/>
<symbols:SimpleFillSymbol x:Key="BlueDiagonalHashFillSym" Color="Blue" Style="ForwardDiagonal" Outline="{StaticResource DashedGreenLineSym}"/>
</Grid.Resources>
<!-- ... -->
</Grid>

Picture symbols
Picture symbols, such as PictureMarkerSymbol and PictureFillSymbol, allow you to use an image to symbolize a feature. The
image may be stored locally, or come from an online source. The size of the image can be specified, and for picture fill symbols, will be
repeated (tiled) as necessary to fill the polygon it represents.
Picture marker symbols and picture fill symbols at version 10.2 or later can be created from an image on disk or from the URL to an
image on a remote public machine. Supported image formats for picture symbols are .PNG, .BMP and .JPG. Remote images are
downloaded once per application and cached for future use.
PictureFillSymbols are created from an image that's suitable for tiling. For example, an image of a tree can be used to create a
PictureFillSymbol so that a filled polygon looks like a forest when symbolized. As you zoom in, fewer trees display in the forest
since the map scale is getting closer to the image size. In a graphics layer, a minimum of four tiles are used to represent any one
polygon even at the most zoomed-in level.

Note: In a graphics layer in the default Dynamic rendering mode, images are not tiled neatly at each polygon
boundary, meaning the images look disjoint across boundaries. With a graphics layer set to the Static
rendering mode, images are tiled across the whole texture for a layer. Consequently, images are not
disjoint across polygon boundaries.
// define a picture fill symbol from a png file in the project's assets folder
var pictureSym = new Esri.ArcGISRuntime.Symbology.PictureFillSymbol();
await pictureSym.SetSourceAsync(new Uri("ms-appx:///Assets/JackAndJane.png"));
pictureSym.Height = 30.0;
pictureSym.Width = 30.0;

Composite symbols
A composite symbol is nothing more than a collection of other symbols applied in order (first to last) to produce a layering of symbols. A
composite symbol can be used to symbolize any type of geometry, as long as the proper symbol types exist in its collection (fill symbols
for polygons, for example).
At version 10.2 or later, composite symbols allow you to apply more than one symbol to a single geometry. For example, you can apply
both a SimpleMarkerSymbol and a TextSymbol to a point. A composite symbol contains a list of symbols, and symbols are drawn in
the order in which they appear in the list. A composite symbol has no significant properties of its own. This means, for example, to offset
a composite symbol relative to a geometry, the offset must be applied to each symbol in the list. A composite symbol can contain other
CompositeSymbols but cannot contain itself.
The following examples illustrate how various composite symbols would be applied to different geometry types.

Composite symbol Geometry Result


contents

Copyright 1995-2015 Esri. All rights reserved. 103


ArcGIS Runtime SDK for .NET

SimpleMarkerSymbol, Point All symbols are applied to the point in order. If no offsets were applied to the individual symbols, the picture
PictureMarkerSymbol, marker may cover the simple marker beneath it (depending on the size of the symbols). By default, the text
TextSymbol symbol displays using the point as the lower left of the text string, and will likely overlap with the marker
symbols beneath.
SimpleMarkerSymbol, Point Only the SimpleMarkerSymbol can be applied to the point. While no exceptions are thrown, line and fill
SimpleLineSymbol, symbols will not be applied.
SimpleFillSymbol
PictureMarkerSymbol, Polyline All symbols are applied to the line, with the PictureMarkerSymbol applied to each of the line's vertices. Since
SimpleLineSymbol they are applied before the line symbol, the marker symbols appear under the line symbol.
TextSymbol, Polygon All symbols are applied to the polygon. Because they are applied in order, the simple fill will be covered by
SimpleLineSymbol, the picture fill (unless transparency has been set). The text symbol will be anchored at the center of the
SimpleFillSymbol, polygon's extent beneath both of the fill symbols.
PictureFillSymbol

The example below shows how to create a composite symbol that contains two simple marker symbols. The symbol added first (red
circle) displays below the symbol added last (blue triangle).
// Create a large red circle
var redCircleSym = new Esri.ArcGISRuntime.Symbology.SimpleMarkerSymbol();
redCircleSym.Color = Colors.Red;
redCircleSym.Style = Esri.ArcGISRuntime.Symbology.SimpleMarkerStyle.Circle;
redCircleSym.Size = 16;

// Create a smaller blue triangle


var blueTriangleSym = new Esri.ArcGISRuntime.Symbology.SimpleMarkerSymbol();
blueTriangleSym.Color = Colors.Blue;
blueTriangleSym.Style = Esri.ArcGISRuntime.Symbology.SimpleMarkerStyle.Triangle;
blueTriangleSym.Size = 8;
// Create a composite symbol and add the symbols created above
var compositeSym = new Esri.ArcGISRuntime.Symbology.CompositeSymbol();
compositeSym.Symbols.Add(redCircleSym);
compositeSym.Symbols.Add(blueTriangleSym);

Applying a symbol to a graphic


Graphics are in-memory features that provide a basic way to display geometry on the map. Graphics are unique in that they can be
symbolized using a renderer for the layer that contains them (described later in this topic) or by applying a symbol directly to the graphic.
For a description of how to work with graphics, see the Add graphics and text topic.
The following example shows how to create a point graphic, apply a symbol, then display it on the map.
var point = new Esri.ArcGISRuntime.Geometry.MapPoint(-114.5, 35.5, SpatialReferences.Wgs84);
var graphicsLayer = MyMap.Layers["MyGraphicsLayer"] as Esri.ArcGISRuntime.Layers.GraphicsLayer;
var markerSym = new Esri.ArcGISRuntime.Symbology.SimpleMarkerSymbol
{
Style = Esri.ArcGISRuntime.Symbology.SimpleMarkerStyle.Diamond,
Color = Colors.Green,
Size = 18
};

var pointGraphic = new Esri.ArcGISRuntime.Layers.Graphic(point, markerSym);

graphicsLayer.Graphics.Add(pointGraphic);

Note: A symbol applied directly to the graphic overrides any symbols applied through the
layer's renderer.

Renderers
As the name implies, a renderer is an object that determines how features in a layer are drawn (rendered) on the display. A renderer is like
a collection of symbols that includes logic for applying the appropriate symbol to each feature in a layer. There are a variety of renderer
types, each designed to use a different rendering logic. Most renderers use attribute values to determine which symbol should be applied
to which features.
In a typical workflow, renderers are used to symbolize features in a feature layer, where the features will all be of the same geometry type.
It's up to you to create a renderer with symbols that can be applied to the geometry type of the layer (pursuant to the table above). A

Copyright 1995-2015 Esri. All rights reserved. 104


ArcGIS Runtime SDK for .NET

renderer can also be applied to a graphics layer, but should not be used for a layer that has graphics of mixed geometry types. For such a
scenario, applying a symbol to each graphic as it's created is the preferred workflow.
There are several types of renderers you can create using the Runtime .NET API: including simple renderers, unique value renderers, and
class break renderers. Their class diagram is pictured here and each is described below.

Simple renderer
A simple renderer uses just one symbol such that all features are symbolized with the same symbol regardless of the feature's attribute
values.
The following example illustrates creating a simple renderer with XAML and applying it to a graphics layer in the map. Note that this
layer will not render geometry other than points (unless a symbol is explicitly defined for the graphic).
<Page
x:Class="SymbolsAndRenderers_Store.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:esri="using:Esri.ArcGISRuntime.Controls"
xmlns:layers="using:Esri.ArcGISRuntime.Layers"
xmlns:symbols="using:Esri.ArcGISRuntime.Symbology"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.Resources>
<!--Define a red "X" marker symbol-->
<symbols:SimpleMarkerSymbol x:Key="RedXSym" Color="Red" Style="X" Size="10"/>
<!--Define a simple renderer that uses the symbol above-->
<symbols:SimpleRenderer x:Key="MySimpleRenderer" Symbol="{StaticResource RedXSym}"/>
</Grid.Resources>
<esri:MapView x:Name="MyMapView">
<esri:Map x:Name="MyMap">
<layers:ArcGISTiledMapServiceLayer ID="BaseMap" ServiceUri="http://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/mapserver"/>
<layers:GraphicsLayer ID="MyGraphicsLayer" Renderer="{StaticResource MySimpleRenderer}"/>
</esri:Map>
</esri:MapView>
</Grid>
</Page>

Unique value renderer


A unique value renderer is used to symbolize features differently based on the value of up to three attributes. It is particularly useful
when symbolizing features based on an attribute whose values represent names or categories, usually referred to as nominal data.

Caution: When applying a renderer that uses attribute values, such as unique value or class breaks renderers, you
must include the required fields in the layer's out fields. By default, only the object id and geometry fields
are returned for a feature layer.

Copyright 1995-2015 Esri. All rights reserved. 105


ArcGIS Runtime SDK for .NET

The example below creates a unique value renderer that displays cities with different symbols according to the value of their state name
attribute. Since only California, Nevada, and Arizona have been defined explicitly in the renderer's UniqueValueInfoCollection,
features with any other value for the state name attribute (ST) display with the default symbol.
// create a symbol for each unique value
var californiaSym = new Esri.ArcGISRuntime.Symbology.SimpleMarkerSymbol { Color = Colors.Red, Size = 14, Style = Esri.ArcGISRuntime.Symbology.SimpleMarkerStyle.C
var arizonaSym = new Esri.ArcGISRuntime.Symbology.SimpleMarkerSymbol { Color = Colors.Blue, Size = 12, Style = Esri.ArcGISRuntime.Symbology.SimpleMarkerStyle.Dia
var nevadaSym = new Esri.ArcGISRuntime.Symbology.SimpleMarkerSymbol { Color = Colors.Green, Size = 14, Style = Esri.ArcGISRuntime.Symbology.SimpleMarkerStyle.Tri
// create a default symbol for values not defined in the renderer's unique value collection
var defaultSym = new Esri.ArcGISRuntime.Symbology.SimpleMarkerSymbol { Color = Colors.Gray, Size = 8, Style = Esri.ArcGISRuntime.Symbology.SimpleMarkerStyle.Circ

// create a UniqueValueInfo for each value; define the attribute value and associated symbol
var uniqueVal1 = new Esri.ArcGISRuntime.Symbology.UniqueValueInfo("CA", californiaSym);
var uniqueVal2 = new Esri.ArcGISRuntime.Symbology.UniqueValueInfo("AZ", arizonaSym);
var uniqueVal3 = new Esri.ArcGISRuntime.Symbology.UniqueValueInfo("NV", nevadaSym);

// create a unique value info collection; add the info for each unique value
var uniqueInfos = new Esri.ArcGISRuntime.Symbology.UniqueValueInfoCollection();
uniqueInfos.Add(uniqueVal1);
uniqueInfos.Add(uniqueVal2);
uniqueInfos.Add(uniqueVal3);

// create the unique value renderer


var uniqueValRenderer = new Esri.ArcGISRuntime.Symbology.UniqueValueRenderer();
// specify the field that contains the unique values
uniqueValRenderer.Fields.Add("ST");

// provide the unique value info collection


uniqueValRenderer.Infos = uniqueInfos;

// provide a symbol for all other values


uniqueValRenderer.DefaultSymbol = defaultSym;
// apply the renderer to the layer
someLayer.Renderer = uniqueValRenderer;

Note: If a default symbol is not defined for a unique value renderer, only features with attribute values defined in
the value collection display.

Class breaks renderer


A class breaks renderer is the most flexible of the renderers and is used to symbolize features based on an attribute with numerical
values. Features with attribute values in the same range have the same symbol. You can manually create a class breaks renderer by
crafting the desired breaks. A break can be constructed using the minimum and maximum value of the interval, and the symbol to use if
the feature's attribute value falls in this interval. Breaks cannot overlap, and the range of each break includes the maximum value but
does not include the minimum value. With classes 0-10 and 10-20, for example, the value 10 falls in the first class.
The following example illustrates creating a class breaks renderer with three classes of population for US cities: 0-7500, 7500-200000,
and 200000-9000000.

Copyright 1995-2015 Esri. All rights reserved. 106


ArcGIS Runtime SDK for .NET

// create a symbol for each class of values (low, medium, and high)
var loSym = new Esri.ArcGISRuntime.Symbology.SimpleMarkerSymbol { Color = Colors.Red, Size = 4, Style = Esri.ArcGISRuntime.Symbology.SimpleMarkerStyle.Circle };
var medSym = new Esri.ArcGISRuntime.Symbology.SimpleMarkerSymbol { Color = Colors.Red, Size = 12, Style = Esri.ArcGISRuntime.Symbology.SimpleMarkerStyle.Circle }
var largeSym = new Esri.ArcGISRuntime.Symbology.SimpleMarkerSymbol { Color = Colors.Red, Size = 24, Style = Esri.ArcGISRuntime.Symbology.SimpleMarkerStyle.Circle

// create a default symbol for values not defined in the renderer's class definitions
var defaultSym = new Esri.ArcGISRuntime.Symbology.SimpleMarkerSymbol { Color = Colors.Gray, Size = 8, Style = Esri.ArcGISRuntime.Symbology.SimpleMarkerStyle.Circ
// create a ClassBreakInfo for each range; define the min/max attribute values and associated symbol
var classRange1 = new Esri.ArcGISRuntime.Symbology.ClassBreakInfo { Minimum = 0, Maximum = 75000, Symbol = loSym };
var classRange2 = new Esri.ArcGISRuntime.Symbology.ClassBreakInfo { Minimum = 75000, Maximum = 200000, Symbol = medSym };
var classRange3 = new Esri.ArcGISRuntime.Symbology.ClassBreakInfo { Minimum = 200000, Maximum = 9000000, Symbol = largeSym };
// create a class breaks info collection; add the info for each class
var classInfos = new Esri.ArcGISRuntime.Symbology.ClassBreakInfoCollection();
classInfos.Add(classRange1);
classInfos.Add(classRange2);
classInfos.Add(classRange3);
// create the class breaks renderer
var classBreaksRenderer = new Esri.ArcGISRuntime.Symbology.ClassBreaksRenderer();

// specify the field that contains the attribute (population)


classBreaksRenderer.Field = "pop2000";

// provide the class breaks info collection


classBreaksRenderer.Infos = classInfos;
// provide a symbol for values outside the defined classes
classBreaksRenderer.DefaultSymbol = defaultSym;

// apply the renderer to the layer


someLayer.Renderer = classBreaksRenderer;

Note: As with UniqueValueRenderer, features whose attribute value falls outside the classes defined for the
renderer are symbolized with the default symbol. If a default symbol is not defined, those features will not
display.

Temporal renderer
A temporal renderer allows you to define a set of renderers to display time-based data in interesting ways. The temporal renderer has
properties for defining an observation renderer, latest observation renderer, track renderer, and ager. Temporal renderers work with the
TimeExtent property you've defined for your map view.

Note: Temporal renderers are currently supported for layers that inherit from
GraphicsLayer.
The observation renderer defines the symbology for each observation in the layer. For a vehicle tracking application, you might choose
a unique value renderer to display each vehicle with a unique symbol. A class breaks renderer would be more appropriate for showing
earthquakes by magnitude, for example. The latest observation renderer is used to display only the most recent feature in the layer.
A temporal renderer's track renderer is used to define the symbology for lines that connect related observations. For tracking vehicle
locations, for example, you may want to show the path defined by each vehicle's observations. If using a track renderer, you'll also need
to define the observation attribute that represents the track ID.
An ager is used to determine how the symbology changes as it ages. You might want older features to appear with more transparency,
a lighter color, or with a smaller marker size, for example.

Copyright 1995-2015 Esri. All rights reserved. 107


ArcGIS Runtime SDK for .NET

// create a new TemporalRenderer


var temporalRenderer = new Esri.ArcGISRuntime.Symbology.TemporalRenderer();
// assign a simple renderer to display the latest (most recent) observation
temporalRenderer.LatestObservationRenderer = simpleRenderer;

// assign a class breaks renderer to show the observations (earthquakes by magnitude)


temporalRenderer.ObservationRenderer = classBreaksRenderer;
// create a symbol ager to symbolize different classes of age
var symbolAger = new Esri.ArcGISRuntime.Symbology.TimeClassBreaksAger();

// define the breaks for each age (time range); use a unique symbol for each
var classBreak1 = new Esri.ArcGISRuntime.Symbology.TimeClassBreaks
{ MinimumAge = new TimeSpan(0, 0, 0, 0), MaximumAge = new TimeSpan(2, 0, 0, 0),
Color = Colors.Red, Opacity = 1.0, Size = 24 };
var classBreak2 = new Esri.ArcGISRuntime.Symbology.TimeClassBreaks
{ MinimumAge = new TimeSpan(2, 0, 0, 0), MaximumAge = new TimeSpan(4, 0, 0, 0),
Color = Colors.Red, Opacity = 0.8, Size = 14 };
var classBreak3 = new Esri.ArcGISRuntime.Symbology.TimeClassBreaks
{ MinimumAge = new TimeSpan(4, 0, 0, 0), MaximumAge = new TimeSpan(8, 0, 0, 0),
Color = Colors.Red, Opacity = 0.5, Size = 4 };
// assign the time breaks to the ager's breaks collection
var timeBreaks = new Esri.ArcGISRuntime.Symbology.TimeClassBreaksCollection();
timeBreaks.Add(classBreak1);
timeBreaks.Add(classBreak2);
timeBreaks.Add(classBreak3);
symbolAger.Infos = timeBreaks;

// assign the symbol ager to the temporal renderer


temporalRenderer.SymbolAger = symbolAger;
// assign the temporal renderer to the layer
var quakesLayer = MyMap.Layers["MyEarthquakeLayer"] as Esri.ArcGISRuntime.Layers.GeoRssLayer;
quakesLayer.Renderer = temporalRenderer;

Dictionary renderer
The dictionary renderer is a renderer that works in conjunction with a symbol dictionary for displaying specialized symbols (military, for
example) in a message layer. More information about working with specialized symbols can be found in the Display military messages
topic.

Note: Classes related to specialized symbols are not available in the ArcGIS Runtime API for Store or the
ArcGIS Runtime API for Phone.

Change rendering for a dynamic layer


With ArcGIS for Server version 10.1 or greater, dynamic layers provide the ability to change rendering on the client for data coming from
an ArcGIS for Server (non-cached) map service. Setting layer definitions and draw options on a dynamic layer allows you to control the
content and the display of sub-layers within the service. See the Maps and layers topic for more information.
The following example illustrates how to update the drawing options for a particular sub-layer in a dynamic layer to apply a new
renderer.
// get the dynamic layer from the map
var dynLayer = MyMap.Layers["DynLayer"] as Esri.ArcGISRuntime.Layers.ArcGISDynamicMapServiceLayer;
// get the drawing options for all sublayers in the layer
var drawOptions = dynLayer.LayerDrawingOptions;

// find the drawing options for layer with the ID of 5


foreach (var opt in drawOptions)
{
if (opt.LayerID == 5)
{
// assign a new renderer for the layer's drawing options
opt.Renderer = someRenderer;
break;
}
}

// refresh the layer


dynLayer.Invalidate();

Generate a renderer on the server


For feature layers from services created with ArcGIS for Server version 10.1 or later, you can use a GenerateRendererTask to
generate and return either a class breaks or a unique value renderer. The generated renderer can then be applied to the corresponding
feature layer or dynamic layer in your map.
Creating a unique value renderer using the task gives you the ability to specify a color ramp from which a unique color can be retrieved
for each unique symbol in the renderer. Generating a renderer for a feature layer with several unique values using
GenerateRendererTask is more efficient than writing code to explicitly define each class in the renderer.
Generating a class breaks renderer with the task gives you the ability to use statistical classification methods to determine your class
ranges. Rather than manually coding the minimum and maximum values for your class breaks, you can specify the number of breaks

Copyright 1995-2015 Esri. All rights reserved. 108


ArcGIS Runtime SDK for .NET

desired and use one of the following classification methods to determine the values for each break: Natural Breaks, Equal Interval,
Quantile, or Standard Deviation. You can also choose to normalize your data by percent of the total, the value of another field, or by log.
The available classification methods are described briefly below.
Natural breaksCreates classes based on natural groupings inherent in the data. Class breaks are identified that best group
similar values and that maximize the differences between classes. The features are divided into classes whose boundaries are
set where there are relatively big differences in the data values. This classification is based on the Jenks' Natural Breaks
algorithm. For further information, see Univariate classification schemes in Geospatial Analysis-A Comprehensive Guide, 3rd
edition; 2006-2009; de Smith, Goodchild, Longley.
Equal IntervalDivides the range of attribute values into equal-sized subranges. This allows you to specify the number of
intervals, and have the class breaks determined based on the value range. For example, if you specify three classes for a field
whose values range from 0 to 300, this method creates three classes with ranges of 0-100, 101-200, and 201-300. Equal
interval is best applied to familiar data ranges, such as percentages and temperature. This method emphasizes the amount of
an attribute value relative to other values. For example, it shows that a store is part of the group of stores that make up the top
one-third of all sales.
QuantileAssigns an equal number of features to each class. A quantile classification is well suited to linearly distributed data.
Because features are grouped in equal numbers in each class using Quantile classification, the resulting map can often be
misleading. Similar features can be placed in adjacent classes, or features with widely different values can be put in the same
class. You can minimize this distortion by increasing the number of classes.
Standard DeviationClassification shows you how much a feature's attribute value varies from the mean for all features. Class
breaks are created with equal value ranges that are a proportion of the standard deviation, at the chosen interval of 1, , , or
standard deviations using mean values and the standard deviations from the mean. A standard deviation classification
displayed with a two-color ramp, for example, can illustrate values above the mean (perhaps shown in blue) and values below
the mean (shown in red).
// define a ClassBreaksDefinition to use for the renderer
var classificationInfo = new Esri.ArcGISRuntime.Tasks.Query.ClassBreaksDefinition();
classificationInfo.ClassificationMethod = Esri.ArcGISRuntime.Tasks.Query.ClassificationMethod.Quantile;
classificationInfo.BreakCount = 5;
classificationInfo.ClassificationField = "pop2000";

// create and assign the base symbol to use: only the color of this symbol will change for each class break
var baseFillSym = new Esri.ArcGISRuntime.Symbology.SimpleFillSymbol
{ Style = Esri.ArcGISRuntime.Symbology.SimpleFillStyle.Solid };
classificationInfo.BaseSymbol = baseFillSym;
// create a color ramp: colors from this ramp will be used to distinguish each class
var redColorRamp = new Esri.ArcGISRuntime.Tasks.Query.ColorRamp();
redColorRamp.Algorithm = Esri.ArcGISRuntime.Tasks.Query.Algorithm.Hsv;
// all colors will be red, ramp will go from more transparent to more opaque
redColorRamp.From = Color.FromArgb(80, 255, 0, 0);
redColorRamp.To = Color.FromArgb(200, 255, 0, 0);
// assign a collection of color ramps for the classification (just one, but you could use several)
var rampCollection = new ObservableCollection<Esri.ArcGISRuntime.Tasks.Query.ColorRamp>() { redColorRamp };
classificationInfo.ColorRamps = rampCollection;
// create a new GenerateRendererParameter and assign the classification definition
var rendererParams = new Esri.ArcGISRuntime.Tasks.Query.GenerateRendererParameters();
rendererParams.ClassificationDefinition = classificationInfo;
// create a new GenerateRendererTask using the URL to the feature layer to render
var layerUri = new Uri("http://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer/2");
var generateRendererTask = new Esri.ArcGISRuntime.Tasks.Query.GenerateRendererTask(layerUri);
// generate the renderer asynchronously and await the result
var taskResult = await generateRendererTask.GenerateRendererAsync(rendererParams);

// apply the generated renderer to the layer in the map


someLayer.Renderer = taskResult.Renderer;

The following image shows a class breaks renderer with 5 class breaks, using the natural breaks classification method. The class
breaks renderer is for a US States layer and the classification field is the state population in the year 2000.

Copyright 1995-2015 Esri. All rights reserved. 109


ArcGIS Runtime SDK for .NET

Related Topics
Add graphics and text
Features and graphics
Display military messages

Copyright 1995-2015 Esri. All rights reserved. 110


ArcGIS Runtime SDK for .NET

Spatial references
Spatial references are important, and for someone new to GIS, they can appear complicated. Spatial references ensure that spatial data
for different layers or sources can be integrated for accurate viewing or analysis. When you combine layers with different spatial
references for viewing or analysis, ArcGIS Runtime SDKs attempt to handle this disparity for you by setting defaults and requesting data in
the appropriate spatial reference from services where possible. But sometimes, you'll need to know about spatial references to get things
working. Whether it's to align data together, make your map look right, improve accuracy, or just make a layer show up, understanding the
basics of spatial references can be critical.
Spatial references can be referred to by a well-known ID (WKID). Some common WKIDs are mentioned in the text below; for a more
complete description, see Spatial reference and transformation specifications in this topic.

Why spatial references are important


To integrate spatial data together into a map or during analysis, ArcGIS Runtime must know where things are located on the earth's
surface. To do this it uses coordinates. Coordinates are associated with a coordinate system, which is a frame of reference around a
model of the earth's surface. Not all coordinates and their associated coordinate systems are the same; they can be in different units
(degrees minutes seconds, decimal degrees, or meters) or they can be based on different types of models. To move coordinates from one
coordinate system to another, mathematical transformations are used. A spatial reference provides all of this information, along with
parameters such as the desired level of precision, in a way so that spatial data can be viewed and analyzed together.
For more detailed information on these topics, see What are map projections? in the ArcGIS help.

A note on setting spatial references


In the API, a spatial reference class represents a coordinate system. It contains a coordinate system and helper methods to access and
use it. The spatial reference class is associated with several other API classes that need a coordinate system to function. For example,
layers have an associated spatial reference. Some task parameters, such as those for the Query task and the Local Routing task, are
spatial reference objects.

Coordinate systems and projections


The models used for coordinate systems are split into two main categories, geographic and projected:
Geographic coordinate systems (GCSs) use a three-dimensional spherical (or ellipsoidal) surface to define locations. The
coordinates are based on angles from the center of the earth to the surface. Typically GCSs use latitude and longitude specified in
degrees. The coordinates derived from a GPS device are returned in a GCS named WGS84 (WKID=4326).
Projected coordinate systems (PCSs) are planar (two-dimensional), Cartesian, or "flat." Unlike a GCS, a projected coordinate
system has constant lengths, angles, and areas across the two dimensions. PCSs use a geographic coordinate system and then
distort data so it can be represented on a flat surface for use in a printed map or on a screen. Coordinates are identified by x,y
coordinates on a grid. ArcGIS Online, Google, and OpenStreetMap basemaps use the same projected coordinate system named
Web Mercator Auxiliary Sphere (WKID=3857).
You may come across a third coordinate system, a local coordinate system, which is often unrelated to any other coordinate system. The
origin and the x,y coordinate units correspond to a local point of reference. Because the relationship of a local coordinate system to
another coordinate system cannot be established easily, these are sometimes referred to as unknown coordinate systems.

When you need to know about spatial references


Add layers to the map
When ArcGIS Runtime renders a map, it needs to draw all the data in the same spatial reference so that the data lines up. When you
create a map, the spatial reference of the first layer you add is used as the spatial reference of the entire map; this is typically the
basemap.
When you add additional layers to your map, you may need to request them in the same spatial reference your map is using. Whether
or not you must request this depends on what type of layer youre adding. The following sections describe layer types as they relate to
setting your maps spatial reference.

Copyright 1995-2015 Esri. All rights reserved. 111


ArcGIS Runtime SDK for .NET

Graphics layers

Graphics layers don't support on-the-fly reprojection of data; ArcGIS Runtime renders these layers client-side. On-the-fly reprojection
of graphics layers could require intensive processing that would slow down the map view rendering time. When you add a graphics
layer to your map, you must ensure its spatial reference is the same as that defined on the map (typically set by the basemap layer).
You also need to ensure that individual graphics added to your graphics layer have coordinates in the matching spatial reference;
otherwise, the graphics may not show up in the map view.

Feature layers from feature services

When using a feature service table backed by an ArcGIS for Server feature service, the server supports reprojection. When a Service
Feature Table is to be added to a MapView, be sure to set its spatial reference based on the map's spatial reference before you
initialize the table. This will ensure the data is requested from the server in the correct spatial reference. When using the ArcGIS
feature layer, when this is added to the map, ArcGIS Runtime automatically determines the correct spatial reference and requests
data from the feature service accordingly.

Feature layers from geodatabase feature tables

Your tables in the geodatabase must be in the same spatial references as the map you are adding them to, because on-the-fly
reprojection of data from these tables is not supported. If you're using the desktop workflow, ensure the ArcMap map frame is using
the desired spatial reference before you run the create runtime content tool. If you're using the services workflow, set the desired
spatial reference in the SyncTaskParameters before you generate the geodatabase. For details on the desktop and server workflows,
see Offline patterns in this guide's "Create an offline map" topic.

Feature layers from shapefile feature tables and GeoPackage feature tables

Your tables in the geodatabase need to be in the same spatial reference as the map you are adding them to; on-the-fly reprojection of
data from these tables is not supported.

Dynamic map service layers

If these are ArcGIS for Server map services, then the server supports reprojection on the fly. When you add an ArcGIS dynamic map
service layer to the map, ArcGIS Runtime automatically asks for the map image in the correct spatial reference for you (based on the
map's spatial reference). WMS map services, a type of dynamic map service, support a limited set of spatial references, so you
should set the spatial reference on a WMS layer before you add it to the map.

Tiled layers

Tiled layers are precached layers. At the time of caching, a spatial reference is used and is therefore predefined. It's typically not
possible to request tiled layers in a different spatial reference from that defined in the service (unless the server supports doing this on
the fly; most do not). If an ArcGIS tiled layer is added to a map in a different spatial reference, it cannot be drawn.

Edit data
When creating new features from coordinates, the coordinate values must match the spatial reference for the layer; otherwise, the
features will not show up in the correct location on the map. You can use the geometry engine to ensure coordinates are converted
correctly before they're added to a layer. For more information about the geometry engine, see Geometry operations.

Perform analysis
Geometry objects used for analysis (for example, determining spatial relationships, such as where polygons intersect) require that the
spatial reference be known before the analysis is performed. Otherwise, results may not be accurate. Likewise, it's meaningless to
compare two geometry objects or determine their spatial relationship if they have different spatial references. To display a geometry in a
map layer, the geometry must have either the same spatial reference as the layer or be projected to the layer's spatial reference. To use
two objects together, if those objects each have a spatial reference, they should have the same spatial reference.
For more information on analysis through geometry operations, see Geometry operations.

Copyright 1995-2015 Esri. All rights reserved. 112


ArcGIS Runtime SDK for .NET

Convert from one spatial reference to another


When using the geometry engine to convert from one spatial reference to another, the in and out spatial references must be specified.
You can also specify the transformation you want to use. For details, see Projecting to different spatial references in "Geometry
operations."

Spatial reference and transformation specifications


To define a spatial reference, you can use either a WKID (sometimes also known as spatial reference ID or SRID) or a full-text definition
referred to as well-known text (WKT). WKIDs are defined by standards bodies or organizations. ArcGIS supports a variety of WKIDs,
typically those defined by the European Petroleum Survey Group (EPSG) or Esri, as well as a few other commonly used IDs. WKTs are
full-text definitions of all of the parameters that specify a spatial reference (as mentioned above). To learn which WKIDs are supported and
look at their WKT definitions, see the following:
Geographic coordinate systems
Projected coordinate systems

Related Topics
Geometry operations
Geographic coordinate systems
Projected coordinate systems

Copyright 1995-2015 Esri. All rights reserved. 113


ArcGIS Runtime SDK for .NET

Work with local services


Local services allow you to deploy services that run locally with your app to provide functionality like geocoding, geoprocessing, routing,
and so on. In ArcGIS Runtime SDK for .NET, local services are only available for Windows Desktop apps. A Windows Store app can use
such functionality from an online service, but not locally.

Copyright 1995-2015 Esri. All rights reserved. 114


ArcGIS Runtime SDK for .NET

Asynchronous programming
Synchronous code execution proceeds in a linear path to process a queue of instructions in order. In this mode of execution, a particular
set of code in the queue cannot be executed until all instructions ahead of it have been completed. This works fine for code that completes
quickly, but it can create a bottleneck if working with processes that take longer to execute. Such bottlenecks cause frustration for users of
your app, as they make the UI unresponsive until the blocking code completes.
By contrast, code executed asynchronously does not proceed in a linear fashion. Instead, code is executed on an available thread in the
thread pool and results (if any) are returned upon completion. This allows you to off-load execution of longer-running processes, freeing
up the UI thread so the app remains responsive to user interaction.
The .NET Framework 4.5 provides a simplified asynchronous approach that allows you to write your code in the familiar logical and linear
structure that you use for synchronous code. The .NET APIs use asynchronous execution in areas where performance may be an issue,
such as web access, working with files, and media capture.
ArcGIS Runtime SDK for .NET also leverages the .NET Framework 4.5 asynchronous pattern to provide asynchronous methods
throughout the API. Although calling an asynchronous method requires slightly different syntax than a synchronous call, the new pattern
hides much of the complexity involved and allows your code to be written with a much more linear structure compared to previous
asynchronous approaches.

Task-based asynchronous pattern


In the .NET task-based asynchronous pattern (TAP), asynchronous functions are represented by System.Threading.Tasks.Task and
System.Threading.Tasks.Task<TResult> types. Task<TResult> represents operations that return a value of type TResult and
Task is for functions that don't return a value. The async keyword is used to mark a function as asynchronous, which must return one of
those two types.
The following example shows the signature for an asynchronous function. It is marked with the async keyword and has a return type of
Task<string>. By convention, asynchronous functions are named with the suffix Async.
private async Task<string> GetSiteContentAsync()
{
}

As mentioned previously, calls made to an asynchronous function will return Task or Task<TResult> objects, which represent ongoing
work. The task contains information about the state of the asynchronous process and, when it completes, either the final result from the
process or the exception thrown when the process failed.
To get the actual value returned from the asynchronous operation, you need to await completion of the task using the await keyword.
When execution hits a line with await, control is returned to the calling function until the task completes.
The following example shows a call to an asynchronous method (System.Net.Http.HttpClient.GetStringAsync) to get a
Task<string>. It then uses await to get the string result of the task operation.
private async Task<string> GetSiteContentAsync()
{
// use an HttpClient to get the contents of a web page
var client = new System.Net.Http.HttpClient();
// call the async method GetStringAsync to return a Task<string>
// the task will asynchronously read the contents of the specified web site
Task<string> getContentsTask = client.GetStringAsync("http://www.esri.com");

// await the task to get the result


// note: control is returned to the calling code at this point (until the task completes)
string urlContents = await getContentsTask;
// code following "await" does not execute until the task completes
return urlContents;
}

Note: Functions that use the await keyword must be marked with the async keyword in
their definition.

Although it should be avoided if possible, an async function can be defined with a void return type. A common scenario is when defining
an async event handler, whose signature must retain the void return type.

Caution: An async function with a void return type cannot be awaited, and the caller won't be able to catch any
exceptions thrown by the function.
For more information about asynchronous programming in .NET, see the MSDN article Asynchronous Programming with Async and
Await.

Copyright 1995-2015 Esri. All rights reserved. 115


ArcGIS Runtime SDK for .NET

Async methods in ArcGIS Runtime


ArcGIS Runtime SDK for .NET leverages the task-based asynchronous pattern used by the .NET Framework. Throughout the API, you'll
find several asynchronous methods, all of which are named using the Async suffix. Many of the ArcGIS Runtime methods wrap calls to
REST services, and since they require web communication, it makes sense to make such calls asynchronously. This ensures that your
app stays responsive while a response from the server is awaited.
The following example illustrates the use of an Esri.ArcGISRuntime.Tasks.Query.FindTask to asynchronously search for features
containing the specified text in the name.
private async Task<int> GetFeatureCountAsync()
{
// create a Uri that points to the USA map service
var uri = new System.Uri("http://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer");
// create a new FindTask
var findTask = new Esri.ArcGISRuntime.Tasks.Query.FindTask(uri);

// create a new FindParameters


var findParams = new Esri.ArcGISRuntime.Tasks.Query.FindParameters();
// define the term to search for
findParams.SearchText = "Virginia";

// define the layers to search (cities)


var layerIds = new List<int>();
layerIds.Add(0);
findParams.LayerIDs = layerIds;

// execute asynchronously, store the resulting Task<FindResult>


var resultTask = findTask.ExecuteAsync(findParams);
// await the (FindResult) return value
var findResult = await resultTask;
// return the count of features found
return findResult.Results.Count;
}

See Search for features for more examples of using asynchronous calls to search for features.
Sometimes, it's not the result of an asynchronous method that's important, but waiting for a particular task to complete. For example, you
may have code that depends on the loading of all layers in the map. You can await the MapView.LayersLoadedAsync method to
ensure loading of all layers is complete, as shown in the following example.
private async Task AddGraphicsAsync()
{
// wait for all layers to load
await MyMapView.LayersLoadedAsync();
// you can now work with the graphics layer
var graphicsLyr = MyMapView.Map.Layers["MyGraphicsLayer"] as GraphicsLayer;

// ... code here to add graphics ...


}

Asynchronous tasks generally run on a background thread for your application, which may have ramifications for working with objects in
the UI. See Threading considerations for more information.

Handle exceptions from asynchronous calls


If an error is encountered while executing an asynchronous call, System.Threading.Tasks.Task.Exception will be set. You can
trap for such exceptions by wrapping the await call in a try catch block such as the one shown in the following code example. If the
exception is raised from the underlying REST call, you can expect an Esri.ArcGISRuntime.Http.ArcGISWebException to be
thrown.
QueryResult queryResult = null;
Task<QueryResult> task = queryTask.ExecuteAsync(queryParams);
try
{
queryResult = await task;
}
catch (Esri.ArcGISRuntime.Http.ArcGISWebException exp)
{
// "Invalid URL", "Invalid parameter", e.g.
// ... handle exception here ...
}
catch (Exception exp)
{
// ... handle exception here ...
}

if (queryResult != null)
{
// Process results ...
}

Copyright 1995-2015 Esri. All rights reserved. 116


ArcGIS Runtime SDK for .NET

Cancel execution
A task can be canceled during the course of its asynchronous execution by using a System.Threading.CancellationToken,
which can optionally be passed into most ExecuteAsync methods for a task. A task can be canceled manually (for example, if the user
clicks a Cancel button) or by specifying a maximum time interval that the task is allowed to run. The following code example
incorporates both techniques by setting a time limit (10 seconds) after which the task will be canceled and also calls the Cancel
method if the user clicks the Cancel button.
private System.Threading.CancellationTokenSource canceller;
private async void DoQuery()
{
var url =
"http://sampleserver5.arcgisonline.com/arcgis/rest/services/RedlandsEmergencyVehicles/FeatureServer/1";
var queryTask = new QueryTask(new Uri(url));

// Create a new Query object to define parameters (get all features)


var queryParams = new Esri.ArcGISRuntime.Tasks.Query.Query("1=1");
// Set up the cancellation token
this.canceller = new System.Threading.CancellationTokenSource();
this.canceller.CancelAfter(10000); // 10 seconds
var token = this.canceller.Token;
// Execute the task with the cancellation token; await the result
QueryResult queryResult = null;
Task<QueryResult> task = queryTask.ExecuteAsync(queryParams, token);
try
{
queryResult = await task;
}
catch (System.Threading.Tasks.TaskCanceledException exp)
{
// ... handle cancel here ...
}

if (queryResult == null) { return; }


// Get the list of features (graphics) from the result
var resultFeatures = queryResult.FeatureSet.Features;

// Get the graphics layer in the map; set the source with the result features
var graphicsLayer = MyMap.Layers["Graphics"] as GraphicsLayer;
graphicsLayer.GraphicsSource = resultFeatures;
}
private void CancelButton_Click(object sender, RoutedEventArgs e)
{
// If the Cancel button is clicked, cancel the task using the CancellationTokenSource object
this.canceller.Cancel();
}

Canceling the task will cause a System.Threading.Tasks.TaskCanceledException to be thrown. When allowing the user to
cancel a task, you'll need to anticipate and handle these exceptions in your code.

Related Topics
Threading considerations
Guidelines, best practices, tips, and tricks

Copyright 1995-2015 Esri. All rights reserved. 117


ArcGIS Runtime SDK for .NET

Threading considerations
When developing your ArcGIS Runtime SDK app, strive to provide responsive interaction with the user, even when your app is doing other
work. Using multiple threads of execution is one of the most powerful ways to keep your app responsive while using the processor in
between or even during user events to perform other tasks. Although the process of writing multithreaded applications has been made
significantly easier in recent versions of .NET, great care must still be taken when architecting these applications to ensure the integrity of
the application's UI and of objects created on the UI thread.
It's important to realize that even without explicitly creating additional threads, some code in your ArcGIS Runtime SDK for .NET app may
run on a background thread. Working with asynchronous tasks, for example, executes on a thread in the app's thread pool. An
understanding of threading and the relationship between threads and objects in the UI can help avoid some common pitfalls.

Threading overview
An app runs inside memory space that is allocated by the operating system, called a process. Inside of that process, one or several
autonomous units called threads are responsible for executing code as the app runs. The processor divides its time among all threads,
which are alternately paused and resumed as processor time expires or is made available. Each thread maintains the information it needs
to resume seamlessly when it is called to execute. As the amount of code running on a single thread increases, more processor cycles are
required to complete its work. At some point, performance for the app is impacted.
Every app with a user interface has a thread that is responsible for displaying UI elements and for handling user interaction with the app.
This thread is generically referred to as the UI thread. The UI thread is your pipeline to the user interface and is the only thread you can
use to surface information to the user. It also has the potential of being overworked, which immediately impacts the responsiveness of
your app from the user's perspective.
For more details about working with threads in .NET, see MSDN for Managed threading basics and Managed threading best practices.

Run code on background threads


To reduce the load on the UI thread, choose to run certain tasks on other (non UI) threads, referred to as background threads. Operations
that are particularly time consuming or processor intensive are good candidates to run on a background thread. When code runs on more
than a single thread in your app, you are working with a multithreaded app.
Each process has a set of background threads managed by the operating system, referred to as the thread pool. You can work with the
thread pool for your app using static methods on the Windows.System.Threading.ThreadPool class. To execute an operation on a
(random) thread in the pool, use the static ThreadPool.RunAsync method and pass in the code to run, as shown in the following
example.
private async void RunOnBackgroundThread()
{
// create a WorkItemHandler that points to a function in my project
// use a lambda expression to call the function with an input value of 12
var op = new Windows.System.Threading.WorkItemHandler((x) => { SquareIt(12); });

// run SquareIt on a thread in the pool


await Windows.System.Threading.ThreadPool.RunAsync(op, Windows.System.Threading.WorkItemPriority.Normal);
}
private long answer;
private void SquareIt(object input)
{
var num = 0;
int.TryParse(input.ToString(), out num);
this.answer = num * num;
}

Running an asynchronous Task also executes code on a background thread. The following example runs the function from a Task.
private async void RunOnBackgroundThread()
{
// call the static Task.Run method to create a Task to run a function in the background
var backgroundTask = Task.Run(() => { SquareIt(12); });

// await completion of the Task


await backgroundTask;
}

Run code on the UI thread


As tempting as it may be to always move execution to a background thread to maintain UI responsiveness, some operations must take
place on the UI thread. A common example is surfacing UI elements to the user (such as a message box or dialog box) or working with
elements created on the UI thread (such as an Esri.ArcGISRuntime.Layers.GraphicsLayer). If you attempt to run such code from
a background thread, you may receive an exception like the following: The application called an interface that was
marshalled for a different thread or Access is denied. Fortunately, the System.Windows.Threading.Dispatcher
object provides a way to access the UI thread for your app.

Copyright 1995-2015 Esri. All rights reserved. 118


ArcGIS Runtime SDK for .NET

Any object that inherits from System.Windows.Threading.DispatcherObject has a Dispatcher property that gives you access to
the thread on which it runs. This includes objects of type System.Windows.DependencyObject and
System.Windows.Application, which means you can access the Dispatcher through the app or from any of its UI elements. To run
code on the thread associated with the Dispatcher, call the RunAsync method and pass in the code to execute.
The following example is taken from an app that shows a browser window to allow the user to enter a user name and password for OAuth
authentication. See the ArcGIS Online Services > Traffic sample in the ArcGIS Runtime SDK samples for .NET for the
complete code. The Dispatcher for the current app is used to asynchronously invoke code to run on the UI thread.
public Task<IDictionary<string, string>> AuthorizeAsync(string serviceUri, string authorizeUri, string callbackUri)
{
_tcs = new TaskCompletionSource<IDictionary<string, string>>();

// get the Dispatcher for the current application


var dispatcher = Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher;

// if no dispatcher or are on the same thread, run code directly


if (dispatcher == null || dispatcher.HasThreadAccess)
{
AuthorizeOnUIThread(authorizeUri);
}
else
{
// invoke the action on the dispatcher's thread
dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => AuthorizeOnUIThread(authorizeUri));
}
return _tcs.Task;
}

private void AuthorizeOnUIThread(string authorizeUri)


{
// ... display the login page at authorizeUri in the app's UI ...
}

You may also need to use the Dispatcher to update UI controls based on information coming from a background thread. A common
example is an event handler receiving data from a sensor (updated locations coming from a GPS device, for example). If you want to
update UI controls, such as TextBlocks, or show the information in a message box, you may need to run that code on the UI thread.
The following example updates text content in the UI when an updated location is received from a
LocationProvider.LocationChanged event.
// a handler for the MapView.LocationDisplay.LocationProvider.OnLocationChanged event
void OnLocationChanged(object sender, LocationInfo e)
{
var thisLocation = e.Location;
var locationText = "X: " + thisLocation.X.ToString() +
" Y: " + thisLocation.Y.ToString();
// use the map view's dispatcher to update a TextBlock in the UI
this.MyMapView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() => this.CurrentLocationTextBlock.Text = locationText);
}

Note: ArcGIS Runtime automatically marshals results from a background thread to the UI in many cases, such as
updating the display of the current location as it comes from the location provider.

Background threads with graphics


Most applications built with the ArcGIS Runtime involve the processing of information and the generation of results to display to the user
on a map. Typically, when the results are temporary they display as graphics in a graphics layer. The GraphicsLayer exists within the
Map's layer collection hosted on the UI by the MapView component. As the volume of information increases, the processing time
increases until at some point the user interface stops responding to interaction because the thread that should be managing the UI and
responding to events is busy running your application code. The solution to this problem is usually to move the time consuming operation
to a separate thread, leaving the UI thread free to perform other work.
GraphicsLayer inherits from DependencyObject and therefore must always be created on the UI thread. This means you can only
modify the GraphicsLayer on the UI thread. For example, if you want to efficiently add a number of graphics to the graphics layer by
calling the GraphicsLayer.Graphics.AddRange method, this must be done on the UI thread. Other objects that are part of the
GraphicsLayer can also only be modified on the UI thread, including the GraphicsLayer.Renderer (if one exists), the
GraphicsLayer.Graphics, Graphic.Geometry, and Graphic.Symbol. There are specific checks within the API and an exception
is thrown if any attempt is made to modify these objects from a different thread to the one on which they were created.

Note: Attempting to work with graphics layer content from a background thread throws a
System.InvalidOperationException, with a message like the following: The calling thread
cannot safely modify content of a GraphicsLayer. GraphicsLayer content should
be modified on the thread associated with the GraphicsLayer.Dispatcher
instance.

Copyright 1995-2015 Esri. All rights reserved. 119


ArcGIS Runtime SDK for .NET

However, other objects in the API are not associated with a Dispatcher instance and therefore, new instances can be created on one
thread and passed to another. This includes graphics not added to a layer. Therefore, it is acceptable to create a collection of Graphic
objects on a thread, pass them to the UI thread, then add them to the GraphicsLayer. Once part of the layer, they can only be modified
on the UI thread.
The following example creates thousands of graphics with complex geometries on a background thread and displays them on the UI
thread.
private async void DrawBuffersButton_Click(object sender, RoutedEventArgs e)
{
// kick off creation of a large number of complex graphics on a background thread
var graphics = await Task.Run<List<Graphic>>((Func<List<Graphic>>)CreateGraphics);

// ... resumes back here on the UI thread once the task is complete
// Now add the graphicss
var graphicsOverlay = new GraphicsOverlay();
graphicsOverlay.RenderingMode = GraphicsRenderingMode.Static; // better for large numbers of graphics
graphicsOverlay.Graphics.AddRange(graphics);
MyMapView.GraphicsOverlays.Add(graphicsOverlay);
}

Random random = new Random();


// function to create 10,000 graphics from a random geodesic buffer
private List<Graphic> CreateGraphics()
{
var graphics = new List<Graphic>();
// generate 10,000 unique graphics and return them at the end in a list
for (int i = 0; i < 10000; i++)
{
// use a random color (and semi-transparency) for each graphic
var randomColor = Color.FromArgb(75, (byte)random.Next(255), (byte)random.Next(255), (byte)random.Next(255));
var symbol = new SimpleFillSymbol() { Style = SimpleFillStyle.Solid, Color = randomColor };
// create a location (MapPoint) using random coords for Web Mercator
var centerPoint = new MapPoint(
(random.NextDouble() * 40000000) - 20000000,
(random.NextDouble() * 40000000) - 20000000, SpatialReferences.WebMercator);
// use a random buffer distance
double distance = random.NextDouble() * 500000 + 10000;

// Use a geodesic buffer, this returns a polygon of equal ground distance around the center point
// (circles nearer the poles appear larger on a WebMercator map)
var geodesicCircle = GeometryEngine.GeodesicBuffer(centerPoint, distance, LinearUnits.Meters);
// create a graphic to display the buffer geometry; add it to the list
var graphic = new Graphic(geodesicCircle, symbol);
graphics.Add(graphic);
}
return graphics;
}

This concept becomes increasingly beneficial for the more complex geometries like polylines and polygons. These geometries can be
constructed in the background on a separate thread, possibly using some of the GeometryEngine methods, passed to the UI thread,
and set into graphics.
Another consideration is changes to graphics are not immediately rendered in the map. There is a batching mechanism that picks up all
changed content and pushes it into the rendering pipeline in one operation. This means that when building graphics, all properties should
be set first before adding the Graphic to the GraphicsLayer. Knowing this should determine where and when you create objects that
become part of a GraphicsLayer.

Related Topics
Asynchronous programming

Copyright 1995-2015 Esri. All rights reserved. 120


ArcGIS Runtime SDK for .NET

Guidelines, best practices, tips, and tricks

Copyright 1995-2015 Esri. All rights reserved. 121


ArcGIS Runtime SDK for .NET

Guidelines, best practices, tips, and tricks


This topic provides suggestions for improving your development experience and describes some best practices when working with ArcGIS
Runtime SDK for .NET.

Ensure required objects have been loaded


A common pitfall when working with asynchronous execution is the potential to refer to objects that are not yet available. When your page
initializes, for example, you may have code that tries to manipulate a layer in the Map. If the layer has not been loaded, you're code is
likely to encounter an exception. In an ArcGIS Runtime app, you'll often need to know things like:
Has a particular layer loaded?
Has a particular layer failed to load (and what is the exception)?
Have all layers loaded?
Is the Map ready?
Within the ArcGIS Runtime API there are events and async tasks which help determine when you can access functionality with predictable
results and/or without exceptions. These are described in the following sections in the order in which they typically occur.

Has a particular layer loaded?


Use the MapView.LayerLoaded event to determine when a specific layer has loaded in the map or whether any layers failed to load
(LayerLoadedEventArgs has a LoadError property which contains the exception). The following example illustrates handling this
event for the map view.
<esri:MapView x:Name="MyMapView" LayerLoaded="MyMapView_LayerLoaded">
<esri:Map>
...
</esri:Map>
</esri:MapView>

private void MyMapView_LayerLoaded(object sender, LayerLoadedEventArgs e)


{
if (e.LoadError == null)
return;
Debug.WriteLine(string.Format("Error while loading layer : {0} - {1}",
e.Layer.ID, e.LoadError.Message));
}

Tip: If you use the ArcGIS Runtime project or item templates in Visual Studio, this event will be registered in
XAML and contain an event handler in the code behind.

Have all layers been loaded?


The awaitable MapView.LayersLoadedAsync task can be used to make sure all layers have loaded before proceding with your code.
The following example shows the appropriate pattern for using this method.
public MainPage()
{
InitializeComponent();
MyInitializeAfterLayerLoadedAsync();
}

private async void MyInitializeAfterLayerLoadedAsync()


{
try
{
// await LayersLoadedAsync ... not storing return value here, just need to wait for completion
// if needed, can store the List<LayerLoadedResult> object that's returned for additional info
await MyMapView.LayersLoadedAsync();
// can use an overload which takes a collection of specific layers to wait for
// await MyMapView.LayersLoadedAsync(layersOfInterest);
}
catch(Exception ex)
{
// ... handle exceptions ...
}

// can safely continue with layer related functionality ...


}

Is the map ready?


The Map is ready for interaction, such as zooming to an area of interest, only after its spatial reference has been established. Use the
MapView.SpatialReferenceChanged event to determine when this occurs, as shown in the following example.

Copyright 1995-2015 Esri. All rights reserved. 122


ArcGIS Runtime SDK for .NET

<esri:MapView x:Name="MyMapView"
LayerLoaded="MyMapView_LayerLoaded"
SpatialReferenceChanged="MyMapView_SpatialReferenceChanged">
<esri:Map>
...
</esri:Map>
</esri:MapView>

private bool mapIsReady;


private void MyMapView_SpatialReferenceChanged(object sender, EventArgs e)
{
// map is initialized with SpatialReference, set a flag to indicate it's ready for interaction
this.mapIsReady = true;
}

Asynchronous code in a constructor


Asynchronous code that runs using the await keyword must be inside a function that is marked with the async keyword in its signature.
Some functions, such as the constructor for your page or window, cannot be altered to be asynchronous. To run asynchronous code from
such a function, you must call out to another function. The following example illustrates calling an asynchronous helper function from a
constructor to do some initialization work.
// constructor
public MainPage()
{
InitializeComponent();
// Call async void method to do initialization or loading of data from constructor
MyInitializeAsync();
}

// this is top level method that contains all asynchronous operations that are needed when UI loads
// (ok to return void)
private async void MyInitializeAsync()
{
// Wrap initialization to try-catch block
try
{
// if a lot of work is required, consider splitting functionality into separate tasks
// and/or void methods (depending if it is async or not)
// for example ...
await DoWorkAsync();
var myWidget = await DoSomeMoreWorkAsync();
}
catch (Exception ex)
{
// ... code here to handle possible exceptions ...
}
}
// this isn't a top level method so should return Task or Task<T>
private async Task DoWorkAsync()
{
// ...
}

// this isn't a top level method so should return Task or Task<T>


private async Task<Widget> DoSomeMoreWorkAsync()
{
// ...
}

Caution: When possible, Task or Task<T> should be returned from your asynchronous functions. It is acceptable to
return void from an asynchronous event handler or top-level function.

See the Asynchronous programming topic for more information.

Set an initial map extent


To set the initial extent (area of interest) of the map, use the Map.InitialViewpoint property which takes an object of type
Viewpoint.
If setting in XAML use one of the two sub classes:
ViewpointExtent
ViewpointCenter
<esri:MapView x:Name="MyMapView">
<esri:Map>
<esri:Map.InitialViewpoint>
<esri:ViewpointExtent XMin="-117.182686"
YMin="32.695853"
XMax="-117.133872"
YMax="32.71853"
SpatialReferenceID="4326" />
</esri:Map.InitialViewpoint>
<!-- ... -->
</esri:Map>
</esri:MapView>

Copyright 1995-2015 Esri. All rights reserved. 123


ArcGIS Runtime SDK for .NET

For setting the initial extent in the code behind, it's recommended to use the base Viewpoint class, which has similar constructor
overloads.
// define a viewpoint with coords that define an extent and a spatial reference
mapView.Map.InitialViewpoint = new Viewpoint(new Envelope(-117.18268,32.69585,-117.13387,32.71853, SpatialReferences.Wgs84));

// define a viewpoint with a center point and scale denominator (1:50,000 in this example)
mapView.Map.InitialViewpoint = new Viewpoint(new MapPoint(-117.15,32.705,SpatialReferences.Wgs84), 50000);

Set the MapView spatial reference


The spatial reference of the map view is read-only and is determined by the spatial reference of the map it contains. This can either be
set explicitly to force a specific spatial reference or will otherwise be taken from the first layer with a valid SpatialReference in the
Map.Layers collection.

Note: Setting the Map.SpatialReference property in XAML is not supported except when binding the
property to an existing SpatialReference instance.

Specify spatial references


If you need a WGS1984 or Web Mercator Auxiliary Sphere spatial reference, you can use the SpatialReferences static convenience
class which currently has two options: SpatialReferences.Wgs84 and SpatialReferences.WebMercator. These options will
internally use the SpatialReference.Create(int wkid) method to return a spatial reference instance.
When specifying a value other than Web Mercator or WGS 1984 for a geometry's SpatialReference property, you should use the
SpatialReference.Create method which will ensure instance re-use.
var myEnvelope = new Envelope(325466,673277,325617,673231);
myEnvelope.SpatialReference = SpatialReference.Create(27700); // British National Grid

Note: Spatial reference WKIDs can be found in the Geographic coordinate systems and Projected coordinate
systems topics.

You should avoid creating new SpatialReference instances, for example: var sr = new SpatialReference(4326);.

Create geometry
There are a couple options for creating geometry. Use the method that is best suited for your requirements and for the geometry type with
which you are working.
Note: Geometry is immutable, which means geometry instances cannot be modified
once created.

Create points
For map points, you should always use the MapPoint constructor to create new instances. The constructor requires x and y
coordinates, and has several overrides that allow you to also specify a spatial reference, a z coordinate, or an m coordinate.
// create a new MapPoint
var myMapPoint = new MapPoint(-2.345, 45.67, new SpatialReferences.Wgs84);

For consistency with other geometry types, the API includes a MapPointBuilder that you can use to create a point. This provides the
only way to create an empty MapPoint (undefined values for the x and y coordinates).
var myMapPoint = new MapPointBuilder().ToGeometry() // an empty MapPoint with NaN coordinate values

Create polylines and polygons


The constructors for Polyline and Polygon have several overrides that allow you to create a new geometry from a collection of
points or segments. If the points or segments passed into the constructor have a spatial reference, then the new geometry will pick that
up. Otherwise, you should specify a spatial reference in the constructor overload of Polygon or Polyline.
// create a polygon from a collection of vertices (MapPoints) and specify a spatial reference
var myPolygon = new Esri.ArcGISRuntime.Geometry.Polygon(mapPoints, SpatialReferences.Wgs84);

// create a polyline from a collection of segments that have a spatial reference defined (and will be used by the new polyline)
var myPolyline = new Esri.ArcGISRuntime.Geometry.Polyline(segments)

Copyright 1995-2015 Esri. All rights reserved. 124


ArcGIS Runtime SDK for .NET

For large numbers of points, the PointCollection class provides efficient storage of coordinates and avoids the creation of many
MapPoint instances. This provides an efficient way to build up a polygon or polyline from a large number of points, perhaps read from
an external file or database, for example.
// create an empty point collection
var myPoints = new PointCollection(SpatialReferences.WebMercator);

// set the capacity if you know the maximum number of points to add
myPoints.Capacity = maxNumberOfPoints;

// repeat adding vertex coordinates directly into the PointCollection (no MapPoint instances)
while(moPoints)
{
// ... read x/y coordinate values ...

myPoints.AddPoint(x,y);

// ... see if there are more ...


}
// pass the point collection to the Polygon constructor
var myPolygon = new Polygon(myPoints);

Note: You can create a multipart polygon using a list of point collections (List<PointCollection>), where
each PointCollection contains the vertices for a part (ring, in other words).

Update geometry
You can use the PolylineBuilder and PolygonBuilder classes to create and modify a new shape. The builder is best suited for
editing workflows where the user may be adding, inserting or removing parts of a geometry interactively. Because Geometry is
immutable, the builder provides a way to make changes to a working geometry. Use the ToGeometry method on PolylineBuilder
or PolygonBuilder to get the polygon or polyline from the builder.
When updating or modifying existing geometries, use PolylineBuilder and PolygonBuilder classes to modify the geometry. The
easiest way is to pass an existing geometry to the constructor for the builder.
var polylineBuilder = new PolylineBuilder(polyline); // Create builder based on existing one
polylineBuilder.Parts[0].RemoveAt(0);
polylineBuilder.AddPoint(8, 4); // adding a point to last part

polyline = polylineBuilder.ToGeometry(); // get updated geometry

XML namespace references


Be consistent with naming of XML namespace references in your XAML code. If you use the same names for these references in all your
projects, you'll be able to copy and paste XAML between apps without having to modify the prefixes used to refer to namespaces. The
ArcGIS Runtime for .NET samples use the following namespace designations.
xmlns:esri="using:Esri.ArcGISRuntime.Controls"
xmlns:layers="using:Esri.ArcGISRuntime.Layers"
xmlns:data="using:Esri.ArcGISRuntime.Data"
xmlns:symb="using:Esri.ArcGISRuntime.Symbology"
xmlns:geom="using:Esri.ArcGISRuntime.Geometry"

Tip: If you're consistent with names for common objects in your UI (MapView, Map, layers, and so on), it will also
make it easier to copy and paste .NET code between projects.
Related Topics
Threading considerations
Asynchronous programming

Copyright 1995-2015 Esri. All rights reserved. 125


ArcGIS Runtime SDK for .NET

Use a MapView to display a map


A MapView control serves as a container for a single Map. The Map can contain zero or several layers. A MapView and its associated Map
and layers can be defined entirely using XAML in your UI, or by creating these objects programmatically in your code.
This topic illustrates some of the options for displaying a map in your application. For an overview of these classes, see the Maps and
layers topic.

Display a map with XAML


A MapView, the Map, and the layers the map contains can all be created at design time using XAML in your UI. Objects that control the
layer display, such as symbols and renderers, can also be defined this way. Before writing the XAML to define your map, you need to
make sure XML namespace references are in place for all required namespaces in the Esri.ArcGISRuntime assembly. See Add
ArcGIS Runtime SDK references for an overview.

XML namespace references


The following are some of the namespaces you'll commonly need and examples of classes they contain:
Esri.ArcGISRuntime.ControlsMapView, Map
Esri.ArcGISRuntime.LayersArcGISTiledMapServiceLayer, FeatureLayer, GraphicsLayer
Esri.ArcGISRuntime.DataGeodatabaseFeatureTable, GeodatabaseFeatureServiceTable
Esri.ArcGISRuntime.SymbologySimpleMarkerSymbol, UniqueValueRenderer
Esri.ArcGISRuntime.GeometryEnvelope
The following example illustrates defining XML namespace references for all of the namespaces listed above:
xmlns:esri="using:Esri.ArcGISRuntime.Controls"
xmlns:layers="using:Esri.ArcGISRuntime.Layers"
xmlns:data="using:Esri.ArcGISRuntime.Data"
xmlns:symbol="using:Esri.ArcGISRuntime.Symbology"
xmlns:geometry="using:Esri.ArcGISRuntime.Geometry"

Define a simple map


The MapView control is the top-level container used to display a map. The following example shows a MapView that contains a Map
with a single layer (specifically, an ArcGISTiledMapServiceLayer). This XAML would appear inside a container element on your
page, such as a Grid or StackPanel.
<esri:MapView x:Name="MyMapView">
<esri:Map x:Name="MyMap">
<layers:ArcGISTiledMapServiceLayer ID="BaseMap"
ServiceUri="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/>
</esri:Map>
</esri:MapView>

Add layers with XAML


Layers display in the map in the order in which they are defined in the XAML. The first layer defined is drawn first (on the bottom), the
second drawn on top of the first, and so on. This order can be important if you have features in a layer that may be obscured by features
in layers above.
The following example adds a FeatureLayer to the map defined above. This layer will draw on top of the BaseMap layer.
<esri:MapView x:Name="MyMapView">
<esri:Map x:Name="MyMap">
<layers:ArcGISTiledMapServiceLayer ID="BaseMap"
ServiceUri="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/>
<layers:FeatureLayer ID="Earthquakes">
<data:ServiceFeatureTable Mode="OnDemand"
ServiceUri="http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Earthquakes/EarthquakesFromLastSevenDays/MapServer/0"/>
</layers:FeatureLayer>
</esri:Map>
</esri:MapView>

Tip: In the code above, notice that all elements have either a name (x:Name) or ID property value assigned to
them. Providing values for these properties is not required but is highly recommended. If you need access
to your MapView or Map, define an x:Name value. To allow programmatic access to a layer, provide a
value for ID. The following code, for example, is only possible because values have been provided for
these properties:
var quakeLayer = MyMap.Layers["Earthquakes"] as FeatureLayer;
// -- or --
var quakeLayer = MyMapView.Map.Layers["Earthquakes"] as FeatureLayer;

Copyright 1995-2015 Esri. All rights reserved. 126


ArcGIS Runtime SDK for .NET

Define an initial extent


Unless you provide an explicit extent at which your map should initially display, it will use the extent defined by the first (bottom) layer in
the map. If your first layer is a base layer containing data at a national or world scale, for example, and you want to initially display the
map at the extent of an operational layer, you need to provide a ViewpointCenter or ViewpointExtent for the
InitialViewpoint property of the Map.
The following example defines an initial extent for the Map. Since the first layer in the map defines the default spatial reference, the
coordinates are specified in Web Mercator, the same spatial reference as the BaseMap layer.
<esri:Map.InitialViewpoint>
<esri:ViewpointExtent XMin="-13075816.40"
YMin="4014771.46"
XMax="-13073005.67"
YMax="4016869.78"/>
</esri:Map.InitialViewpoint>

You can define an initial extent in any coordinate system you want by providing a value for the SpatialReferenceID property of the
ViewpointCenter or ViewpointExtent. Doing so does not affect the spatial reference of the Map.
The following example defines an InitialViewpoint for the map using a ViewpointCenter in a geographic spatial reference
(WGS 84).
<esri:Map.InitialViewpoint>
<esri:ViewpointCenter X="-117.445" Y="33.9" SpatialReferenceID="4326" Scale="250000"/>
</esri:Map.InitialViewpoint>

The map view control provides map navigation out-of-the-box using actions such as mouse clicks and drags, rolling the mouse wheel,
and using touch gestures. This built-in behavior allows users to explore the map without additional tools cluttering the UI. MapView also
provides methods for navigating the map programmatically. See Navigate the map for more information.
Additional elements, such as symbols and renderers, can be created in your XAML. For more information and examples, see Symbols
and renderers.

Display a map using code


Instead of defining your map at design time using XAML, you may prefer (or find it necessary) to create maps and layers
programmatically. Even if you do create your initial map using XAML, it's likely that you'll want to work with the map at run time to modify
its characteristics or contents. A common workflow is to create an initial map using XAML and also provide tools that programmatically
alter the map at run time (add, remove, or symbolize layers, for example).
The following example assumes that an empty MapView has been added to the page at design time and has been given the name
MyMapView (<esri:MapView x:Name="MyMapView"/>, for example). This code creates a Map that contains a single layer and has
an initial extent specified. The map will be assigned to the Map property of the MapView, at which point it will be displayed on the page.

Copyright 1995-2015 Esri. All rights reserved. 127


ArcGIS Runtime SDK for .NET

// create a new Map


var myMap = new Esri.ArcGISRuntime.Controls.Map();
// create a new layer (world street map tiled layer)
var uri = new Uri("http://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer");
var baseLayer = new Esri.ArcGISRuntime.Layers.ArcGISTiledMapServiceLayer(uri);
// (give the layer an ID so it can be found later)
baseLayer.ID = "BaseMap";
// add the layer to the Map
myMap.Layers.Add(baseLayer);

// set the initial view point


var mapPoint = new Esri.ArcGISRuntime.Geometry.MapPoint(-117.445, 33.9,
Esri.ArcGISRuntime.Geometry.SpatialReferences.Wgs84);
var initViewPoint = new Esri.ArcGISRuntime.Controls.ViewpointCenter(mapPoint, 250000);

myMap.InitialViewpoint = initViewPoint;
// assign the Map to the MapView's Map property
this.MyMapView.Map = myMap;

Note: A MapView can contain zero or one Map objects. Assigning a new value to the Map property will replace the
current map (if one exists) with the new one.

Work with map layers


A Map contains a collection of layers. You can add layers to, and remove layers from, this collection. You can also reorder the collection
or reference individual items that you want to modify.
A layer's ID property is the key to referencing it in the map. The following example pulls a layer from the map's collection using an ID
value that was assigned when the layer was created. It verifies that the layer is the correct type (FeatureLayer), and assigns a new
renderer to the layer.
// create a new marker symbol (red 'x')
var simpleMarkerSym = new Esri.ArcGISRuntime.Symbology.SimpleMarkerSymbol
{
Color = Colors.Red, Style = Esri.ArcGISRuntime.Symbology.SimpleMarkerStyle.X
};

// create a new renderer that uses the symbol above


var simpleRenderer = new Esri.ArcGISRuntime.Symbology.SimpleRenderer { Symbol = simpleMarkerSym };
// find the layer with the ID "TacoShops" and cast it to FeatureLayer
var featureLayer = MyMapView.Map.Layers["TacoShops"] as Esri.ArcGISRuntime.Layers.FeatureLayer;
// if the layer was found (and is a FeatureLayer), set the new renderer
if (featureLayer != null)
{
featureLayer.Renderer = simpleRenderer;
}

For additional information about working with layers programmatically, see the Add layers with code topic.
See Symbols and renderers for more information about applying symbology to features in the map.

Use data binding to display a map


Data binding provides a mechanism that ties information coming from another object, such as a custom class in your app, to UI elements
for display. As an example, you might have a customer class that is initialized with information from a database when the app starts. Data
binding allows you to display the current properties of your customer object and have them update real-time as they change in the
underlying database. Data binding can also work the other way, pushing changes made in the UI (text typed into a TextBox, for example)
to the corresponding field in the database.
This XAML binding basics article provides a good overview of the rich set of data binding functionality provided by XAML. Data binding
plays a key role in the implementation of the Model-View-ViewModel (MVVM) design pattern, an overview of which can be found in this
article: MVVM Pattern Made Simple. See the MVVM design pattern tutorial to learn how to use MVVM with ArcGIS Runtime SDK for .NET.

Copyright 1995-2015 Esri. All rights reserved. 128


ArcGIS Runtime SDK for .NET

Assign a data context


A data context provides a data source that binding can work with. In the example described previously, a customer object would serve
as the data context for all controls in the UI, and each control would then be bound to a specific property of customer. A data context
can be assigned to any FrameworkElement in your UI and will apply to all child elements it contains. If you set the data context on a
Grid control, for example, all elements inside the grid can use that data context for binding. Several data contexts can be defined (and
nested) within your UI, in which case the most local data context for a particular element will be used to resolve data bindings.

Note: Data binding will work without defining a data context for container controls but will require that you specify
the data source explicitly for each control you want to bind.
To provide the appropriate data context for your MapView, the first step is to create a class that defines a property of type
Esri.ArcGISRuntime.Controls.Map. The following example shows a simple class (MyViewModel) that defines a single property
called Map. This property returns an Esri.ArcGISRuntime.Controls.Map and can therefore be bound to the Map property of a
MapView. When the class is instantiated, a new Map is created, a layer is added, and the initial extent is set. At run time, the local copy
of the map (_map) can be manipulated, and the changes will appear in the UI thanks to the data binding.
class MyViewModel
{
// a Map property that a MapView can bind to
private Esri.ArcGISRuntime.Controls.Map _map;
public Esri.ArcGISRuntime.Controls.Map Map
{
get { return _map; }
set { this._map = value; }
}

// constructor
public MyViewModel()
{
// on instantiating the class, create the map (data binding will be responsible for displaying it in the view)
this._map = new Esri.ArcGISRuntime.Controls.Map();

// create a new layer (world street map tiled layer)


var uri = new Uri("http://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer");
var baseLayer = new Esri.ArcGISRuntime.Layers.ArcGISTiledMapServiceLayer(uri);
// (give the layer an ID so it can be found later)
baseLayer.ID = "BaseMap";
// add the layer to the Map
this._map.Layers.Add(baseLayer);

// set the initial view point


var mapPoint = new Esri.ArcGISRuntime.Geometry.MapPoint(-117.445, 33.9,
Esri.ArcGISRuntime.Geometry.SpatialReferences.Wgs84);
var initViewPoint = new Esri.ArcGISRuntime.Controls.ViewpointCenter(mapPoint, 250000);

this._map.InitialViewpoint = initViewPoint;
}
}

The data context for any FrameworkElement is set with the DataContext property. Since you want the data context to be available
as soon as your controls are displayed, the constructor for your page is a good place to set the data context. The following example
creates a new instance of the MyViewModel class and assigns it as the data context for the entire page:
public MainPage()
{
this.InitializeComponent();
// create a new MyViewModel (the class constructor builds the map)
var viewModel = new MyViewModel();

// use it to set the data context for the page(and all controls it contains)
this.DataContext = viewModel;
}

Define data binding


With the data context in place, data bindings are easy to define in your XAML. For any property in your UI that you want to bind, you
simply need to point to the corresponding property on the data context object. To display the Name property from a data context object
of type Customer in a TextBlock control, for example, you would use syntax like the following:
<TextBlock Text="{Binding Name}"/>

Tip: If a data binding can't be resolved, perhaps because the data context is missing or the binding property
doesn't exist, the binding is ignored. No exceptions are thrown for an erroneous binding. To track down
binding problems, check the Output window in Visual Studio while debugging your app.

To bind a map to a MapView, you need to first set the data context of the map view (or its container) to an object that has a property of
type Esri.ArcGISRuntime.Controls.Map, and bind the Map to that property. The following example defines such a binding using
the MyViewModel class from an earlier example:
<esri:MapView x:Name="MyMapView" Map="{Binding Map}"/>

Copyright 1995-2015 Esri. All rights reserved. 129


ArcGIS Runtime SDK for .NET

Related Topics
Maps and layers
Navigate the map
Add layers with code
Work with web maps

Copyright 1995-2015 Esri. All rights reserved. 130


ArcGIS Runtime SDK for .NET

Navigate the map


The MapView control provides built-in navigation capabilities that allow you to interact with the map using mouse, touch, and keyboard.
You can also navigate by manipulating the map view programmatically to display the map at different scales, extents, or orientations.

User navigation
The following table summarizes the built-in navigation capabilities of the MapView control. See the Scene navigation topic for the
interaction capabilities built into SceneView.

Navigation Mouse Touch Keyboard

Pan Press and hold left button and drag Drag Arrow keys

Flick

Zoom in Scroll wheel forward Spread + key


Left double-click
Press and hold left button and drag + Shift key

Double tap

Zoom out Scroll wheel backward Pinch - key


Left double-click + Ctrl key
Press and hold left button and drag + Shift and Ctrl key

Two finger double tap

Rotate Two finger hold and twist

Copyright 1995-2015 Esri. All rights reserved. 131


ArcGIS Runtime SDK for .NET

Magnifier Touch and hold

Note: Rotation is disabled by default. Use InteractionOptions to enable rotation in the map view, as
described in the following section.

Define navigation options


The navigation capabilities provided by the MapView can be modified or disabled using the InteractionOptions object associated
with the control. You can disable all built-in navigation for the control by setting the IsEnabled property to false. To control specific
navigation operations, use properties of PanOptions, RotationOptions, and ZoomOptions as described below. These options
have no effect on the ability to manipulate the map display programmatically.
PanOptions properties
IsDragEnabledEnable or disable pan operations using mouse or touch.
IsEnabledEnable or disable all built-in pan operations.
IsFlickEnabledEnable or disable panning in the direction of a flick gesture (touch).
IsKeyboardEnabledEnable or disable panning with the arrow keys.
RotationOptions properties
IsEnabledEnable or disable rotation for the map view. Rotation is disabled by default, you must provide code such as
the following if you want to allow the user to rotate the map using touch gestures:
MyMapView.InteractionOptions.RotationOptions.IsEnabled = true;

ZoomOptions properties
IsDoubleTappedEnabledEnable or disable zoom in with a double-click of the mouse (and zoom out with a double-click
while pressing the Shift key).
IsEnabledEnable or disable all built-in zoom operations.
IsKeyboardEnabledEnable or disable zooming in or out with keyboard shortcuts (+, - keys).
IsMouseWheelEnabledEnable or disable using the mouse wheel to zoom in or out.
IsPinchEnabledEnable or disable using pinch or spread (touch) gestures to zoom in or out.
IsTwoFingerTapEnabledEnable or disable the ability to zoom out with a two fingered tap gesture (touch).
IsZoomBoxEnabledEnable or disable the ability to press the shift key to draw an envelope to zoom in to (or out from).
MouseWheelZoomInDirectionDirection of mouse wheel scrolling to zoom in to the map. Available options are
Forward (away from the user) and Backward (toward the user). The opposite direction will zoom out.
The following example sets the mouse wheel to zoom in when scrolled backward, disables keyboard zoom keys, and disables all
panning:
MyMapView.InteractionOptions.ZoomOptions.MouseWheelZoomInDirection = MouseWheelDirection.Backward;
MyMapView.InteractionOptions.ZoomOptions.IsKeyboardEnabled = false;
MyMapView.InteractionOptions.PanOptions.IsEnabled = false;

Tip: Limiting navigation for secondary maps, such as an overview map, is a good idea when using multiple
maps in your app. See the Multiple Maps topic for more information.

Navigate programmatically
You can programmatically manipulate the map display (extent, scale, rotation) regardless of the settings for InteractionOptions. This
gives you the ability to limit the navigation options available in the control while providing your own tools for interacting with the map.

Copyright 1995-2015 Esri. All rights reserved. 132


ArcGIS Runtime SDK for .NET

Change the map extent


To define the extent at which the map is first displayed, you can provide the Map class with a value for the InitialViewPoint
property, using a Viewpoint object. The MapView provides three methods (with several overloads) that also allow you to define a new
extent (to zoom in, for example) while your app is running. These are: SetViewAsync, ZoomAsync, and ZoomToScaleAsync.
The following example gets geometry from the user (a rectangle drawn on the display), then displays the map at the extent of that shape
by passing the geometry to SetViewAsync:
private async void ZoomToEnvelopeButton_Click(object sender, RoutedEventArgs e)
{
// use the MapView's Editor to request geometry (Envelope) from the user and await the result
var newExtent = await MyMapView.Editor.RequestShapeAsync(Esri.ArcGISRuntime.Controls.DrawShape.Rectangle);
// set the map view extent with the Envelope
await MyMapView.SetViewAsync(newExtent);
}

The SetViewAsync method has several overloads to provide a variety of ways for you to define a new area of the map to display. In
addition to using a specified geometry, an envelope, or a center point and scale value, you can pass a Viewpoint to the method.
The Viewpoint class is used by both map view and scene view controls to display a specified geographic location. If you need to
synchronize the area displayed between a scene view and map view in your app, you can pass Viewpoint objects between these
controls. You can also get the current view point for a scene or map view using the ViewBase.GetCurrentViewpoint method.
See Set camera position programmatically for more information about working with view points for a scene and for synchronizing the
areas displayed in a map and scene view.

Rotate the map


The map view can be rotated synchronously with the SetRotation method, or asynchronously with SetRotationAsync. Provide a
TimeSpan value to animate the rotation.
The following code rotates the map view using an angle provided by the user:
private void RotateButton_Click(object sender, RoutedEventArgs e)
{
// get the rotation angle (in degrees) from the user; parse to double
var angle = 0.0;
double.TryParse(this.RotationAngleTextBox.Text, out angle);

// apply the rotation to the map


MyMapView.SetRotationAsync(angle);
}

Note: The MapView.Rotation property is read-only. You can use it to get the current rotation applied to the
map view but not to set a new value.

Navigation events
The MapView control raises ExtentChanged and NavigationCompleted events. In general, NavigationCompleted is the best
event to handle if you want to respond each time the user navigates the map. The ExtentChanged event is much more granular and
may fire several times for a single navigation operation.
The following code handles the NavigationCompleted event to query features inside the new extent:

Copyright 1995-2015 Esri. All rights reserved. 133


ArcGIS Runtime SDK for .NET

private async void MyMapView_NavigationCompleted(object sender, EventArgs e)


{
// get a feature layer from the map; get the data (table) behind it
var featureLayer = MyMapView.Map.Layers["MyFeatureLayer"] as FeatureLayer;
var table = featureLayer.FeatureTable;

// create a spatial filter using the current map extent


var filter = new SpatialQueryFilter();
filter.Geometry = MyMapView.Extent;

// query the table using the extent


var results = await table.QueryAsync(filter);
// ... code here to process the results ...

Related Topics
Navigate a scene
Use a MapView to display a map
Multiple maps

Copyright 1995-2015 Esri. All rights reserved. 134


ArcGIS Runtime SDK for .NET

Work with web maps


Web maps can be created using ArcGIS.com or Portal for ArcGIS and are saved as text files that describe map characteristics (such as
the layers they contain). A web map is assigned a globally unique ID that can be used to access the map programmatically using ArcGIS
Runtime SDK for .NET.

Web map format


The ArcGIS web map is a text file that consists of a structured series of key-value pairs that describe layers, tasks, pop-up information,
bookmarks, metadata, and other properties of the map. Web maps are expressed in JavaScript Object Notation (JSON), a clear text
format that can be easily transferred, stored, or manipulated. Once you know how web map content is structured, you can read or write
web maps from custom clients. There are two primary strings of JSON that comprise a web map:
The web map item information string contains a title, description, and various metadata used to summarize the web map on
ArcGIS.com or other portal.
The web map data string contains information needed to display the map, such as the layers, pop-ups, and bookmarks it contains.
The following code sample shows a web map data string that defines a basemap and a single operational layer:
{
"operationalLayers": [{
"mode": 1,
"opacity": 1,
"title": "Demographics/ESRI_Census_USA",
"url": "http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer",
"visibility": true,
"visibleLayers": [
0,
1,
2,
3,
4,
5
]
}],
"baseMap": {
"baseMapLayers": [{
"id": "NatGeo_World_Map_9586",
"opacity": 1,
"visibility": true,
"url": "http://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer"
}],
"title": "National Geographic"
},
"version": 1.1
}

Access a web map


When you make and save a web map using ArcGIS.com or Portal for ArcGIS, it is given a globally unique ID. You can reference this ID to
pull the entire map or any of its contents into apps you build with Esri APIs. If you know the ID of a web map you'd like to display in your
ArcGIS Runtime app, you can create an ArcGISPortalItem using the item ID. You can then open the item as a WebMap and access the
layers, tasks, and bookmarks that it contains.
The following code sample opens a web map hosted by arcigs.com and displays information about the operational layers it contains:
// open a portal
var portal = await ArcGISPortal.CreateAsync(new Uri("http://www.arcgis.com/sharing/rest"));

// use the unique item id to access the portal item


var item = await ArcGISPortalItem.CreateAsync(portal, "4b2b2784f68e4e5fb0c39c770f1b25ea");
// get the item as a web map
var webmap = await WebMap.FromPortalItemAsync(item);
// loop thru all operational layers in the web map and display their name and url
foreach (var lyr in webmap.OperationalLayers)
{
MyLayerListBox.Items.Add(lyr.Title + " - " + lyr.Url);
}

Tip: The web map ID is included in the URL when you view it from ArcGIS.com. For example,
http://www.arcgis.com/home/webmap/viewer.html?webmap=2ee3425c0eb045ffa0d87bfd1e16a0aa is the
web map for Redlands drinking fountains. You can copy the text that follows webmap= in the URL string for
use in your code.
If you don't know the item ID of a particular web map, you can search for web maps using keywords. Once you find an interesting web
map, you can open it using the same technique described previously.
The following code sample shows how to search for web maps with the keyword "fountain". The first match found (sorted on the average
rating) is then opened.

Copyright 1995-2015 Esri. All rights reserved. 135


ArcGIS Runtime SDK for .NET

// open a portal
var portal = await ArcGISPortal.CreateAsync(new Uri("http://www.arcgis.com/sharing/rest"));
// create a SearchParameters object
// set it to search for "fountain", to sort descending by the average rating, and limit to 10 results
var searchParameters = new SearchParameters()
{
QueryString = "fountain",
SortField = "avgrating",
SortOrder = QuerySortOrder.Descending,
Limit = 10
};
// do the search
var searchResult = await portal.SearchItemsAsync(searchParameters);

// get the first result


var firstItem = searchResult.Results.FirstOrDefault();
// if a web map was found, open it
if (firstItem != null && firstItem.Type == ItemType.WebMap)
{
var webMap = await WebMap.FromPortalItemAsync(firstItem);
// ... do something with the web map here ...
}

Display a web map


You can extract individual layers from a web map to display in your app, or you can assign the entire web map to your app's map view.
The WebMapViewModel class serves as a wrapper for a web map to which you can bind your map view. This class helps you implement
the Model-View-ViewModel (MVVM) pattern in your ArcGIS Runtime SDK for .NET apps.
The following code sample opens a web map using its item ID, creates a new WebMapViewModel, then assigns the resulting Map to the
app's MapView control:
// get a ref to the portal
var portal = await ArcGISPortal.CreateAsync(new Uri("http://www.arcgis.com/sharing/rest"));
// use the unique item id to access the portal item
var item = await ArcGISPortalItem.CreateAsync(portal, "4b2b2784f68e4e5fb0c39c770f1b25ea");
// get the item as a web map
var webmap = await WebMap.FromPortalItemAsync(item);
// create a WebMapViewModel to contain the web map
var vm = await WebMapViewModel.LoadAsync(webmap, portal);
// assign the Map property of the view model to the Map property of the MapView control to display the web map
this.MyMapView.Map = vm.Map;

Display popups from a web map


When you author a web map in ArcGIS Online, you can define popups to display attribute information for features in the map. You can
choose which attributes to include as well as format preferences for their display. Each layer in the web map can have distinct popup
properties defined. When adding a web map to your ArcGIS Runtime SDK app, popups will not be displayed out of the box. With some
additional work, however, you can display attribute information for features using popup definitions stored with a web map.
The WebMap class provides properties that describe the information stored with a web map, such as the layers, bookmarks, and tasks it
contains. Each WebMapLayer in the web map also has properties to describe layer preferences that have been defined, including the
display of popups.
Use the WebMapLayer.PopupInfo property to get popup preferences for a layer, as shown in the following example.
var popupInfo = webMap.OperationalLayers[0].PopupInfo;

The PopupInfo class provides properties that describe which attributes should be included, how to format their display, and whether or
not they should be editable. Associated media, such as charts and images, can also be defined for a popup.
The following example creates a new collection of attributes for display by including only those fields defined in the popup info.

Copyright 1995-2015 Esri. All rights reserved. 136


ArcGIS Runtime SDK for .NET

// get the popup fields for the layer


var popupInfo = webMapLayer.PopupInfo;
var popupFields = popupInfo.FieldInfos;
// create a new dictionary to store attributes for display in the popup
var popupAttributes = new Dictionary<string, object>();

// find the attributes that should be shown in the popup


var attributes = feature.Attributes;
foreach (var field in attributes.Keys)
{
// loop thru all fields defined in the popup info
foreach(var popupField in popupFields)
{
// if the current field is defined for the popup, add the attribute to the results
if (popupField.FieldName.ToLower() == field.ToLower())
{
if (popupField.IsVisible)
{
// get the attribute value
var fieldValue = attributes[field];

// if a format has been specified, apply it to the value


if (popupField.Format != null)
{
var valueFormat = popupField.Format;
fieldValue = valueFormat.GetFormattedValue(attributes[field]);
}
// add the field display name and formatted value to the dictionary
popupAttributes.Add(popupField.Label, fieldValue);
}
break;
}
}
}

After filtering a set of attributes according to the preferences set in a layer's PopupInfo, you can bind the attributes to a UI element for
display. To mimic the behavior of the web map popups, you may want to use the OverlayItemsControl. The following example shows
XAML that defines a ListView control as a map overlay. When bound to a Dictionary of attributes, the field name (key) and value will
be displayed according to the binding defined in the ItemTemplate.
<esri:MapView x:Name="MyMapView" MapViewTapped="MyMapView_Tapped">
<esri:MapView.Overlays>
<esri:OverlayItemsControl>
<ListView x:Name="PopupAttributeList" ItemsSource="{Binding}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Key}" FontWeight="Bold" FontSize="12" Foreground="Blue" Margin="10,3"/>
<TextBlock Text="{Binding Value}" FontSize="12" Foreground="Blue" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</esri:OverlayItemsControl>
</esri:MapView.Overlays>
</esri:MapView>

See the Display map overlays topic for more information.

Related Topics
Tutorial: Access maps and content from your portal
Add layers with code
Access the ArcGIS platform
Access portal content
Search portal content

Copyright 1995-2015 Esri. All rights reserved. 137


ArcGIS Runtime SDK for .NET

Add layers with code


While you can create a map and all the layers it contains at design time using XAML, you will likely find the need to work with layers in the
map programmatically. This topic describes how to add new layers to the map using code.
For a description of working with maps and layers using XAML, see Use the MapView to display a map.

Caution: Sharing a single layer instance simultaneously between multiple maps is not supported and is likely to cause
stability or performance issues. See the Multiple maps topic for more information about working with multiple
map views in your app.
Create a layer
There are several types of layers that you can include in your map, described in the Maps and layers topic. Each of these types of layers
can be created at run time (programmatically) if needed. Depending on the type of layer you're creating, you'll need to provide values for
different properties to successfully display the layer. Some layers, such as ArcGISTiledMapServiceLayer, display data based on an
ArcGIS for Server REST endpoint for a tiled map service. Others, such as FeatureLayer, may display data from a remote source or
from a local geodatabase. GraphicsLayer does not require a data source, as the graphics it contain are stored in memory. Once a layer
has been created and values for required properties have been defined, you can add the layer for display in the map.

ArcGIS for Server layers


A variety of layers can be created that use a service hosted with ArcGIS for Server as a data source. Each of these layers require a
value for the ServiceUri property to define the service end point URL. Another layer that can be based on ArcGIS for Server data,
FeatureLayer, is covered in the feature layers section below.
ArcGISTiledMapServiceLayerCached map service that hosts a set of map image tiles.
ArcGISDynamicMapServiceLayerNon-cached map service that generates requested map images on the fly. Services are
based on vector and/or raster data sources.
ArcGISImageServiceLayerNon-cached map service that generates requested map images on the fly. Services are based
on raster data sources.
The following code sample creates three new layers to display ArcGIS for Server services. The ServiceUri that defines the data
source is passed into each layer's constructor.
// create a new tiled map service layer for the world street map service
var tiledUri = new Uri("http://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/mapserver");
var agsTiledLayer = new Esri.ArcGISRuntime.Layers.ArcGISTiledMapServiceLayer(tiledUri);
// create a new dynamic map service layer to show hurricane tracks
var dynUri = new Uri("http://sampleserver6.arcgisonline.com/arcgis/rest/services/Hurricanes/MapServer");
var agsDynLayer = new Esri.ArcGISRuntime.Layers.ArcGISDynamicMapServiceLayer(dynUri);

// create a new image service layer to show imagery of Toronto, Canada


var imgUri = new Uri("http://sampleserver6.arcgisonline.com/arcgis/rest/services/Toronto/ImageServer");
var agsImageLayer = new Esri.ArcGISRuntime.Layers.ArcGISImageServiceLayer(imgUri);
// clear (remove) all current layers in the map
MyMapView.Map.Layers.Clear();
// add the new layers (will draw in this order)
MyMapView.Map.Layers.Add(agsTiledLayer);
MyMapView.Map.Layers.Add(agsDynLayer);
MyMapView.Map.Layers.Add(agsImageLayer);

Note: The order in which layers draw is the same order in which they appear in the map's layer collection. The
first layer added draws first, and subsequent layers added to the collection draw on top of previous layers.

Bing layers
A BingLayer is a tiled image map service layer that allows you to work with a cached map service resource exposed by Microsoft's
Bing services. The BingLayer uses a set of SOAP proxies and value object types rather than REST. ArcGIS Runtime .NET SDK
provides a set of implementation classes that utilize the proxies and value objects internally. Use of Bing services requires that you
generate and provide a key when utilizing BingLayer components. You can obtain a key by visiting the Bing Maps Account Center.
The MapStyle property is used to indicate the type of map to display. Valid styles are Road, Aerial, or AerialWithLabels
The Culture property allows you to use maps that are labeled for a specific culture (language). US English ("en-US") is the default
culture.
The following code sample shows how to create a new Bing map layer and assign the required key. The style is set to
AerialWithLabels, and the culture to French.

Copyright 1995-2015 Esri. All rights reserved. 138


ArcGIS Runtime SDK for .NET

var bingMapLayer = new Esri.ArcGISRuntime.Layers.BingLayer();


bingMapLayer.Key = "mYB!ngK3Y!";
bingMapLayer.MapStyle = Esri.ArcGISRuntime.Layers.BingLayer.LayerType.AerialWithLabels;
bingMapLayer.Culture = new System.Globalization.CultureInfo("fr-FR");

Note: When using Bing Maps in your application, it's important to include attribution information. See the
Branding Guidelines from Microsoft for more information.

Feature layers
A feature layer can display data from a single layer in an ArcGIS for Server service, or it can be based on a dataset stored locally in a
geodatabase. Each feature in a feature layer has geometry and attribute information and is rendered individually in the map using native
graphics. Functionality is dependent on whether the layer was created from a map service or feature service. Feature layers support
editing capabilities, such as adding, deleting, or updating spatial and attribute characteristics of features.
For more information about editing features, see the Edit features topic.

Online feature layers

To create a layer that uses an ArcGIS for Server service as its data source, you need to specify the URL to the service endpoint, as
discussed previously. To do so for a FeatureLayer, you create an associated ServiceFeatureTable that references the data
source (service URI). The ServiceFeatureTable exposes other properties you may find useful, such as the desired OutFields,
the Mode used to retrieve features from the server (described below), and a Where expression to filter features.
The following code sample creates a new ServiceFeatureTable, sets the ServiceUri, Mode, and Where properties, then uses
it to create a new FeatureLayer:
// create a ServiceFeatureTable from the Incidents layer in the SF311 feature service
var gdbFeatureSvcTable = await Esri.ArcGISRuntime.Data.ServiceFeatureTable.OpenAsync(
new Uri("http://sampleserver6.arcgisonline.com/arcgis/rest/services/SF311/FeatureServer/0"));
// define the query mode for retrieving features from the server
gdbFeatureSvcTable.Mode = Esri.ArcGISRuntime.Data.QueryMode.OnDemand;

// define a Where expression to only show open incidents


gdbFeatureSvcTable.Where = "Status = 2"; // incident is open

// create a feature layer from the table


var featureLayer = new Esri.ArcGISRuntime.Layers.FeatureLayer(gdbFeatureSvcTable);
featureLayer.ID = "IncidentsLayer"; // (assign an ID so it can be found later)

// add the feature layer to the map


MyMapView.Map.Layers.Add(featureLayer);

Copyright 1995-2015 Esri. All rights reserved. 139


ArcGIS Runtime SDK for .NET

Query mode options

When creating a FeatureLayer from an online data source (ServiceFeatureTable), you have two options, or query modes, for
how features are retrieved from the remote service for display on the client. Depending on the nature and number of the features you
want to work with, there may be performance ramifications for the mode you choose.
SnapshotRetrieves all features currently in the ServiceFeatureTable.
OnDemandRetrieves only those features needed to display the layer for the current map extent. As the extent changes,
additional features are retrieved as needed.

Caution: Settings on the server can restrict the maximum number of features returned. In that case, only the
maximum number of features are retrieved by the client rather than all features requested. While this is
true for both query modes, it is less likely to be a problem when using the OnDemand mode since a
subset of features is usually being requested.
In general, the OnDemand mode is better suited for layers that contain a large number of features. Since only the features required for
the current extent are brought to the client, performance is improved by not wasting bandwidth on data that is not immediately
required in the app.
OnDemand mode is the best option if your app needs to have all features for a layer immediately available in the client. It may also be
the best option for layers that don't contain a large number of features. In that case, a single request is required to return the features,
rather than perhaps several as the user changes the map extent. To re-query the online source (to bring in feature edits that may
have been made, for example), use the RefreshFeatures method.

Offline feature layers

To use a FeatureLayer to display features from an offline source (a local geodatabase), you need to create a new
GeodatabaseFeatureTable and point it to the geodatabase and table that represent the data source. Once in the map, there are
no functional differences between an offline and online feature layer. Both offer the same functionality, including editing capabilities,
and provide a seamless experience to your user.
See Create an offline map to learn how to create an offline data source (geodatabase) from an online feature layer.
// open a geodatabase in local storage
var localData = Windows.Storage.ApplicationData.Current.LocalFolder;
var gdbPath = localData.Path + @"\WildlifeLocal.geodatabase";
var localGdb = await Esri.ArcGISRuntime.Data.Geodatabase.OpenAsync(gdbPath);

// loop thru all tables in the geodatabase


foreach (var table in localGdb.FeatureTables.ToList())
{
// create a new feature layer to display each table
var lyr = new Esri.ArcGISRuntime.Layers.FeatureLayer
{
ID = table.Name + "Offline",
DisplayName = table.Name,
FeatureTable = table
};
// add each layer to the map
MyMapView.Map.Layers.Add(lyr);
}

Graphics layers
Graphics layers are app-defined layers designed for drawing dynamic features on the map. Each graphic is defined by its own individual
geometry, attributes, and symbol so that many different geometry types can coexist in one graphics layer. The graphics can be used to
hold polygons drawn by a user, display features that satisfy a user-defined query, or show a real-time Global Positioning System (GPS)
location. All graphics in a graphics layer are stored in memory and are only available while the app is running.
For more information about graphics, see the Features and graphics topic.
The following code sample creates a new graphics layer, adds it to the map, and adds a single point at the center of the map's extent:
// create a new graphics layer, give it an ID
var graphicsLayer = new Esri.ArcGISRuntime.Layers.GraphicsLayer();
graphicsLayer.ID = "MyGraphicsLayer";
// add the graphics layer to the map
MyMapView.Map.Layers.Add(graphicsLayer);

// create a symbol (large cyan circle) for displaying a point


var markerSym = new Esri.ArcGISRuntime.Symbology.SimpleMarkerSymbol();
markerSym.Color = Colors.Cyan;
markerSym.Size = 18;
markerSym.Style = Esri.ArcGISRuntime.Symbology.SimpleMarkerStyle.Circle;

// create a marker graphic for the center of the map's extent


var pointGraphic = new Esri.ArcGISRuntime.Layers.Graphic(MyMapView.Extent.GetCenter(), markerSym);

// add the graphic to the graphics layer for display on the map
graphicsLayer.Graphics.Add(pointGraphic);

Copyright 1995-2015 Esri. All rights reserved. 140


ArcGIS Runtime SDK for .NET

For more information about adding graphics to a map, see Add graphics and text.

KML layers
Keyhole Markup Language (KML) is an XML format for describing geographic features for visualization in two dimensions (in a Map in
other words) or three dimensions (in a Scene). KML files use a .kml extension for plain KML text files or .kmz for compressed files. In
your ArcGIS Runtime apps, you can use the KmlLayer to read and display geographic information from a .kml or .kmz file, which can
be stored locally or accessed from an online source.
The following example adds a KML layer to the map showing recent earthquakes.
// create a KML layer from an online file
var sourceUri = new Uri("http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/1.0_week_age_link.kml");
var kmlLayer = new KmlLayer(sourceUri);
// Add the kml layer to the map
MyMapView.Map.Layers.Add(kmlLayer);

Find a layer
You may need to work with a layer that was added previously to your map. To get a reference to an existing layer in the map, you can use
the layer's ID property. This is an especially common workflow for graphics layers, where you may be continuously adding, removing, or
updating graphics in the layer as your app is running.
The following code sample references a layer with an ID value of MyGraphicsLayer. The layer is then cast to the GraphicsLayer
type. If a layer with that ID doesn't exist, or is not of type GraphicsLayer, a null value is returned. If the layer is found, it is used to add
a new graphic to the map. If it is not found, a new graphics layer is created and given the ID MyGraphicsLayer.
// find a graphics layer called "MyGraphicsLayer" in the map
var graphicsLayer = MyMapView.Map.Layers["MyGraphicsLayer"]
as Esri.ArcGISRuntime.Layers.GraphicsLayer;
// if the layer doesn't exist, create it and add it to the map
if (graphicsLayer == null)
{
graphicsLayer = new Esri.ArcGISRuntime.Layers.GraphicsLayer();
graphicsLayer.ID = "MyGraphics";

// add the graphics layer to the map


MyMapView.Map.Layers.Add(graphicsLayer);
}

// ... code here to make a new graphic ...


// add the graphic to the graphics layer for display on the map
graphicsLayer.Graphics.Add(someGraphic);

Related Topics
Layer types
Maps and layers
Work with web maps

Copyright 1995-2015 Esri. All rights reserved. 141


ArcGIS Runtime SDK for .NET

Create an offline map


You can provide offline maps to users so they can be productive when their network connectivity is poor or nonexistent. To create offline
maps, you create geodatabases and tile caches and then build layers from those, as described in this topic.
You can add capabilities for the following:
Viewing basemaps (also known as tiled layers, created from tile caches).
Editing operational data (also known as feature data and vector data). This includes querying and editing the location, shape,
attributes, related tables, and attachments of features.
Syncing edits when online again (upload their edits and/or pull down only the updated features that others have edited), if your
data is service based.
Performing blazing fast searches for locations (geocode and reverse geocode) and routes. For details, see and Search for places.

License: An app licensed at the Basic level can include viewing offline basemaps and viewing offline feature data
contained in a geodatabase. You must license your app at the Standard level if it includes any of the
following functionality: offline editing, syncing offline edits with an upload, offline routing, and offline
geocoding. See License your app for more information on license levels.

Offline patterns
Two main patterns are available for ArcGIS Runtime offline:
Services patternBest for supporting a large number of users, this pattern allows multiple offline users to edit the same data
layers and sync edits later, when online.
Desktop patternBest for supporting applications with read-only data that requires periodic updates.

Services pattern
The services pattern is best for supporting a large number of users. This pattern allows multiple offline users to edit the same data
layers and sync edits later, when online.
For operational data, you can use a sync-enabled feature service from ArcGIS for Server, ArcGIS Online, or Portal for ArcGIS to
generate the geodatabase for offline use. Through the synchronization process, you can control whether a user can upload their
changes, download others' changes, or both. This allows the application to have an up-to-date view of the data. When more than one
user is editing the same feature and the edits conflict, the last edit synchronized to the service overrides the others.
In one workflow, sometimes referred to as a pre-planned workflow, you generate the geodatabase once and load it onto your users'
devices. This workflow requires you to register a geodatabase.
For basemap data, ArcGIS tiled map services and ArcGIS Online basemaps allow for the on-demand creation of tile caches, letting you
take your basemaps offline.

Desktop pattern
The desktop pattern, which allows a user to consume ArcGIS Runtime content created in ArcGIS for Desktop, is best for supporting
apps with read-only data requiring periodic updates. This content can include features, tabular data, tile caches, network datasets for
directions, and locators. For more information on creating ArcGIS Runtime content using ArcGIS for Desktop, see Creating ArcGIS
Runtime content.

Include operational data


You can prepare operational data for offline use in one of two ways:
Generate a geodatabase from a sync-enabled feature service using the API (services pattern).
Generate a geodatabase using ArcGIS for Desktop (desktop pattern).
This section describes preparing operational data and adding it to your app.

Generate a geodatabase from a sync-enabled feature service


To generate a geodatabase for offline use, you need a feature service from ArcGIS 10.2.2 for Server or later or a service from ArcGIS
Online. The feature service must be enabled for sync. You can publish feature services using ArcGIS for Desktop or create feature
services hosted on ArcGIS Online using the ArcGIS for Developers website. To enable sync for a feature service in ArcGIS Online, edit

Copyright 1995-2015 Esri. All rights reserved. 142


ArcGIS Runtime SDK for .NET

the feature service item in ArcGIS Online, and check the Sync check box. Once you have a sync-enabled feature service, you can
generate a geodatabase for your area of interest; this creates a copy of your features that you can work with offline.
To generate a geodatabase for offline use:
1. Specify parametersBefore generating a geodatabase, specify parameters for its creation, such as the area of interest.
2. Generate a geodatabaseRequest and download copies using the methods on the GeodatabaseSyncTaskclass.
3. Register a geodatabaseAfter generating the geodatabase you may need to register it.

Specify parameters

When generating a geodatabase for offline use, you supply parameters allowing you to control the following:
The layers to include in the generated geodatabase
The extent of the generated geodatabase (and the spatial reference of this extent)The extent of the geodatabase requested
from the ArcGIS feature service is typically an envelope. However, point, line, and polygon (including multipart) geometries
are supported, allowing for more complex data extractions to be defined. Regardless of the geometry type, features that
intersect with the supplied geometry are extracted.
The spatial reference of the generated geodatabase
Whether or not to include feature attachments in the generated geodatabase
The synchronization model for the geodatabaseThe synchronization model controls how edits made to the geodatabase in
the field are applied back to the feature service during synchronization. The model supported is defined by the data that was
used to create the sync-enabled feature service. If the data is non-versioned, the synchronization model is per layer. This is
the most flexible model, allowing you to synchronize on a layer-by-layer basis, based on the layers you specify. If the data is
versioned, the synchronization model is per geodatabase. This synchronizes the entire geodatabase, including all layers and
tables at once.
Whether to only include a subset of the features in the specified extent, by specifying layer queries to filter features by
attribute values

Copyright 1995-2015 Esri. All rights reserved. 143


ArcGIS Runtime SDK for .NET

Generate a geodatabase

To request a geodatabase from a sync-enabled feature service for your area of interest, use the GeodatabaseSyncTaskclass for
this, after setting up your GenerateGeodatabaseParameters for the task.

Note: Feature attachments, if supported by the feature service, are not included in the generated geodatabase
by default. Set GenerateGeodatabaseParameters.ReturnAttachments to true if you want to
include feature attachments in the output geodatabase. For information about using feature attachments
in your ArcGIS Runtime app, see the Work with feature attachments topic.
The following code snippet shows how this can be achieved:
// provide a callback to execute when the GeodatabaseSyncTask completes (successfully or with an exception)
private async void GdbCompleteCallback(Esri.ArcGISRuntime.Tasks.Offline.GeodatabaseStatusInfo statusInfo, Exception ex)
{
Windows.UI.Popups.MessageDialog messageDialog;
// if unsuccessful, report the exception and return
if (ex != null)
{
messageDialog = new Windows.UI.Popups.MessageDialog("Offline database was not created: " + ex.Message, "Failure");
await messageDialog.ShowAsync();
return;
}
// if successful, read the generated geodatabase from the server
var client = new Esri.ArcGISRuntime.Http.ArcGISHttpClient();
var gdbStream = client.GetOrPostAsync(statusInfo.ResultUri, null);

// create a local file to store the geodatabase, if it doesn't already exist


var localDataStorage = Windows.Storage.ApplicationData.Current.LocalFolder;
var gdbFile = await localDataStorage.CreateFileAsync("WildlifeLocal.geodatabase", Windows.Storage.CreationCollisionOption.ReplaceExisting);

// write geodatabase to local data storage


var gdbBytes = await gdbStream.Result.Content.ReadAsByteArrayAsync();
await Windows.Storage.FileIO.WriteBytesAsync(gdbFile, gdbBytes);

// report success
messageDialog = new Windows.UI.Popups.MessageDialog("Offline database created.", "Success");
await messageDialog.ShowAsync();
}

// store a private variable to manage cancellation of the task


private System.Threading.CancellationTokenSource _syncCancellationTokenSource;
// call GenerateGeodatabaseAsync from a button click
private async void GetDataButton_Click(object sender, RoutedEventArgs e)
{
try
{
// cancel if an earlier call was made
if (_syncCancellationTokenSource != null)
{
_syncCancellationTokenSource.Cancel();
}
// get a cancellation token
_syncCancellationTokenSource = new System.Threading.CancellationTokenSource();
var cancelToken = _syncCancellationTokenSource.Token;
// create a new GeodatabaseSyncTask with the uri of the feature server to pull from
var uri = new Uri("http://sampleserver6.arcgisonline.com/arcgis/rest/services/Sync/SaveTheBaySync/FeatureServer");
var gdbTask = new Esri.ArcGISRuntime.Tasks.Offline.GeodatabaseSyncTask(uri);
// create parameters for the task: layers and extent to include, out spatial reference, and sync model
var layers = new List<int>(new int[3] { 0, 1, 2 });
var extent = MyMapView.Extent;
var gdbParams = new Esri.ArcGISRuntime.Tasks.Offline.GenerateGeodatabaseParameters(layers, extent)
{
OutSpatialReference = MyMapView.SpatialReference,
SyncModel = Esri.ArcGISRuntime.Tasks.Offline.SyncModel.PerLayer,
ReturnAttachments = true
};

// Create a System.Progress<T> object to report status as the task executes


var progress = new Progress<Esri.ArcGISRuntime.Tasks.Offline.GeodatabaseStatusInfo>();
progress.ProgressChanged += (s, info) =>
{
ShowStatus(info.Status);
};

// call GenerateGeodatabaseAsync, pass in the parameters and the callback to execute when it's complete
var gdbResult = await gdbTask.GenerateGeodatabaseAsync(gdbParams, GdbCompleteCallback, new TimeSpan(0,1,0), progress, cancelToken);
}
catch (Exception ex)
{
var messageDialog = new Windows.UI.Popups.MessageDialog("Unable to create offline database: " + ex.Message, "Failure");
messageDialog.ShowAsync();
}
}

Your geodatabase should now be on your local machine or device.

Copyright 1995-2015 Esri. All rights reserved. 144


ArcGIS Runtime SDK for .NET

Register a geodatabase in a pre-planned workflow

In a services pattern workflow known as a pre-planned workflow, you generate the geodatabase once and load copies of it onto each
user's device.
This workflow has the following benefits:
Allows you to control which maps/geodatabase your users can select from. You can pre-load your maps/geodatabase onto
your users' devices.
Allows you to schedule the geodatabase generation for off-peak hours.
Reduces the load on the server. Multiple clients aren't generating a geodatabase for the same area because you've
generated it for them.
If you use this workflow, you must register the geodatabase (copy) on each device that uses it. For details and important tips on
registering and unregistering geodatabases, see Register a geodatabase in a pre-planned workflow in "Sync offline edits."

Generate a geodatabase from ArcGIS for Desktop


Use ArcGIS 10.2.1 for Desktop or later to generate a geodatabase using the Share as > ArcGIS Runtime Content menu item as
described in the ArcGIS help topic Creating ArcGIS Runtime content.

Add geodatabase content to your app

Caution: To read from a geodatabase while testing your app, you must enable the Internet (Client and Server)
capability in your app's Package.appxmanifest file.

Steps:
1. Open the geodatabase using the static OpenAsync method on the Geodatabaseclass, which takes the path to the
geodatabase. This class has methods that let you list the feature tables and properties in the geodatabase file.
// build the path to the geodatabase file in local storage
var localData = Windows.Storage.ApplicationData.Current.LocalFolder;
var gdbPath = localData.Path + @"\WildlifeLocal.geodatabase";

// open the geodatabase


var localGdb = await Esri.ArcGISRuntime.Data.Geodatabase.OpenAsync(gdbPath);

2. A feature layer is used to display features on a map. To create a feature layer from a geodatabase, first, use the
geodatabase to retrieve a feature table, and next, create a feature layer from that feature table. The geodatabase
potentially contains several geodatabase feature tables, depending on the layers you requested during geodatabase
generation. If the geodatabase was created from a sync-enabled feature service, you can retrieve a feature table by ID
corresponding to the feature service's layer ID.
// get the first geodatabase feature table
var gdbFeatureTable = gdb.FeatureTables.FirstOrDefault();

//create a layer for the feature table


var featureLayer = new FeatureLayer
{
ID = gdbFeatureTable.Name,
DisplayName = gdbFeatureTable.Name,
FeatureTable = gdbFeatureTable
};

3. Add the feature layer to the map. Once the layer is added and initialized, your features display in the map.
MyMapView.Map.Layers.Add(featureLayer);

The features you will see in the map depend on the map extent displayed. If your features are not displaying, make sure
you have panned or zoomed to the appropriate extent, and that the spatial reference of the geodatabase matches the
spatial reference of the map. You can set the spatial reference of a geodatabase at generation time, as described in
Generate a geodatabase from a feature service.

Your geodatabase content is added to the map.

Include a basemap
A basemap is a map layer that helps orient the user of the map. Typically it sits behind operational layers and shows roads and buildings
to give context to the operational layer.

Copyright 1995-2015 Esri. All rights reserved. 145


ArcGIS Runtime SDK for .NET

Create a basemap from a tiled service (download a basemap)


An offline copy of tiled map services can be requested so that a basemap is available when the application is working in an offline
environment. These copies can be downloaded in the form of a tile package (.tpk file) or compact cache by using the API's
ExportTileCacheTaskclass. The map service used for this operation must support the creation of an offline tile cache; specifically, it
must support the exportTiles operation that appears at the bottom of the service's HTML page.
When requesting a tile cache, define the following properties:
Tile cache format, that is, tile package or compact cache
Extent of the tile cache (this can be a polygon geometry, not just an envelope)
Spatial reference for the tile cache (defined on the extent geometry of the cache)
Minimum and maximum scale to include in the cache
For a list of ArcGIS Online basemaps that you can take offline, see Tiled Basemaps.
When creating an offline tile cache from a tiled service, consider the following:
The exportTiles operation used to generate tile caches is only available on ArcGIS 10.2.1 for Server or later services.
The time required to create a tile cache varies depending on the extent requested, the number of levels requested, the network
connection speed, and so on. Use the API's EstimateTileCacheSizeAsync method on the ExportTileCacheTask class
to get the approximate size of a tile cache for a specific set of parameters. Try generating a smaller tile cache to get an idea of
how long caching will take when planning a large offline data capture event.
When generating a tile cache from an ArcGIS Online basemap, there is a cap on the number of tiles you can download in one
request, which is 100,000 tiles. Read more on this in the exportTiles REST documentation.
Organizations that use their own ArcGIS Server to host offline tile caching can configure the ArcGIS Server's
maxExportTilesCount via the admin to change the default 100,000-cache tile cap.

Tile package or compact cache?

Tile packages are the most convenient because the entire cache lives in a single .tpk file. However, the size of this file might be
problematic for devices that enforce a limit on file size. If this is an issue, use compact caches instead. Compact caches store the
same information as tile packages, but the data is stored in a structure of directories and files that are more suitable for some
operating systems.

Create a basemap using ArcGIS for Desktop


When you create a basemap using ArcGIS for Desktop, you can set the format, tiling schemes, and levels of detail. For details, see the
online ArcGIS help topics How to create a tile package and About tile packages.

Use a local elevation source


If you are creating a Scene for offline use, your app can consume locally available raster datasets on the client to define an elevation
surface for the scene.
The following formats are supported for creating a local elevation source:
ASRP/USRP
CIB1, 5, 10
DTED0, 1, 2
GeoPackage
GeoTIFF
HFA
HRE
IMG
JPEG
JPEG 2000
NITF
PNG

Copyright 1995-2015 Esri. All rights reserved. 146


ArcGIS Runtime SDK for .NET

RPF
SRTM1, 2
See Provide a surface for a scene for more information.

Related Topics
Editing
Edit features
Sync offline edits

Copyright 1995-2015 Esri. All rights reserved. 147


ArcGIS Runtime SDK for .NET

Multiple maps
An app can contain more than one map. Most often, an additional map is used to display an overview of the area of interest that is being
studied on the main map. You can also use multiple maps to show the following:
Different layers of information about a specific area side by side.
The detail of an area based on the mouse or touch area of the main map.
The number of maps that can be shown is limited by your hardware. Screen size and graphics processing will dictate how many maps can
be practically used in your app. There is no hard limit imposed by the runtime.

Add an overview map


An overview map shows the extent of the main map at a smaller scale and provides spatial context for the area of interest. When you pan
a map looking at detail, it is easy to lose where you started or to be unable to estimate how far away you are from features that are no
longer in view.
To create an overview map, do the following:
Ensure you have a main map component with a uniquely named ID.
Define an overview map component.
Handle the extent changed event of the main map and update the overview map extent appropriately.
Optionally display a graphic on the overview map that represents the current extent of the main map.

The following XAML defines a main map and a smaller overview map (displayed in the upper-right of the page).
<Grid>
<esri:MapView x:Name="MyMapView" ExtentChanged="MyMapView_ExtentChanged">
<esri:Map>
<layers:ArcGISTiledMapServiceLayer ID="Basemap"
ServiceUri="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/>
</esri:Map>
</esri:MapView>
<esri:MapView x:Name="MyOverviewMapView"
Width="150" Height="100"
HorizontalAlignment="Right" VerticalAlignment="Top">
<esri:MapView.InteractionOptions>
<esri:InteractionOptions IsEnabled="False"/>
</esri:MapView.InteractionOptions>
<esri:Map>
<layers:ArcGISTiledMapServiceLayer ID="Basemap"
ServiceUri="http://services.arcgisonline.com/ArcGIS/rest/services/World_Shaded_Relief/MapServer"/>
</esri:Map>
</esri:MapView>
</Grid>

Copyright 1995-2015 Esri. All rights reserved. 148


ArcGIS Runtime SDK for .NET

Note: You may want to disable user interaction (panning, zooming, rotating) with the overview map so the extent
shown is always based on the extent in the main map view. Use the MapView.InteractionOptions
property as shown in the previous example to disable user interaction. See the Navigate the map topic for
more information about restricting the built-in map interaction.

Code in the ExtentChanged event for the main map updates the overview map to display the same location at a smaller scale (larger
map area).
void MyMapView_ExtentChanged(object sender, EventArgs e)
{
// display the overview map at an extent 4 times larger than the main map extent
MyOverviewMapView.SetViewAsync(MyMapView.Extent.Expand(4));
}

To display an outline representing the current extent of the main map in the overview map, you must include a graphics layer and a
graphic component in your overview map. In the extent changed event, after updating the extent of the overview map, you can set the
extent graphic to show the current extent of the main map. The following example adds an extent graphic to a graphics layer in the
overview map when the page initializes. The geometry of the graphic is then updated when the main map view extent changes.
private Graphic overviewExtentGraphic;
public MainWindow()
{
InitializeComponent();
overviewExtentGraphic = new Graphic(MyMapView.Extent,
FindResource("RedBoxSym") as SimpleFillSymbol);
var graphics = MyOverviewMapView.Map.Layers["ExtentGraphicsLayer"] as GraphicsLayer;
graphics.Graphics.Add(overviewExtentGraphic);
}

void MyMapView_ExtentChanged(object sender, EventArgs e)


{
MyOverviewMapView.SetViewAsync(MyMapView.Extent.Expand(4));
overviewExtentGraphic.Geometry = MyMapView.Extent;
}

Side-by-side maps
Side-by-side maps are a great way to show different layers of information at the same time. For example, you can compare imagery with
topographic information, display before-and-after images, or show different levels of detail side by side.
The recommended approach when sharing extents between multiple maps is to disable interaction for all but one map, and allow that
interaction to control updates to all other (dependent) maps. Map interaction is enabled by default, but can be disabled by setting the
MapView.InteractionOptions.IsEnabled property to False, as shown in the following XAML.
<esri:MapView.InteractionOptions>
<esri:InteractionOptions IsEnabled="False"/>
</esri:MapView.InteractionOptions>

You can set the extent of the dependent maps in code that handles the ExtentChanged or NavigationCompleted event.
void MapViewOne_NavigationCompleted(object sender, EventArgs e)
{
MapViewTwo.SetViewAsync(MapViewOne.Extent);
}

Detail map
Using an overview as your main map and showing detail in a separate window might be useful when you have multiple project sites
spread apart geographically. You can define each map to have different layers of information, or they can have the same map layers but
shown at a different scale.
To define a detail map that is related to a main map, the same methodology that was described for an overview map is used. The extent of
the detail map is dependent on the extent of the main map, but at a fraction of the scale. In the following example, the detail map uses a
scale of 10 percent of the main map.
void MyMainMapView_NavigationCompleted(object sender, EventArgs e)
{
var detailExtent = MyMainMapView.Extent.Expand(0.1);
MyDetailMapView.SetViewAsync(detailExtent);
MyDetailMapView2.SetViewAsync(detailExtent);
MyDetailMapView3.SetViewAsync(detailExtent);
}

The Envelope.Expand method takes a value greater than 0. Values less than 1 result in a smaller envelope, values greater than 1
produce a larger extent. In the previous example, the value of 0.1 will show the map at a much larger scale (smaller map area) than the
main map.

Copyright 1995-2015 Esri. All rights reserved. 149


ArcGIS Runtime SDK for .NET

A way to achieve a similar outcome without the addition of a second map component to your app is to use the map magnifier. The map
magnifier is a property of the map component. Although the default is false, if you add the property with a value of true to your map, when
you tap and hold on the map, a circular window appears and magnifies that area of the map.
<esri:MapView x:Name="MyMainMapView" ShowMagnifierOnTapAndHold="True">
...
</esri:MapView>

The map magnifier will only magnify the layers that are contained in the main map. If different layers are required, a second map
component is required.

Share data between map views


Sharing the same map instance simultaneously among two or more map views, or a layer instance simultaneously between maps, is not
supported and is likely to cause stability or performance issues. Working with graphics overlays or distinct feature layer instances that
share the same feature service (ServiceFeatureTable) can cause the same issues and is also not supported in multiple map views at
the same time.
If you need to reuse a Map in another MapView, you should ensure that it is then removed from the previous control. The same technique
can be used for reusing a layer instance between maps.
The following example moves a layer from one map to another.
var layer = MyMapView1.Map.Layers["MyFeatureLayer"] as FeatureLayer;

MyMapView2.Map.Layers.Add(layer); // add the layer to a new map


MyMapView1.Map.Layers.Remove(layer); // remove the layer from its original map

Note: Location display can only be enabled in a single map view in your app at a time. If you attempt to enable
location display in several map views simultaneously, it will only appear in one.
Related Topics
Navigate the map
Use a MapView to display a map

Copyright 1995-2015 Esri. All rights reserved. 150


ArcGIS Runtime SDK for .NET

Add graphics and text


Graphics are objects held in memory that store a shape (geometry) and are displayed on a map via a GraphicsLayer. Optionally,
attribute information describing a Graphic can be stored in a collection of key/value pairs. Graphics can be displayed using symbology
applied directly to the Graphic itself or with a Renderer associated with the containing GraphicsLayer.
A Graphic is a type of the abstract class Feature, which defines Geometry and Attributes properties. The Graphic class extends
the Feature class by adding members to control how it is displayed on the map, including Symbol, ZIndex, IsVisible, and
IsSelected. Unlike other types of features, such as GeodatabaseFeature, the geometry and attributes that define graphics are not
physically stored on disk. Graphics are always stored in memory, and must therefore be created programmatically.

Tip: The GeodatabaseFeature class supports conversion to a Graphic using the


AsGraphic() method.
Graphics can be used to do things such as:
Add geometries drawn interactively by the user
Highlight a selection (features returned from a query, for example)
Provide animation for data that changes quickly (such as GPS positions)
Show text on the map
Display buffer polygons around features

Add a graphics layer


A GraphicsLayer is essentially a container for Graphic objects. A Graphic can store a point, line, or polygon geometry (including a
multipart geometry), and a single GraphicsLayer can be used to display any combination of geometry types. Optionally, you can define
rendering properties for a GraphicsLayer to control how graphics are symbolized when drawn on the map.

Note: Symbology defined for individual graphics will override rendering defined for the
GraphicsLayer as a whole.
A map can contain any number of graphics layers. A GraphicsLayer, in turn, can store any number of Graphic objects in its
GraphicsCollection, exposed via the layer's Graphics property. The GraphicsCollection is useful, as it provides methods for
adding and removing individual graphics in the layer.
GraphicsLayers can be created and added to a map using XAML or code. The following examples illustrate both ways of creating and
adding a GraphicsLayer to the map.
Add a GraphicsLayer using XAML
<!-- With the following xml namespaces defined-->
<!-- xmlns:esri="using:Esri.ArcGISRuntime.Controls"
xmlns:layers="using:Esri.ArcGISRuntime.Layers"
-->
<esri:MapView x:Name="MyMapView">
<esri:Map x:Name="MyMap">
<layers:ArcGISTiledMapServiceLayer ID="BaseLayer"
ServiceUri="http://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer"/>
<layers:GraphicsLayer ID="MyGraphics"/>
</esri:Map>
</esri:MapView>

Add a GraphicsLayer using code (C#)


var graphicsLayer = new Esri.ArcGISRuntime.Layers.GraphicsLayer();
graphicsLayer.ID = "MyGraphics";
MyMap.Layers.Add(graphicsLayer);

Note: If you will need to refer to one of your map's layers in code, it's a good idea to provide a unique value for its
ID property. Since graphics can only be added programmatically, this property can be especially useful
when defining a GraphicsLayer.

The following code shows how to find an existing GraphicsLayer by ID:

Copyright 1995-2015 Esri. All rights reserved. 151


ArcGIS Runtime SDK for .NET

Locate a GraphicsLayer using its ID


var graphicsLayer = MyMap.Layers["MyGraphics"] as Esri.ArcGISRuntime.Layers.GraphicsLayer;
if (graphicsLayer == null)
{
var messageDialog = new Windows.UI.Popups.MessageDialog("A GraphicsLayer with ID 'MyGraphics' was not found");
await messageDialog.ShowAsync();
return;
}
// code here to work with the graphics layer ...

You may want to simply create and add the GraphicsLayer if it is not found in the map, as shown in the following code:
var graphicsLayer = MyMap.Layers["MyGraphics"] as Esri.ArcGISRuntime.Layers.GraphicsLayer;
if (graphicsLayer == null)
{
graphicsLayer = new Esri.ArcGISRuntime.Layers.GraphicsLayer();
graphicsLayer.ID = "MyGraphics";
MyMap.Layers.Add(graphicsLayer);
}

Once a graphics layer is in the map, you can add graphics by following this basic process:
1. Create a Graphic object and assign the Geometry you want to display. Make sure the spatial reference for the geometry
matches that of the map.
2. Define a Symbol appropriate for the type of geometry used for the graphic (for example, marker, line, or fill symbol). This step is
not required if a Renderer has been assigned to the GraphicsLayer.
3. Optionally, define and assign a collection of attributes describing the Graphic. This may be required if your GraphicsLayer
uses a renderer that depends on a specific attribute value (such as a class breaks renderer or unique value renderer).
4. Add the new Graphic to the GraphicsLayer.

Add point graphics


A Point is the most basic type of geometry, in its simplest form defined with a single pair of coordinates (x, y). As a graphic, points can be
used to represent things such as cities (at a small map scale), stops along a route, vehicles moving along a streets network, or perhaps
simply to define where a piece of text should be displayed on the map.
You can add points to a graphics layer and display them using either a SimpleMarkerSymbol or a PictureMarkerSymbol. A
SimpleMarkerSymbol allows you to display a graphic using one of a finite list of symbol types (circle, cross, diamond, square, triangle,
or x). You can further define the symbol by specifying a size, color, and optionally an outline to display around the marker (defined using a
SimpleLineSymbol, which in turn also has a color, style, and width).

A PictureMarkerSymbol symbolizes a point using an image from a local source (such as a .png file on disk or stored in your project's
resources) or from an online source (specified with a URI). Along with the image, you can also specify a rotation angle, size (width and
height), opacity, and an offset to apply when drawing the symbol.

The following example uses the MapViewTapped event on the MapView to create a Graphic at the location touched on the map. The
graphic is symbolized with a red circle and added to the GraphicsLayer.

Copyright 1995-2015 Esri. All rights reserved. 152


ArcGIS Runtime SDK for .NET

private void MyMapView_MapViewTapped(object sender, MapViewInputEventArgs e)


{
var graphicsLayer = MyMap.Layers["MyGraphics"] as Esri.ArcGISRuntime.Layers.GraphicsLayer;
if (graphicsLayer == null)
{
graphicsLayer = new Esri.ArcGISRuntime.Layers.GraphicsLayer();
graphicsLayer.ID = "MyGraphics";
MyMap.Layers.Add(graphicsLayer);
}

var mapPoint = e.Location;


var markerSym = new Esri.ArcGISRuntime.Symbology.SimpleMarkerSymbol();
markerSym.Color = Colors.Red;
markerSym.Style = Esri.ArcGISRuntime.Symbology.SimpleMarkerStyle.Circle;
markerSym.Size = 16;

var pointGraphic = new Esri.ArcGISRuntime.Layers.Graphic();


pointGraphic.Geometry = mapPoint;
pointGraphic.Symbol = markerSym;
graphicsLayer.Graphics.Add(pointGraphic);
}

Tip: For most use cases, it's recommended that you use methods on the Editor object to return geometry from
the user, rather than mouse and touch events on the MapView. An example of using the Editor
RequestShapeAsync method is shown below.

Add polyline graphics


Polylines are collections of vertices (individual x/y locations) that are connected in a particular order. The simplest Polyline is one
consisting of two vertices (a from and a to location) and the connection between them. More complex polylines can consist of several
vertices, and can be multipartcomposed of two or more (visually) distinct sets of connected vertices. Although potentially consisting of
individual parts (called paths), a Polyline is still considered a single geometry by ArcGIS.
Polylines can be added to a graphics layer and displayed using a SimpleLineSymbol. This symbol allows you to display the graphic
using one of a finite list of symbol types (dash, dash dot, dash dot dot, dot, null, or solid). You can further define the symbol by specifying
a width and a color.

The following example calls RequestShapeAsync on the Editor object to get a Polyline from the user. After the line is drawn, a
Graphic is created to display it with a dashed blue line symbol.

Copyright 1995-2015 Esri. All rights reserved. 153


ArcGIS Runtime SDK for .NET

// define a line symbol (dashed blue)


var lineSymbol = new Esri.ArcGISRuntime.Symbology.SimpleLineSymbol();
lineSymbol.Color = Windows.UI.Colors.Blue;
lineSymbol.Style = Esri.ArcGISRuntime.Symbology.SimpleLineStyle.Dash;
lineSymbol.Width = 2;

// use the MapView's Editor to get polyline geometry from the user
var line = await MyMapView.Editor.RequestShapeAsync(Esri.ArcGISRuntime.Controls.DrawShape.Polyline,
lineSymbol, null);

// create a new graphic; set the Geometry and Symbol


var lineGraphic = new Esri.ArcGISRuntime.Layers.Graphic();
lineGraphic.Geometry = line;
lineGraphic.Symbol = lineSymbol;

// add the graphic to the graphics layer


graphicsLayer.Graphics.Add(lineGraphic);

Add polygon graphics


Like polylines, a Polygon is a collection of vertices (individual x/y locations) that are connected in a particular order. The difference being
that a polygon closes to produce an area. A valid Polygon must consist of at least three vertices (the minimum needed to enclose an
area). More complex polygons can consist of many more vertices and can contain holes or be multipartcomposed of two or more
(visually) distinct sets of connected vertices. Although potentially consisting of individual parts (called rings), a Polygon is still considered
a single geometry by ArcGIS.
Polygons can be displayed with a SimpleFillSymbol or a PictureFillSymbol. A SimpleFillSymbol allows you to display a
graphic using one of a finite list of fill types (horizontal, vertical, cross, backward diagonal, forward diagonal, diagonal cross, null, or solid).
You can further define the symbol by specifying a color (for the fill) and an outline to display as the border (defined using a
SimpleLineSymbol, which in turn also has a color, style, and width).
PictureFillSymbol symbolizes a polygon using an image from a local source (such as a .png file on disk or stored in your project's
resources) or from an online source (specified with a URI). The image you specify will be repeated to complete the polygon fill. Along with
the image, you can also specify a rotation angle, size (width and height), opacity, and an offset to apply when drawing the symbol.
PictureFillSymbol also has an outline that is set with a SimpleLineSymbol.

The following examples illustrate creating polygon shapes and symbolizing them with fill symbols.

Copyright 1995-2015 Esri. All rights reserved. 154


ArcGIS Runtime SDK for .NET

Create simple polygons


The following example allows the user to define the geometry for a simple polygon by calling the Editor's RequestShapeAsync
method. After the polygon is defined, a graphic is created to display it with a red diagonal hatch pattern with a green dot outline. The
graphic is then added to the graphics layer for display on the map.
// define a line symbol (for the fill outline)
var lineSymbol = new Esri.ArcGISRuntime.Symbology.SimpleLineSymbol();
lineSymbol.Color = Windows.UI.Colors.ForestGreen;
lineSymbol.Style = Esri.ArcGISRuntime.Symbology.SimpleLineStyle.Dot;
lineSymbol.Width = 2;

// define a polygon (fill) symbol


var polySymbol = new Esri.ArcGISRuntime.Symbology.SimpleFillSymbol();
polySymbol.Style = Esri.ArcGISRuntime.Symbology.SimpleFillStyle.DiagonalCross;
polySymbol.Color = Windows.UI.Colors.Crimson;

polySymbol.Outline = lineSymbol; // apply the outline symbol


// use the MapView's Editor to get polygon geometry from the user
var poly = await MyMapView.Editor.RequestShapeAsync(Esri.ArcGISRuntime.Controls.DrawShape.Polygon,
polySymbol, null);

// create a new graphic; set the Geometry and Symbol


var polyGraphic = new Esri.ArcGISRuntime.Layers.Graphic();
polyGraphic.Geometry = poly;
polyGraphic.Symbol = polySymbol;

// add the graphic to the graphics layer


graphicsLayer.Graphics.Add(polyGraphic);

Create multipart and donut polygons


You can use multipart polygons to represent, for example, a region that consists of a number of islands or lakes. Donut polygons can be
used to represent an island, a lake, or perhaps an island that has a lake in the middle. Think of the state of Hawaii: it consists of several
individual islands but is represented on a map as a single feature.
The following is an example of a complex polygon that consists of the triangle to the west, and the rectangle with a hole in it, to the east:

Copyright 1995-2015 Esri. All rights reserved. 155


ArcGIS Runtime SDK for .NET

The important thing to note is that the entirety of these (visually distinct) shapes are conceptually one object defined as a single
geometry: a multipart polygon. The geometry shown above was constructed using the following code:
// define a picture fill symbol from a png file in the project's assets folder
var pictureSym = new Esri.ArcGISRuntime.Symbology.PictureFillSymbol();
await pictureSym.SetSourceAsync(new Uri("ms-appx:///Assets/donut.png"));

pictureSym.Height = 30.0;
pictureSym.Width = 30.0;
pictureSym.Outline = null;

// create the rectangle outline


var outsideCoords = new Esri.ArcGISRuntime.Geometry.PointCollection();
outsideCoords.Add(-290012, 7596957);
outsideCoords.Add(-287760, 7596957);
outsideCoords.Add(-287760, 7598669);
outsideCoords.Add(-290012, 7598669);

// create a hole in the rectangle


var holeCoords = new Esri.ArcGISRuntime.Geometry.PointCollection();
holeCoords.Add(-289568, 7598217);
holeCoords.Add(-288265, 7598217);
holeCoords.Add(-288265, 7597389);
holeCoords.Add(-289568, 7597389);

// define coordinates for the triangle to the west of the rectangle


var triangleCoords = new Esri.ArcGISRuntime.Geometry.PointCollection();
triangleCoords.Add(-290444, 7598224);
triangleCoords.Add(-290394, 7597281);
triangleCoords.Add(-291287, 7597942);
// use a PolygonBuilder to build the complex polygon
var complexPolygon = new Esri.ArcGISRuntime.Geometry.Polygon(outsideCoords);
var polygonBldr = new Esri.ArcGISRuntime.Geometry.PolygonBuilder(complexPolygon);
polygonBldr.Parts.AddPart(holeCoords);
polygonBldr.Parts.AddPart(triangleCoords);
// get the complex polygon (with all its parts) from the polygon builder
complexPolygon = polygonBldr.ToGeometry();
// create a new graphic; set the Geometry and Symbol
var polyGraphic = new Esri.ArcGISRuntime.Layers.Graphic();
polyGraphic.Geometry = complexPolygon;
polyGraphic.Symbol = pictureSym;
// add the graphic to the graphics layer; zoom to it
graphicsLayer.Graphics.Add(polyGraphic);
MyMapView.SetViewAsync(complexPolygon.Extent);

Add text
Add text to the map by assigning a TextSymbol to a graphic. Point graphics are best suited for displaying text, as the geometry will
define the horizontal and vertical center of the text. To modify where the text appears relative to its point geometry, use the
HorizontalTextAlignment and VerticalTextAlignment properties on the TextSymbol. A TextSymbol, however, can be
applied to a graphic of any geometry type. For Polygon or Polyline, by default the text will appear at the center of the geometry's
bounding envelope (Extent), but you can adjust the text's alignment in the same way as with point geometries.

Tip: If you want the geometry (such as a point) to appear along with the text you're going to add, you may need
to create two graphicsone to display the text (symbolized with a TextSymbol) and another to display the
point (symbolized with a SimpleMarkerSymbol or PictureMarkerSymbol). Another option is to define
labels for your graphics layer, which is described later in this topic.
The Text property on the TextSymbol stores the text you want to display. You can assign a particular Font, which includes the size,
style (italic, underlined), and weight (bold, normal) for the text. You can set the Color for the text, as well as the BackgroundColor and
Angle.

The following example adds a point and text to identify Cleveland's Rock and Roll Hall of Fame:

Copyright 1995-2015 Esri. All rights reserved. 156


ArcGIS Runtime SDK for .NET

// define the location for the point (lower left of text)


var mapPoint = new Esri.ArcGISRuntime.Geometry.MapPoint(-9094150, 5087600);
// create a text symbol: define color, font, size, and text for the label
var textSym = new Esri.ArcGISRuntime.Symbology.TextSymbol();
textSym.Color = Windows.UI.Colors.Red;
textSym.Font = new Esri.ArcGISRuntime.Symbology.SymbolFont("Arial", 16);
textSym.Text = "Rock and Roll!";
textSym.Angle = -60;

// create a marker symbol


var markerSym = new Esri.ArcGISRuntime.Symbology.SimpleMarkerSymbol();
markerSym.Color = Windows.UI.Colors.Blue;
markerSym.Style = Esri.ArcGISRuntime.Symbology.SimpleMarkerStyle.Triangle;
markerSym.Size = 12;

// create a graphic for the text (apply TextSymbol)


var textGraphic = new Esri.ArcGISRuntime.Layers.Graphic(mapPoint, textSym);
// create a graphic for the marker (apply SimpleMarkerSymbol)
var markerGraphic = new Esri.ArcGISRuntime.Layers.Graphic(mapPoint, markerSym);

// add text and marker graphics


graphicsLayer.Graphics.Add(textGraphic);
graphicsLayer.Graphics.Add(markerGraphic);

Note: The angle of the text in a TextSymbol is measured clockwise from horizontal. The Angle property
specified in the code above (-60) can also be expressed as 300.
Label a graphics layer
If you simply want to add some ad hoc text to your map, then adding a marker graphic with a TextSymbol to define the desired text and
font provides a quick and easy way to accomplish that. If, however, you want to display text for all features in a graphics layer (based on
an attribute value, for example), you need to define labeling for the GraphicsLayer.
Graphics can be labeled according to label classes. A label class defines the text to display for labels and the symbol used to display
them. Label text can be defined as any combination of hard-coded text and attribute values, and label symbology is defined using the
same TextSymbol object used for adding simple text graphics, as previously described.
GraphicsLayer has a Labeling property with a LabelClasses collection that can contain zero or several LabelClass objects. Each
LabelClass in the collection can define a unique set of labels to draw for the layer. The IsEnabled property on the Labeling class is
used to turn labels on or off by providing the appropriate Boolean value (true or false).
The following example creates an AttributeLabelClass to define labeling for restaurants displayed as point graphics. The
TextExpression property is used to define a label that shows the name of the restaurant along with its rating on a separate line. The
Symbol property defines a symbol with a blue bold font surrounded by a light blue halo. Finally, the label class is added to the graphics
layer's collection, and the IsEnabled property is set to true to display the labels.

Copyright 1995-2015 Esri. All rights reserved. 157


ArcGIS Runtime SDK for .NET

// create a new TextSymbol for displaying graphic labels


var labelSym = new Esri.ArcGISRuntime.Symbology.TextSymbol();
// define the font: Arial, 10pt, non-italic, non-underlined, bold
labelSym.Font = new Esri.ArcGISRuntime.Symbology.SymbolFont
("Arial",
10.0,
Esri.ArcGISRuntime.Symbology.SymbolFontStyle.Normal,
Esri.ArcGISRuntime.Symbology.SymbolTextDecoration.None,
Esri.ArcGISRuntime.Symbology.SymbolFontWeight.Bold);

// define the font color and halo (border)


labelSym.Color = Colors.Blue;
labelSym.BorderLineColor = Colors.LightBlue;
labelSym.BorderLineSize = 1;

// create a new LabelClass


var labelClass = new Esri.ArcGISRuntime.Layers.AttributeLabelClass();
// assign the TextSymbol
labelClass.Symbol = labelSym;

// provide a text expression:


// attribute names in [brackets]
// hard-coded text in "quotes"
// CONCAT to concatenate
// NEWLINE for line break
labelClass.TextExpression = "[Name] CONCAT NEWLINE CONCAT [Rating] CONCAT \" stars\"";
// add the new LabelClass to the GraphicsLayer's collection
graphicsLayer.Labeling.LabelClasses.Add(labelClass);

// enable labeling
graphicsLayer.Labeling.IsEnabled = true;

Render a graphics layer


As shown in the previous examples, you can define symbology for individual graphics by setting the Symbol property with the appropriate
symbol object. As an alternative, you can define symbology for the entire GraphicsLayer, which will define how all graphics contained in
the layer will be displayed. This is especially useful if the symbol used for a graphic should be determined by an attribute value.
Symbology for a GraphicsLayer is defined using a Renderer. This can be set with one of the following types of renderers:
SimpleRendererDefines a single symbol to use for all features in the layer.
ClassBreaksRendererSymbolizes graphics in the layer using classes (divisions) of a numeric attribute value.
UniqueValueRendererSymbolizes graphics using unique values for a specified attribute.
TemporalRendererSymbolizes according to a temporal (date/time) attribute.
The following example illustrates how to set up a renderer to symbolize point graphics (restaurants) according to a "FoodStyle" attribute
value (type of food served).

Copyright 1995-2015 Esri. All rights reserved. 158


ArcGIS Runtime SDK for .NET

Define a UniqueValueRenderer for a GraphicsLayer using code.


// create a new graphics layer; provide an ID
graphicsLayer = new Esri.ArcGISRuntime.Layers.GraphicsLayer();
graphicsLayer.ID = "MyGraphics";
// create symbols to use for each unique value (and for the default symbol)
// ... PictureMarkerSymbols of flags, e.g.

// create new UniqueValueInfos: provide attribute value (food type) and symbol to use
var info1 = new Esri.ArcGISRuntime.Symbology.UniqueValueInfo("Chinese", chineseSym);
var info2 = new Esri.ArcGISRuntime.Symbology.UniqueValueInfo("American", americanSym);
var info3 = new Esri.ArcGISRuntime.Symbology.UniqueValueInfo("Italian", italianSym);

// create a UniqueValueCollection and add the unique value infos


var uniqueInfos = new Esri.ArcGISRuntime.Symbology.UniqueValueInfoCollection();
uniqueInfos.Add(info1);
uniqueInfos.Add(info2);
uniqueInfos.Add(info3);

// create a UniqueValueRenderer: specify the attribute field to render with ("FoodStyle")


var uniqueRenderer = new Esri.ArcGISRuntime.Symbology.UniqueValueRenderer();
uniqueRenderer.Fields = new System.Collections.ObjectModel.ObservableCollection<string>(new[] { "FoodStyle" });

// provide the unique value collection


uniqueRenderer.Infos = uniqueInfos;
// assign the default symbol to use for values that are not defined in the info collection
uniqueRenderer.DefaultSymbol = defaultSym; // a black "X", e.g.

// assign the renderer to the graphics layer and add the layer to the map
graphicsLayer.Renderer = uniqueRenderer;
MyMap.Layers.Add(graphicsLayer);

The following is an example of point graphics displayed with a unique value renderer and symbolized with picture marker symbols.

For the renderer example above to display graphics as expected, the graphics must have a "FoodStyle" attribute. The following example
shows how to add attributes when creating a graphic:
var attributes = new Dictionary<string, object>();
attributes.Add("Name", "Dougherino's");
attributes.Add("Address", "123 Center Street");
attributes.Add("Rating", 8.5);
attributes.Add("FoodStyle", "Italian");
var markerGraphic = new Esri.ArcGISRuntime.Layers.Graphic(mapPoint, attributes);

A ClassBreaksRenderer can be used to display graphics according to discrete ranges of an attribute value. The following example
illustrates how to create a ClassBreaksRenderer at design time with XAML to display three classes of restaurant points according to
their rating: 0-5, 5-8, 8-10.
<!-- With the following xml namespace defined-->
<!-- xmlns:sym="using:Esri.ArcGISRuntime.Symbology"
-->
<Grid.Resources>
<!--Define the renderer and its symbols in the Resources section-->
<sym:SimpleMarkerSymbol x:Key="AvoidMarkerSym" Color="Red" Style="X" Size="10"/>
<sym:SimpleMarkerSymbol x:Key="OkMarkerSym" Color="Yellow" Style="Circle" Size="12"/>
<sym:SimpleMarkerSymbol x:Key="GoodMarkerSym" Color="Green" Style="Circle" Size="14"/>
<sym:SimpleRenderer x:Key="SR" Symbol="{StaticResource AvoidMarkerSym}"/>
<sym:ClassBreaksRenderer x:Key="RestaurantRatingRenderer" Field="Rating">
<sym:ClassBreakInfoCollection>
<sym:ClassBreakInfo Symbol="{StaticResource AvoidMarkerSym}" Minimum="0.0" Maximum="5.0"/>
<sym:ClassBreakInfo Symbol="{StaticResource OkMarkerSym}" Minimum="5.1" Maximum="8.0"/>
<sym:ClassBreakInfo Symbol="{StaticResource GoodMarkerSym}" Minimum="8.1" Maximum="10.0"/>
</sym:ClassBreakInfoCollection>
</sym:ClassBreaksRenderer>
</Grid.Resources>
<!-- ... -->
<!-- Apply the Renderer in the XAML for the GraphicsLayer-->
<esri:GraphicsLayer ID="MyGraphics" Renderer="{StaticResource RestaurantRatingRenderer}"/>

Copyright 1995-2015 Esri. All rights reserved. 159


ArcGIS Runtime SDK for .NET

Manipulating graphics
Once a graphics layer has been added to the map and populated with various graphics, you may need to further manipulate the graphics
by removing or reording them, allowing the user to select or unselect them, or moving them around the map.

Remove or reorder graphics


A GraphicsLayer stores its Graphic objects in a GraphicsCollection object, which is available via the Graphics property. The
GraphicsCollection has methods for adding and removing graphics in the collection.
Likewise, the Graphic object allows you to alter its draw order on the map (move to the front or back of the display for example) or to
update its position on the map.
The following example illustrates using the RemoveAt method on GraphicsCollection to remove the oldest graphic (using its index
position in the collection) if there are at least three graphics:
if (graphicsLayer.Graphics.Count >= 3)
{
graphicsLayer.Graphics.RemoveAt(0);
}

Similarly, the Remove method will remove a graphic from the collection, taking a graphic object as an argument, rather than its index
position. The following example verifies that the graphic exists in the collection before removing it:
if (graphicsLayer.Graphics.Contains(this.myGraphic))
{
graphicsLayer.Graphics.Remove(this.myGraphic);
}

When drawing several graphics within a single graphics layer, you may need to move certain graphics to display on top of others.
Perhaps you need to emphasize graphics with a particular attribute, such as restaurants of a particular type, for example. To make sure
those graphics draw on top, you can give a value for each graphic's ZIndex property that is larger than the other graphics' ZIndex
values. Since ZIndex defaults to 0, you can set a value of 1 to move a graphic above the others.
The following example shows how to display selected graphics on top of all others in the layer (assuming all graphics in the layer have
the default value of 0 for ZIndex):
foreach (var graphic in graphicsLayer.SelectedItems)
{
graphic.ZIndex = 1;
}

Animate point graphics


One powerful application of graphics is to display updated positions for features that are moving on the map. A common use is to track
people or vehicles, represented as points on the map, via a GPS signal. To change a graphic's position on the map, you need to update
its Geometry. For a point graphic, the most efficient way to do this is using the MoveTo method on the underlying Point.
The example described below uses a System.Threading.Timer to update the location of all point graphics in the layer at a given
time interval.
First, a System.Threading.Timer is initialized and set to run a specified function every tenth of a second (100 milliseconds). A
private Boolean variable is also declared to act as a flag that determines when animation code should run. The constructor for the
Timer takes a callback function and an integer representing the interval (milliseconds) at which the callback will be executed.

Copyright 1995-2015 Esri. All rights reserved. 160


ArcGIS Runtime SDK for .NET

private System.Threading.Timer timer;


private bool animate;
public MainPage()
{
this.InitializeComponent();
animate = false;
timer = new System.Threading.Timer(timer_Tick, null, 0, 100); // run "timer_Tick" every 100 milliseconds
}

Next, the timer's callback function,timer_Tick, is used to loop through all graphics. For point graphics, a random value between 0 and
1 is multiplied by 50 map units (meters for example) to create an x and a y offset. The MoveTo method is then called on the underlying
Point to update the graphic's position with the new coordinate values. Notice that if the animate flag is false, the callback will not run.
This flag can be used to start and stop animation as required.
private async void timer_Tick(object state)
{
if (!animate) { return; }

await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>


{
var graphicsLayer = MyMap.Layers["MyGraphics"] as Esri.ArcGISRuntime.Layers.GraphicsLayer;
foreach (var g in graphicsLayer.Graphics)
{
var point = g.Geometry as Esri.ArcGISRuntime.Geometry.MapPoint;
if (point != null)
{
var rnd = new Random();
var deltaX = rnd.NextDouble();
var deltaY = rnd.NextDouble();
var newX = point.X + (deltaX * 50.0);
var newY = point.Y + (deltaY * 50.0);

point.MoveTo(newX, newY);
}
}
});

Note: To marshal between the UI thread and the worker thread that System.Threading.Timer is running on,
you'll need to call RunAsync on the application's Dispatcher as shown above.

Tip: Using MoveTo is more efficient that completely updating the graphic's geometry (that is, replacing it with a
new MapPoint). When animating many graphics on the map, MoveTo will perform better.
Finally, a button click is used to start the animation by setting the value of the animate flag to true. This code toggles the Boolean
value of the flag, so a second click can be used to stop the animation.
private void AnimateButton_Click(object sender, RoutedEventArgs e)
{
// toggle the value of the animate flag
this.animate = !this.animate;
this.AnimateButton.Content = this.animate ? "Stop Animation" : "Start Animation";
}

Note: Because positive x and y offsets are always being added to the current coordinate values, the code above
will always move points in a northeasterly direction. To better randomize the movement, you can randomly
negate the value of deltaX and deltaY.

Related Topics
Features and graphics
Search for features
Symbols and renderers

Copyright 1995-2015 Esri. All rights reserved. 161


ArcGIS Runtime SDK for .NET

Label map features


Features and graphics in your ArcGIS Runtime SDK app can be labeled using a combination of attribute values and hard-coded text.
Labeling properties allow you to specify placement options, label priority, and symbols for labels in your layer. You can define any number
of label classes for a layer to set unique labels for distinct groups of features.

Define labels for features or graphics


Feature layers, graphics layers, and graphics overlays all have labeling properties that can be used to show or hide labels in the map and
to control labeling behavior. A label class is used to specify what labels look like (font, size, color, angle, and so on), at which scales they
should be visible, the text to display (which attributes, for example), as well as which features should be labeled. If you want to label all
features in your layer the same way, you can define labeling with a single label class. If you want to display different labels for different
types of features, you can add as many label classes as you need to define distinct sets of features for labeling.

Note: In each of the code examples in this topic, the following XML namespace references
are assumed:
xmlns:esri="using:Esri.ArcGISRuntime.Controls"
xmlns:lyr="using:Esri.ArcGISRuntime.Layers"
xmlns:data="using:Esri.ArcGISRuntime.Data"
xmlns:sym="using:Esri.ArcGISRuntime.Symbology"

The following example uses a single label class for all point features (United States cities). All labels use the same symbol and attribute
(areaname).
<lyr:FeatureLayer ID="Cities" >
<data:ServiceFeatureTable ServiceUri="http://sampleserver5.arcgisonline.com/arcgis/rest/services/USA/MapServer/0"/>
<lyr:FeatureLayer.Labeling>
<lyr:LabelProperties IsEnabled="True">
<lyr:AttributeLabelClass TextExpression="[areaname]" LabelPlacement="PointAboveCenter">
<sym:TextSymbol Color="white">
<sym:SymbolFont FontFamily="Segoe" FontSize="14" FontWeight="Bold"/>
</sym:TextSymbol>
</lyr:AttributeLabelClass>
</lyr:LabelProperties>
</lyr:FeatureLayer.Labeling>
</lyr:FeatureLayer>

Note: Attribute values in a labeling expression are identified by placing the attribute field name in
square brackets.

There are several aspects of label behavior that you can control for a label class.
TextA label expression can be used to determine the text to display for each feature in the label class. The label text can come
from a combination of available attributes and hard-coded text. A label showing length in feet stored in an attribute named
length_ft, for example, may look like this: [length_ft] CONCAT \" feet\". A feature with a length_ft value of 343
would result in a label of 343 feet.
Tip: Label expressions are evaluated on the server and use the keywords and syntax described in the
ArcGIS Server REST API documentation.

SymbolThe font, size, color, angle, and so on, used to display labels in the class. You can also provide a border or background
for the label symbol.
Maximum scaleThe largest scale at which labels in the class are shown. This value represents the scale denominator for the
zoomed-in scale; a value of 0 means a maximum scale is not applied.

Copyright 1995-2015 Esri. All rights reserved. 162


ArcGIS Runtime SDK for .NET

Minimum scaleThe smallest scale at which labels in the class are shown. This value represents the scale denominator for the
zoomed-out scale; a value of 0 means a minimum scale is not applied.
PlacementLabels can be placed at a specified position relative to the features they describe. There are different options for
placement depending on the geometry of the feature being labeled. Line features, for example, may have labels placed above the
center of the line, below the center of the line, above the end point, and so on.
PositionLogic for positioning labels can be controlled using a variety of options, such as whether they should be allowed to
overlap with features in the layer.
PriorityA label class can be given a priority relative to other labels in the layer. If labels from different classes conflict in their
placement, the label from the highest-priority class will be displayed.
WHERE clauseThe features that belong in a label class are determined by evaluating an attribute expression. If using a single
label class for a layer, there is no need to explicitly define this expression. When using multiple label classes, however, it's
important to define WHERE clauses that uniquely assign features for each class.
Creating multiple label classes is useful when you want to distinguish labels for certain types of features on the map. When labeling cities,
for example, you may want to display capital cities with a larger font or different color. The following example uses two label classes to
make labels for state capitals stand out.
<lyr:FeatureLayer ID="Cities" >
<data:ServiceFeatureTable ServiceUri="http://sampleserver5.arcgisonline.com/arcgis/rest/services/USA/MapServer/0"/>
<lyr:FeatureLayer.Labeling>
<lyr:LabelProperties IsEnabled="True">
<lyr:AttributeLabelClass WhereClause="capital = 'N'" TextExpression="[areaname]" LabelPlacement="PointAboveCenter">
<sym:TextSymbol Color="OldLace">
<sym:SymbolFont FontFamily="Segoe" FontSize="14" FontWeight="Bold"/>
</sym:TextSymbol>
</lyr:AttributeLabelClass>
<lyr:AttributeLabelClass WhereClause="capital = 'Y'" TextExpression="[areaname]" LabelPlacement="PointAboveCenter">
<sym:TextSymbol Color="white">
<sym:SymbolFont FontFamily="Segoe" FontSize="18" FontWeight="Bold"/>
</sym:TextSymbol>
</lyr:AttributeLabelClass>
</lyr:LabelProperties>
</lyr:FeatureLayer.Labeling>
</lyr:FeatureLayer>

Label visibility can be controlled for individual label classes or for the entire layer (all label classes). Labels are not displayed when layer
features are not visible.

Define labels for a dynamic layer


Labels for dynamic layers can be controlled in much the same way as labels for feature and graphics layers. Dynamic layers have drawing
options that include label information for each layer displayed from the service. Dynamic label information can be used to define the
symbol, labeling expression, placement options, and so on. You can also use WHERE expressions to define different groups of labels for
the layer.
The following example displays labels for cities in the United States that have a population greater than 50,000.

Copyright 1995-2015 Esri. All rights reserved. 163


ArcGIS Runtime SDK for .NET

<lyr:ArcGISDynamicMapServiceLayer x:Name="dynamicLayer" ID="USA"


ServiceUri="http://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer">
<!-- city label info -->
<lyr:ArcGISDynamicMapServiceLayer.LayerDrawingOptions>
<lyr:LayerDrawingOptionCollection>
<lyr:LayerDrawingOptions LayerID="0" ShowLabels="True">
<lyr:LayerDrawingOptions.LabelingInfos>
<lyr:DynamicLabelingInfo LabelExpression="[areaname]" LabelPlacement="PointAboveRight" Where="pop2000 > 50000">
<lyr:DynamicLabelingInfo.Symbol>
<sym:TextSymbol Color="Beige">
<sym:TextSymbol.Font>
<sym:SymbolFont FontFamily="Arial" FontSize="12" FontStyle="Italic" FontWeight="Bold" />
</sym:TextSymbol.Font>
</sym:TextSymbol>
</lyr:DynamicLabelingInfo.Symbol>
</lyr:DynamicLabelingInfo>
</lyr:LayerDrawingOptions.LabelingInfos>
</lyr:LayerDrawingOptions>
</lyr:LayerDrawingOptionCollection>
</lyr:ArcGISDynamicMapServiceLayer.LayerDrawingOptions>

</lyr:ArcGISDynamicMapServiceLayer>

You can also work with the DynamicLabelingInfo class programmatically. The following example adds a new set of labels for cities
with a population less than 50,000.
// Minor city label info
DynamicLabelingInfo minorCityLabelInfo = new DynamicLabelingInfo();
minorCityLabelInfo.LabelExpression = "[areaname]";
minorCityLabelInfo.LabelPlacement = LabelPlacement.PointAboveCenter;
minorCityLabelInfo.Symbol = new Esri.ArcGISRuntime.Symbology.TextSymbol()
{
Color = Colors.Black,
Font = new SymbolFont("Arial", 12, SymbolFontStyle.Normal, SymbolTextDecoration.None, SymbolFontWeight.Normal)
};
minorCityLabelInfo.Where = "pop2000 <= 50000";
minorCityLabelInfo.MaxScale = 0;
minorCityLabelInfo.MinScale = 5000000;

// Add minor city label info


var labelInfos = dynamicLayer.LayerDrawingOptions[0].LabelingInfos;
labelInfos.Add(minorCityLabelInfo);

Related Topics
Display map overlays
Add graphics and text

Copyright 1995-2015 Esri. All rights reserved. 164


ArcGIS Runtime SDK for .NET

Display map overlays


The MapView control has an Overlays collection that can be populated with a reasonable number of UI elements to display on top of the
map. These elements are commonly used to display custom labels for locations you want to emphasize on the map, to display attribute
information for a feature clicked by the user, and so on. You can update overlay element position and visibility to display them when and
where they are appropriate for your app. Since an overlay can contain a combination of FrameworkElement objects, you can build
sophisticated UI elements that contain text, images, controls, and more.

Caution: Map overlays are designed to display a limited number of elements on the map. Displaying too many items
in the map overlays collection will produce poor display performance for your app.
When to use overlays
ArcGIS Runtime SDK for .NET provides several options for rendering things on a map. Each display option is designed to accommodate
specific use cases that your app may require, and to ensure optimal performance for your app. You should know the advantages and
drawbacks for each display option so you can use the proper tool for each scenario. The following descriptions provide an overview of the
options available for displaying dynamic content in the map view.
Map overlaysUsed to display UI elements anchored to a location on the map (often called MapTips). They are built from
FrameworkElement objects and require more resources to render than features or graphics. Map overlays give you the ability to
design rich UI elements combining text, images, and various controls and are designed to display a small number of elements
over the map (less than 20 or so). Map overlay elements always display on top of any other objects displayed in the map view.
Graphics overlaysAllow you to associate a collection of Graphic elements with the MapView. Graphics have geometry and
attributes that are stored in memory; consequently, they must be built programmatically and aren't persisted. A
GraphicsOverlay always displays on top of all layers in the map but below any map overlay elements. It displays over any Map
you put in the map view and will automatically adjust if the spatial reference changes. While a graphics overlay can display more
elements than a map overlay, because they are stored in memory, graphics overlays are designed to display a moderate number
of features that belong more with your app rather than with a particular map. A GraphicsOverlay is best suited for displaying
map information that is specific to the current user session or things that need to be displayed temporarily. Showing query results
or buffer polygons on the map are examples suited to using a GraphicsOverlay.
Note: Because they are not in the map, graphics in overlays will not appear in a map's legend or be
displayed when the map is printed.

Graphic layersAlso contain a collection of Graphic elements but differ from a GraphicsOverlay because the graphics are
used to represent data in the Map rather than temporary elements in the MapView. A GraphicsLayer is added to a map's layer
collection, and the position of graphics within the map display depends on the position of the layer within the collection. If added as
the last layer in the collection, a GraphicsLayer will display on top of all other layers in the map but below any graphics overlays
or map overlay elements. Tracking a fleet of vehicles or showing stops along a route are examples suited to using a
GraphicsLayer.
Feature layersDisplay a collection of Feature objects. A Feature is similar to a Graphic in that they both have geometry and
attributes that describe a location (as a point, line, or polygon). Unlike graphics, which are stored in memory, features are stored
physically in a table and are persisted between sessions. For this reason, features are better suited for displaying a common set of
data to all users of your app and between user sessions. Using features instead of graphics can dramatically reduce memory
usage and are ideal for working with large datasets and on devices that have limited memory available. A FeatureLayer
provides the best available performance and is designed to display several thousands of features quickly and efficiently.
Note: For a more detailed comparison of features and graphics, see the Features and
graphics topic.

Define a basic map overlay


The map overlay collection is managed by the OverlayItemsControl, which contains standard .NET UI elements. Any type of
FrameworkElement can be used as an overlay element in the control. A basic map overlay can consist of a single element, such as a
TextBlock or Image, or you can build more complex overlay elements using container controls, such as Grid, Canvas, Border, and
so on, to contain a group of controls.
Elements can be added to the map overlay collection at design time using XAML or at run time using code. The map location of an overlay
cannot be defined in XAML, it can only be set in your code. The following example uses XAML to add a TextBlock to the overlay
collection of the MapView. At run time, you can use code to set the overlay anchor point to display the text at the desired location.

Copyright 1995-2015 Esri. All rights reserved. 165


ArcGIS Runtime SDK for .NET

Note: In each of the code examples in this topic, the following xml namespace references
are assumed:
xmlns:esri="using:Esri.ArcGISRuntime.Controls"
xmlns:lyr="using:Esri.ArcGISRuntime.Layers"

<esri:MapView x:Name="mapView">
<esri:Map>
<lyr:ArcGISTiledMapServiceLayer
ServiceUri="http://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer" />
</esri:Map>

<esri:MapView.Overlays>
<esri:OverlayItemsControl>
<TextBlock x:Name="utahMapTip"
Text="Somewhere in Utah"
FontWeight="Bold" Foreground="White"
Visibility="Collapsed"/>
</esri:OverlayItemsControl>
</esri:MapView.Overlays>
</esri:MapView>

Use code to position your map overlay when the app is running. You may want to show an overlay when the user clicks a location on the
map or in response to some other UI interaction. You may want to show an overlay when the application initializes, as shown in the
following example:
public MainPage()
{
this.InitializeComponent();
// handle the Loaded event for the MapView to position the map overlay
this.MyMapView.Loaded += SetMapTip;
}

void SetMapTip(object sender, RoutedEventArgs e)


{
// get the overlay element (should only be one in the collection)
var utahMapTip = this.MyMapView.Overlays.Items[0] as FrameworkElement;
if (utahMapTip == null) { return; }
// create a map point for the overlay position
var utahPoint = new Esri.ArcGISRuntime.Geometry.MapPoint(-112.19568, 39.056601, Esri.ArcGISRuntime.Geometry.SpatialReferences.Wgs84);
// call a static method on MapView to set the attached OverlayAnchor property
Esri.ArcGISRuntime.Controls.MapView.SetViewOverlayAnchor(utahMapTip, utahPoint);

// make the overlay element visible


utahMapTip.Visibility = Visibility.Visible;
}

The following example creates and positions the same overlay using code:
var tb = new TextBlock();
tb.Foreground = new SolidColorBrush(Colors.White);
tb.FontWeight = FontWeights.Bold;
tb.Text = "Somewhere in Utah";

var geoPoint = new Esri.ArcGISRuntime.Geometry.MapPoint(-112.19568, 39.05660, Esri.ArcGISRuntime.Geometry.SpatialReferences.Wgs84);


this.MyMapView.Overlays.Items.Add(tb);
Esri.ArcGISRuntime.Controls.MapView.SetViewOverlayAnchor(tb, geoPoint);

In the previous example, the location of the overlay element is set by calling a static method on the MapView class. This is because the
ViewOverlayAnchor property is an attached property defined in the map view. To get the current location of an overlay element, call
MapView.GetViewOverlayAnchor, and pass in a reference to the overlay element. To set a new position, call
MapView.SetViewOverlayAnchor, and pass in the element and a map point for the new location. This is the technique you'll use when
moving an overlay according to user interaction, such as a tap or mouse click on the map.

Copyright 1995-2015 Esri. All rights reserved. 166


ArcGIS Runtime SDK for .NET

Define a map overlay composed of several elements


If you need to display more than a single piece of information in a map overlay element, such as text and an image, for example, you can
create your overlay with a container control. Container controls are elements such as Grid, Canvas, and Border. They allow you to
group several controls as a single map overlay element.
The following example creates a Grid element to display two text blocks and an image:
<esri:MapView x:Name="mapView">
<esri:Map>
<lyr:ArcGISTiledMapServiceLayer
ServiceUri="http://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer" />
</esri:Map>

<esri:MapView.Overlays>
<esri:OverlayItemsControl>
<Grid x:Name="ferneyOverlay"
HorizontalAlignment="Right" VerticalAlignment="Top"
MaxWidth="200"
Visibility="Collapsed">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="20" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="20" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

<Border Background="#CC000000" BorderThickness="1,1,1,0" Margin="0,0,0,-1" BorderBrush="White" Grid.ColumnSpan="2">


<StackPanel Margin="10">
<TextBlock Text="Ferney-Voltaire" FontWeight="Bold" Foreground="White" />
<Image Width="200">
<Image.Source>
<BitmapImage DecodePixelWidth="200"
UriSource="http://upload.wikimedia.org/wikipedia/commons/thumb/b/b6/Voltaire_statue%2C_Ferney.JPG/220px-Voltaire_statue%2C_Ferney.JPG" />
</Image.Source>
</Image>
<TextBlock TextWrapping="Wrap" Foreground="White"
Text="Les opinions ont plus caus de maux sur ce petit globe que la peste et les tremblements de terre. -Voltaire"/>
</StackPanel>
</Border>
<Path StrokeThickness="1" Fill="#CC000000" Stroke="White" Stretch="Fill" HorizontalAlignment="Left" Data="M0,0 L0,1 1,0" Grid.Row="1" />
<Path StrokeThickness="1" Fill="#CC000000" Stroke="White" Stretch="Fill" VerticalAlignment="Top" Data="M0,0 L1,0" Grid.Row="1" Grid.Column="1" />
</Grid>
</esri:OverlayItemsControl>
</esri:MapView.Overlays>
</esri:MapView>

The location of the overlay can be defined at run time. The following example shows how to find specific map overlay elements by name
and set their position:
MapPoint overlayLocation = null;
// find each overlay element from the MapView using its name
var ferneyTip = this.MyMapView.FindName("ferneyOverlay") as FrameworkElement;
var utahTip = this.MyMapView.FindName("utahMapTip") as FrameworkElement;
// if the overlay element is found, set its position and make it visible
if (ferneyTip != null)
{
overlayLocation = new Esri.ArcGISRuntime.Geometry.MapPoint(6.1081, 46.2558, Esri.ArcGISRuntime.Geometry.SpatialReferences.Wgs84);
Esri.ArcGISRuntime.Controls.MapView.SetViewOverlayAnchor(ferneyTip, overlayLocation);
ferneyTip.Visibility = Visibility.Visible;
}

if (utahTip != null)
{
overlayLocation = new Esri.ArcGISRuntime.Geometry.MapPoint(-112.19568, 39.05660, Esri.ArcGISRuntime.Geometry.SpatialReferences.Wgs84);
Esri.ArcGISRuntime.Controls.MapView.SetViewOverlayAnchor(utahTip, overlayLocation);
utahTip.Visibility = Visibility.Visible;
}

Caution: You may be tempted to get a reference to your overlay element in your code behind using syntax such as
var overlay = this.MyOverlayElement. Although this will work at design time, and you will not get
build errors when running, the reference (for example, overlay variable) will be null when your app runs.
This is because objects inside the MapView control are not in the page's control hierarchy and, therefore,
cannot be referenced from the page. Instead, you must use the FindName method on your map view to get
a reference to a specific overlay element as shown in the previous example.

Copyright 1995-2015 Esri. All rights reserved. 167


ArcGIS Runtime SDK for .NET

Using a container element as your map overlay gives you more options for formatting backgrounds and borders. In the previous example,
a dark background color makes the text more readable. Border and Path elements are used to create a callout effect and to help
pinpoint the map location associated with the overlay element.

Update an overlay at run time


You may need to move a map overlay element or update its contents while your app is running. Your overlay may be acting as an identify
dialog, for example, displaying information for features as they are clicked on the map. Since they are familiar XAML FrameworkElement
objects, overlay elements can also be shown or hidden as appropriate by setting their Visibility property.

Update overlay content


If your overlay will show the same information, but for different Feature objects as the app runs, you can use data binding to specify
which attributes to display. When the user selects a new Feature in the map, you can change the data binding to show updated
attribute information.
The following example shows XAML that creates a map overlay with data binding to display attribute information. The data context in
this example will be a Graphic object (a type of Feature) and will be set when the app runs.
<Border x:Name="countyMapTip" Background="#CC000000" BorderThickness="1" BorderBrush="White">
<StackPanel Margin="10">
<TextBlock Text="{Binding Attributes[name]}"
FontWeight="Bold" FontSize="26" Foreground="White" />
<TextBlock Text="{Binding Attributes[state_name]}"
FontSize="16" Foreground="LightGoldenrodYellow" />
</StackPanel>
</Border>

If the data context was from point features, you could also bind the overlay anchor position to the Geometry property using XAML as
shown in the following example. The ViewBase.ViewOverlayAnchor property requires a point, so this binding will not work for
polygon or polyline features.
<Border x:Name="countyMapTip" Background="#CC000000" BorderThickness="1" BorderBrush="White"
esri:ViewBase.ViewOverlayAnchor="{Binding Geometry}">
<StackPanel Margin="10">
<TextBlock Text="{Binding Attributes[name]}"
FontWeight="Bold" FontSize="26" Foreground="White" />
<TextBlock Text="{Binding Attributes[state_name]}"
FontSize="16" Foreground="LightGoldenrodYellow" />
</StackPanel>
</Border>

To update the information in the overlay, you need to set the data context for the countyMapTip element with a Graphic object. To
show the information, the Graphic must have name and state_name attributes.

Tip: If a property is not available in an object used in your binding, the data will not appear for the bound
properties, but an exception will not be thrown by the app. To track down data binding issues, check the
Visual Studio Output window as the app is running your data binding code. Messages regarding data
binding issues will be shown here.

Copyright 1995-2015 Esri. All rights reserved. 168


ArcGIS Runtime SDK for .NET

The following example queries a map service layer of United States counties with a point clicked by the user. If the query returns a
result, the graphic is bound to the map overlay element (countyMapTip). The data binding defined for this element in the previous
example displays name and state_name attributes for the graphic.
private async void mapView_Tapped(object sender, TappedRoutedEventArgs e)
{
// get the map overlay element by name
var mapOverlay = this.MyMapView.FindName("countyMapTip") as FrameworkElement;
// get the location tapped on the map
var screenPoint = e.GetPosition(this.MyMapView);
var mapPoint = this.MyMapView.ScreenToLocation(screenPoint);
// create a task to query the US counties layer with the map point
var uri = new Uri("http://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer/3");
var queryTask = new Esri.ArcGISRuntime.Tasks.Query.QueryTask(uri);

var query = new Esri.ArcGISRuntime.Tasks.Query.Query(mapPoint);


query.OutFields.Add("name");
query.OutFields.Add("state_name");
query.ReturnGeometry = false;

// execute the query and check for a result


var result = await queryTask.ExecuteAsync(query);
if (result.FeatureSet.Features.Count > 0)
{
// get the first feature in the results
var feature = result.FeatureSet.Features[0];
// verify that the overlay was found
if (mapOverlay != null)
{
// set its data context with the feature
mapOverlay.DataContext = feature;
}
}
}

The previous example works well to update the information displayed in the overlay but does not update the overlay position on the map
(anchor point).

Move a map overlay element


A map overlay element can be moved by assigning a new anchor point, which is defined as an attached property on the MapView class.
The anchor point is defined in map units. The following syntax is used to get or set the anchor location for an overlay element:
// get the current anchor location
// -find the overlay element by name
var myOverlayElement = this.MyMapView.FindName("mapTipOverlay") as FrameworkElement;

// -pass in the UI Element (must be in the current MapView's overlay collection)


// -get back a MapPoint object
var mapPoint = MapView.GetViewOverlayAnchor(myOverlayElement);

// set a new anchor location


// -pass in the UI Element (must be in the current MapView's overlay collection)
// -pass in a MapPoint that defines the new location
MapView.SetViewOverlayAnchor(myOverlayElement, updatedMapPoint);

To use the attached properties described in the previous example, you need to pass in a reference to the FrameworkElement that
serves as your map overlay. Use the FindName method on the MapView (defined on the FrameworkElement base class) to get the
overlay element using the name you assigned in XAML.

Copyright 1995-2015 Esri. All rights reserved. 169


ArcGIS Runtime SDK for .NET

The following example builds on code in a previous example to move the MapTip element (countyMapTip) to the location clicked by
the user. The overlay element will also be shown or hidden depending on whether or not a feature was found by the click.
private async void mapView_Tapped(object sender, TappedRoutedEventArgs e)
{
// get the map overlay element by name
var mapOverlay = this.MyMapView.FindName("countyMapTip") as FrameworkElement;

// get the location tapped on the map


var screenPoint = e.GetPosition(this.MyMapView);
var mapPoint = this.MyMapView.ScreenToLocation(screenPoint);

// create a task to query the US counties layer with the map point
var uri = new Uri("http://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer/3");
var queryTask = new Esri.ArcGISRuntime.Tasks.Query.QueryTask(uri);

var query = new Esri.ArcGISRuntime.Tasks.Query.Query(mapPoint);


query.OutFields.Add("name");
query.OutFields.Add("state_name");
query.ReturnGeometry = false;
// execute the query and check for a result
var result = await queryTask.ExecuteAsync(query);
if (result.FeatureSet.Features.Count > 0)
{
// get the first feature in the results
var feature = result.FeatureSet.Features[0];
// verify that the overlay was found
if (mapOverlay != null)
{
// set its data context with the feature
mapOverlay.DataContext = feature;
// move it to the point clicked by the user
Esri.ArcGISRuntime.Controls.MapView.SetViewOverlayAnchor(mapOverlay, mapPoint);
// show it
mapOverlay.Visibility = Windows.UI.Xaml.Visibility.Visible;
}
}
}

For samples that illustrate the use of map overlays, including the display of MapTips for a feature layer, see the ArcGIS Runtime SDK
for .NET samples repository.

Related Topics
Add graphics and text
Label map features

Copyright 1995-2015 Esri. All rights reserved. 170


ArcGIS Runtime SDK for .NET

Show device location


The ArcGIS Runtime SDK contains classes that allow you to display your current location as a point on the map with minimal development
effort. You can also create custom classes to act as location providers in your app by accessing peripheral devices (connected via serial
port or Bluetooth) such as GPS, laser range finders, and so on.

Overview of the location classes


The following classes for showing device location are available in the Esri.ArcGISRuntime.Location namespace:
LocationDisplayUsed to set the MapView.LocationDisplay property, this class contains properties for defining the
location provider, location symbols, the auto pan mode to use when the location changes, and so on. Location display can be
enabled and disabled as needed in your app.
LocationInfoContains location information received from the location provider. It contains properties that describe the
position (map point), speed, positional accuracy, and course (heading) for the current location.
SystemLocationProviderLocation provider built in to the device. This is the default location provider if one is not explicitly
specified. You can handle the LocationChanged event to get new locations as they come in from the provider.
LocationDisplay is the class that you'll use to enable location tracking in your app and to set display preferences. The following are
some of the common properties you'll use:
AutoPanModeDescribes how the map should react when a new location is displayed: Off (the map does not pan to the current
location), Default (the map recenters the display on the current location), or Navigation (the map pans and rotates to show
the current location at the center of the map with the heading towards the top of the display).
CourseSymbolThe MarkerSymbol used to display the current location when it is moving.
DefaultSymbolThe MarkerSymbol used to display the current location when it is stationary.
IsEnabledWhether or not the location is currently being displayed.
IsPingAnimationEnabledWhether or not an animation is displayed as new locations are received.
LocationProviderClass that implements the ILocationProvider interface to provide location updates. By default, this is
the SystemLocationProvider but can be set to a custom location provider.

Define location display


Location display can be defined at design time using XAML or at run time with C# or VB.NET. A common workflow is to use XAML to
define location display properties for your app, and then work with location programmatically to start or stop location tracking, handle
location changed events, and so on. To display and update the current location on the map, however, requires no additional code. The
following example defines location display for the map view using XAML. Static resources are defined in the page for symbols used for
location display.
<Window.Resources>
<sym:SimpleMarkerSymbol x:Key="NotMovingMarkerSym" Color="Red" Style="X" Size="16"/>
<sym:SimpleMarkerSymbol x:Key="MovingMarkerSym" Color="Blue" Style="Circle" Size="12"/>
</Window.Resources>
...
<esri:MapView x:Name="MyMapView">
<esri:MapView.LocationDisplay>
<esri:LocationDisplay
AutoPanMode="Navigation"
DefaultSymbol="{StaticResource NotMovingMarkerSym}" CourseSymbol="{StaticResource MovingMarkerSym}"
IsEnabled="True" IsPingAnimationEnabled="True">
</esri:LocationDisplay>
</esri:MapView.LocationDisplay>
<esri:Map>
<layers:ArcGISTiledMapServiceLayer ID="Basemap"
ServiceUri="http://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer"/>
</esri:Map>
</esri:MapView>

Copyright 1995-2015 Esri. All rights reserved. 171


ArcGIS Runtime SDK for .NET

You can turn location display on and off as your app is running by setting the LocationDisplay.IsEnabled property. The following
example shows code for a check box to toggle location display:
private void ShowLocationCheckBox_Click(object sender, RoutedEventArgs e)
{
// turn location display on/off with a CheckBox
var checkBox = sender as CheckBox;
this.MyMapView.LocationDisplay.IsEnabled = (checkBox.IsChecked == true);
}

You may want your app to respond to new locations as they are provided. Perhaps you want to display additional information that
describes the location, such as speed or estimated accuracy of the position. The following example shows information about new locations
in TextBlock controls as the location is updated. MapView.SetViewAsync is then used to zoom to the location's position.
private void GetLocationChange()
{
// get the location provider; handle the location change event
var lp = this.MyMapView.LocationDisplay.LocationProvider;
lp.LocationChanged += OnLocationChanged;
}
private void OnLocationChanged(object sender, Esri.ArcGISRuntime.Location.LocationInfo e)
{
// when a new location comes in, show info to user, zoom to location
this.HeadingTextBlock.Text = e.Course.ToString();
this.SpeedTextBlock.Text = e.Speed.ToString();
this.XTextBlock.Text = e.Location.X.ToString();
this.YTextBlock.Text = e.Location.Y.ToString();
this.MyMapView.SetViewAsync(e.Location);
}

Create a custom LocationProvider


LocationDisplay.LocationProvider can be set to any class that implements the ILocationProvider interface. To create your
own location provider, you must implement ILocationProvider in your custom class. This interface defines the following three
members:
LocationChangedAn event that fires when updated locations are available. The event argument is of type LocationInfo
and contains information about the new location.

Copyright 1995-2015 Esri. All rights reserved. 172


ArcGIS Runtime SDK for .NET

StartAsyncA method to start providing locations. As locations are read, they are exposed by raising the LocationChanged
event.
StopAsyncA method to stop providing locations. This should cease LocationChanged events from being raised.
The following example provides a template for implementing the interface in your custom location provider class. Depending on the
specifics of your custom provider, some of the details of your implementation may vary.
class MyLocationProvider : Esri.ArcGISRuntime.Location.ILocationProvider
{
// perhaps use a flag variable to enable/disable returning locations
private bool enableLocations;
// store a reference to the current location
private LocationInfo newLocation;

public MyLocationProvider()
{
// in the constructor, set up your internal location providing logic
// for example:
// connect to a GPS device
// prepare to read a file that "plays back" locations recorded in the field
// set up a timer that will periodically generate a random location for testing
}
public Task StartAsync()
{
// code here to start collecting locations
// perhaps a flag is set to enable firing the LocationChanged event
// for example:
this.enableLocations = true;

return Task.FromResult<bool>(true);
}
public Task StopAsync()
{
// code here to stop collection locations
// perhaps a flag is set to disable firing the LocationChanged event
// for example:
this.enableLocations = false;

return Task.FromResult<bool>(true);
}

public event EventHandler<Esri.ArcGISRuntime.Location.LocationInfo> LocationChanged;


private void RaiseLocationChanged()
{
// code to provide a location to event listeners
// this event is raised by code that produces the new location (GPS device, e.g.)
// perhaps a flag is used to enable/disable firing the event
// for example:
if (!this.enableLocations) { return; }
if (LocationChanged != null)
{
// fire the LocationChanged event
// the private "newLocation" variable is updated with a fresh location by your internal location providing logic
LocationChanged(this, this.newLocation);
}
}
}

For an example of using LocationDisplay in your app and of creating a custom location provider, see the Mapping >
LocationDisplay sample in the ArcGIS Runtime SDK for .NET samples. See the NmeaParser project on GitHub for an open source
library for communicating with Bluetooth GPS devices.

Related Topics
Navigate the map
Maps and layers

Copyright 1995-2015 Esri. All rights reserved. 173


ArcGIS Runtime SDK for .NET

Display military messages


Military software used for situation awareness and command and control pass secure communications between mobile devices in the field
and command centers. These special communications consist of either voice or data transmissions. Data communications can contain
military messages, which define where specific military symbols are located on a map.
You can build an app using ArcGIS Runtime SDK for .NET to take these military messages and convert them to military symbols to be
displayed in a map control on a desktop or laptop device. Currently, the messages can be displayed using symbology from the
Department of Defense (DoD) MIL-STD-2525C symbol dictionary, or from the North Atlantic Treaty Organization (NATO) APP-6B symbol
dictionary.
For your app to process a military message, a MessageLayer class must be created and added to the map. MessageLayer is a group
layer that contains a set of MessageSubLayer child layers to display specialized military graphics of various message and geometry
types. Use the message layer's ProcessMessage method to create and display the appropriate graphics to display a message.
The following code sample shows the XAML required to add a MessageLayer to the map:
<esri:MapView x:Name="MyMapView">
<esri:Map>
<esri:ArcGISTiledMapServiceLayer ID="World Topo Map"
ServiceUri="http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer"/>
<layers:MessageLayer ID="MyMessageLayer"/>
</esri:Map>
</esri:MapView>

The following code sample uses the MessageLayer to process a message and display the corresponding graphic:
// create a dictionary to hold message properties
var messageProps = new Dictionary<string, string>();

// define message properties (property name, value)


messageProps.Add("_type", "position_report");
messageProps.Add("_action", "update");
messageProps.Add("_id", "e0ba16ac-cddd-4595-845e-32ca4177d080");
messageProps.Add("_control_points", "-117.187,32.770;-117.191,32.725;-117.097,32.653;-116.944,32.610");
messageProps.Add("_wkid", "4326");
messageProps.Add("sic", "GFGPOAO-------X");
messageProps.Add("uniquedesignation", "IGLOO");
// create the message using the properties
var message = new Esri.ArcGISRuntime.AdvancedSymbology.Message(messageProps);

// get the message layer from the map


var messageLayer = (MessageLayer)MyMapView.Map.Layers["MyMessageLayer"];

// make sure it's loaded before using it


await MyMapView.LayersLoadedAsync(new[] { messageLayer });
// call ProcessMessage on the layer
bool success = messageLayer.ProcessMessage(message);
if (!success)
{
Trace.WriteLine("Failed to process message.");
}

Related Topics
Symbols and renderers

Copyright 1995-2015 Esri. All rights reserved. 174


ArcGIS Runtime SDK for .NET

Create a scene
In ArcGIS, a three-dimensional map is known as a Scene. Introduced in ArcGIS Runtime SDK for .NET at version 10.2.6, scenes allow
you to experience a more realistic view of the world by adding the third dimension to your data. Viewing data in 3D gives you new
perspectives and can provide insights that would not be readily apparent from a 2D map of the same data.

Define a scene
ArcGIS Runtime SDK for .NET provides the SceneView and Scene controls for visualizing your data in three dimensions. These controls
are very similar to the MapView and Map controls used for displaying two dimensional maps. Just as a map view contains a single map, a
scene view contains a single scene. Like a map, a scene contains a collection of layers to display. In addition to layers that are unique for
3D mapping, a scene can contain the same types of layers you add to a map.
A scene view can contain only one scene at a time, however, multiple scene objects can be created and swapped out dynamically in the
scene view as the application is running.

Define a scene with XAML


The following example shows XAML that defines a MapView and Map to display the World Street Map layer from ArcGIS Online. As
you will see shortly, it only takes a couple minor alterations to this XAML to display the same map as a 3D scene.
<esri:MapView x:Name="MyMapView">
<esri:Map>
<layers:ArcGISTiledMapServiceLayer ID="AGOLayer"
ServiceUri="http://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer" />
</esri:Map>
</esri:MapView>

The following XAML displays the same layer in three dimensions using a SceneView and Scene.
<esri:SceneView x:Name="MySceneView">
<esri:Scene>
<layers:ArcGISTiledMapServiceLayer ID="AGOLayer"
ServiceUri="http://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer" />
</esri:Scene>
</esri:SceneView>

Copyright 1995-2015 Esri. All rights reserved. 175


ArcGIS Runtime SDK for .NET

In this basic example, all you have to do to view the layer in three dimensions is change the Map element to Scene and the MapView
element to SceneView in your XAML.

Define a scene with code


Instead of defining your scene and the layers it contains at design time using XAML, you can create it programmatically. Even if you
create your initial scene using XAML, you can access it at run time to modify its characteristics or contents.
The following code example assumes that a container element (such as a Grid control) has been added to the page at design time and
has been given the name MyGrid. This code creates a SceneView that contains a Scene with a single layer. The Scene will be
assigned to the Scene property of the SceneView, added to the Grid control and displayed in the application.

// create a new SceneView


var mySceneView = new Esri.ArcGISRuntime.Controls.SceneView();
// create a new Scene
var myScene = new Esri.ArcGISRuntime.Controls.Scene();
// create a new layer (give the layer an ID so it can be found later)
var uri = new Uri("http://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer");
var baseLayer = new Esri.ArcGISRuntime.Layers.ArcGISTiledMapServiceLayer(uri);
baseLayer.ID = "BaseMap";
// add the layer to the Scene
myScene.Layers.Add(baseLayer);

// add the Scene to the SceneView


mySceneView.Scene = myScene;
// add the SceneView to the grid
MyGrid.Children.Add(mySceneView);

Provide a surface for a scene


When you create a basic scene like those described in the previous examples, you will notice that although they are drawn in three
dimensions, there is no topography (elevation) applied to the layers. The scene displays on a flat spherical surface without relief, so
features like mountains and valleys appear as they would on a two-dimensional map. To apply topography (z-values) for layers displayed
in your scene, you must define a set of datasets to act as a surface.
The abstract ElevationSource class represents a dataset containing elevation values that define a scene's surface, either from an
online or local source. The ServiceElevationSource class is used to define an online source by pointing the ServiceUri property to
a service containing elevation values, such as an ArcGIS Image Service. Elevation sources stored locally on the client are defined with the
FileElevationSource class, that holds a collection of file paths to supported elevation source files.
The following formats are supported for a FileElevationSource:
ASRP/USRP
CIB1, 5, 10
DTED0, 1, 2
GeoPackage
GeoTIFF

Copyright 1995-2015 Esri. All rights reserved. 176


ArcGIS Runtime SDK for .NET

HFA
HRE
IMG
JPEG
JPEG 2000
NITF
PNG
RPF
SRTM1, 2
You can define your scene's surface using any combination of local and online elevation sources. The following example defines a surface
by creating an ElevationSourceCollection consisting of both online and local sources.
<esri:SceneView x:Name="MySceneView">
<esri:Scene>
<esri:Scene.Surface>
<esri:ElevationSourceCollection>
<esri:FileElevationSource x:Name="MyLocalElevationSource">
<esri:FilenameCollection>
<x:String>D:\data\DTED\HI_Hawaii\DTED\DTED2\w155\n19.dt2</x:String>
<x:String>D:\data\DTED\HI_Hawaii\DTED\DTED2\w156\n18.dt2</x:String>
<x:String>D:\data\DTED\HI_Hawaii\DTED\DTED2\w156\n19.dt2</x:String>
<x:String>D:\data\DTED\HI_Hawaii\DTED\DTED2\w156\n20.dt2</x:String>
</esri:FilenameCollection>
</esri:FileElevationSource>
<esri:ServiceElevationSource ServiceUri="http://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer"/>
</esri:ElevationSourceCollection>
</esri:Scene.Surface>
<layers:ArcGISTiledMapServiceLayer ID="AGOLayer"
ServiceUri="http://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer" />
</esri:Scene>
</esri:SceneView>

Note: An individual ElevationSource can be enabled or disabled by setting its IsEnabled property. This gives
you the ability to change the current surface used by your scene when your app is running.

Once a surface is in place, graphics layers and overlays can define how the surface is used to draw grapics. A GraphicsLayer or
GraphicsOverlay can set the SurfacePlacement property of its associated LayerSceneProperties to one of the following values:
DrapedGraphics draw directly on the surface, like laying a sheet over the topography defined by the surface. The resulting z-
values on the draped layer are equal to the z-values of the underlying surface. Drawing streets that follow the underlying terrain is
an example of draped placement.
AbsoluteGraphics draw using z-values defined for the layer. The z-values are independent of values provided by the surface.
Drawing aircraft at their current altitude above sea level is an example of an absolute placement.
RelativeGraphics draw using z-values defined for the layer using the surface z-value as the baseline. In other words, the z-
values for the graphics are added to the z-values defined for the surface. Displaying the height of a power line network above the
terrain is an example of using relative placement.
The following example shows XAML that sets the SurfacePlacement property of a graphics layer to Draped.

Copyright 1995-2015 Esri. All rights reserved. 177


ArcGIS Runtime SDK for .NET

<layers:GraphicsLayer ID="DrapedGraphics">
<layers:GraphicsLayer.SceneProperties>
<layers:LayerSceneProperties SurfacePlacement="Draped"/>
</layers:GraphicsLayer.SceneProperties>
</layers:GraphicsLayer>

Note: Scene properties are ignored for graphics displayed in a


map.

Query elevation in a scene


Scene locations, from a hit test or tapped event handler for example, provide elevation values as the z-coordinate of the returned
MapPoint. It's important to remember that such results are only as good as the level of detail currently rendered in the scene, which
can be quite coarse. The ability to query the most accurate elevation at a location is only supported for file elevation sources using the
FileElevationSource.GetElevationAsync method.
The following example handles the SceneViewTapped event to get an elevation value from the local elevation source using
GetElevationAsync. If a value is not available (the location is outside the extent of the local elevation source, for example), the
elevation is read from the tap location z-coordinate (derived from the online elevation source).
private async void MySceneView_SceneViewTapped(object sender, MapViewInputEventArgs e)
{
var elevation = await MyLocalElevationSource.GetElevationAsync(e.Location);

if(double.IsNaN(elevation))
{
elevation = e.Location.Z;
}
// ... do something with the elevation value here ...
}

Define display of the scene


The display of a Scene is determined by the position and properties of an observer, represented by the Camera class. The following
characteristics of the camera are taken into account when displaying a three-dimensional scene.
Location (target) on the surface (x,y coordinates)
Heading from the camera location (on the surface) to the target
Elevation (z-coordinate)
Pitch (tilt) relative to the surface

See the Scene navigationtopic for information about mouse, touch, and keyboard navigation functionality that is built into the scene view
control. Set camera position programmatically in the same topic has information and examples for defining the scene display with code
and for synchronizing the display between a map and scene view in your app.

Additional SceneView properties and methods


The SceneView provides methods and properties to control things like the lighting of the scene, the available navigation operations, and
the conversion of points between screen and geographic coordinate systems.

Copyright 1995-2015 Esri. All rights reserved. 178


ArcGIS Runtime SDK for .NET

Properties
IsShadowsEnabledWhether or not shadows appear on the scene.
ElevationExaggerationThe factor by which elevation values are exaggerated.
Note: Elevation exaggeration is not applied only to the surface, but to the scene as a whole. Graphics
draped on the scene surface will follow the new exaggerated surface, while graphics displayed in
relative or absolute modes will be positioned by multiplying their z-values by the exaggeration factor.

LightPointThe position of the light source (sun, in other words) for the scene (x, y, z). For a realistic sun position based on the
time, use the SetSunTime method. Use the LightPoint property to set the light position to a specific location (which may or
may not reflect a realistic position for the sun).
AmbientLightThe color of ambient light in the scene when shadows are enabled.

Methods
SetSunTimeSets the location of the sun in the sky (and resulting shadows on the scene, if enabled) using a DateTime object.
LocationToScreenConverts a point in geographic coordinates to screen coordinates (measured from the upper left corner of
the scene). Optionally, you can return a ScreenPointVisibility value to describe the point's visibility (Visible,
HiddenByEarth, HiddenByElevation, NotOnScreen).
ScreenToLocationConverts a point in display coordinates to geographic coordinates.

Share data between scene views


Sharing the same scene instance simultaneously among two or more scene views, or a layer instance simultaneously between scenes, is
not supported and is likely to cause stability or performance issues. Working with graphics overlays or distinct feature layer instances that
share the same feature service (ServiceFeatureTable) can cause the same issues and is also not supported in multiple scene views
at the same time.
If you need to reuse a Scene in another SceneView, you should ensure that it is first removed from the previous control. The same
technique can be used for reusing a layer instance between scenes.
The following example moves a layer from one scene to another.
var layer = MySceneView1.Scene.Layers["MyFeatureLayer"] as FeatureLayer;
MySceneView2.Scene.Layers.Add(layer); // add the layer to a new scene
MySceneView1.Scene.Layers.Remove(layer); // remove the layer from its original scene

Related Topics
Add layers to your scene
Display graphics in a scene
Navigate a scene

Copyright 1995-2015 Esri. All rights reserved. 179


ArcGIS Runtime SDK for .NET

Navigate a scene
In many ways, navigating a scene is similar to navigating a map. Both offer the ability to zoom in and out, and to pan the display. The
three-dimensional display of a scene, however, adds some additional options for visualization. To fully understand navigating the display
in three dimensions, you must understand the fundamentals of how a scene displays.

Fundamentals of 3D navigation
To display data in three dimensions, a scene uses the concept of a camera and a target. The camera represents the location of the
observer in three-dimensional space (x,y,z) and the target is the location on the 3D surface that intersects the camera's line of sight. You
can think of viewing a map in these same terms, where the camera is always perpendicular to the target on the two-dimensional surface.
Bringing the camera closer has the effect of zooming in. Moving it further away zooms out. Likewise, panning moves the center of the map
(the target) to a new location.
In addition to moving nearer or further relative to the target, in three-dimensional visualization, you can change the pitch, heading, and
elevation of the camera (observer) to produce a different perspective of the data.

The following characteristics of the camera are taken into account when displaying a three-dimensional scene.
Location (target) on the surface (x,y coordinates)
Heading from the camera location (on the surface) to the target
Elevation (z-coordinate)
Pitch (tilt) relative to the surface

Navigation operations
Navigation operations in a scene work by modifying one or several of the camera characteristics described previously.
Zoom in and outMoves the camera towards or away from the target along the line of sight. This also moves the camera location
closer to the target along the direction of the heading while decreasing the elevation.
PanMoves the camera to a new x,y location (without changing other properties).
PitchChanges the angle of the camera relative to the surface.

Copyright 1995-2015 Esri. All rights reserved. 180


ArcGIS Runtime SDK for .NET

RotateChanges the camera location on the surface (x,y) and the camera heading without moving the target (or changing pitch or
elevation). In other words, the target is the center point around which the entire scene rotates.

Note: Changing the heading property of the camera is like turning it in a horizontal plane (that is, left or right). It
turns the scene centered on the camera location and therefore changes the location of the target. Rotating
turns the scene while centered on the target, which has the effect of changing the camera heading and x,y
location but not the location of the target. Walking around the Eiffel Tower to view it from various
perspectives is analogous to rotating a scene. By contrast, standing in one place and scanning the Paris
skyline is like changing the heading without moving the camera.
The SceneView control has built-in interactions for mouse, touch, and keyboard that implement these operations for the user.

Built-in navigation
The following table summarizes the built-in navigation capabilities of the SceneView control. See the Navigate the map topic for the
interaction capabilities built into MapView.

Navigation Mouse Touch Keyboard

Pan Hold left button and drag Drag Arrow keys

Flick

Zoom in Scroll wheel forward Spread +


Hold center button and drag

Zoom out Scroll wheel backward Pinch -


Hold center button and drag Insert: zoom to initial extent

Rotate Hold right button and drag Multiple finger hold and twist

Change pitch Multiple fingers drag up/down W: tilt up


S: tilt down
P: perpendicular to surface

Copyright 1995-2015 Esri. All rights reserved. 181


ArcGIS Runtime SDK for .NET

Change heading Multiple fingers drag left/right A: move west


D: move east
N: set to true north

Change elevation U: move up


J: move down

Customize interaction options


Certain aspects of the built-in scene view navigation described in the previous section can be modified. The
SceneInteractionOptions class contains properties that let you do things like enable or disable certain types of input (keyboard,
mouse, touch, and so on), apply an inertia factor for panning, or set the direction of the mouse wheel for zooming.
To define the types of input to accept from the user, set the EnabledInputs property using one or more of the following values from
the InteractionInputs enumeration.
InteractionInputs.Touch
InteractionInputs.Stylus
InteractionInputs.Mouse
InteractionInputs.Keyboard
InteractionInputs.All
InteractionInputs.None
The following example enables only touch and keyboard input for the scene view by setting the appropriate values for
EnabledInputs.
// create a new SceneInteractionOptions
var interactionOptions = new SceneInteractionOptions();
// set the enabled inputs; use the bitwise OR (|) operator to define several inputs
interactionOptions.EnabledInputs = InteractionInputs.Keyboard | InteractionInputs.Touch;

// apply the interaction options to the scene view


MySceneView.InteractionOptions = interactionOptions;

The MouseWheelZoomInDirection property allows you to define the mouse wheel scroll direction used for zooming in to (and out of)
the scene and ZoomFactor sets the factor for zooming, as shown in the following example.
// create a new SceneInteractionOptions
var interactionOptions = new SceneInteractionOptions();
// set the mouse wheel direction for zooming in the scene
interactionOptions.MouseWheelZoomInDirection = MouseWheelDirection.Backward;
// set the factor used for default zoom operations (mouse wheel click, key press, etc.)
interactionOptions.ZoomFactor = 10;
// apply the interaction options to the scene view
MySceneView.InteractionOptions = interactionOptions;

The FlickInertia property allows you to specify an inertia factor when panning the scene with a flick gesture, as shown in the
following example. A factor of 0, which is the default value, disables inertia when panning.
// create a new SceneInteractionOptions
var interactionOptions = new SceneInteractionOptions();
// set the inertia factor when panning (flicking) the scene
interactionOptions.FlickInertia = 10;

// apply the interaction options to the scene view


MySceneView.InteractionOptions = interactionOptions;

Navigate with the mouse


The SceneView control provides built-in support for navigating a scene using the mouse. The following list describes how mouse
controls map to navigation operations.
Left button + dragPan
Right button + dragRotate
Middle button + dragZoom in and out
Mouse wheelZoom in and out

Copyright 1995-2015 Esri. All rights reserved. 182


ArcGIS Runtime SDK for .NET

Navigate with touch


The SceneView control provides built-in support for navigating a scene using touch.
There are three navigation modes available using touch: single finger pan, multiple finger zoom and pan, and multiple finger rotate and
pitch. Place one finger on the display to use single finger pan. Spread, pinch, or drag two or more fingers on the display to enter pan
and zoom mode, or place multiple fingers on the display at a consistent distance to navigate in heading and pitch mode. The following
list describes the touch gestures used to execute navigation operations in each mode.
Pan mode (single finger)
DragPans
FlickPans
Pan and zoom mode (multiple fingers)
SpreadZooms in
PinchZooms out
DragPans
PivotRotates
Heading and pitch mode (multiple fingers)
Drag up and downChanges pitch
Drag left and rightChanges heading

Tip: If the desired navigation gesture is not initially recognized, remove your fingers and replace
them on the display.

Keyboard shortcuts
The SceneView control provides built-in support for navigating a scene using keyboard input. The following list describes the keys that
can be used to execute navigation operations.
Arrow keys (up, down, right, left)Pan (north, south, east, west)
Q + mouseFly mode (combination pan and rotate based on mouse position)
A, DHeading
W, SChange pitch
U, JElevation
PMoves pitch to perpendicular to the surface
NMoves the heading to north
InsertZooms to initial extent

Pan interactively
Most often, when panning a scene using touch or mouse, the location you start panning from will be anchored to the pointer as you drag.
You will find certain contexts, however, where the pan interaction behaves significantly differently. The exceptions to the usual pan
behavior described in this section are built into the scene view to ensure a better experience for certain types of interaction.

Pan near or beyond the horizon


To ensure a smooth panning experience, the scene will pan at a constant rate and will not be anchored to the pointer as the pan
location nears (or goes beyond) the horizon. The following example illustrates a scenario in which you panning will start with a map
location anchored to the pointer then unanchor when the horizon is approached.
Click a location on the scene and hold.

Copyright 1995-2015 Esri. All rights reserved. 183


ArcGIS Runtime SDK for .NET

Move the pointer (the mouse or your finger, in other words) and this location follows the pointer as you pan.

Continue to pan in a single direction until the pointer crosses the horizon (into space, in other words). As the pointer nears the horizon,
the original location is unanchored from the pointer and the scene now pans at a consistent rate as you move. This prevents the scene
from panning too quickly or erratically near the horizon, where a short distance on the display represents a large distance on the scene
(a small scale, in other words).

Bring the pointer back within the scene (inside the horizon), and the pointer will again anchor to a location on the map (but probably not
the original one).

Elevate or pan
If you click or tap a location on the surface that is within a tolerance of the horizon and drag the pointer forward or back, the camera
increases or decreases elevation rather than panning. Moving the pointer left and right, however, pans with the pointer anchored to the
point. Clicks outside of the horizon area will start a pan operation as described in the section above. The following images illustrate
clicking near the horizon and dragging down to elevate the camera.

Copyright 1995-2015 Esri. All rights reserved. 184


ArcGIS Runtime SDK for .NET

Note: The tolerance for clicks near the horizon (instantiating an elevate operation, in other words) is defined
using a 5 angle from the horizon towards the camera target. The ability to elevate the camera from a click
near the horizon is not available when the scene is displayed at a relatively small scale (displaying a larger
area, in other words).

Set camera position programmatically


The Camera class gives you fine-grained control over the position of the observer in your scene. Using the Camera, you can control
elevation, heading, pitch, and so on to provide a particular view of the scene. The following example gets the camera from the
SceneView, defines a new heading and pitch, then applies the new camera to the scene.
// get the camera used for the initial display of the scene
var initialCamera = MySceneView.Camera;
// create a new camera by rotating and tilting the initial one
var rotatedCamera = initialCamera.Rotate(deltaHeadingDegrees, deltaPitchAngle);

// apply the new camera to the scene


await MySceneView.SetViewAsync(rotatedCamera);

Copyright 1995-2015 Esri. All rights reserved. 185


ArcGIS Runtime SDK for .NET

The following methods are available to manipulate the characteristics of a Camera. These are useful for defining a new camera relative to
an existing one. Each of these methods returns a new Camera object that can then be applied to the scene using
SceneView.SetViewAsync.
Elevateapply a delta elevation value to the current z-coordinate value.
MoveForwardmove the camera a delta distance (meters) along the line of sight to the target.
MoveTowardmove the camera a specified distance (meters) towards a specified location (point).
Rotateapply a delta heading and delta pitch relative to the current camera.
RotateAroundapply a delta heading and delta pitch relative to a specified location (point).
SetHeadingspecify an absolute heading value (angle from true north).
SetLocationspecify an absolute location (point).
SetPitchspecify an absolute pitch angle.
ZoomTowardzoom the camera towards or away from a specified location (point) at a specified zoom factor.
A Camera can also be created new, as shown in the following example. The constructor allows you to define values for location (x, y, z
coordinates), heading, and pitch.
var camera = new Esri.ArcGISRuntime.Controls.Camera(centerLatitude, centerLongitude, headingDegrees, pitchAngle);
await MySceneView.SetViewAsync(camera, animationVelocity, showLiftOff);

Tip: You can animate the updated camera as it is applied to the scene using an appropriate overload of
SceneView.SetViewAsync.

Work with view points


The concepts of extent and scale only have real meaning when applied to two-dimensional maps. In three dimensions, scale is
continuous across the scene. Areas that are closer to the camera display at a larger scale and the scale decreases as you move further
away (towards the horizon, for example). Similarly, although there is obviously a visible area displayed in a scene, it usually cannot be
represented as an Envelope, as the extent is in a two-dimensional map.
Despite the differences with how geographic space is defined in a map versus a scene, they both implement a Viewpoint object to
describe the area currently displayed. The Viewpoint.Camera property is used to set the display in a scene view, but is ignored when
used in a map view.
A new view point can be created using only a geometry, a geometry and a scale value, a geometry and a camera, or several other
combinations of geometry, camera, rotation, scale and so on. You can get the current view point for a scene or map view using the
ViewBase.GetCurrentViewpoint method. Likewise, a view point can be applied to a scene or map view using the
ViewBase.SetViewAsync method.
The Viewpoint class is used by both map view and scene view controls to display a specified geographic location. If you need to
synchronize the area displayed between a scene view and map view in your app, you can pass Viewpoint objects between these
controls. The Camera property is ignored for two-dimensional display and is null for view points returned from a map view. If applied to
a scene view, however, the camera will be created using the other information available from the view point.
The following example defines a view point using a camera, target geometry, and rotation then applies it to a scene view and map view.
// define a new camera over Paris
var camera = new Camera(48.8636, 2.2816, 330.0, 126.0, 73.0);
// create a ViewPoint with the camera, a target geometry (Envelope), and rotation (same as camera heading)
var viewPoint = new Viewpoint(camera, new Envelope(2.2552, 48.7973, 2.4897, 48.8942, SpatialReferences.Wgs84),126.0);
var animationDuration = new TimeSpan(0, 0, 2);

// apply the view point to a scene view and map view (animate the change in the scene view)
await MySceneView.SetViewAsync(viewPoint, animationDuration, true);
await MyMapView.SetViewAsync(viewPoint);

Copyright 1995-2015 Esri. All rights reserved. 186


ArcGIS Runtime SDK for .NET

Navigation events
The SceneView control raises CameraChanged and NavigationCompleted events. In general, NavigationCompleted is the
best event to handle if you want to respond each time the user navigates the scene. The CameraChanged event is much more granular
and may fire several times for a single navigation operation.
The following code handles the NavigationCompleted event to get information about the current camera position.
private async void MySceneView_NavigationCompleted(object sender, EventArgs e)
{
// get the camera used to render the current scene
var camera = MySceneView.Camera;
// get info about the camera
var latitude = camera.Location.Y;
var longitude = camera.Location.X;
var pitch = camera.Pitch;
var heading = camera.Heading;
// ... code here to update the UI with camera info ...

Related Topics
Create a scene
Add layers to your scene
Display graphics in a scene

Copyright 1995-2015 Esri. All rights reserved. 187


ArcGIS Runtime SDK for .NET

Add layers to your scene


In general, you work with layers in a Scene the same way you work with them in a Map. All of the layer types that are supported for
display in a Map can also be used in a Scene. They can be added at design time using XAML or at run time using code and are drawn in
the order in which they are added.

Note: Some layers, such as a SceneLayer, are exclusive to a Scene and cannot be
added to a Map.
Layer scene properties
All layers supported for display in a (2D) map can also be added to a (3D) scene. The GraphicsLayer and GraphicsOverlay classes
define a SceneProperties property to define behavior when rendering the layer in a scene. The property is set with a
LayerSceneProperties object that defines the SurfacePlacement setting to control how the layer displays relative to the scene's
elevation source (if one is defined).
See the Create a scene topic for more information and an example of defining an elevation source for a scene.
The LayerSceneProperties.SurfacePlacement property can be set to one of the following values:
DrapedGraphics draw directly on the surface, like laying a sheet over the topography defined by the surface. The resulting z-
values on the draped layer are equal to the z-values of the underlying surface. Drawing streets that follow the underlying terrain is
an example of draped placement.
AbsoluteGraphics draw using z-values defined for the layer. The z-values are independent of values provided by the surface.
Drawing aircraft at their current altitude above sea level is an example of an absolute placement.
RelativeGraphics draw using z-values defined for the layer using the surface z-value as the baseline. In other words, the z-
values for the graphics are added to the z-values defined for the surface. Displaying the height of a power line network above the
terrain is an example of using relative placement.
The following example shows XAML that sets the SurfacePlacement property of a graphics layer to Draped.
<layers:GraphicsLayer ID="DrapedGraphics">
<layers:GraphicsLayer.SceneProperties>
<layers:LayerSceneProperties SurfacePlacement="Draped"/>
</layers:GraphicsLayer.SceneProperties>
</layers:GraphicsLayer>

The following example creates the same layer using code.


var graphicsLayer = new GraphicsLayer();
graphicsLayer.ID = "DrapedGraphics";
graphicsLayer.SceneProperties.SurfacePlacement = SurfacePlacement.Draped;
MySceneView.Scene.Layers.Add(graphicsLayer);

Note: Scene properties are ignored for graphics displayed in a


Map.
Feature services may provide z-coordinate values for feature geometry, but these values are not used when displaying a feature layer in a
scene. As a workaround, query the feature service (with ReturnZ = true) and add the results to a graphics layer with the appropriate
surface placement. The following example queries a z-enabled feature service then displays the graphics in a scene.
// query for all graphics in the feature service, include z-coordinate values
var queryTask = new QueryTask(new Uri("http://myserver.com/arcgis/rest/services/FlightPaths/FeatureServer/0"));
var query = new Query("1=1");
query.ReturnZ = true;
var result = await queryTask.ExecuteAsync(query);

// create a graphics layer to show the graphics using absolute placement using the z values
var graphicsLayer = new GraphicsLayer();
graphicsLayer.SceneProperties.SurfacePlacement = SurfacePlacement.Absolute;

// build graphics from the results, symbolize with a red line


var lineSym = new SimpleLineSymbol { Color = Colors.Red, Style = SimpleLineStyle.Solid, Width = 5 };
graphicsLayer.GraphicsSource = from f in result.FeatureSet.Features select new Graphic(f.Geometry, lineSym);
// add the layer to the scene
MySceneView.Scene.Layers.Add(graphicsLayer);

3D layers
In addition to the familiar layers you may have used in your 2-dimensional maps, such as ArcGISTiledMapServiceLayer,
GraphicsLayer, and so on, you can also add specialized 3D layers to your scene. With the 10.3 release of ArcGIS for Server, scene
services are now available for delivering 3D content. These services support publishing and consuming large volumes of multipatch
features, such as buildings for entire cityscapes. Scene services are created by publishing a scene using ArcGIS Pro.

Copyright 1995-2015 Esri. All rights reserved. 188


ArcGIS Runtime SDK for .NET

These new services can be consumed in your ArcGIS Runtime SDK for .NET app. The following example uses a SceneLayer to show a
scene service of buildings in Montreal, Canada.
<esri:SceneView x:Name="MySceneView" AmbientLight="Gray">
<esri:Scene>
<esri:Scene.Surface>
<esri:ServiceElevationSource ServiceUri="http://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer"
IsEnabled="True" ID="elevationLayer" />
</esri:Scene.Surface>
<layers:ArcGISTiledMapServiceLayer ID="AGOLayer"
ServiceUri="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer" />
<layers:SceneLayer ID="MontrealBuildings"
ServiceUri="http://scene.arcgis.com/arcgis/rest/services/Hosted/Buildings_Montreal/SceneServer/layers/0" />
</esri:Scene>
</esri:SceneView>

KML layers
Keyhole Markup Language (KML) is an XML format for describing geographic features for visualization in two dimensional maps or three
dimensional scenes. KML files use a .kml extension for plain KML text files or .kmz for compressed files. In your ArcGIS Runtime apps,
you can use the KmlLayer to read and display geographic information from a .kml or .kmz file, which can be stored locally or accessed
from an online source.
The following example shows XAML that defines a scene with a KML layer showing recent earthquakes.
<esri:SceneView x:Name="MySceneView">
<esri:Scene>
<esri:Scene.Surface>
<esri:ServiceElevationSource
ServiceUri="http://elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer" />
</esri:Scene.Surface>
<layers:ArcGISTiledMapServiceLayer ID="AGOLayer"
ServiceUri="http://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer" />
<layers:KmlLayer ID="QuakesKml"
SourceUri="http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/1.0_week_age_link.kml">
</layers:KmlLayer>
</esri:Scene>
</esri:SceneView>

For more information, see the KML layers description in the Layer Types topic.

Copyright 1995-2015 Esri. All rights reserved. 189


ArcGIS Runtime SDK for .NET

Layer initialization
Layers are initialized asynchronously when added to the scene. Attempting to access certain properties or operations before layers are
initialized may throw an exception. For example, getting the spatial reference or camera position of the scene, or the name or extent of a
layer. You can handle the LayerLoaded event on the SceneView to know if (and when) each layer loads successfully into the scene.
The following example handles the LayerLoaded event and checks for a successful load of the streets layer (using its ID). Upon a
successful load of the layer, the camera position is set for the scene.
private void MySceneView_LayerLoaded(object sender, LayerLoadedEventArgs e)
{
if (e.LoadError == null && e.Layer.ID == "StreetMapLayer")
{
var mapPoint = new MapPoint(-122.40, 37.78, 210.0);
MySceneView.SetViewAsync(new Esri.ArcGISRuntime.Controls.Camera(mapPoint, 340.0, 75.0), 1, true);
}
}

You can also await the LayersLoadedAsync method to get the status of all layers after the scene view attempts to load them.
The following code example uses the LayersLoadedAsync method to await the loading of all the scene's layers. After loading is
attempted for all layers, the InitializationException property populates for layers that encountered an exception while loading
(otherwise, the property contains null). The following code would be called in the constructor for the page.
private async Task TryLoadLayers()
{
var builder = new StringBuilder();
await this.MySceneView.LayersLoadedAsync();
foreach (var layer in MySceneView.Scene.Layers)
{
if (layer.InitializationException != null)
{
builder.AppendLine(layer.InitializationException.Message);
}
}
// report layer initialization exception messages here ...
}

Related Topics
Display graphics in a scene
Navigate a scene
Create a scene

Copyright 1995-2015 Esri. All rights reserved. 190


ArcGIS Runtime SDK for .NET

Display graphics in a scene


Displaying graphics in a Scene is not much different from displaying graphics in your 2D Map. Whether you are working with graphics in
two or three dimensions, the same basic objects are always involved: GraphicsOverlay, Graphic, Symbol, Renderer, and so on.
These classes work consistently for displaying graphics in either context, so you can work with graphics in your scene just as you would
with graphics in your map. Of course, for 3D graphics, you have the option of using specialized symbols and for defining how graphics are
rendered relative to the scene surface.
For general information on working with graphics, symbols, and renderers see Add graphics and text and Symbols and renderers. The
information in those topics is relevant to both 2D and 3D graphics. The information in this topic is specific to working with graphics in a
scene.

Graphics overlays
Graphics overlays are containers for your graphics and will display above all layers in the scene. The GraphicsOverlay class provides
methods for adding or removing graphics from the collection, as well as controlling how graphics are rendered. Graphics to display in a
scene should be created with geometries in {x, y, z} coordinates of longitude (degrees), latitude (degrees), and elevation (meters). In
addition, an appropriate ElevationMode should be set on the graphics overlay.

Elevation modes
The elevation mode controls how each graphic's z-value is applied when displayed in a scene.
DrapedThe elevation set on any point, line, or polygon graphic is ignored. Graphics appear draped on the surface of the
globe, like a sheet.
AbsoluteThis is the default mode. The elevation values (z-values) of each graphic or feature are calculated from sea level,
regardless of the terrain elevation at the x,y locations of the graphics.
RelativeThe elevation values (z-values) of each graphic or feature are calculated relative to the terrain elevation at the x,y
locations of the graphics.

Add graphics to a scene


Graphics can be added to a GraphicsLayer in a Scene control or to a GraphicsOverlay in the SceneView control. A Graphic has
geometry, a collection of attributes, and a symbol that is used to render it. The following example creates a new point graphic, sets its
geometry and symbol, then adds it to a GraphicsOverlay in the SceneView.
// create a new point (MapPoint); pass x, y, and z coordinates in the constructor
var newPoint = new MapPoint(-117.334, 34.55, 6000);
// create a red "X" marker symbol
var xMarkerSym = new SimpleMarkerSymbol();
xMarkerSym.Color = Colors.Red;
xMarkerSym.Size = 34;
xMarkerSym.Style = SimpleMarkerStyle.X;

// create a new graphic; assign the point and the symbol in the constructor
var graphic = new Graphic(newPoint, xMarkerSym);

// get a graphics overlay in the scene view and add the graphic
var overlay = MySceneView.GraphicsOverlays["MyGraphicsOverlay"];
overlay.Graphics.Add(graphic);

Rather than creating a symbol for each graphic individually, you can define a renderer for the containing GraphicsOverlay or
GraphicsLayer. All graphics added to the container (overlay or layer) can use the symbol defined by the renderer.

Copyright 1995-2015 Esri. All rights reserved. 191


ArcGIS Runtime SDK for .NET

Renderers
A renderer determines how features in a layer or graphics in an overlay are drawn. A renderer can use a single symbol to render all
features, or it may contain logic to render features according to one or more attribute values. A UniqueValueRenderer, for example,
uses a different symbol for each unique attribute value (or combination of values). A ClassBreaksRenderer symbolizes features
according to defined ranges of numeric values, such as classes of population. All renderers are found in the
Esri.ArcGISRuntime.Symbology namespace, and can be used for rendering in a map or scene. See the Symbols and renderers
topic for more information about renderers.
The following example shows XAML to define a simple renderer for a graphics layer.
<layer:GraphicsLayer ID="GraphicsLayer" >
<symb:GraphicsLayer.Renderer>
<symb:SimpleRenderer>
<symb:SimpleRenderer.Symbol>
<symb:SphereMarkerSymbol Color="#FFFF99" Radius="1000" AnchorPosition="Top" />
</symb:SimpleRenderer.Symbol>
</symb:SimpleRenderer>
</symb:GraphicsLayer.Renderer>
</layer:GraphicsLayer>

Note: A graphic's Symbol property takes precedence over symbols in a renderer. Only graphics that do not have
a symbol explicitly defined uses the symbol in the graphics overlay's renderer. This allows you to override
the symbols in a renderer for a particular graphic if needed.

Renderer scene properties

The Renderer base class defines a SceneProperties property that controls aspects of rendering for scene features. It contains
ExtrusionExpression and ExtrusionMode properties to define how heights for features should be calculated for display. In the
following example, the renderer extrudes features by multiplying the value in the Floors attribute by three.
// extrude features to a height (meters) three times the value of the "Floors" attribute
renderer.SceneProperties.ExtrusionExpression = "[Floors] * 3";
renderer.SceneProperties.ExtrusionMode = Maximum;

A scene symbol's orientation can be rotated around any of its three axes: x (pitch), y (roll), or z (heading). Renderers give you the
ability to apply these rotations for each graphic according to an attribute value. You can specify the HeadingExpression,
PitchExpression, and RollExpression using the name of an attribute in square brackets. The following example uses an
attribute to apply a rotation in the z axis (heading) for each graphic in the layer.
// rotate the symbol heading based on the numeric value of the "CurrentHeading" attribute
renderer.SceneProperties.HeadingExpression = "[CurrentHeading]";

// set the renderer for the graphics overlay


graphicsOverlay.Renderer = renderer;

Note: The attribute names specified in ExtrusionExpression, HeadingExpression,


PitchExpression, and RollExpression must contain numeric values only.

Copyright 1995-2015 Esri. All rights reserved. 192


ArcGIS Runtime SDK for .NET

Symbols
Graphics in a map or scene can be symbolized using standard (two-dimensional) symbols for the appropriate geometry type:
Esri.ArcGISRuntime.Symbology.MarkerSymbol classes for point geometry, Esri.ArcGISRuntime.Symbology.LineSymbol
for polyline geometry, and Esri.ArcGISRuntime.Symbology.FillSymbol for polygons. The height of features can be extruded
using an attribute value assigned to a renderer for the graphics layer or overlay. Without extrusion, features drawn with 2D symbols
display on the surface of the scene in two dimensions.
Graphics in a scene can also be symbolized using 3D-specific symbols found in the
Esri.ArcGISRuntime.Symbology.SceneSymbology namespace. The following class diagram shows the 3D-specific symbol
classes:

The symbol options appropriate for each geometry type are described below.

Points
To symbolize points in a scene, you can use 3D-specific marker symbols, such as BoxMarkerSymbol, SphereMarkerSymbol,
ConeMarkerSymbol, and so on.
Marker symbols that display as three-dimensional shapes (box, cone, sphere, diamond, or tetrahedron) have a Color property and
properties for defining marker size. The way a marker size is defined varies by type of shape: Radius for a sphere, RadiusTop and
RadiusBottom for a cone, Width, Height, and Depth for a box, and so on.
The following example creates a red SphereMarkerSymbol with a two kilometer radius.
// creates a red sphere with a radius of 2000 meters
var sphereSym = new SphereMarkerSymbol();
sphereSym.Color = Colors.Red;
sphereSym.Radius = 2000;
// create a graphic and apply the sphere symbol
var pointGraphic = new Graphic(someGeoPoint, sphereSym);
// add the graphic to a graphics layer in the scene
var layer = MySceneView.Scene.Layers["GraphicsLayer"] as GraphicsLayer;
layer.Graphics.Add(pointGraphic);

A model symbol is used to provide a realistic three-dimensional visualization to symbolize scene features. Create a
ModelMarkerSymbol using a 3D model file, passing the path to the file and a scale factor to the model symbol constructor. The
supported model file types include Collada (.dae), 3D Max (.3ds), Blender 3d (.blend), and the formats listed in the Open Asset
Import Library (Assimp). Depending on the model file's default orientation, you may have to rotate the symbol to get your model in the
desired orientation.
Some common scene marker symbol types are pictured below in a scene. The symbols are, from left to right, sphere, box, diamond,
cone, and model symbol.

Copyright 1995-2015 Esri. All rights reserved. 193


ArcGIS Runtime SDK for .NET

To symbolize points in a scene, in addition to the 3D marker symbols, you can also use the same symbol classes as for point graphics
in a 2D map: SimpleMarkerSymbol, PictureMarkerSymbol, and TextSymbol. These classes are not subclasses of
SceneSymbol.
Note: Although 2D point symbols display in a Scene, scene symbols are not
supported in a Map.

Lines
To symbolize line graphics in a scene, you can either use the 3D-specific TubeLineSymbol or the standard 2D symbols, such as
SimpleLineSymbol. To show the height of features, use a renderer with an extrusion expression defined.

Note: Line styles other than Esri.ArcGISRuntime.Symbology.SimpleLineStyle.Solid are not


supported for a SimpleLineSymbol in a scene. In 3D, a simple line symbol renders as a solid line
regardless of the style defined.

Polygons
To symbolize polygons in a scene, use SimpleFillSymbol, as you would in a map. To show the height of features, use a renderer
with an extrusion expression defined.

Composite symbols
A composite symbol allows you to create a symbol that is composed of several symbols. For 2D and 3D rendering, you can use a
CompositeSymbol to build a symbol from a collection of symbol objects. For example, you may want to overlay several
SimpleMarkerSymbol objects to create a custom symbol (a triangle inside a circle, for example). A composite symbol is also useful
for combining your marker, line, or fill symbol with a text symbol to display a label.
The DistanceCompositeSymbol is a composite symbol that is specific to rendering features in a scene. Like CompositeSymbol, it
allows you to define a symbol from a collection of symbols. In addition, it gives you the ability to assign a visibility range for each symbol
based on the distance of the feature to the current camera position in the scene. Using this symbol, you can show features that are far
from the camera with a simple symbol and those that are nearer with a 3D-specific symbol (such as a model symbol). The 3D-specific
symbols render according to their absolute size in meters and may not be easily visible at large distances. By contrast, a
SimpleMarkerSymbol consistently renders according to screen units and is visible regardless of distance. Simple marker symbols are
also less resource-intensive than 3D marker symbols (especially model symbols), so they should be used whenever appropriate to
make your app more efficient.
The following example creates a 3D composite symbol that renders features with one of three symbols depending on the camera
distance. It also defines a text label that always appears.
DistanceCompositeSymbol compositeSymbol = new DistanceCompositeSymbol();
// ... code here to create new ModelMarkerSymbol, ConeMarkerSymbol, SimpleMarkerSymbol, and TextSymbol ...
// use a model symbol when the camera is within 100,000 meters
var nearSymbolInfo = new DistanceCompositeInfo(modelSymbol, 0, 100000);
compositeSymbol.Infos.Add(nearSymbolInfo);

// use a cone marker symbol for intermediate distances (100,000 to 600,000 meters)
var midSymbolInfo = new DistanceCompositeInfo(coneSymbol, 100000, 600000);
compositeSymbol.Infos.Add(midSymbolInfo);
// use a simple marker symbol for large distances
var farSymbolInfo = new DistanceCompositeInfo(markerSymbol, 600000, 10000000);
compositeSymbol.Infos.Add(farSymbolInfo);
// add a text label to appear at all distances
var textSymbolInfo = new DistanceCompositeInfo(textSym, 0, 10000000);
compositeSymbol.Infos.Add(textSymbolInfo);

Symbol alignment and orientation


You can change the z-alignment of a scene marker symbol relative to its point geometry by setting the AnchorPosition property. The
default alignment is SceneSymbolAnchorPosition.Center, meaning the point is at the three-dimensional center of the symbol, for
example, the center of the sphere for a SphereMarkerSymbol. You can change the alignment to
SceneSymbolAnchorPosition.Top or SceneSymbolAnchorPosition.Bottom for each symbol. For example, a sphere set to
top alignment will have its top aligned with its point geometry, meaning the sphere will be below the point. Conversely, a sphere set to
bottom alignment will be above its point geometry, the bottom of the sphere being aligned with the point.
In addition to the alignment, you can change the orientation of a scene marker symbol. There are three properties you can use to orient
a symbol, one for each axis in three dimensions:

Copyright 1995-2015 Esri. All rights reserved. 194


ArcGIS Runtime SDK for .NET

HeadingRotates the symbol around its z-axis. For example, change a directional symbol from pointing north, by default, to
pointing east, by setting its heading to 90 (markerSym3D.Heading = 90).
PitchRotates the symbol around its x-axis. For example, change a directional symbol from pointing up along the z-axis, to
pointing parallel to the ground, by setting its pitch to -90 (markerSym3D.Pitch = -90).
RollRotates the symbol around its y-axis. For example, change a symbol from being parallel to the ground to being
perpendicular to the ground by setting its roll to 90 (markerSym3D.Roll = 90).

Related Topics
Navigate a scene
Create a scene
Add layers to your scene

Copyright 1995-2015 Esri. All rights reserved. 195


ArcGIS Runtime SDK for .NET

Search for features


The ArcGIS Runtime SDK provides three primary ways to search for features that meet a specified set of spatial and/or attribute criteria:
Find, Query, and Identify.
Find allows you to search for a text value within a specified set of layers and fields. For example, you can find all features that contain the
text Santa in either the COUNTY_NAME or CITY_NAME attribute for all the California layers in your map. Find can be configured to match
the search text exactly or to match where the text is present as part of the attribute value.
Query, although limited to searching a single layer or table at a time, allows you to build more advanced attribute search expressions
using multiple fields and value types. You can also use spatial criteria (either instead of or in addition to attribute criteria) to further refine
your search. For example, you can find all parcels within the current map extent that are valued over $250,000 and are vacant.
Identify uses spatial criteria only (the most common workflow being a point clicked on the map) to return information about features in one
or several layers. For example, to show attributes from several demographic layers for a location the user has clicked on the map, even if
those layers aren't currently being displayed.

Note: For Identify and Query, you can also include temporal criteria for the
search.

Tasks overview
Searching is implemented using tasks. Specifically, the FindTask, QueryTask, and IdentifyTask classes allow you to tailor your
searches for the type of questions you need to answer. To implement one of these tasks in your code, follow these general steps:
1. Create a new Task object and point it to an appropriate online or local resource (for example, a FeatureService).
2. Specify Task parameters, which are stored as properties of an appropriate parameters object. (for example, FindParameters for
use with a FindTask). Task parameters specify the search criteria as well as the output spatial reference and fields.
3. Execute the task, passing in the parameters object you've defined.
4. Process the results that are returned (summarize values, display graphics, and so on.).

Tip: You can give the user the ability to cancel long-running tasks by providing a CancellationToken when
creating the task.

In addition to the search tasks described here, the ArcGIS Runtime SDK provides a variety of other Task classes. There are tasks for
geocoding addresses, getting driving directions, printing, and more. Although individual tasks provide a range of functionality for use in
your app, they all share the same essential programming pattern described above.

Find features
FindTask provides the ability to return a subset of features based exclusively on attribute criteria. The task will search for a single (text)
value in a specified set of attribute fields within a specified set of layers and return all features that have a matching attribute value.
FindTask can be configured to match the search value exactly, or to match attribute values that simply contain the search string as part
of the attribute value.
For example, the following image shows the result of executing a FindTask to return state, city, or river features that contain the text Red
in either the NAME or CITY_NAME attribute:

Copyright 1995-2015 Esri. All rights reserved. 196


ArcGIS Runtime SDK for .NET

The following code illustrates how to return all features in a set of specified service layers that contain a search term in one of the specified
attributes:
// Create a new FindTask, pointing to the map service to search in the constructor
var url =
"http://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer";
var findTask = new FindTask(new Uri(url));
// Create a FindParameters object
var findParameters = new FindParameters();
// Set properties to define the search
//--the layer ids to search
findParameters.LayerIDs.Add(0); // Cities
findParameters.LayerIDs.Add(3); // Counties
findParameters.LayerIDs.Add(2); // States
//--the fields to search
findParameters.SearchFields.Add("name");
findParameters.SearchFields.Add("areaname");
findParameters.SearchFields.Add("state_name");
//--return feature geometry with the results
findParameters.ReturnGeometry = true;
//--the spatial reference for result geometry (match the map's)
findParameters.SpatialReference = MyMapView.SpatialReference;
//--the text to search for and how to evaluate matches
findParameters.SearchText = SearchForTextBox.Text;
findParameters.Contains = true; // false == match exactly
// Asynchronously execute the task; await the result
FindResult findResult = await findTask.ExecuteAsync(findParameters);

var foundCities = 0;
var foundCounties = 0;
var foundStates = 0;

// Loop thru results; count the matches found in each layer


foreach (FindItem findItem in findResult.Results)
{
switch (findItem.LayerID)
{
case 0: // Cities
foundCities++;
break;
case 3: // Counties
foundCounties++;
break;
case 2: // States
foundStates++;
break;
}
}

// Report the number of matches for each layer


var msg = string.Format("Found {0} cities, {1} counties, and {2} states containing '" + SearchForTextBox.Text + "' in a Name attribute",
foundCities, foundCounties, foundStates);

var messageDlg = new MessageDialog(msg);


await messageDlg.ShowAsync();
// Bind the results to a DataGrid control on the page
MyDataGrid.ItemsSource = findResult.Results;

Copyright 1995-2015 Esri. All rights reserved. 197


ArcGIS Runtime SDK for .NET

Executing a FindTask returns a collection of result objects, each one indicating which layer, field, and attribute value was matched by
executing the task. Perhaps most importantly, it gives you access to a graphic for the match, which includes all attributes and (if geometry
was requested in the input parameters) the shape and location of the feature that was found.
Geometry for the find results can be returned in a specified spatial reference by specifying the output spatial reference in the parameters
used as input for the task. If a spatial reference is not specified, results will be returned in the spatial reference of the map service being
searched. Most often, you will need the result features in the same spatial reference as your app's map.

Tip: If you will not need to use the geometry of your results (for example, for displaying the located features), you
should indicate that geometry should not be returned by the task (in the task parameters). Excluding the
geometry portion of your results can greatly improve performance, especially if several features (or complex
geometries) are potentially being returned.

Query features
A QueryTask provides the ability to return a subset of features from a single layer based on any combination of attribute, spatial, and
temporal criteria. Rather than searching for a single text value as FindTask does, a QueryTask can take a compound expression that
uses several attribute fields, data types, and operators (for example, POP > 1000000 AND NAME LIKE 'San%'). Unlike FindTask,
QueryTask does not let you specify a set of layers to search in a single operation but gives you much more control over the criteria used
to perform a search.

Note: A query does not require that all types of criteria be defined (attribute, spatial, and temporal). Leaving spatial
and temporal filters undefined, for example, means that the search will not be restricted using those criteria
(that is, the entire spatial and temporal extent will be evaluated).

The following code example queries the Police layer (index = 1) in the RedlandsEmergencyVehicles service using attribute, spatial,
and temporal criteria. A TimeExtent is passed into the constructor for the QueryTask that identifies a period from five minutes ago to
the present time. The attribute criteria is applied with an expression to find all unmarked vehicles (TYPE = 2) that are currently available
(STATUS = 1) or any vehicle that is traveling at or below 10 miles per hour (SPEED <= 10). The map's extent is used as the spatial
criteria to ensure that only features in the current extent are considered in the query.
Code to query a feature service layer and display the results as graphics in the map.
// Create a new QueryTask, indicate the map service to query in the constructor
var url =
"http://sampleserver5.arcgisonline.com/arcgis/rest/services/RedlandsEmergencyVehicles/FeatureServer/1";
var queryTask = new QueryTask(new Uri(url));
// Create a new Query object to define parameters; pass in a time extent
var timeWindow = new Esri.ArcGISRuntime.Data.TimeExtent
(DateTime.Now.Subtract(new TimeSpan(0, 5, 0, 0)), DateTime.Now); // 5 minutes ago to present
var queryParams = new Esri.ArcGISRuntime.Tasks.Query.Query(timeWindow);
// Set properties of the Query
//--attribute criteria (where expression)
queryParams.Where = "(TYPE = 2 AND STATUS = 1) OR (SPEED <= 10)";
//--spatial criterion; default relationship is "intersects"
queryParams.Geometry = MyMapView.Extent;
//--return feature geometry with the results
queryParams.ReturnGeometry = true;
//--output spatial reference
queryParams.OutSpatialReference = MyMapView.SpatialReference;
// Execute the task and await the result
QueryResult queryResult = await queryTask.ExecuteAsync(queryParams);
// Get the list of features (graphics) from the result
var resultFeatures = queryResult.FeatureSet.Features;

// Get the graphics layer in the map


var graphicsLayer = MyMap.Layers["Graphics"] as GraphicsLayer;

// Display result graphics


graphicsLayer.GraphicsSource = resultFeatures;

Copyright 1995-2015 Esri. All rights reserved. 198


ArcGIS Runtime SDK for .NET

Query criteria can be specified using any combination of attribute, spatial, and temporal criteria. Attribute criteria is defined using a SQL
expression in the form "attribute operator value" (for example, "POPULATION < 2000000"). Several conditions can also be
connected using AND or OR to produce compound attribute expressions: "(POPULATION < 2000000 AND (REGION = 'Pacific'
OR REGION = 'Midwest'))".
Spatial criteria for a query requires two pieces of information: a Geometry object whose relationship to features in the query layer will be
evaluated, and the type of relationship to evaluate. The available spatial relationships are as follows:
IntersectsPart of an input feature is contained in the query geometry
ContainsPart or all of an input feature is contained within the query geometry
CrossesAn input feature crosses the query geometry
EnvelopeIntersectsThe envelope of an input feature intersects the envelope of the query geometry
OverlapsAn input feature overlaps the query geometry
TouchesAn input feature touches the border of the query geometry
WithinAn input feature is completely enclosed by the query geometry
Temporal criteria are defined using a TimeExtent, which can define a single point in time or a time range.

Tip: To return all features with a query, you can use an expression that is always true, such as "1=1", and leave
the spatial and temporal criteria undefined.
Similar to the FindTask, a QueryTask is generally used to return what is essentially a collection of result objects. The individual results
(graphics) can be accessed from the result in order to display them in the map or to work with their attribute values. Depending on the
needs for your app, you can simply return a list of ObjectIDs (rather than the actual features) that meet the query criteria. Similarly, you
can return just the count of resulting features. Returning the count or a list of IDs will usually perform much better than returning a set of
features.
You can also use a QueryTask to find features in a related dataset for a particular layer. You can pass in the same types of input for the
task parameters when searching related records (such as query criteria, output spatial reference, and whether to include geometry), but
you also need to indicate the relationship ID for the related dataset. This ID can be found by consulting the metadata for the layer in the
service (REST page).
Geometry for the query results can be returned in a specified spatial reference by specifying the output spatial reference in the parameters
used as input for the task. If a spatial reference is not specified, results will be returned in the spatial reference of the map service being
searched. Most often, you will need the result features in the same spatial reference as your app's map.

Tip: If you will not need to use the geometry of your results (for example, for displaying the located features), you
should indicate that geometry should not be returned by the task (in the task parameters). Excluding the
geometry portion of your results can greatly improve performance, especially if several features (or complex
geometries) are potentially being returned.

Copyright 1995-2015 Esri. All rights reserved. 199


ArcGIS Runtime SDK for .NET

Query offline content


The ArcGIS Runtime SDK allows you to work with data that is stored locally, such as features stored in a local geodatabase. Local data
sources, such as a geodatabase feature table, cannot be queried using the QueryTask as previously described (which requires a URI
for an online data source). Instead, you can query the underlying table directly using attribute and/or spatial criteria to return a collection
of result features. The process is similar, however, in that you need to provide a variety of parameters (including query criteria) and as a
result will get a collection of features that meet your criteria.
The local data you want to query may or may not be displayed in the map. If the dataset is the source for one of the map's layers, you
can access the local feature table through a property on the layer. Otherwise, you will need to open the local geodatabase table before
executing the query.
The following code example illustrates how to query a layer that is based on a geodatabase feature table (stored locally on the client).
The query finds features in the current map extent that also have an EventType attribute value of 1.
// Get a layer from the map that is referencing a local data source
var layer = MyMap.Layers["OfflinePoints"] as FeatureLayer;
if (layer != null)
{
// Get the geodatabase feature table that the layer is displaying
var table = layer.FeatureTable as Esri.ArcGISRuntime.Data.GeodatabaseFeatureTable;

// Create a new SpatialQueryFilter object to define the query criteria


var query = new Esri.ArcGISRuntime.Data.SpatialQueryFilter();
// Use the current map extent as the query geometry (project it to match the layer's dataset)
var searchExt = GeometryEngine.Project(MyMapView.Extent, table.Extent.SpatialReference);
query.Geometry = searchExt;
query.SpatialRelationship = Esri.ArcGISRuntime.Geometry.SpatialRelationship.Intersects;
// Set the where clause to find features that also have an EventType value of 1
query.WhereClause = "EventType=1";
if (table.SupportsQuery)
{
// Query the table and await the result
var result = await table.QueryAsync(query);
// Get a graphics layer in the map to display results
var graphicsLayer = MyMap.Layers["ResultGraphics"] as GraphicsLayer;
// Clear any existing graphics in the result layer
graphicsLayer.Graphics.Clear();

// Loop through query results


foreach (Esri.ArcGISRuntime.Data.Feature f in result)
{
// Use the geometry and attributes of each result to create a graphic
var g = new Graphic(f.Geometry, f.Attributes);
// Add each graphic to the graphics layer
graphicsLayer.Graphics.Add(g);
}
}
}

Before attempting a query, you can check a geodatabase feature table to see if it supports queries. If a query on a local data table is
successful, it will return a collection of results that can be used to access feature information such as attributes and geometry in order to
display your results. In addition to querying a local table with attribute and/or spatial criteria, you can also pass in a list of object IDs to
return the corresponding features.
The following code example illustrates how to open a local geodatabase, access a particular feature table, and execute an attribute
query to get some results:
// Specify a path to a local geodatabase (downloaded from a feature service, e.g.)
var path = System.IO.Path.Combine(@"C:\Temp\Cache", "WildfiresLocal");

// Open the geodatabase


var gdb = await Esri.ArcGISRuntime.Data.Geodatabase.OpenAsync(path);
// Loop through all tables
foreach (var t in gdb.FeatureTables.ToList())
{
// Find a table by name
if (t.Name.ToLower().Contains("points") )
{
// Define an attribute query
var filter = new Esri.ArcGISRuntime.Data.QueryFilter();
filter.WhereClause = "EventType=1";
// Execute the query and await results
var r = await t.QueryAsync(filter);

// Process results here ...


}
}

Identify features
An identify operation is a user-driven operation typically involving a single click on the map and the retrieval of information about features
hit by that clicked point from any layer in the map. In the ArcGIS Runtime SDK for .NET, you can use the IdentifyTask to search the

Copyright 1995-2015 Esri. All rights reserved. 200


ArcGIS Runtime SDK for .NET

layers in both local and online data for features that intersect an input geometry. Once the matching features are returned, you can display
their geometries and attributes in your app.
Define parameters to control how you want the identify to operate. The following are some basic guidelines:
Information about the map is required for an IdentifyTask to correctly evaluate the relationship between features in the service
and the input geometry. These include the map dimensions (width and height, in pixels), the current map extent, and the screen
resolution (dots per inchthe default value is 96).
Identify operates by intersecting a geometry with the features in one or more layers. Provide the intersection geometry using a
Point, Polyline, Polygon, Envelope, or Multipoint.
Tip: To control the spatial relationship evaluated in the identify (a relationship other than intersection), use
a QueryTask instead.

Specify a tolerance to control the distance (in pixels) from your geometry within which the intersection will be performed.
Geometry for the IdentifyTask results can be returned in a specified spatial reference by setting the output spatial reference.
This value also indicates which spatial reference is being used for the input geometry and input map extent values. If it is not
specified, the spatial reference of the map service being searched will be assumed. In general, you should set this property using
the spatial reference of your map.
An Identify operation has the potential to retrieve a lot of information, especially if there are several layers involved. To improve
performance and to make your Identify operation more efficient, you can specify the layers to include in your search. You can
specify the layers, by ID, that take part in the Identify task. Alternatively, you can identify only the visible layers, only the top most
(visible) layer, or all layers (regardless of visibility).
The results of the Identify task are returned as a collection of result objects. Each item in the collection represents the identify result for a
layer included in the operation. You can process the contents of the layer results to get to the individual features (geometry and attributes)
returned by the operation.
The following code example uses an IdentifyTask in response to a click on the map to display information about a feature clicked by
the user:

Copyright 1995-2015 Esri. All rights reserved. 201


ArcGIS Runtime SDK for .NET

// When the mouse button is released on the Map, use Identify to get info
private async void MyMapView_MouseUp(object sender, MouseButtonEventArgs e)
{
var screenPoint = e.GetPosition(MyMapView);

// Convert the screen point to a point in map coordinates


var mapPoint = MyMapView.ScreenToLocation(screenPoint);
// Create a new IdentifyTask pointing to the map service to identify (USA)
var uri = new Uri("http://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer");
var identifyTask = new IdentifyTask(uri);

// Create variables to store identify parameter information


var extent = MyMapView.Extent; //--current map extent (Envelope)
var tolerance = 7; //--tolerance, in pixels, for finding features
var height = (int)MyMapView.ActualHeight; //--current height, in pixels, of the map control
var width = (int)MyMapView.ActualWidth; //--current width, in pixels, of the map control
// Create a new IdentifyParameter; pass the variables above to the constructor
var identifyParams = new IdentifyParameter(mapPoint, extent, tolerance, height, width);

// Identify only the top most visible layer in the service


identifyParams.LayerOption = LayerOption.Top;
// Set the spatial reference to match with the map's
identifyParams.SpatialReference = MyMapView.SpatialReference;

// Execute the task and await the result


IdentifyResult idResult = await identifyTask.ExecuteAsync(identifyParams);

// See if a result was returned


if (idResult != null && idResult.Results.Count > 0)
{
// Get the feature for the first result
var topLayerFeature = idResult.Results[0].Feature as Graphic;

Symbol symbol = null;


Color color = Colors.Red;
// Apply a symbol (check geometry type)
if (topLayerFeature.Geometry.GeometryType == GeometryType.Point) {
symbol = new SimpleMarkerSymbol { Style = SimpleMarkerStyle.Circle, Color = color, Size = 10 };
}
else if (topLayerFeature.Geometry.GeometryType == GeometryType.Polygon)
{
symbol = new SimpleFillSymbol { Color = color};
}
else if (topLayerFeature.Geometry.GeometryType == GeometryType.Polyline)
{
symbol = new SimpleLineSymbol { Color = color, Width = 3 };
}

topLayerFeature.Symbol = symbol;
// Display the feature as a graphic on the map
var resultLayer = MyMap.Layers["IdResultGraphics"] as GraphicsLayer;
resultLayer.Graphics.Clear();
resultLayer.Graphics.Add(topLayerFeature);
// Display the attributes in a data grid on the page
this.ResultsDataGrid.ItemsSource = topLayerFeature.Attributes;
}
}

Handle exceptions when executing a task


If an error is encountered while executing a task, System.Threading.Tasks.Task.Exception will be set. You can trap for such
exceptions by wrapping the await call in a try catch block such as the one shown in the following code example. If the exception is
raised from the underlying REST call, you can expect an Esri.ArcGISRuntime.Http.ArcGISWebException to be thrown.
QueryResult queryResult = null;
Task<QueryResult> task = queryTask.ExecuteAsync(queryParams);
try
{
queryResult = await task;
}
catch (Esri.ArcGISRuntime.Http.ArcGISWebException exp)
{
// "Invalid URL", "Invalid parameter", e.g.
// ... handle exception here ...
}
catch (Exception exp)
{
// ... handle exception here ...
}

if (queryResult != null)
{
// Process results ...
}

Allow the user to cancel a task


A task can be cancelled during the course of its asynchronous execution by using a System.Threading.CancellationToken, which
can optionally be passed into most ExecuteAsync methods for a task. A task can be cancelled manually (for example, if the user clicks a
Cancel button) or by specifying a maximum time interval that the task is allowed to run. The following code example incorporates both
techniques by setting a time limit (10 seconds) after which the task will be cancelled and also calls the Cancel method if the user clicks
the Cancel button.

Copyright 1995-2015 Esri. All rights reserved. 202


ArcGIS Runtime SDK for .NET

private System.Threading.CancellationTokenSource canceller;


private async void DoQuery()
{
var url =
"http://sampleserver5.arcgisonline.com/arcgis/rest/services/RedlandsEmergencyVehicles/FeatureServer/1";
var queryTask = new QueryTask(new Uri(url));

// Create a new Query object to define parameters (get all features)


var queryParams = new Esri.ArcGISRuntime.Tasks.Query.Query("1=1");

// Set up the cancellation token


this.canceller = new System.Threading.CancellationTokenSource();
this.canceller.CancelAfter(10000); // 10 seconds
var token = this.canceller.Token;

// Execute the task with the cancellation token; await the result
QueryResult queryResult = null;
Task<QueryResult> task = queryTask.ExecuteAsync(queryParams, token);
try
{
queryResult = await task;
}
catch (System.Threading.Tasks.TaskCanceledException exp)
{
// ... handle cancel here ...
}

if (queryResult == null) { return; }


// Get the list of features (graphics) from the result
var resultFeatures = queryResult.FeatureSet.Features;

// Get the graphics layer in the map; set the source with the result features
var graphicsLayer = MyMap.Layers["Graphics"] as GraphicsLayer;
graphicsLayer.GraphicsSource = resultFeatures;
}

private void CancelButton_Click(object sender, RoutedEventArgs e)


{
// If the Cancel button is clicked, cancel the task using the CancellationTokenSource object
this.canceller.Cancel();
}

Cancelling the task will cause a System.Threading.Tasks.TaskCanceledException to be thrown. When allowing the user to
cancel a task, you'll need to anticipate and handle these exceptions gracefully in your code.

Related Topics
Features and graphics
Search for places
Search for coordinates

Copyright 1995-2015 Esri. All rights reserved. 203


ArcGIS Runtime SDK for .NET

Search for places


ArcGIS Runtime SDK for .NET provides tools for searching places on the map. Using a place name or street address as input, your user
can easily find locations of interest and interact with them on the map. The process of matching locations on the map to an address is
referred to as geocoding.

Geocoding overview
Address geocoding (or geocoding) is the process of using information contained in an address to interpolate a corresponding location on
the map. An address may define a precise street location, such as "380 New York Street, Redlands CA 92373"; may provide only a
general location, such as a city name or postal code; or may be a familiar place name or landmark, such as "Ayers Rock".
Using a reference data source, referred to as a locator, ArcGIS is able to find map locations by matching an input address with feature
attributes. The number and accuracy of the geocoded results (often called matches or candidates) may vary depending on the specificity
and quality of the input address provided. The address "New York", for example, is likely to return a match for the state of New York, the
city of New York, and perhaps several streets or points of interest that share that name. Geocoded locations are always points. If a match
is made with a polygon (a state or postal code, for example), the match location represents the center of that area.
Additional geocoding inputs can improve the relevance of results by restricting the search to a given area or finding matches that are near
a reference location. This allows you to find results for a specified country, map extent, or near the user's current or anticipated location. A
general search like "restaurant", for example, is unlikely to return useful candidates unless it is restricted to a specific area.
When several candidates are returned for an address, they will be sorted by the quality of the match. This means it is generally safe to
assume that the first candidate in the results represents the best match. Sometimes, however, you might want to examine a set of top
candidates to determine the most appropriate match. Address candidates can contain the level at which they were matched (house, street,
postal code, etc.) and the interpolated address created by the locator. Both of these might help you determine the best match or perhaps
find problems in the original address input. If geocoding used a reference location, a distance attribute can help you find the closest
candidate.

Caution: The score attribute, an integer value ranging from 0 to 100, provides an estimate of relative match accuracy
within a single locator. If you are using a composite locator (such as the ArcGIS World Geocoding Service),
these values will represent the score within a locator for a specific level, but not an overall evaluation of the
match. A score of 100 for a postal code match is not necessarily a more precise result, for example, than a
score of 90 at the house level.

Addresses
Addresses are fundamental for geocoding and have some specific characteristics. An address is composed of one or more address
elements: individual components of the address, such as house number, street name, street type, and postal code. Address elements
help in the geocoding search, pinpointing an address to a particular location. Addresses come in various styles and formats, including
street address, a place name, or a location that is identified by a code. A common address format used in the United States consists of
the following series of address elements: house number, prefix direction, prefix type, street name, street type, suffix direction, and zone
information (such as city, state, and ZIP Code). Globally, addresses are represented in a variety of formats. However, while all these
addresses differ to some degree, some things remain consistent. Each address consists of one or more address elements presented in
a particular address format recognized by those in the region.
When geocoding, you can pass in individual components of an address or provide all information as a single string to be parsed.
Defining each component of an address gives you more control but may require that you either parse the components before passing
them to the locator or provide additional UI controls for your user to enter each piece of information.
When geocoding, the type of information expected in an input address is determined by the address style configured by the locator
you're using. Some of the common address component field names for the ArcGIS World Geocoding Service
(http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer) are listed below as an example of the type of input that may be
expected. See Multiple input field geocoding for more details.
AddressHouse number and street
NeighborhoodSubdivision of a city (not used for US addresses)
CityCity or municipality
SubregionAdministrative region, such as a county or province (not used for US or Mexico addresses)
RegionLargest administrative boundary associated with the address (state name in the US)
PostalPostal code

Copyright 1995-2015 Esri. All rights reserved. 204


ArcGIS Runtime SDK for .NET

CountryCodeName or ISO code of the country

Locators
The fundamental logic for geocoding is built into the locator and does not come from your ArcGIS Runtime SDK code. The locator
(created using ArcGIS for Desktop) is the major component in the geocoding process and contains all the data necessary to perform
address matching. A locator is created based on a specific address locator style, which dictates what type of address input is expected
and how matching will be carried out. The following table lists some of the common address styles, the type of matching that it enables,
and an example of input address values:

Address style Description Input address examples


US Address - City Finds a city in the United States using reference data that stores city and state names. Bonita, CA
State
Punxsutawney, PA
US Address - Dual Interpolates an address location using a streets reference dataset that includes number 30 E. State St, Redlands CA
Ranges ranges for both sides of the street. 92373
1060 W. Addison St,
Chicago IL 60613
General - Finds place names or landmarks worldwide using reference data with a place name Taj Mahal
Gazetteer attribute.
Ypres
General - Single Locates features using a specific field in the reference dataset. 012883902
Field UTC330868-A

Note: This is not a complete list of the available address styles. For a more complete description, see Commonly
used address locator styles in the ArcGIS for Desktop help.
Once created, an address locator contains a set of geocoding properties (preferences), a snapshot of the address attributes in the
reference dataset, and the queries for performing a geocoding search. The address locator also contains a set of address parsing and
matching rules that directs the geocoding engine to perform address standardization and matching.
A locator can be stored locally (as a *.loc file) or can be published as a locator service using ArcGIS for Server. To perform geocoding,
you need to access either an online locator or one available locally on the device. Using ArcGIS Runtime SDK, you can connect to a
variety of online locators published and hosted by Esri, including address locators for Europe and North America, a street locator for the
United States, and a world places locator. These services allow you to begin geocoding with online data right away without having to
create and configure an address locator yourself. Locators can be created and configured with local data using ArcGIS for Desktop as
the authoring environment. See the ArcGIS help topic Creating an address locator for detailed information.

Results
Geocoding results for a particular address are referred to as candidates. Depending on how specific and complete the input address is,
you may get several candidates from a geocode operation. Geocoding results are ordered by quality of the match, so the first candidate
is generally the best. Additional candidate information can be obtained by specifying supplemental output fields to include in the results.
The following table describes a few of the available fields you can include from the world geocoding service. This is only a
representative list of fields. For a complete list, see the Output fields topic in the ArcGIS REST API documentation.

Note: The fields provided may vary between locators. See the Get locator info section of this topic for
information about querying a locator for its available result attributes.

Output field Description


Score Value between 0 and 100 that describes the relative quality of the match within a single locator.
Match_addr Complete address returned for the geocode request. The format is based on address standards for the country within which the
address is located.
Addr_type The match level for a geocode request. For example, a candidate that matches only to a postal code will have a value of
Postal. Supported match levels vary in different countries. See Output fields for a description of possible values for this field.
Side The side of the street on which the address was matched (relative to the direction of digitization of the reference line feature).
Possible values are L (left), R (right), or an empty string (undefined).

Distance The distance (meters) from the candidate to a specified location. The reference location needs to be specified as a parameter
before executing the task.
Rank A number indicating the importance of each candidate relative to others in the results. Rank is generally used to help distinguish
ambiguous place names using population as the criterion. A search for Las Vegas, for example, may return Las Vegas,
NV as the top ranked match (1) and Las Vegas, NM as a lower rank based on the relative population of those cities. If a
reference location and distance parameters have been set for a find operation, distance from the reference location will be used to
rank candidates.

Copyright 1995-2015 Esri. All rights reserved. 205


ArcGIS Runtime SDK for .NET

Use a locator task


Geocoding is implemented using one of the LocatorTask classes: OnlineLocatorTask for geocoding with an online locator, or
LocalLocatorTask for using a locally available locator. To implement one of these tasks in your code, follow these general steps:
1. Create a new OnlineLocatorTask or LocalLocatorTask, and point it to an appropriate online or local resource.
2. If performing a Find operation, specify input parameters using an OnlineLocatorFindParameters object, setting properties to
define things such as the address to find, output spatial reference, and output fields.
3. Asynchronously execute the task, passing in any required parameters (such as the address to match).
4. Process the results (display a list of candidates to choose from, display the best match, and so on).

Tip: You can give the user the ability to cancel long-running tasks by providing a CancellationToken when
creating the task.

In addition to the locator tasks described in this topic, ArcGIS Runtime SDK provides a variety of other Task classes. There are tasks for
querying features by location or attributes, getting driving directions, printing, and more. Although individual tasks provide a range of
functionality for use in your app, they all share the same essential programming pattern described above.

Get locator info


Before executing a geocode operation, you may need information about a particular locator to work with it effectively. You may need to
know which input fields are used to locate an address, which candidate fields are available with the results, or the spatial reference in
which the candidate locations will be returned by default. You can use GetInfoAsync to get information about an online or local
locator.
The following example shows how you can use an OnlineLocatorTask to connect to an online locator service and determine some
of its properties:
// get information about an online locator
var uri = new Uri("http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer");
var locatorTask = new Esri.ArcGISRuntime.Tasks.Geocoding.OnlineLocatorTask(uri);
var info = await locatorTask.GetInfoAsync();
// write info to controls on the page
// - description of the locator
this.DescriptionTextBlock.Text = info.ServiceDescription;
// - input address fields used by the locator
this.AddressFieldsDataGrid.ItemsSource = info.AddressFields;

// - available candidate fields (for output)


this.CandidateFieldsDataGrid.ItemsSource = info.CandidateFields;
// - spatial reference ID
this.WkidTextBlock.Text = info.SpatialReference.Wkid.ToString();

Geocode an address
To geocode an address, call the GeocodeAsync method on either an OnlineLocatorTask or a LocalLocatorTask object. You
need to pass in a Dictionary<string, string> object containing address values, a List<string> with the desired output fields,
and a CancellationToken. If you do not want to allow your user to cancel the request, you can pass in a new cancellation token, as
shown in the following example. Optionally, you can pass in a SpatialReference object to define the desired output spatial reference
for the results.
The address input is a dictionary of address values. The key for each value indicates the name of the address component for the
corresponding value. To set the individual components for "380 New York Street Redlands CA 92373", for example, your code might be
similar to the following:
var address = new Dictionary<string, string>();
address.Add("Address", "380 New York Street");
address.Add("City", "Redlands");
address.Add("Region", "CA");
address.Add("Postal", "92373");

You can also define the address as a single input by setting the single line address value. In that case, the address string will be parsed
into the appropriate components by the locator.
var info = await locatorTask.GetInfoAsync();
var address = new Dictionary<string, string>();
address.Add(info.SingleLineAddressField.FieldName, "380 New York Street Redlands CA 92373");

Tip: The GetInfoAsync method on the locator can be used to determine the name to use for the single line
address input field, as shown in the preceding example.

Copyright 1995-2015 Esri. All rights reserved. 206


ArcGIS Runtime SDK for .NET

The following example matches an address with an online locator for Tokyo using the Japanese addressing system. All the logic
required to match addresses is stored with the locator and its reference data. To modify this code to match an address in the US, you
simply change the URI to a locator service that uses US reference data and the US address rules.
// create a new online locator task ("Tokyo residence level locator")
var uri = new Uri("http://sampleserver6.arcgisonline.com/arcgis/rest/services/Locators/????????????/GeocodeServer");

var token = string.Empty;


var locator = new OnlineLocatorTask(uri, token);

// get info about the locator (will need the name of the single address input field)
var info = await locator.GetInfoAsync();
// store the name of the single address input field
var singleAddressFieldName = info.SingleLineAddressField.FieldName;

// create a dictionary to contain the address info


var address = new Dictionary<string, string> ();
// add address components to the dictionary using the correct input field names (a single address line in this example)
address.Add(singleAddressFieldName, "???????????-?-?");//(Japan Prime Minister's office)
// create a list of output fields to include with the candidates
var candidateFields = new List<string> { "Score", "Addr_type", "Match_addr", "Side" };

// start the geocode task: pass in the address, out candidate fields, out spatial reference, and an empty cancellation token
var task = locator.GeocodeAsync(address, candidateFields, MyMapView.SpatialReference, new System.Threading.CancellationToken());
IList<LocatorGeocodeResult> results = null;
try
{
// await the results of the task
results = await task;

// if at least one candidate was found, get its location (point)


if (results.Count > 0)
{
var firstMatch = results[0];
var matchLocation = firstMatch.Location as MapPoint;
// ... code here to display point on the map ...
}
}
catch (Exception ex)
{
var msg = "Exception from geocode: " + ex.Message;
var messageDlg = new MessageDialog(msg);
await messageDlg.ShowAsync();
}

Find places
The OnlineLocatorTask provides a FindAsync method that allows you to quickly search the ArcGIS World Geocoding Service
(http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer) for a place name or address. Using Find rather than Geocode
allows you to restrict your search to a specified country or extent, to search for broad categories of locations (coffee shops, for
example), and gives you the ability to prefer candidates that are closer to a specified location (the user's current position, for example).
You can even provide the user with phone numbers and URLs for candidate locations, as well as the distance from a reference location.
The FindAsync method takes a single-line address value as input and supports finding the following types of locations:
Street addresses380 New York St, Redlands, CA 92373
Points of interest (POI) by name and category. For example:
Disneyland
banks in Paris
los angeles starbucks
mount everest
Administrative place names, such as city/county/state/province/country namesSeattle, Washington
Postal codes92591 USA

Copyright 1995-2015 Esri. All rights reserved. 207


ArcGIS Runtime SDK for .NET

You can use the following properties on the LocatorFindParameters class to refine or restrict search results when using
FindAsync:
Specify output fields to return in the geocoding response with the OutFields property.
Specify the spatial reference of result locations with the OutSpatialReference property.
Limit the number of candidates with the MaxLocations property.
Restrict searches to a specific country by setting the SourceCountry property.
Confine the search results to a specified area with the SearchExtent property.
Use the Location and Distance properties to prefer local candidates, which will then be ranked higher in the candidates list.
The following example searches for ice cream shops near a specified location and displays their name, phone number, and a link to
their website. The closest candidates are presented to the user at the top of the list.
// create a locator to search the ArcGIS Online World geocode service
var uri = new Uri("http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer");
var token = String.Empty;
var locator = new Esri.ArcGISRuntime.Tasks.Geocoding.OnlineLocatorTask(uri, token);
// get the locator's spatial reference
var info = await locator.GetInfoAsync();
var locatorSpatialRef = info.SpatialReference;

// create find parameters; search locations for "ice cream"


var findParams = new Esri.ArcGISRuntime.Tasks.Geocoding.OnlineLocatorFindParameters("ice cream");

// set the output spatial reference to match the map's


findParams.OutSpatialReference = MyMapView.SpatialReference;
// restrict the search to the current map extent
var searchExtent = Esri.ArcGISRuntime.Geometry.GeometryEngine.Project(MyMapView.Extent, locatorSpatialRef);
findParams.SearchExtent = (Esri.ArcGISRuntime.Geometry.Envelope) searchExtent;
// prioritize matches within 5 kilometers of the center of the current map extent
var centerOfMap = MyMapView.Extent.GetCenter();
var centerOfMapLatLong = (MapPoint)GeometryEngine.Project(centerOfMap, locatorSpatialRef);
findParams.Location = centerOfMapLatLong; // distance to candidates will be measured from here
findParams.Distance = 5000; // meters

// return a maximum of 5 candidates


findParams.MaxLocations = 5;
// return phone number, url, and distance attributes with the candidates
var candidateFields = new List<string> { "Phone", "URL", "distance" };
findParams.OutFields = candidateFields;
try
{
// execute a find on the locator using the parameters defined above
var task = locator.FindAsync(findParams, new System.Threading.CancellationToken());
IList<Esri.ArcGISRuntime.Tasks.Geocoding.LocatorFindResult> results = await task;
foreach (var candidate in results)
{
// get information about each candidate
var candidateFeature = candidate.Feature;
var name = candidate.Name;
var phone = candidateFeature.Attributes["Phone"].ToString();
var url = candidateFeature.Attributes["URL"].ToString();
// get distance in miles from the center of the map
var distMeters = 0.0;
double.TryParse(candidateFeature.Attributes["distance"].ToString(), out distMeters);
var distMiles = distMeters * 0.00062137; // convert from meters to miles
// get location (geometry)
var matchLocation = candidateFeature.Geometry as Esri.ArcGISRuntime.Geometry.MapPoint;

// ... code here to display point graphics and info ...


}
}
catch (Exception ex)
{
var msg = "Exception from geocode: " + ex.Message;
var messageDlg = new MessageDialog(msg);
await messageDlg.ShowAsync();
}

Copyright 1995-2015 Esri. All rights reserved. 208


ArcGIS Runtime SDK for .NET

Related Topics
Features and graphics
Search for features
Search for coordinates

Copyright 1995-2015 Esri. All rights reserved. 209


ArcGIS Runtime SDK for .NET

Search for coordinates


The process of transforming geographical coordinates on the map to an address or place name is known as reverse geocoding. To
perform reverse geocoding, the API provides a specific class called LocatorTask that enables reverse geocoding against an ArcGIS
locator. The ArcGIS Runtime SDK for .NET provides two LocatorTask classes. The LocalLocatorTask requires a locally available
locator (*.loc file ) file on your machine, while the OnlineLocatorTask relies on the access to a remote ArcGIS Online Geocoding
Service to perform these functions. When using a LocalLocatorTask, reverse geocoding can be computed locally even when it has no
network connectivity. Using remote services requires a network connection but is an opportunity for incorporating additional functionality
such as real time updates. To learn more about the ArcGIS Online Geocoding Service see the ArcGIS Online Geocoding Service Help.

Initialize a LocatorTask
Whether you are performing online or offline geocoding, you start by initializing a LocatorTask object. Once you've initialized the
appropriate online or offline LocatorTask class, the programming pattern is exactly the same.

Online
To initialize an OnlineLocatorTask, declare an OnlineLocatorTask object, instantiate it with the new keyword, and pass the
uniform resource identifier (URI) to a REST endpoint that represents an ArcGIS Online Geocoding Service to the constructor. If the
service is secured, you also need to handle authenticating with the service using the appropriate mechanism. See the Security topic for
more information.
The following code sample shows how to create an OnlineLocatorTask for the World Street Map basemap layer using an ArcGIS
Online Geocoding Service:
// create a new online locator task for the World Street Map layer
var locator = new Esri.ArcGISRuntime.Tasks.Geocoding.OnlineLocatorTask(new Uri("http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer"));

Offline
To initialize an offline LocatorTask, declare a LocalLocatorTask object, instantiate it with the new keyword, and pass the path to
the locator (*.loc file) to the constructor.
The following code example shows how to create a LocalLocatorTask using a locally available locator (*.loc file):
// create a new local locator task using a locally available locator.
var locator = new Esri.ArcGISRuntime.Tasks.Geocoding.LocalLocatorTask("path to .loc file");

Input parameters
Use the LocatorTask to perform the reverse geocode on the geographic point by calling its ReverseGeocodeAsync method. At the
minimum, you need to provide the geographic location as a point in map coordinates, a search distance in meters from that location within
which a matching address should be searched, and a cancellation token with which to cancel the operation if required. An optional
parameter you can provide is the spatial reference in which the address candidate is to be returned.

Map location
To capture the input point geometry from a user, you can use a number of methods. For capturing the input point geometry for input
straight into the ReverseGeocodeAsync method, you can use the MapView.MapViewTapped event. The MapView control exposes
touch and mouse events such as the MapView.MapViewTapped event. You can add a MapViewTapped handler to the MapView
control.
The following code example shows how to capture the input point geometry using the MapView.MapViewTapped event to pass into
the ReverseGeocodeAsync method:
private async void mapView_MapViewTapped(object sender, Esri.ArcGISRuntime.Controls.MapViewInputEventArgs e)
{
graphicsLayer.Graphics.Add(new Graphic(e.Location));
OnlineLocatorTask locator = new OnlineLocatorTask(new Uri("http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer"));
var addressInfo = await locator.ReverseGeocodeAsync(e.Location, 50, SpatialReferences.Wgs84, CancellationToken.None);
}

Note: Because the call to ReverseGeocodeAsync is asynchronous, you must use the await keyword. This
means that the MapViewTapped event handler must also be marked with the async keyword, as shown in
the previous example.

Copyright 1995-2015 Esri. All rights reserved. 210


ArcGIS Runtime SDK for .NET

For more complex operations where you want the input point geometry at a specific time in your code, you can use
mapView.Editor.RequestPointAsync. The MapView control has an associated Editor that is accessible from the Editor
property. In addition to helping you configure editing functionality, the Editor class provides methods for obtaining geometry from the
user. You can use the mapView.Editor.RequestPointAsync method on the Editor to get a point to reverse geocode from the
user. RequestPointAsync returns the user's map click as a MapPoint object. Because the call to RequestPointAsync is asynchronous,
you must use the await keyword. This means that the function that contains the call must also be marked with the async keyword.
The following code example shows how to capture the input point geometry and pass to the ReverseGeocodeAsync method using the
mapView.Editor.RequestPointAsync method:
var mapPoint = await mapView.Editor.RequestPointAsync();
var locator = new Esri.ArcGISRuntime.Tasks.Geocoding.OnlineLocatorTask(new Uri("http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer"));
var addressInfo = await locator.ReverseGeocodeAsync(mapPoint, 50, SpatialReferences.Wgs84, CancellationToken.None);

Search distance
You need to provide a search distance in meters from that location within which a matching address should be searched. If the search
distance is not provided or an invalid value is provided, a default value of 0 is used.

Retrieve and display results


The ReverseGeocodeAsync method returns a LocatorReverseGocodeResult object. The following code example shows how to
perform reverse geocoding by calling the ReverseGeocodeAsync method:
Esri.ArcGISRuntime.Tasks.Geocoding.LocatorReverseGeocodeResult result = await locator.ReverseGeocodeAsync(e.Location, 50, CancellationToken.None);

From this result object, you can obtain details for the found address from the LocatorReverseGocodeResult.AddressFields
property, and display the address to the user. You may want to show address information in a map overlay element. These elements are
commonly used to display custom labels for locations on the map, commonly referred to as MapTips. To learn more about map overlays,
see Display map overlays.
The following code example shows how to display the reverse geocoding address and address location in a basic map overlay element:
//Build the estimated reverse geocoding address string by reading values in the LocatorReverseGeocodeResultAddressFields property, which is a dictionary of strings
var address = addressInfo.AddressFields["Address"] + ", " +
addressInfo.AddressFields["City"] + ", " +
addressInfo.AddressFields["Region"] + " " +
addressInfo.AddressFields["Postal"];
//Create a textblock containing the address and add to the map overlay
var tb = new TextBlock();
tb.FontWeight = FontWeights.Bold;
SolidColorBrush myBrush = new SolidColorBrush(Windows.UI.Colors.Black);
tb.Foreground = myBrush;
tb.Text = address;
mapView.Overlays.Add(tb);
//To position the map overlay element at the address location, call MapView.SetMapOverlayAnchor and pass in textblock and a map point for the address location.
MapView.SetViewOverlayAnchor(tb, e.Location);

See the Add geocoding to your app tutorial to learn how to use the OnlineLocatorTask to perform geocoding and reverse geocoding
operations using an ArcGIS Online Geocoding Service.

Copyright 1995-2015 Esri. All rights reserved. 211


ArcGIS Runtime SDK for .NET

Related Topics
Search for places
Search for features

Copyright 1995-2015 Esri. All rights reserved. 212


ArcGIS Runtime SDK for .NET

Editing
Editing means that you can add, update, and delete features, online and offline. Updating features includes modifying feature
attributeschanging the value of a feature's fields according to the type and range of values allowedand modifying feature geometry,
such as moving a point feature or re-shaping a polygon feature.
Editing also includes adding, updating, and deleting feature attachments. For example, if you are editing features representing wildlife
sightings, the feature geometry can represent the sighting's location, the feature attributes can include the sighting's description and time,
and you can add a photo of the sighted wildlife as an attachment to the feature.
Whether your app enables users to edit online (connected), offline (disconnected), or both, editing always requires an associated feature
service. You can create fully-featured feature services using ArcGIS for Server, and basic hosted feature services using the ArcGIS for
Developers website. For more information, see Prepare an editing environment. You will ultimately submit any edits made to features in
your Runtime app to a feature service. In an online editing workflow, edits should be sent back to the associated service as soon as they
are made. For an offline editing workflow, before going offline, create a local geodatabase from a sync-enabled feature service to contain
the features you want to edit. Edits made to those features while offline are recorded in the geodatabase and can be synced with the
originating feature service when back online.

Workflows
You can use the ArcGIS Runtime SDK for .NET to build an app that lets users edit online, offline, or both. After creating a feature table
from a feature service or geodatabase, you can edit the features in the table using add, update, and delete methods. A feature layer
(FeatureLayer class) displays your features on the map, but the editing operations are performed on the underlying feature table
(GeodatabaseFeatureTable and ServiceFeatureTable classes).

Note: The code to implement feature table edits is the same regardless of whether the feature table is based on a
feature service (online source) or local geodatabase table (offline source). For offline editing workflows,
additional code is needed to Sync offline edits back to the feature service.

Online editing
If you are building an app for which you can assume network connectivity is always available, you can support editing with a
ServiceFeatureTable. This table contains features from an online data source (feature service) and can be displayed in a
FeatureLayer.
Similarly, if you are building an app that needs to support both online and offline editing workflows, you can support offline editing with a
GeodatabaseFeatureTable. This table contains features from a local data source (geodatabase) and can also be displayed in a
FeatureLayer. The data in a GeodatabaseFeatureTable, while stored locally, can be synchronized with an online feature service
when connectivity is available. Logic in your app can respond to connectivity changes and use online or offline data and editing
strategies as appropriate.
For more information on editing geodatabase feature tables online and offline, see Edit features.

Offline editing
If you are building an app in which your users need to edit features offline, use the editing workflow described in Edit features. Before
going offline, provision a local geodatabase using ArcGIS for Desktop or create one from a sync-enabled feature service using the API,
as described in Create an offline map. Edit the features in the geodatabase on your local machine when offline, and sync those edits
back to the service when online again, as described in Sync offline edits.

Prepare an editing environment


Editing requires a feature service to provide the symbology, feature geometry, and set of attribute fields (schema) for your features.
Feature services contain service layers (feature data) and tables (nonspatial, tabular data) that you edit via a feature table or feature layer
in an online workflow, or use to prepare editable data for an offline workflow. For more information about feature services, see What is a
feature service?.
Before you build an app that performs editing, create a feature service exposing the layers you want to edit. You can create fully-featured
feature services using ArcGIS for Server. This involves setting up a map document and, optionally, defining templates for editing.
Templates allow you to pre-configure the symbology and attributes for some commonly used feature types. For example, to prepare to edit
roads, you might configure templates for Controlled Access Freeway, Other Divided Highway, State Highway, and Local Road. Templates
are optional, but they make it easy for the app's end user to create common features. Once your map is finished, publish the map as a

Copyright 1995-2015 Esri. All rights reserved. 213


ArcGIS Runtime SDK for .NET

feature service to an ArcGIS server with the Feature Access capability enabled. This creates REST URLs, or endpoints, to a map service
and a feature service. Use these URLs to reference the services in your app. The map service endpoint can be used for read-only access
to features (viewing only), so make sure to reference the feature service endpoint in an editing app. For an offline editing workflow, create
a sync-enabled feature service. A sync-enabled feature service allows you to generate a geodatabase for offline use, and gives you the
ability to sync your local edits back to the service.
Note: ArcGIS Server 10.2.2 or greater is required to publish sync-enabled feature
services.

You can also create basic hosted feature services using the ArcGIS for Developers site, including sync-enabled services. Log in to the site
and access the Hosted Data section shown below, click New Feature Service, then follow the instructions.

Edits made to features in your Runtime application need to be committed back to the feature service. In an online editing workflow, edits
should be sent back to the service as soon as they are made. For an offline editing workflow, sync edits made to the features in a local
geodatabase back to the service, as described in Sync offline edits.
For some editing workflows, it's a good idea to have an analyst using ArcGIS for Desktop periodically review the edits to verify data
integrity. Although components in the API can perform some data validation, other tasks such as validating topologies cannot be
performed.

Related Topics
Edit features
Sync offline edits
Work with feature attachments
Features and graphics

Copyright 1995-2015 Esri. All rights reserved. 214


ArcGIS Runtime SDK for .NET

Edit features
You can let users edit features while online (connected) or offline (disconnected). Editing includes adding new features, deleting features,
and updating existing features by changing their geometry (location or shape), attributes, or attachments. There are two models for editing
features: feature table editing and feature layer editing. This topic focuses on feature table editing. For an introduction to editing and the
editing models, see Editing.
Whether you are online or offline, the workflow to edit features is similar. In both cases, you need to do the following:
1. Create a feature tableIn a connected workflow, create it from a feature service. In a disconnected workflow, create it from a
geodatabase you generated with a sync-enabled feature service before you went offline, as described in Create an offline map.
2. Create a feature layer from the feature table and add the layer to the map.
3. Perform any edits against the feature table (add, update, and delete features and feature attachments).
4. Commit your editsIn a connected workflow, apply any edits you make to the feature service right away. In a disconnected
workflow, sync all your edits back to the service once you have a network connection, as described in Sync offline edits.
In a connected workflow, the type of feature table you create and edit is a ServiceFeatureTable. In a disconnected workflow, the type
of feature table you create and edit is a GeodatabaseFeatureTable. Both of these classes are types of ArcGISFeatureTable. The
class hierarchy between these is as follows:

To update or delete features, your app should enable users to select features on the map, as described below in Select features.

Create a feature table


Before you can edit features, you need to obtain feature data from a feature service. In an online workflow, create a feature table from a
feature service right before you want to edit features, for example, on application load. In an offline workflow, generate a geodatabase
from a sync-enabled feature service while you have a network connection, in preparation for editing features offline. When offline, create
feature tables from the geodatabase to edit the features locally. In both cases, check the capabilities of the feature service to ensure the
editing capability is available.

Online
In an online workflow, create a geodatabase feature service table (ServiceFeatureTable class) from a feature service. You can then
create a feature layer using this feature table. Once you add the feature layer to a map, features in the map extent are added to the
feature service table and can be edited. As you pan and zoom the map (that is, change the map extent), more features are retrieved
from the feature service and added to the geodatabase feature service table.
Note: The number of features you see when you initially visit a new area of the map is limited by the feature
service's MaxRecordCount property (the default value for this property is 1,000). Pan and zoom to query
the service for more features. Once features are retrieved from the service and visible in your map, they
are available in your geodatabase feature service table for editing and querying.

If you define a FeatureLayer using XAML, the underlying ServiceFeatureTable will be projected to align with the spatial
reference defined for the containing MapView. When initializing a ServiceFeatureTable instance in your code, however, you can
optionally pass in a spatial reference for the table. If you do not explicitly set the spatial reference when initializing the
ServiceFeatureTable, the spatial reference of the service will be used. Be aware that if your map is in a different spatial reference
than the default spatial reference of your ServiceFeatureTable, your features will not appear on the map. When possible, it's
therefore a good practice to set the spatial reference explicitly.
The following example illustrates creating feature layers using XAML. The ServiceFeatureTable used for each layer will be
automatically projected to the spatial reference of the map view (defined by the basemap layer).

Copyright 1995-2015 Esri. All rights reserved. 215


ArcGIS Runtime SDK for .NET

<esri:MapView x:Name="MyMapView">
<esri:Map>
<layers:ArcGISTiledMapServiceLayer
ID="BaseMap"
ServiceUri="http://services.arcgisonline.com/arcgis/rest/services/World_Topo_map/mapserver"/>
<layers:FeatureLayer ID="MarineOnline">
<layers:FeatureLayer.FeatureTable>
<data:ServiceFeatureTable
ServiceUri="http://sampleserver6.arcgisonline.com/arcgis/rest/services/Sync/SaveTheBaySync/FeatureServer/0"/>
</layers:FeatureLayer.FeatureTable>
</layers:FeatureLayer>
<layers:FeatureLayer ID="BirdsOnline">
<layers:FeatureLayer.FeatureTable>
<data:ServiceFeatureTable
ServiceUri="http://sampleserver6.arcgisonline.com/arcgis/rest/services/Sync/SaveTheBaySync/FeatureServer/1"/>
</layers:FeatureLayer.FeatureTable>
</layers:FeatureLayer>
</esri:Map>
</esri:MapView>

The example below illustrates creating a feature layer using code. The spatial reference for the ServiceFeatureTable is set by
passing the spatial reference of the map view as the optional argument. This ensures that the features will display on the map as
expected.
// create a new geodatabase feature service table; point to a feature service layer end point
var table = new ServiceFeatureTable();
table.ServiceUri = "http://sampleserver6.arcgisonline.com/arcgis/rest/services/Sync/SaveTheBaySync/FeatureServer/1";
// initialize the feature table; use the map view's spatial reference for the optional "sr_override" argument
await table.InitializeAsync(MyMapView.SpatialReference);

// if the table was initialized successfully, create a new feature layer for the table and add it to the map
if (table.IsInitialized)
{
var lyr = new FeatureLayer
{
ID = "Birds",
DisplayName = "Bird Observations",
FeatureTable = table
};

MyMapView.Map.Layers.Add(lyr);
}

Note: The static method ServiceFeatureTable.OpenAsync can also be used to instantiate a new
ServiceFeatureTable with a specified spatial reference.

Offline
In an offline workflow, generate a geodatabase from a sync-enabled feature service while you have a network connection. Follow the
geodatabase generation process described in Create an offline map. This process results in a geodatabase stored locally on disk. The
geodatabase contains one or more feature tables, one for each service layer or service table that you requested in the geodatabase
generation process. When offline, create geodatabase feature tables (GeodatabaseFeatureTable class) from the geodatabase, for
example, on application load. The features in the geodatabase feature tables are available for editing whether you create a feature layer
or not, but in most cases you'll want to create a feature layer from the feature tables to display the features on a map. Also, consider
generating an offline basemap to give the feature data some geographical context when your users edit offline, as described in Include
a basemap.
The following code sample shows how to create a feature table from a table in a local geodatabase:
// open a geodatabase in local storage
var localData = Windows.Storage.ApplicationData.Current.LocalFolder;
var gdbPath = localData.Path + @"\WildlifeLocal.geodatabase";
var gdb = await Esri.ArcGISRuntime.Data.Geodatabase.OpenAsync(gdbPath);
// get the first table in the database
var table = gdb.FeatureTables.FirstOrDefault();

// get the third table


var anotherTable = gdb.FeatureTables.ElementAt(2);
// find a table by name
var marineTable = gdb.FeatureTables.FirstOrDefault(t => t.Name == "Marine");

// loop through all tables


foreach (var t in gdb.FeatureTables)
{
// ... code here to work with the table ...
}

Add layers to the map


Display the features contained in the feature table in a map so your users can view and edit them. Create a feature layer from the feature
table and add the layer to a map. The feature layer, once added to a map, takes care of displaying the features contained in your feature
table that fall within the map extent displayed. When you make edits to features in the table, these edits are visible right away in the
associated feature layer and map, but not yet committed back to the service.

Copyright 1995-2015 Esri. All rights reserved. 216


ArcGIS Runtime SDK for .NET

The following code sample shows how to create a feature layer from a feature table:

// open a geodatabase in local storage


var localData = Windows.Storage.ApplicationData.Current.LocalFolder;
var geodatabasePath = localData.Path + @"\WildlifeLocal.geodatabase";
// open the local geodatabase
var gdb = await Esri.ArcGISRuntime.Data.Geodatabase.OpenAsync(geodatabasePath);

// loop thru all tables in the database


foreach (var table in gdb.FeatureTables)
{
// create a new feature layer for each table
var lyr = new FeatureLayer
{
ID = table.Name + "_Offline",
DisplayName = table.Name,
FeatureTable = table
};

// add the layer to the map


MyMapView.Map.Layers.Add(lyr);
}

Add features
To insert a new feature into a geodatabase table, call the AddAsync method, which is overloaded to accept either a Feature object
(created using the appropriate geodatabase table schema), or the geometry and attributes you want to store. This method returns the
unique feature ID of the added feature, which you can use if you need to modify the feature later on. Adding a feature to a geodatabase
table is shown in the code below:
// get a point from the user
var mapPoint = await MyMapView.Editor.RequestPointAsync();
// open the local geodatabase
var gdb = await Esri.ArcGISRuntime.Data.Geodatabase.OpenAsync(geodatabasePath);
// open the "Marine" table and create a new feature using its schema
var gdbTable = gdb.FeatureTables.FirstOrDefault(t => t.Name == "Marine");
var newFeature = new Esri.ArcGISRuntime.Data.GeodatabaseFeature(gdbTable.Schema);

// assign the point from the user as the feature's geometry


newFeature.Geometry = mapPoint;
// get the attributes from the feature (a Dictionary<string, object>) and set some values
var attributes = newFeature.Attributes;
attributes["type"] = 1; // Coded value domain, 1='Manatee'
attributes["confirmed"] = 1; // 0=NO, 1=YES
attributes["comments"] = "EM 11 Survey Team";
// add the new feature to the table, the OID of the new feature is returned
var recNo = await gdbTable.AddAsync(newFeature);

Update features
Features can be updated with the UpdateAsync method on the GeodatabaseFeatureTable.
The code sample below shows a method that updates a point feature in the geodatabase feature table with a new point geometry,
changing its location on the map.
// create a list of the record IDs to update (just one in this case)
var idList = new List<long> { this.lastAddedOid };

// query the table for the features with the specified IDs
var updateFeatures = await gdbTable.QueryAsync(idList);

// get the first GeodatabaseFeature (should be one or zero)


var feature = updateFeatures.FirstOrDefault();
if (feature == null) { return; }
// update the feature's geometry with a new point
feature.Geometry = newPoint;

// update one of the attribute values


feature.Attributes["comments"] = "point updated to last known location";

// commit the updated feature to the GeodatabaseTable


await gdbTable.UpdateAsync(feature);

Delete features
Features can be deleted from a local GeodatabaseFeatureTable by calling the DeleteAsync method. This method is overloaded to
allow you to specify the features you want to delete in several ways. To delete a single feature, you can pass in either the
GeodatabaseFeature itself or only its feature ID. To delete several features, you can specify a list (IEnumerable<long>) of IDs for
the features you want to delete. This is especially useful for deleting the current set of selected features in a FeatureLayer, which can
be returned using the SelectedFeatureIDs property. The following example illustrates calling DeleteAsync with a list of feature IDs.
var lyr = MyMapView.Map.Layers["MyFeatureLayer"] as Esri.ArcGISRuntime.Layers.FeatureLayer;
var selectedIds = lyr.SelectedFeatureIDs;
await gdbTable.DeleteAsync(selectedIds);

Copyright 1995-2015 Esri. All rights reserved. 217


ArcGIS Runtime SDK for .NET

Select features
In a typical map application involving editing, users should be able to select features they want to edit. You can programmatically select
features in a feature layer by passing a set of feature IDs to the SelectFeatures method on FeatureLayer. You typically obtain
feature IDs by performing a query on the geodatabase table from which the feature layer was created, or by letting your users click the
map and obtain the IDs of any features within a certain pixel tolerance around the clicked point. The following code sample shows how to
use a touch event listener on the map to select clicked features:
private async void MyMapView_TouchUp(object sender, TouchEventArgs e)
{
// get the layer you want to select from (FeatureLayer)
var lyr = MyMapView.Map.Layers["MarineOffline"] as FeatureLayer;
if (lyr == null) { return; }

// use HitTestAsync to get feature IDs for the location touched


var featureIDs = await lyr.HitTestAsync(MyMapView, e.GetTouchPoint(MyMapView).Position);

// select the features in the layer


lyr.SelectFeatures(featureIDs);
}

Commit your edits


Committing your feature table edits to the feature service is different depending on whether your workflow is fully connected or
disconnected.

Online
In a fully connected workflow, you should apply feature edits and attachment edits back to the service as you make them. That way,
anyone else using the same feature service will have access to your changes right away.
To commit your feature edits to the service, call the ApplyEditsAsync method on ServiceFeatureTable. Pass in true to require
all edits to succeed in order to be committed, or false to commit edits individually. You can get the count of current feature edits using
AddedFeaturesCount, UpdatedFeaturesCount, and DeletedFeaturesCount. This indicates the number of features that will be
committed to the service upon calling ApplyEditsAsync.
The ApplyEditsAsync method returns a FeatureEditResult object. This object has properties for getting information about
individual feature edits that were attempted on the server as a result of the call: AddResults, UpdateResults, and DeleteResults.
Each of these properties returns a read-only list of FeatureEditResultItem that provides the object ID, global ID, success flag, and
error details (if an edit failed).
The following example shows applying edits to the server and then evaluating the result.
// store the count of edits that need to be applied to the server
var totalAdds = table.AddedFeaturesCount;
var totalUpdates = table.UpdatedFeaturesCount;
var totalDeletes = table.DeletedFeaturesCount;
// apply edits, get the edit result
var editResult = await table.ApplyEditsAsync(false);
// count successful feature edits
var added = 0;
var updated = 0;
var deleted = 0;
// loop through all add results, count success
foreach (var add in editResult.AddResults)
{
if (add.Success) { added++; }
}
// loop through all update results, count success
foreach (var update in editResult.UpdateResults)
{
if (update.Success) { updated++; }
}
// loop through all delete results, count success
foreach (var delete in editResult.DeleteResults)
{
if (delete.Success) { deleted++; }
}
// report edit status
var msg = new StringBuilder();
msg.AppendLine("Successfully added " + added.ToString() + " features of " + totalAdds.ToString() + " attempted.");
msg.AppendLine("Successfully updated " + updated.ToString() + " features of " + totalUpdates.ToString() + " attempted.");
msg.AppendLine("Successfully deleted " + deleted.ToString() + " features of " + totalDeletes.ToString() + " attempted.");
EditStatusTextBlock.Text = msg.ToString();

Note: For descriptions of errors that can arise during edit commits, go to the Apply Edits (Feature Service) topic
and click the error code link in the Description section.

Copyright 1995-2015 Esri. All rights reserved. 218


ArcGIS Runtime SDK for .NET

Offline
In a disconnected workflow, commit all edits back to the service, and optionally pull the latest changes from the service back to your
geodatabase through a sync operation, as described in Sync offline edits. Syncing requires a network connection; therefore, do this
when you are back online. Note that the edits that are last committed to the service will overwrite previously committed edits, even if
committed edits were made at a later time.

Related Topics
Editing
Work with feature attachments
Sync offline edits
Features and graphics

Copyright 1995-2015 Esri. All rights reserved. 219


ArcGIS Runtime SDK for .NET

Sync offline edits


Your users can edit offline in a services pattern and later sync their edits back to a feature service when connected. Syncing offline edits
requires that you've created a geodatabase using a sync-enabled feature service from ArcGIS for Server, ArcGIS Online, or Portal for
ArcGIS, as described in Create an offline map. After users have made edits and are ready to sync their local copy of the data with the
service, use GeodatabaseSyncTask to sync with the feature service. Syncing can be performed even if no edits have been made
locally, to pull changes from the feature service into the local copy of the data.
To synchronize edits, do the following:
Create a System.IProgress object to report changes in the synchronization task status.
Set up a callback to report when the process finishes or fails.
Create or obtain sync parameters for the synchronization task.
Create a GeodatabaseSyncTask instance.
Call the SyncGeodatabaseAsync method on the GeodatabaseSyncTask using the callbacks and sync parameters you set up.

Note: In a sync operation, edits most recently synced to the service will overwrite previously synced edits,
regardless of time of edits.

For descriptions of errors that can arise when syncing offline edits, see Error handling with sync.

Register a geodatabase in a pre-planned workflow


In a services pattern workflow known as a pre-planned workflow, you generate the geodatabase once and load copies of it onto each
user's device. If you've generated the geodatabase on the user's device with , you don't need to register a geodatabase.
In the pre-planned workflow, you use the RegisterGeodatabaseAsync method to register each geodatabase copy (on each device)
with the feature service you used to generate the original geodatabase. Registering in this way ensures each device receives the correct
updates during sync operations.

Caution: Once you call unregister on a geodatabase, you cannot re-register the same
geodatabase.
If the original geodatabase is ever unregistered, no additional clients can use that copy
to register.

For a list of benefits of this workflow, see Register a geodatabase in a pre-planned workflow in "Create an offline map."

Code sample
The following sample shows how to sync your offline edits back to a feature service.

Copyright 1995-2015 Esri. All rights reserved. 220


ArcGIS Runtime SDK for .NET

// private variable to track cancellation requests


private CancellationTokenSource _syncCancellationTokenSource;
// callback for when the synchronization completes or fails ...
private void syncCompleteCallback(GeodatabaseStatusInfo statusInfo, Exception ex)
{
// reset the cancellation token source
_syncCancellationTokenSource = null;
// if unsuccessful, report the exception and return
if (ex != null)
{
this.ReportStatus("An exception occured: " + ex.Message);
return;
}

// if successful, notify the user


this.ReportStatus("Synchronization of '" + statusInfo.GeodatabaseName + "' is complete.");
// optionally, do something with the result
var resultUri = statusInfo.ResultUri;
// ...
}
// function to submit a sync task
// -the url for the feature service and the path to the local geodatabase are passed in
public async Task SyncronizeEditsAsync(string serviceUrl, string geodatabasePath)
{
// create sync parameters
var taskParameters = new SyncGeodatabaseParameters()
{
RollbackOnFailure = true,
SyncDirection = Esri.ArcGISRuntime.Tasks.Offline.SyncDirection.Bidirectional
};

// cancel if an earlier call was made and hasn't completed


if (_syncCancellationTokenSource != null)
{
_syncCancellationTokenSource.Cancel();
}

// create a new cancellation token


_syncCancellationTokenSource = new CancellationTokenSource();
var cancelToken = _syncCancellationTokenSource.Token;
// create a sync task with the url of the feature service to sync
var syncTask = new GeodatabaseSyncTask(new Uri(serviceUrl));
// open the local geodatabase
var gdb = await Esri.ArcGISRuntime.Data.Geodatabase.OpenAsync(geodatabasePath);
// create a new Progress object to report updates to the sync status
var progress = new Progress<GeodatabaseStatusInfo>();
progress.ProgressChanged += (sender, s) =>
{
ShowStatus(s.Status);
};
// call SyncGeodatabaseAsync and pass in: sync params, local geodatabase, completion callback, update interval, progress, and cancellation token
var gdbResult = await syncTask.SyncGeodatabaseAsync(
taskParameters,
gdb,
this.syncCompleteCallback,
null,
new TimeSpan(0,0,30),
progress,
cancelToken);
}

Related Topics
Editing
Edit features
Features and graphics
Work with feature attachments

Copyright 1995-2015 Esri. All rights reserved. 221


ArcGIS Runtime SDK for .NET

Work with feature attachments


A feature service can be configured to allow a unique collection of files to be associated with each feature. These feature attachments can
consist of images, audio, video, text, and other files that provide additional information. A feature may have zero or several associated
attachments that are managed by the feature service. Using ArcGIS Runtime SDK for .NET, you can query a feature for its attachments to
view them as well as add, update, and delete attachments.

Note: The following file extensions are supported for feature attachments: 7Z, AIF, AVI, BMP, DOC, DOCX, DOT,
ECW, EMF, EPA, GIF, GML, GTAR, GZ, IMG, J2K, JP2, JPC, JPE, JPEG, JPF, JPG, JSON, MDB, MID,
MOV, MP2, MP3, MP4, MPA, MPE, MPEG, MPG, MPV2, PDF, PNG, PPT, PPTX, PS, PSD, QT, RA, RAM,
RAW, RMI, SID, TAR, TGZ, TIF, TIFF, TXT, VRML, WAV, WMA, WMF, WPS, XLS, XLSX, XLT, XML, and
ZIP.

When creating a local geodatabase from a feature service, you can control whether or not attachments are included in the output data.
See the Create an offline map topic for more information and an example.

Query attachments
Attachments must be enabled for a service before you can store them for features. Before attempting to get attachments for a feature, first
check to see if the layer allows them. Even if attachments have been enabled for a feature service, it's possible that many features in the
dataset will not have associated attachments. Do not assume that all features in an attachment-enabled service will have attachments
defined.

To check whether a feature layer supports attachments, use the HasAttachments property defined on the associated
ArcGISFeatureTable. The following code checks whether attachments are supported for any of the feature layers in the map:

Copyright 1995-2015 Esri. All rights reserved. 222


ArcGIS Runtime SDK for .NET

// get all feature layers from the map


var featureLayers = MyMapView.Map.Layers.OfType<FeatureLayer>();
// loop thru all feature layers, see if they support attachments
foreach (var lyr in featureLayers)
{
var table = lyr.FeatureTable as ArcGISFeatureTable;
if(table == null) { continue; }
var hasAttachments = table.HasAttachments;
// ... do something with attachments ...
}

After verifying that a feature table supports them, information about attachments can be returned for a specified feature using the
QueryAttachmentsAsync method on ArcGISFeatureTable. The ID of the feature is passed into the method and an
AttachmentInfos object is returned.

Note: For an online feature layer, ServiceFeatureTable provides an overload that allows you to run the query
on the local cache of the table rather than on the service. This is more efficient if you're confident that the
cached data is still accurate, since it saves a round trip to the server.
The AttachmentInfos result provides a collection of AttachmentInfo objects with metadata about each attachment. If the feature
doesn't have attachments, the collection will be empty. The following example queries the table for attachments for a specified feature. A
check is then made to determine if the Infos collection is empty.
// query attachments for a feature
var attachmentResult = await featureTable.QueryAttachmentsAsync(featureId);
// check if any were found
if (attachmentResult.Infos != null && attachmentResult.Infos.Any())
{
foreach (var info in attachmentResult.Infos)
{
// ... process each attachment result ...
}
}

Get attachment information


When a query for attachments is made, as described previously, a collection of AttachmentInfo objects is returned. The
AttachmentInfo class contains properties that describe basic information about an attachment, including the file name, ID, content
type, and size (in bytes). For improved performance, the attachment data (image or document, for example) is not returned unless it is
specifically requested.
The following example reports basic information for a feature's attachments, including the ID, file name, content type, and file size for
each attachment:
foreach (var info in attachmentResult.Infos)
{
var item = string.Format("{0}: {1} - {2} ({3} bytes)", info.ID.ToString(), info.ContentType, info.Name, info.Size);
this.AttachmentList.Items.Add(item);
}

Get attachment data


To get attachment data, call the GetDataAsync method on AttachmentInfo. The following example iterates over all attachments for
a feature and creates a BitmapImage to display all image attachments:

Copyright 1995-2015 Esri. All rights reserved. 223


ArcGIS Runtime SDK for .NET

// loop thru all AttachmentInfo objects for the feature


foreach (var info in attachmentResult.Infos)
{
// find image attachments: "image/jpeg", "image/png", etc.
if (info.ContentType.Contains(@"image/"))
{
// get the data (stream) from the AttachmentInfo
using (var stream = await info.GetDataAsync())
{
// create a new BitmapImage and set the source with the stream
var bitmap = new BitmapImage();

await bitmap.SetSourceAsync(stream.AsRandomAccessStream());
// create a new Image control to display the bitmap
var img = new Image();
img.Source = bitmap;
// show the file name in the tool tip
ToolTipService.SetToolTip(img, info.Name);

// add the Image to a StackPanel on the page


this.AttachmentImages.Children.Add(img);
}
}
}

Edit feature attachments


If permitted by the service, you can add, update, and delete feature attachments using ArcGIS for Desktop, the ArcGIS Online map
viewer, or your ArcGIS Runtime SDK for .NET app. The service may restrict such edits based on property settings, available capabilities,
or ownership-based access rules. Before attempting to make edits to feature attachments, check to see which types of edits are
supported.
As described previously, you can use ArcGISFeatureTable.HasAttachments to see if the table supports feature attachments.
Similarly, availability of particular edits to feature attachments can be checked using the CanAddAttachment, CanDeleteAttachment,
and CanUpdateAttachment methods. Each of these methods takes the feature associated with the attachment as an input and returns
a Boolean result that indicates whether or not the operation is supported. Obviously, a supported edit operation can still fail. To evaluate
the success of an edit to a feature attachment, you can check the value of the Error property on the returned AttachmentResult
objects.
As with edits to a feature's attributes or geometry, edits made to feature attachments are initially stored in an in-memory version of the
feature table. To push attachment edits to the feature service that hosts the data, you must apply your in-memory edits by calling
ApplyAttachmentEditsAsync on the ServiceFeatureTable. When or how often you call ApplyAttachmentEditsAsync to push
your edits to the service is up to you and depends on the details of your editing workflow. Some factors that might influence your code are
the frequency of edits being made, the importance of keeping data in the service current, and the possibility of losing in-memory edits.
To revert to your original data (that is, discard edits made since the last sync operation), call the ClearEdits method on the table. This
will discard all edits made, including feature and feature attachment edits.
The ArcGIS Runtime SDK for .NET toolkit contains an AttachmentEditor control for use in your ArcGIS Runtime apps. See Install the
toolkit for instructions for downloading and installing the toolkit. The Edit attachment sample shows how to add, update, and delete feature
attachments. You can clone or download the source code for all the samples from the arcgis-runtime-samples-dotnet GitHub repository.

Add a new attachment


Use the AddAttachmentAsync method on ArcGISFeatureTable to add a new attachment for a feature. The method requires the
ID of the target feature, a Stream representing the data to attach, and a file name. As discussed previously, edits made to the feature

Copyright 1995-2015 Esri. All rights reserved. 224


ArcGIS Runtime SDK for .NET

table are stored in-memory. To push attachment edits to the service, you must call ApplyAttachmentEditsAsync on the
ServiceFeatureTable.
A new attachment can be added for a feature if:
The service supports adding attachments (CanAddAttachment returns true).
The file size is under the maximum value set for upload to the service. By default, this value is 2 GB but can be changed by the
server administrator.
The file is one of the supported types (listed previously in this topic).
The following example adds a text file as a feature attachment. After adding the attachment, the edits are applied to the underlying
feature service. A check is made after both making and applying the edit, and an exception is thrown if an error is found.
try
{
// get data from a local file to add as an attachment
var openPicker = new FileOpenPicker();
openPicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
openPicker.FileTypeFilter.Add(".txt");
var attachmentFile = await openPicker.PickSingleFileAsync();
var fileStream = await attachmentFile.OpenStreamForReadAsync();

// add the data as an attachment to a feature in the (in-memory) feature table


var addResult = await featureTable.AddAttachmentAsync(featureId, fileStream, "ProductList.txt");
if (addResult.Error != null)
{
// problem adding the attachment to the in-memory feature table
throw new Exception("Error adding attachment: " + addResult.Error.Message);
}
// apply the attachment edit back to the feature service
var applyResult = await featureTable.ApplyAttachmentEditsAsync();

// check the edit results (specifically, the single Add result) for success
var serverAddResult = applyResult.AddResults.FirstOrDefault();
if (serverAddResult.Error != null)
{
// problem applying the attachment edit to the service
throw new Exception("Error applying attachment edit: " + serverAddResult.Error.Message);
}
}
catch (Exception exp)
{
// report the exception

var message = new MessageDialog(exp.Message);


message.ShowAsync();
}

Caution: Attachment edits may be successful in the in-memory feature table but fail when applied to the feature
service. An unsupported file extension, for example, does not fail when you add an attachment to the in-
memory table but does when edits are applied to the service. Since no exceptions are thrown, check the
attachment edit results, as shown in the previous example.

Delete attachments
One or more attachments can be deleted for a feature by calling DeleteAttachmentsAsync on ArcGISFeatureTable. Pass in the
ID of the feature and an array specifying the IDs of the attachments to delete. Before attempting to delete attachments, check the value
of CanDeleteAttachment to verify that the operation is supported. Finally, to apply all current attachment edits from the in-memory
feature table to the underlying feature service, call ApplyAttachmentEditsAsync on ServiceFeatureTable.
The following example illustrates using CanDeleteAttachment to determine if deleting attachments is allowed by the service. After
deleting attachments, it checks the AttachmentResult collection for errors to determine if the edits were successful. The in-memory
edits are then pushed to the service by calling ApplyAttachmentEditsAsync before checking for errors a final time.

Copyright 1995-2015 Esri. All rights reserved. 225


ArcGIS Runtime SDK for .NET

// see if deleting attachments is possible


var deleteOK = featureTable.CanDeleteAttachment(fromFeature);
// if delete is possible, try to delete three attachments from a particular feature
if (deleteOK)
{
// identify the IDs of the attachments to be removed
long[] attachmentIds = new long[3] { 43, 16, 21 };
// delete the specified attachments for feature with ID = featureId
// (attachments are deleted from the in-memory version of the feature table)
var inMemoryDeleteResult = await featureTable.DeleteAttachmentsAsync(featureId, attachmentIds);
// check for errors in the in-memory attachment deletions
var inMemoryEditErrors = from m in inMemoryDeleteResult.Results where m.Error != null select m;
if (inMemoryEditErrors.Any())
{
// ... report errors here ...
return;
}

// apply the attachment edits to the feature service, get results


var applyResults = await featureTable.ApplyAttachmentEditsAsync();
// get the delete attachment results for the one feature that was edited
var deletedAttachments = applyResults.DeleteResults.FirstOrDefault();

// check for errors in applying the (three) attachment deletions to the service
var serviceEditErrors = from r in deletedAttachments.Results where r.Error != null select r;

if (serviceEditErrors.Any())
{
// ... report errors here ...
}

Update an attachment
Updating an attachment is essentially the same as deleting an existing attachment and re-adding it with new data or properties. A
common scenario for updating a feature attachment is to replace the information stored in the attachment with more up-to-date data. A
fast food restaurant feature, for example, may have a text file attachment that shows current specials. The data held by the attachment
could be updated as the information changes without changing the name, ID, or content type of the attachments.
To update an attachment, call UpdateAttachmentAsync on ArcGISFeatureTable and pass in the ID of the target feature, the ID
of the attachment to update, the data stream for the attached file, the file name to use for the attachment, and (optionally) the content
type.
A feature attachment can be updated if:
The service supports updating attachments (CanUpdateAttachment returns true).
The size of the new file is under the maximum value set for upload to the service. By default, this value is 2 GB but can be
changed by the server administrator.
The updated file is one of the supported types (listed previously in this topic).
The following example queries a feature for its attachments and loops through them to find one that needs to be updated (identifying it
by name). Once found, the ID of the attachment is used in a call to UpdateAttachmentAsync to replace the attachment data with the
contents of a new file. The name of the attachment is left as is.
// get attachments for a specific feature
var attachmentResult = await featureTable.QueryAttachmentsAsync(featureId);
// loop thru all attachments and find the one that needs updating (by name)
foreach (var info in attachmentResult.Infos)
{
if (info.Name == "WeeklySpecials.txt")
{
// read the updated information into a stream

var fileStream = await KnownFolders.DocumentsLibrary.OpenStreamForReadAsync("Specials_022815.txt");

// update this attachment with the new info (can keep the same name for the attachment)
var updateResult = await featureTable.UpdateAttachmentAsync(featureId, info.ID, fileStream, "WeeklySpecials.txt");

// check the update result for an error


if (updateResult.Error != null)
{
// problem updating the attachment in the in-memory feature table
throw new Exception("Error updating attachment: " + updateResult.Error.Message);
}

// apply the attachment edit back to the feature service


var applyResult = await featureTable.ApplyAttachmentEditsAsync();
// check the edit results (specifically, the first Update result) for an error
var serverUpdateResult = applyResult.UpdateResults.FirstOrDefault();
if (serverUpdateResult.Error != null)
{
// problem updating the attachment
throw new Exception("Error applying edits to the service: " + serverUpdateResult.Error.Message);
}
}
}

Copyright 1995-2015 Esri. All rights reserved. 226


ArcGIS Runtime SDK for .NET

Related Topics
Edit features
Sync offline edits

Copyright 1995-2015 Esri. All rights reserved. 227


ArcGIS Runtime SDK for .NET

Find a route
Routing is the process of finding paths through a transportation network. To calculate routes and obtain directions, the API provides a
specific RouteTask class. Using this task, you can optimize the results to find the shortest or the fastest route, reorder stops to find the
best sequence, avoid restricted areas and maneuvers, and specify time windows of arrival and departure for each stop.
The route task requires either a local ArcGIS Network Dataset on your machine to compute routes or access to a remote ArcGIS Network
Analyst Service. When using a local network dataset, routes can be computed locally even when there is no network connectivity. Using
remote services requires a network connection but is an opportunity for incorporating additional functionality such as real time traffic
updates.
Network datasets are designed to model transportation networks. They are created from source features, which can include simple
features representing roads, bridges, tunnels, bike paths, train tracks, and various other elements in the network. The geometry of the
source features helps establish connectivity between these elements. When you compute a route, the analysis happens on an indexed,
high-performance ArcGIS Network Dataset.
Network Analyst services are based on network datasets. They also contain analysis layers. These analysis layers correspond to specific
types of network analysis such as generating a route or calculating a service area. Analysis layers are exposed in the service as
operations. A RouteTask requires the service to contain a route analysis layer in order to compute routes.
Network Analyst services can be hosted in Esri's cloud platform, ArcGIS Online, or can be published on your own on-premises ArcGIS
servers. These services provide an ArcGIS REST API for clients such as mobile and web app. To find the URL for a Network Analyst
service, you can use the ArcGIS Services Directory.

Initialize a route task


Whether you are performing online or offline routing, you start by initializing a RouteTask object. Once you've initialized the appropriate
online or offline route task class, the programming pattern is exactly the same.

Online
To initialize an online RouteTask, declare an OnlineRouteTask object, instantiate it with the new keyword, and pass the uniform
resource identifier (URI) to a REST endpoint that represents a route analysis layer in a Network Analyst service to the constructor. If the
service is secured, you also need to handle authenticating with the service using the appropriate mechanism.
The following code sample shows how to create an online route task for the route analysis layer in the secured Route_World service on
ArcGIS Online:
//create a new online route task for the route layer in the Route_World service
Esri.ArcGISRuntime.Tasks.NetworkAnalyst.OnlineRouteTask task = new Esri.ArcGISRuntime.Tasks.NetworkAnalyst.OnlineRouteTask
(new Uri("http://route.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World"));

Note: You must have an ArcGIS Online organizational account in order to connect to the world route service
used in the previous example. Visit the Esri website for information about pricing and trial subscriptions.
Connecting to secured services is described in the Security topic.

Offline
To initialize an offline RouteTask, declare a LocalRouteTask object, instantiate it with the new keyword, and pass the path to the
.geodatabase file of your local network dataset and the name of the network to the constructor.
The following code sample shows how to create an offline RouteTask:
//create a new online route task for the route layer in the ESRI_Route_NA service
Esri.ArcGISRuntime.Tasks.NetworkAnalyst.LocalRouteTask task = new Esri.ArcGISRuntime.Tasks.NetworkAnalyst.LocalRouteTask
("path/to/routingGdb.geodatabase","Routing_Network");

Prepare the input parameters


The route task's execution method, SolveAsync, takes a RouteParameters object as input. You can instantiate a new
RouteParameters object and modify its properties to provide the input. At a minimum, you need to specify the stops by calling the
SetStops method, as this determines the locations between which a route will be calculated. You need at least two stops to calculate a
valid route.

Copyright 1995-2015 Esri. All rights reserved. 228


ArcGIS Runtime SDK for .NET

However, you may want to calculate routes using the defaults specified in the service. In such cases, you first need to use
GetDefaultParametersAsync on the route task to get the default values. The default values are returned to the route task's delegate
as a RouteParameters object.
The following code sample shows how to use GetDefaultParametersAsync on the RouteTask to get the default values:
//use GetDefaultParametersAsync to get the default values.
Esri.ArcGISRuntime.Tasks.NetworkAnalyst.RouteParameters myRouteParameters = await task.GetDefaultParametersAsync();

The following sections describe some of the inputs you can provide to a RouteTask.

Stops
Use the SetStops method to specify locations that must be visited along the route. You need at least two stops to calculate a valid
route; however, you can add more if you like.
To specify stops for the route, you can specify a collection of MapPoints. The order indicates, by default, the sequence in which stops
will be visited on the route. However, if you enable the FindBestSequence property on RouteParameters, the service will attempt to
reorder stops to find the optimal route.
You can also enable the PreserveFirstStop and PreserveLastStop properties on RouteParameters if you don't want the
origin and destination stops to be reordered.

Barriers
Barriers represent ad-hoc restrictions that must be taken into consideration when calculating a route. A barrier can specify a set of roads
or a region that must be completely avoided by the route, for example, a bridge that may be closed due to construction work. Some
barriers may permit travel through them albeit at an added cost. For example, an accident on a freeway may temporarily slow down the
traffic. This can be represented by a barrier that allows travel along the freeway but increases the travel time required.
As with stops, you can specify barriers with a collection of features. You need to provide barrier geometry including the location and
shape of the barrier. The geometry can be a point, polyline, or polygon. You can define a feature and assign these barrier features to
the RouteParameters object using SetPointBarriers , SetPolylineBarriers. or SetPolygonBarriers depending on the
type of geometry that was assigned to the feature. You need to create separate features for point, polyline, and polygon barriers.

Driving directions
RouteTask can return turn-by-turn driving directions for the route if you enable ReturnDirections on RouteParameters. You can
specify the distance units to use through the DirectionsLengthUnits property. Depending on the languages supported by the
ArcGIS Network Analyst service, you can also specify which language to use through the DirectionsLanguage property. Depending

Copyright 1995-2015 Esri. All rights reserved. 229


ArcGIS Runtime SDK for .NET

on the direction style supported by the ArcGIS Network Analyst Service, you can specify the DirectionsStyleName property. To
learn more about driving directions, see the Get driving directions tutorial and the topic Display driving directions

Impedance
The ImpedanceAttributeName property specifies a cost that should be minimized in the resulting route. For example, impedance
could be set to Time to calculate the fastest route or to Length to calculate the shortest route. Impedances supported by the service are
listed in the ArcGIS Services Directory under Network Dataset > Network Attributes with a Usage Type of esriNAUTCost.

U-turn policy
You can specify whether U-turns are allowed everywhere (AllowBacktrack), nowhere (NoBacktrack), only at dead ends
(DeadEndsOnly) , or only at intersections and dead ends (AtDeadEndsAndIntersections). Allowing U-turns implies the vehicle
can turn around at a junction and double back on the same street.

Result options

Line results

Using the OutputLines property, you can specify whether the geometry of the route feature should be simple straight lines
connecting all the stops or follow the true shape of the underlying transportation network. This is only applicable when using an
OnlineRouteTask and the RouteParameters.ReturnRoutes property is set to true. The following describes the available
options for route geometry output.
OutputLine.None: No route geometry is returned (travel time and distance are still reported)
OutputLine.Straight: Straight lines connecting the stops are returned
OutputLine.TrueShape: The shape of the route matches the underlying transportation network from which it was derived
OutputLine.TrueShapeWithMeasure: Same as TrueShape but includes route measurements that describe
accumulated travel cost across the routes

Note: The output line options are available to help limit response size for information you don't need when
working with online route tasks. Local route tasks will always return the full route result.

Geometry options

You can request that the geometry of the route feature be generalized by modifying the OutputGeometryPrecision and
OutputGeometryPrecisionUnit properties on RouteParameters. Generalizing geometry removes vertices that add more detail
beyond the precision you specify. Removing vertices makes the geometry smaller, saving time needed to transfer the geometry over
the network, and makes it faster to draw as a map graphic.

Ignore invalid locations

Enabling the IgnoreInvalidLocations property allows the RouteTask to return a route even if some stops are invalid, for
instance, if they are not reachable on the underlying transportation network. If this property is disabled, the RouteTask returns an
error even if one stop is invalid.

Restrictions
Restrictions allow you to place constraints on the analysis. For example, you can specify that the route should avoid toll roads. If the
route is for an emergency vehicle, you can specify that rules governing one-way streets should be relaxed. The restrictions supported by
the service are listed in the ArcGIS Services Directory under Network Dataset>Network Attributes with a Usage Type of
esriNAUTRestriction.
The following code sample applies restrictions to avoid passenger ferries and toll roads:
//create a list containing restrictions and assign these to the RestrictionsAttributeNames property
List<string> restrictions = new List<string>();
restrictions.Add("Avoid Ferries");
restrictions.Add("Avoid Toll Roads");
_routeParams.RestrictionAttributeNames = restrictions;

The following sections describe some of the inputs you can provide to a RouteTask.

Copyright 1995-2015 Esri. All rights reserved. 230


ArcGIS Runtime SDK for .NET

Time windows
A time window specifies a period of time within which a stop should be visited on a route. For example, if you made appointments to
meet a number of customers at different locations, you can enable the UseTimeWindows property and specify a time window for each
location to get a route that will allow you to honor your appointments.
To enable time windows in your analysis, do the following:
Enable the UseTimeWindows property on RouteParameters.
Specify the time of departure from the origin using the StartTime property on RouteParameters.
Assign a time window to each stop. The time windows are specified on stops using the TimeWindowStart and
TimeWindowEnd attributes.
See the RouteParameters API Reference for a complete list of inputs for the RouteTask.

Calculate routes
Once you set up the input parameters, calculating routes is as simple as invoking SolveAsync on the RouteTask and passing in the
RouteParameters object to use in the calculation.

Retrieve results and handle errors


The SolveAsync method determines the path from one stop to the next. This method will run the task asynchronously using the await
keyword. This allows you to make the asynchronous method call and pause the code and for control to be returned to the user until the
method completes and the code execution can continue.
The following code sample calls the asynchronous function to solve the RouteTask:
Esri.ArcGISRuntime.Tasks.NetworkAnalyst.RouteResult routeResult = await _routeTask.SolveAsync(myRouteParameters);

The operation's results are returned in a RouteResult instance, indicated by the Task<RouteResult> return type.
The following code sample handles the result:
try{
// Ensure you got at least one route back.
if (routeResult.Routes.Count > 0)
{
// Create a new graphic based on the first route and add to the route Graphicslayer
Esri.ArcGISRuntime.Layers.Graphic graphic = routeResult.Routes[0].RouteGraphic;
_routeGraphicsLayer.Graphics.Add(graphic);
}
}
catch (System.AggregateException ex)
{
// There was a problem, display the results to the user.
var innermostExceptions = ex.Flatten().InnerExceptions;
if (innermostExceptions != null && innermostExceptions.Count > 0)
{
string msg = innermostExceptions[0].Message;
Windows.UI.Popups.MessageDialog myMessageDialog = new Windows.UI.Popups.MessageDialog(msg);
myMessageDialog.ShowAsync();
}
else
{
string msg = ex.Message;
Windows.UI.Popups.MessageDialog myMessageDialog = new Windows.UI.Popups.MessageDialog(msg);
myMessageDialog.ShowAsync();
}
}
catch (System.Exception ex)
{
// There was a problem, display the results to the user.
string msg = "Error" + ex.Message;
Windows.UI.Popups.MessageDialog myMessageDialog = new Windows.UI.Popups.MessageDialog(msg);
myMessageDialog.ShowAsync();
}

The RouteResult object contains an array of Route objects representing the routes that were calculated. Each Route object contains
the following:
A graphic representing the route feature. The graphic's attributes provide information about route properties.
A list of graphics representing the stops that are visited by the route. Each graphic contains attributes that correspond to stop
properties. These properties provide valuable information about the stop as it pertains to the computed route.
A set of turn-by-turn driving directions (if you enabled ReturnDirections on RouteParameters).
The RouteResult object also contains an array of messages providing information about any warnings or errors encountered
while calculating the route.

Copyright 1995-2015 Esri. All rights reserved. 231


ArcGIS Runtime SDK for .NET

Tasks throw exceptions if a problem is encountered as opposed to raising failed style events. Therefore it is important to make appropriate
use of the try/catch statement and handle these exceptions gracefully in your code.
The following image shows the map with route and directions displayed:

Related Topics
Display driving directions

Copyright 1995-2015 Esri. All rights reserved. 232


ArcGIS Runtime SDK for .NET

Display driving directions


To calculate routes and obtain directions, the API provides a specific class called RouteTask. RouteTask can return turn-by-turn driving
directions for the route if you enable ReturnDirections on RouteParameters.
RouteTask relies on a local ArcGIS Network Dataset on your machine to compute routes, or access to a remote ArcGIS Network Analyst
Service. Network Analyst services can be hosted in Esri's cloud platform, ArcGIS Online, or can be published on your own on-premises
ArcGIS servers. These services provide an ArcGIS REST API for clients such as mobile and web applications. To find the URL for a
Network Analyst service, you can use the ArcGIS Services Directory.
To learn more about RouteTask, see Find a route.

Geocode input addresses


When working with driving directions, users often provide input start and end addresses to be transformed to points on the map, which are
then used as input stops to a RouteTask to determine the best route and display the route on the map along with turn-by-turn directions.
The process of transforming an address or place name to a geographical location on a map is known as geocoding.
To learn more about geocoding, see the Add geocoding to your app tutorial. To learn how to geocode addresses and find driving
directions, see the Get driving directions tutorial.

Get directions
If you enabled ReturnDirections on RouteParameters, the returned RouteResult object contains a set of turn-by-turn driving
directions that you can add to your app. Each RouteDirection object contains textual directions information, duration, length, and
associated geometries for one step of a route.
The following code sample shows how to enable ReturnDirections on RouteParameters:
Esri.ArcGISRuntime.Tasks.NetworkAnalyst.RouteParameters routeParams = await _routeTask.GetDefaultParametersAsync();
routeParams.ReturnDirections = true;

The following sections describe some of the direction properties you can set on the RouteParameters class. Using the
RouteParameters class, you can specify the distance units to use through the DirectionsLengthUnits property, you can specify
which language to use through the DirectionsLanguage property, and you can specify the direction style using the
DirectionsStyleName property. Because an ArcGIS Network Analyst Service supports specific languages, linear units, and style, it's
worth checking the information about the service available in the ArcGIS Services Directory, which can be accessed using the service
URL. For more information about services, see Using the Services Directory.

Direction language
Depending on the languages supported by the ArcGIS Network Analyst Service, you can specify which language to use through the
DirectionsLanguage property.
The following code sample shows how to specify the language, English (United States), using the DirectionsLanguage property:
routeParams.DirectionsLanguage = CultureInfo.CreateSpecificCulture( "en-US" );

Direction length units


Depending on the direction length units supported by the ArcGIS Network Analyst Service, you can specify the length information that
will be reported in the direction using the DirectionsLengthUnits property on RouteParameters. The default is defined by the
service used.
Possible types include the following:
Feet
Inches
Kilometers
Meters
Miles
Millimeters
NauticalMiles
Yards

Copyright 1995-2015 Esri. All rights reserved. 233


ArcGIS Runtime SDK for .NET

The following code sample shows how to specify kilometers as the DirectionsLengthUnits property:
routeParams.DirectionsLengthUnit = Esri.ArcGISRuntime.Geometry.LinearUnits.Kilometers;

Direction style name


Depending on the direction style supported by the ArcGIS Network Analyst Service, you can specify the DirectionsStyleName
property out of the following:
"NA Desktop"Turn-by-turn directions suitable for printing.
"NA Navigation"Turn-by-turn directions designed for an in-vehicle navigation device.
"NA Campus"Turn-by-turn walking directions designed for pedestrian routes.

Display directions
The RouteResult object contains a set of RouteDirection objects representing turn-by-turn driving directions that you can add to
your application. Each RouteDirection object contains textual directions information, duration, length, and associated geometries for
one step of a route. You can iterate over the RouteDirection collection, and build a string for each step of the directions' textual
information, duration and length. Once you have a formatted string for each step of the directions, you need to display this information in
your app, and .NET provides many ways to do this. The approach shown in the following code is to create a TextBlock containing the text
and add it to a StackPanel.
The following code sample shows how to iterate over the RouteDirection collection and format a string for each driving direction for
display in a text block. To keep the example simple, the formatting used is very basic. This code will append a step number, followed by a
TAB , followed by the directions text, and finally a new line. The step variable is then incremented.

//Define the following variables to store driving directions as well as information about the route
var directionsBuilder = new System.Text.StringBuilder();
var totalMiles = 0.0;
var totalMinutes = 0.0;
var step = 1;
//Create the following loop to iterate over each RouteDirection in the RouteDirections collection:
foreach (var d in route.RouteDirections)
{
//Append the current directions text to the directionsBuilder variable (StringBuilder):
directionsBuilder.AppendFormat("{0} \t {1}", step.ToString(), d.Text + "\n");
step++;
// Keep a running total of the segment length (miles) and time (minutes):
totalMiles += d.GetLength(LinearUnits.Miles);
totalMinutes += d.Time.TotalMinutes;
}

// Display the driving information and directions in Textboxes and Textblocks


this.RouteDistance.Text = totalMiles.ToString("0.00") + " miles";
this.RouteTime.Text = totalMinutes.ToString("0.00") + " minutes";
this.DirectionsTextBlock.Text = directionsBuilder.ToString() ;

The following image shows the driving directions displayed in the text block:

Additional information

Copyright 1995-2015 Esri. All rights reserved. 234


ArcGIS Runtime SDK for .NET

For additional information about working with driving directions, see the Get driving directions tutorial.
To learn more about using geocoding functionality with ArcGIS Runtime SDK for .NET, see the Add geocoding to your app tutorial.

Related Topics
Find a route

Copyright 1995-2015 Esri. All rights reserved. 235


ArcGIS Runtime SDK for .NET

Geometry operations
Geometry operations let you create geometries (shapes with locations) that represent real-world objects and let you compare and relate
those shapes.
The term "geometry" in ArcGIS refers to the location and shape of a real-world object or a geometric construct such as an area of interest
or a buffer area around an object.
For example, you may want to measure the area of a polygon representing a lake or district. Perhaps you have multiple geometries, and
you want to know their relationship to one another. Geometry is the fundamental element for performing spatial analysis. With ArcGIS
Runtime SDKs, you can perform spatial analysis by relating geometries in a near-endless number of ways. Additional examples are as
follows:
At a clicked point on the map, display the land area's vegetation type.
Verify that all the building polygons in a layer lie completely within one of the parcel polygons in another layer.
Determine whether a proposed school site is within 300 meters of any liquor store.

Create geometry
Geometries come in different types. A point may represent a light pole, a polyline may represent a street centerline, or a polygon may
represent a parcel of land. In addition to single points, polylines, or polygons, there are multipart types as well.
The API includes a geometry class. This base class represents a geometry of any type. There are also classes derived from the geometry
class to be used when the geometry type is explicit.

Geometry type Description Example of use


Point (MapPoint) A single point location Location of survey monument

Multipoint An ordered collection of zero or more point locations in one Locations of multiple bore holes at a drilling
(MultiPoint) geometry site

Line A single two-vertex line The shortest path from one point to another

Polyline (Polyline) One or more lines, each with two or more vertices A road centerline

Polygon (Polygon) An area, possibly multipart, whose parts may have interior holes A group of islands

Envelope (Envelope) A 4-sided polygon with sides aligned to the x and y axes An area of interest

A geometry object contains a single geometry. The geometry class also has methods to operate on geometry objects. You can create
geometries in some task results by using methods that return geometry objects, and by invoking a class constructor. Examples are as
follows:
A find task finds features in a service using a text search, returning the geometry in the results. The geometry is constructed for
you by the API using data returned by the find task.
You can use an operation such as buffer to create a new geometry from another geometry plus a buffer distance.
You can call a constructor to create points, polygons, and so on, providing the necessary information for that specific geometry
type.
You can create new geometries from existing geometries by performing operations such as these:
BufferBuffer a geometry at a specified distance, creating a buffer polygon.

Copyright 1995-2015 Esri. All rights reserved. 236


ArcGIS Runtime SDK for .NET

ClipCreate a geometry by clipping a geometry with an envelope.

DensifyCreate a densified copy of the input geometry by adding vertices between existing vertices.

Copyright 1995-2015 Esri. All rights reserved. 237


ArcGIS Runtime SDK for .NET

DifferenceCreate a geometry that is the topological difference of two geometries.

OffsetCreate an offset version of the input geometry.

Copyright 1995-2015 Esri. All rights reserved. 238


ArcGIS Runtime SDK for .NET

UnionCreate a geometry that is the union of two or more geometries.

IntersectionCreate a geometry that is the topological intersection of two geometries.

Copyright 1995-2015 Esri. All rights reserved. 239


ArcGIS Runtime SDK for .NET

Symmetric DifferenceCreate a geometry that is the topological symmetric difference of two geometries.

Simplify

Copyright 1995-2015 Esri. All rights reserved. 240


ArcGIS Runtime SDK for .NET

Geometry engine
The GeometryEngine performs geometric operations, such as measuring distance, determining spatial relationships, and altering
geometries, all locally on the client. Each of the geometry engine methods are static, which means they can be called directly on the class
(without instantiating an object variable).
var bufferPolygon = Esri.ArcGISRuntime.Geometry.GeometryEngine.Buffer(inputPoints, 200);

Measuring distance
Often, you want to know the length or area of a geometry. You may want to know the length of a river or the area of a county. There are
a number of ways to measure length and area using the geometry engine. You can measure simple distances and areas using the
Length and Area methods.
double lineLength = Esri.ArcGISRuntime.Geometry.GeometryEngine.Length(myPolyline);
double polyArea = Esri.ArcGISRuntime.Geometry.GeometryEngine.Area(myPolygon);

However, if you're measuring large areas or distances that need to take into account the curvature of the earth, use the
GeodesicLength or GeodesicArea method.
Disjoint geometries can be compared as to their distance from one another as follows:
Distance The 2-D planar distance between two geometries at their closest points of approach.
NearestVertex The vertex on the boundary of a line or polygon that is nearest to the specified point.
NearestCoordinate The coordinate on the boundary of a line or polygon that is nearest to the specified point. This
coordinate need not be a vertex.

Spatial relationships
When you have multiple geometries on a map, you may want to know their relationship to each other. For example, you may want to
know if a polyline representing a creek crosses through a polygon representing your property. Given two geometry objects, the
geometry engine can tell you whether a given spatial relationship is true of those geometries. The spatial relationship is determined by
whether the boundaries or interiors of a geometry intersect. The meaning of boundary and interior are well defined for each basic
geometry type.
BoundaryFor lines, the line's endpoints, or the endpoints of each line in a multipart line. For polygons, the line that
circumscribes the interior area or areas (for multipart polygons) or circumscribe any interior holes.
InteriorPoints are entirely interior and have no boundary. For lines and polygons, the interior is any part of the geometry that is
not part of the boundary.
The basic relationships the geometry engine supports are as follows:
ContainsThe base geometry completely contains the comparison geometry.

CrossesThe geometries share some interior area, but not all interior area.

Copyright 1995-2015 Esri. All rights reserved. 241


ArcGIS Runtime SDK for .NET

DisjointNo part of the base geometry intersects the comparison geometry.

IntersectsNot disjoint.
OverlapsThe intersection of two points, lines, or polygons is also a point, line, or polygon, respectively.

TouchesThe boundaries of the geometries intersect, but not their interiors.

Copyright 1995-2015 Esri. All rights reserved. 242


ArcGIS Runtime SDK for .NET

WithinThe base geometry lies completely within the comparison geometry.

EqualsTrue if two input geometries are the same. False if either are null, have different geometry types, or are geometrically
distinct.
For each spatial relationship, there is a method that returns a Boolean value indicating whether that relationship is true of the two
geometries. For spatial relationships that are true of one geometry but not the other, such as Within or Contains, the geometry engine
considers the order of the geometries entered.
// This returns true ...
bool contains = Esri.ArcGISRuntime.Geometry.GeometryEngine.Contains(europePolygon, belgiumPolygon);
// This returns false ...
bool contains = Esri.ArcGISRuntime.Geometry.GeometryEngine.Contains(belgiumPolygon, europePolygon);

Projecting to different spatial references


There may be times when you have geometries in a map or service with a particular spatial reference and want to display them on a
map with a different spatial reference. The geometry engine allows you to do this with a simple method call. When projecting, similar to
modifying geometry objects, the instance of the geometry object passed in is not actually changed; rather, a new geometry object is
returned. When projecting, you can apply a specific transformation. Different transformations are suitable for different areas of the world
or different spatial references. Some Runtime SDKs support a common set of datum transformations and some support grid-based
transformations. Grid-based transformations require additional files to be deployed or provisioned.
// Create a new geometry by projecting an existing point
// define the output spatial reference (Web Mercator)
var webMercatorSpatialRef = new Esri.ArcGISRuntime.Geometry.SpatialReference(102100);
// call Project on the GeometryEngine, pass in the geometry to project and the out spatial reference
var myWebMercPoint = Esri.ArcGISRuntime.Geometry.GeometryEngine.Project(myGeographicPoint, webMercatorSpatialRef);

Geodetic and planar lines


In a geometry the path of the line connecting ordered vertices is implied, not stored. Along what path do these lines run? When you view a
map on a device, you usually see the vertices connected with straight line segments. As long as the distances are short, such as between
corners of a small building, the visual path of the line closely approximates the real location of the edge of the building.

Copyright 1995-2015 Esri. All rights reserved. 243


ArcGIS Runtime SDK for .NET

What if the vertices of a line are farther apart? What if one vertex was near the center of Reykjavik, Iceland, and the other near the center
of Oslo, Norway? The following map uses the projected coordinate system WGS 84 Web Mercator (auxiliary sphere) to display a map of
such a line:

The line appears straight when drawn on the plane of the map surface, passing through the Faroe Islands. On the map surface, this line is
the closest path between the points. But in the real world, the Earth is round. The shortest distance between points on the surface of the
Earth follows a geodesic path. The geodesic path would appear straight to an observer on the ground. However, the line is curved with
respect to the projected coordinate system used in the map.

It is important to remember that in both maps used here, the lines are approximations. When a map is projected onto a 2-D map surface
from a 3-D Earth image, the 2-D map cannot perfectly represent all the features on the map. Some objects are distorted, including the
path and length of lines, the area of polygons, and the relative position of points. This behavior is normal. The reason there are many
coordinate systems is that they are designed to reduce different types of distortion in different areas of the Earth. Keep this in mind when
choosing a coordinate system and whether to use the geodetic version of some geometry methods.

Geometry contents
At its core, a geometry is a collection of one or more vertices (locations) that may be connected, one to the next, in a linear order. A
geometry does not store the lines that connect the vertices, such as those that represent the boundary of a polygon. Instead, it stores the
vertices in linear order along a polylines path or around a polygon. The lines between the vertices are implied by this ordering.
Coordinates are used to denote the location of the vertices. Coordinates can represent 2-D (x,y) or 3-D (x,y,z) locations. The meaning of
the x,y,z-coordinates is determined by a coordinate system. The vertices and coordinate system together allow your app to translate a
real-world object from its location on the Earth to its location on your map.
Coordinate systems, also known as map projections, provide a common basis for communication about a particular place or area on the
Earth's surface. When data sets have the same coordinate system, they can be integrated within a map that uses that coordinate system.
Geometries with a coordinate system different from the maps can be reprojected (translated) to the maps coordinate system for display.
In addition to integrating data sets within maps, coordinate systems allow you to perform various integrated analytical operations such as
overlaying data layers that come from different sources.

Copyright 1995-2015 Esri. All rights reserved. 244


ArcGIS Runtime SDK for .NET

In the API, a spatial reference class represents a coordinate system. It contains a coordinate system and helper methods to access and
use it. The spatial reference class is associated with several other API classes that need a coordinate system to function. For example,
layers have an associated spatial reference. Some task parameters, such as those for the query task and the local routing task, are spatial
reference objects.
To use the contents of a geometry object, you must know the associated spatial reference. It's meaningless to compare two geometry
objects or determine their spatial relationship if they have different spatial references. To display a geometry in a map layer, the geometry
must have either the same spatial reference as the layer or be projected to the layer's spatial reference. To use two objects together, if
those objects each have a spatial reference, they should have the same spatial reference.
When working with geometry operations, it's important that you understand the basics of spatial references (the different types of
coordinate systems there are, when you have to know about spatial references, and so on) that are outlined in Spatial references.
Z-coordinates represent the vertical aspect of a vertex, such as elevation for a location. Z-coordinates may be associated with a vertical
coordinate system. Generally, they are not used when drawing the geometry on a 2-D map display.
In some cases, vertex coordinates include measure values, often called m-values. M-values are used in linear referencing to calculate
values between polyline vertices. M-values are not used when drawing a geometry. A geometry can contain m-values without containing
z-coordinates.
Geometry classes include methods to determine whether the object includes z-coordinates or m-values. Some task parameters, such as
those for the find task, allow you to choose whether z-coordinates or m-values should be returned in the result geometries.

Related Topics
Spatial references
Local Server geoprocessing tools support

Copyright 1995-2015 Esri. All rights reserved. 245


ArcGIS Runtime SDK for .NET

Geoprocessing
Geoprocessing provides tools and a framework to perform analysis and manage geographic data. The modeling and analysis capabilities
geoprocessing provides make ArcGIS a complete geographic information system.

Geoprocessing provides a large suite of tools for performing GIS tasks that range from basic buffer and polygon overlays to complex
regression analysis and image classification. The kinds of tasks to automate can be mundane, such as maneuvering a large amount of
data from one format to another, or the tasks can be quite creative, using a sequence of operations to model and analyze complex spatial
relationships. Examples of this include:
Calculating optimum paths through a transportation network
Predicting the path of wildfire
Analyzing and finding patterns in crime locations
Predicting which areas are prone to landslides
Predicting flooding effects of a storm
Geoprocessing is based on a framework of data transformation. A typical geoprocessing tool performs an operation on an ArcGIS dataset
(such as a feature class, raster, or table) and produces a new dataset as the result of the tool. Each geoprocessing tool performs a small,
yet essential operation on geographic data.
Geoprocessing allows you to combine a sequence of tools in what is called a model. In a model, the output of one tool is fed into another,
which allows you to automate your workflows. Geoprocessing tools and models can be shared with others by packaging them into an
easily shared geoprocessing package, or by creating web services.
You can add to the suite of system tools installed with ArcGIS Desktop by creating tools using ModelBuilder or Python. Tools you create
are called custom tools and become an integral part of geoprocessing, just like system tools. You can open and run your tools from the
Search, Catalog, or ArcToolbox window, use them in ModelBuilder and the Python window, call them from another script, add them as
toolbar buttons, and share them as web services or as a geoprocessing package.
You can take a quick tour of geoprocessing and explore all geoprocessing topics in more detail in the ArcGIS Desktop Help system.

Use geoprocessing in ArcGIS Runtime


There are two ways an ArcGIS Runtime application can use a geoprocessing tool:
Consume a local geoprocessing package (.gpk) with the ArcGIS Runtime local server. The geoprocessing tool, script, or model
and any data that it uses is packaged and shared from ArcMap, and may have been emailed or uploaded to arcgis.com for your
use. This geoprocessing package can then be passed to the local server, which starts a local geoprocessing web service. This
web service's tasks can be consumed by ArcGIS Runtime applications. With ArcGIS Runtime SDK for .NET, this is only available
using the Windows Desktop API. Windows Store and Windows Phone apps can only consume geoprocessing tasks published as
ArcGIS services, as described below.
Consume a remote ArcGIS Server task. A geoprocessing web service has been published from ArcMap (to ArcGIS Server or to an
on-premises server). This web service and its tasks can be consumed by web-based clients such as ArcGIS for Desktop, ArcGIS
Explorer, custom web applications, and ArcGIS Runtime applications.
Notice that both of the above methods result in the ArcGIS Runtime application running a geoprocessing task from a web service.

Geoprocessing tasks in ArcGIS Runtime


The ArcGIS Runtime API works with geoprocessing tools and models through geoprocessing service tasks. These tasks are hosted
online, through an ArcGIS Server, or hosted locally by providing the local server with an ArcGIS Runtime enabled geoprocessing package
from which it creates a local web service.

Copyright 1995-2015 Esri. All rights reserved. 246


ArcGIS Runtime SDK for .NET

What is a geoprocessing task?


A geoprocessing task is a REST child resource of a geoprocessing service. A geoprocessing service can host one or more tasks. A task
has a set of parameters that define how a client can interact with the task and what kind of input must be passed to it to execute the
task. The server executes the task and returns output values to the client. Output values could include a map service to show the
results. This allows for the display of complex data and raster data.

Tasks defined in HTML task pages


A developer can use HTML service and task pages to discover how to code against the task. You can access the geoprocessing service
REST URL in a browser (also known as the service page in the services directory). The URL of a local geoprocessing service can also
be placed in a browser to explore geoprocessing task and service parameters. A geoprocessing service lists an HTML link for each of
its geoprocessing tasks.
The access URL for a geoprocessing task is formatted as http://gpservice-url/taskName and is also called the task page.
Clients can access the task page in a web browser to find information on task parameters and the task operation.

What are task parameters?


Task parameters are the inputs and outputs of a geoprocessing task and vary from task to task based on its geoprocessing functionality.
Each parameter has a set of properties that provide information such as name, data type, whether the parameter is required or optional,
and so on. The developer must populate the required input parameters to run the task.
When the task completes, the developer can then use the results. Results can return in a variety of ways; therefore, it is important to
understand the different output parameter types that can return from a geoprocessing task to handle the results properly. To learn about
parameter types, see Geoprocessing task parameters.
A geoprocessing task may output a map service result. This is particularly useful if your task returns a large number of features the
client application has to symbolize and draw, or if your task returns a data type that cannot be added directly to the map via the API,
such as raster data. The default symbology of this map service is determined when the geoprocessing package is shared in ArcMap.

In what ways can tasks run?


Tasks from a local geoprocessing service can run with the Execute Task or the Submit Job operation. Local geoprocessing services
hosted by the Runtime local server can be started to support the synchronous ExecuteAsync method or the asynchronous
SubmitJobAsync method.

Note: Both ExecuteAsync and SubmitJobAsync are asynchronous .NET methods. ExecuteAsync kicks off
a GP task to run synchronously on the server.
Tasks from an ArcGIS Server geoprocessing service supports an Execute Task or Submit Job operation. If the execution mode of the
task's parent service is synchronous, Execute Task is supported. If the service is asynchronous, Submit Job is supported.
Once a service is running, it is not possible to change the execution type. The asynchronous SubmitJobAsync method is
recommended for long running tasks you might want to cancel or if you want access to processing messages. Although Execute Task is
often described as synchronous, many APIs have provided a synchronous execute method that blocks the calling application thread
and an asynchronous execute method that cannot be cancelled but will not block the calling thread.

Related Topics
Local Server geoprocessing tools support
Run a geoprocessing task
Geoprocessing task parameters

Copyright 1995-2015 Esri. All rights reserved. 247


ArcGIS Runtime SDK for .NET

Run a geoprocessing task


Classes in the Esri.ArcGISRuntime.Tasks.Geoprocessing namespace allow you to execute tasks from a geoprocessing service in
your ArcGIS Runtime app. You can work with services hosted by ArcGIS Server (online).

Task execution types


When working with geoprocessing services, you must be aware of the execution type that the service was published with. This execution
type can be found on the service's REST page. There are three execution types that geoprocessing tasks can run on a server:
Execute (esriExecutionTypeSynchronous defined in task page)
Synchronous execution is designed for fast running tasks where the client sends the request and waits for the response. This
means these types of services use less resources on the server. Execute tasks on these services by calling the ExecuteAsync
method of the Geoprocessor object.
Submit job (esriExecutionTypeAsynchronous defined in task page)
Asynchronous services are best suited for long running jobs. For asynchronous tasks, the server returns a job ID that the client
uses to poll for the task status. When the job is completed, the results can be requested from the server using the job ID. Submit
an asynchronous job by calling the SubmitJobAsync method to work with the asynchronous tasks provided by these services.
Submit job with map server result (esriExecutionTypeAsynchronous with a map server)
Geoprocessing services can be published with the result map service option enabled. The geoprocessing server (GPServer)
creates an accompanying dynamic map server of the same name that visually represents each geodataset output parameter as a
layer. This resulting dynamic map service or its service layers can then be added to your ArcGIS Runtime app as a dynamic map
service. The map service's symbology is based on the symbology of the output layer that resulted from running the geoprocessing
tool in ArcGIS for Desktop during the publishing process. See Defining output symbology for geoprocessing tasks for additional
information on setting the symbology for a result map service.

Execute a geoprocessing task


To execute a geoprocessing task, the client must construct a request URL with the execute task URL and append name-value pairs of all
the required input parameters. The name is the name of the task's input parameter, and the value is the ASCII representation of the JSON
value. The input parameter names and types can be found on the service's REST page. To construct this request URL, you can use the
client API. The following example shows how to construct a new Geoprocessor object, prepare a geoprocessing feature record set, add
the record set to a list of geoprocessing parameters, and execute the geoprocessing task:
var serviceURL =
"http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Network/ESRI_DriveTime_US/GPServer";
var taskName = "CreateDriveTimePolygons";
// create Geoprocessor
var gp = new Geoprocessor(new Uri(serviceURL + "/" + taskName));
// set up the parameters - see serviceURL for parameter info
var parameter = new GPInputParameter();
// create a GPParameter for the input location (required input param)
var inputLocationParam = new GPFeatureRecordSetLayer("Input_Location", inputMapPoint);
// create a GPParameter for the drive times (optional input param)
var inputDriveTimesParam = new GPString("Drive_Times", "1 2 3"); // one, two, and three minute drive times

// add GPParameters to the parameter collection


parameter.GPParameters.Add(inputLocationParam);
parameter.GPParameters.Add(inputDriveTimesParam);
// execute task with the parameter collection defined above, await the result
var result = await gp.ExecuteAsync(parameter);

The ExecuteAsync method asynchronously executes a geoprocessing task that has been defined with a synchronous execution type
(on the server). Asynchronous geoprocessing tasks are executed by calling SubmitJobAsync, which is described in the Submit a job to
a geoprocessing task section of this topic.

Handle task results


At the end of execution, if the task succeeds, the server will construct a response with the values of the output parameter or parameters.
If the task fails, the server will generate an error response, which is returned via System.Threading.Tasks.Task.Exception.
Regardless of how a task completes, a list of messages are returned that describe execution of the task.
The response (GPExecuteResult) will include the following:
The output parameter valuesThe OutParameters property of GPExecuteResult provides a read-only list of output
parameters (GPParameter objects). Output parameters can be cast to the appropriate type to access their data.

Copyright 1995-2015 Esri. All rights reserved. 248


ArcGIS Runtime SDK for .NET

Note: Parameter information (name and type, for example) can be found by consulting the service's
REST page.

Execution messagesThe Messages property of GPExecuteResult returns a read-only list of messages that were generated
as the server executed the task (GPMessage objects).
Continuing the Drive time polygons example above, the following code locates a GPFeatureRecordSetLayer in the returned list of
output GPParameter objects and adds the result features as graphics in the map:
if (result != null)
{
// loop thru all output parameters
foreach (var p in result.OutParameters)
{
// find the output drive time polygons by type (GPFeatureRecordSetLayer)
if (p.GetType() == typeof(GPFeatureRecordSetLayer))
{
// (could also find it by name, which is documented in the REST page for the service)
// if (p.Name == "Output_Drive_Time_Polygons") {
// cast to GPFeatureRecordSetLayer
var gpFeatureLayer = p as GPFeatureRecordSetLayer;
// get the polygon features
var features = gpFeatureLayer.FeatureSet.Features;
// add them to the graphics overlay
_resultsOverlay.Graphics.AddRange(features.Select((feature, index) => new Graphic(feature.Geometry,_bufferSymbols[index])));
break;
}
}
}

Submit a job to a geoprocessing task


The following image sums up the server/client communication of a submit job operation. Notice the periodic status requests sent by the
client to determine the status of the job. When the server has successfully completed the execution of the job, it creates the results and
inputs resources that can be accessed through the URL.

The following code creates a Geoprocessor task for extracting data from layers on the server. Because the underlying service has been
created to use asynchronous execution, it will be called using SubmitJobAsync.
var serviceURL =
"http://sampleserver4.arcgisonline.com/ArcGIS/rest/services/HomelandSecurity/Incident_Data_Extraction/GPServer";
var taskName = "Extract Data Task";
var geoprocessor = new Geoprocessor(serviceURL + "\" + taskName);

Submit a job and check status


A geoprocessing job can be submitted for asynchronous execution on the server by calling the SubmitJobAsync method. The method
returns a GPJobInfo object that can be used to check that status of the job.
The GPJobInfo enumeration provides values that describe a job's status, as described in the following table:

GPJobStatus values Description

New The job is new.

Copyright 1995-2015 Esri. All rights reserved. 249


ArcGIS Runtime SDK for .NET

Submitted The server has accepted the job request, and input parameters have been validated.

Waiting The job is waiting to start (server is busy with other requests).

Executing The server is executing the job.

Succeeded The server has successfully completed the job, and the output results are available.

Failed The job has failed to execute because of invalid parameters or other geoprocessing tool failures.

TimedOut Job execution has exceeded the time out threshold defined for the service.

Cancelling The server is cancelling the execution of the job based on the client's request.

Cancelled The request to run the job was cancelled by the client, and the server terminated the job execution.

Deleting The job is being deleted.

Deleted The job has been deleted.

The following example submits a job to extract data for a specified area. It then polls the server every two seconds with the job ID to
check the status of the job.
// submit geoprocessing job
var result = await geoprocessor.SubmitJobAsync(parameter);

// keep checking the job as long as the status indicates it's still running
while (result.JobStatus != GPJobStatus.Cancelled && result.JobStatus != GPJobStatus.Deleted
&& result.JobStatus != GPJobStatus.Succeeded && result.JobStatus != GPJobStatus.TimedOut)
{
// pass the unique job id to the server to check the job
result = await geoprocessor.CheckJobStatusAsync(result.JobID);
// wait 2 seconds before checking again
await Task.Delay(2000);
}
// job is complete ...

Handle job completion


A geoprocessing job can complete under several circumstances. It can complete successfully or due to an error on the server, a time
out, or because it was cancelled by the user. When a job completes, you will generally handle a successful result by reading information
from the output parameters or parameters. The GetResultDataAsync method on Geoprocessor can be used to return results from
the server.
Unsuccessful jobs might be handled by displaying messages that were returned from the server during job execution. GPJobInfo
provides a list of messages (GPMessage objects) that were generated on the server as the job executes. GPMessage exposes a
MessageType property (GPMessageType.Informative, GPMessageType.Warning, GPMessageType.Error,
GPMessageType.Abort, or GPMessageType.Empty) and a Description that contains the message text. The types of messages
returned by the server depends on the message level of the geoprocessing service.
Caution: If a geoprocessing service message level is set to "none", the server will not return
messages.

The following example handles a successful completion by prompting the user to download and save the resulting data archive. For an
unsuccessful completion, server messages are displayed in a text block in the app.

Copyright 1995-2015 Esri. All rights reserved. 250


ArcGIS Runtime SDK for .NET

// if the job succeeded, allow the user to download the data and save it locally
if (result.JobStatus == GPJobStatus.Succeeded)
{
StatusTextBlock.Text = "Finished processing. Retrieving results...";

// get the output parameter (representing the output data file stored on the server)
var outParam = await geoprocessor.GetResultDataAsync(result.JobID, "Output_Zip_File") as GPDataFile;
// if the output is valid, download the data
if (outParam != null && outParam.Uri != null)
{
var webClient = new WebClient();
var streamData = await webClient.OpenReadTaskAsync(outParam.Uri);

// get an output file location from the user


var dialog = new SaveFileDialog();
dialog.FileName = "Output.zip";
dialog.Filter = "Zip file (*.zip)|*.zip";

if (dialog.ShowDialog() == true)
{
// save output data to selected local file
using (Stream file = (Stream)dialog.OpenFile())
{
streamData.CopyTo(file);
file.Flush();
file.Close();
}
}
}
}else{ // job was not successful
var messageText = string.Empty;
// loop thru all messages that were generated during execution
foreach (var msg in result.Messages)
{
// concatenate the message descriptions
messageText += msg.Description + "\n";
}
// show the messages (last of which may be an error, time out, or cancellation)
txtStatus.Text = messageText;
}

Submit a job to a geoprocessing task with map server results


If the geoprocessing service has been published with a map service enabled, the server creates a result map service that you can work
with after successful task execution. Layers in the result map service can be accessed using the GetResultMapServiceLayer method
on the Geoprocessor, or by building a URL in the correct format. Layers are drawn using the symbology defined in ArcMap at the time of
publishing.
The following example uses GetResultMapServiceLayer, passing the job ID of a successful task:
ArcGISDynamicMapServiceLayer dynLayer = geoprocessor.GetResultMapServiceLayer(result.JobID);
this.MyMap.Layers.Add(dynLayer);

You can also build a URL in the format http://<catalog-url>/<ServiceName>/MapServer/jobs/<jobid> as shown in the
following example:
// start with the geoprocessing service URL, replace "GPServer" with "MapServer"
var resultUrl = geoprocessor.ServiceUri.AbsoluteUri.Replace("GPServer", "MapServer");
// add "jobs" and the successful job ID to the URL
resultUrl = resultUrl + "/jobs/" + result.JobID;
// create a new ArcGISDynamicMapServiceLayer with the result URL and add it to the map
var dynLayer = new ArcGISDynamicMapServiceLayer(new Uri(resultUrl));
this.MyMap.Layers.Add(dynLayer);

If a job has failed, the server will not create result resources such as a result map service.

Related Topics
Geoprocessing
Local Server geoprocessing tools support
Geoprocessing task parameters

Copyright 1995-2015 Esri. All rights reserved. 251


ArcGIS Runtime SDK for .NET

Geoprocessing task parameters


Each geoprocessing task has at least one parameter. Each parameter of a task has a set of descriptive properties that help you
understand the parameter and provide appropriate value for the successful execution of the task. The screen capture below shows an
example task parameter Distance, as seen in geoprocessing task page in the services directory. The significance of each property is
described below.

Data type
The data type of the parameter specifies the type of value that the client must provide for the parameter. The value of a parameter can be
as simple as a string, long, double, boolean or date. Or it can be a featureset (a collection of features with attributes similar to
featureclass), table, or a raster. For example, if the data type is a long you must provide a numeric value between 2,147,483,648 and
2,147,483,647. Any other decimal or string values will result in unexpected behavior of the tool. Similarly, if it is a raster data type, you
must provide appropriate raster data to successfully run the tool. The list below shows the data types of a task parameter and its expected
values.

Data type Value Example JSON representation

GPLong An integer value between 2,147,483,648 to 345


2,147,483,647

GPDouble Decimal values 1.414


GPString String TestString

GPBoolean true or false true


GPLinearUnit A value that has a distance value and its unit of { "distance" : 345.678, "units" :
measurement such as miles, kilometers, feet, and "esriMiles" }
so on.

GPDate Number that represents the number of 1199145600000


milliseconds since epoch (January 1, 1970) in
UTC.

GPDataFile Any file type such as .txt, .pdf, .csv, and { "url" : "http://myserver/myfile" }
so on.

GPRasterDataLayer Raster data that consists of a matrix of cells (or { "url" : "http://myserver/lake.tif",
pixels) organized into rows and columns (grid) "format" : "tif" }
where each cell contains a value representing
information.
GPRecordSet Tables that are represented in rows and columns. {
"fields":[{"name":"Id","type":"esriFieldTypeString","alias":"Id"},
{"name":"State_Name","type":"esriFieldTypeString","alias":"State
Name"},
{"name":"State_Abbr","type":"esriFieldTypeString","alias":"State
Abbr"}],
"features" : [
{ "attributes" : {"Id" : 43, "State_Name" :
"California","State_Abbr":"CA"},
{ "attributes" : {"Id" : 67, "State_Name" :
"Colorado","State_Abbr":"CO"}]}
TypeString","alias":"Id"},

GPFeatureRecordSetLayer Features that have a geometry, spatial reference, GPFeatureRecordSetLayer JSON


field definitions, and features. {
"geometryType" : "esriGeometryPoint",
"fields":[
{"name":"Id","type":"esriFieldTypeOID","alias":"Id"},
{"name":"Name","type":"esriFieldTypeString","alias":"Name"}],
"spatialReference" : {"wkid" : 4326},
"features" : [
{ "geometry" : {"x" : -104.44, "y" : 34.83,
"spatialReference" : {"wkid" : 4326}},
"attributes" :
{"Id" : 43,"Name" : "Feature 1"}},
{ "geometry" : {"x" : -100.65, "y" : 33.69,
"spatialReference" : {"wkid" : 4326}},
"attributes" :
{"Id" : 42,"Name" : "Feature 2"}}
]
}

GPMultiValue An array of GP parameter values of the same ["Parcels", "Street Lights"]


data type.
[ { "distance" : 345.67, "units" :
For example, GPMultiValue:GPString,
GPMultiValue:GPLinearUnit "esriMiles" }, { "distance" : 36,
"units" : "esriMiles" } ]

Copyright 1995-2015 Esri. All rights reserved. 252


ArcGIS Runtime SDK for .NET

Note the following:


For GPRecordSet and GPFeatureRecordSetLayer parameters, if you have a large number of records and features, you can store
the JSON structure in a file and provide the URL as an input. For example, { "url" : "http://myserver/myfeatures/
afile.txt"}. The text file must have a featureset or recordset in JSON format.
In the case of GPMultiValue:GPFeatureRecordSetLayer data type, the featuresets must have field definitions for successful
execution.

Related Topics
Geoprocessing
Local Server geoprocessing tools support
Run a geoprocessing task

Copyright 1995-2015 Esri. All rights reserved. 253


ArcGIS Runtime SDK for .NET

Access the ArcGIS platform


The ArcGIS platform provides a full range of GIS capabilities. There are various ways to add powerful functionality and intelligence to your
ArcGIS Runtime app by connecting to platform capabilities.

ArcGIS Online
ArcGIS Online is a cloud-based, collaborative content management system for maps, apps, data, and other geographic content. You can
access ArcGIS Online through mobile devices, a website (www.ArcGIS.com), and desktop map viewers. With ArcGIS Online you can do
the following:
Create web maps.
Web enable your data.
Share your maps, data, and applications.
Find relevant and useful basemaps, data, and configurable GIS resources.
Manage content and users in your organization.

Tip: With your free ArcGIS for Developers account, you have access to ArcGIS Online for development and
testing. Sign in at developers.arcgis.com or www.ArcGIS.com.
Using ArcGIS Runtime, you can access and edit existing content and create new content items, comment and add ratings, search for
users and groups, and share and unshare items.
Learn more about developing with ArcGIS Online in ArcGIS Online Help.

ArcGIS for organizations


To access all the capabilities of ArcGIS Online, your organization can purchase a subscription. With this subscription, you can store and
process geographic data, solve complex routing problems, perform spatial analysis, create reports, and enrich your own data with
demographic and geographic attributes. You also gain access to various productivity apps. A subscription can help you make geospatial
information more pervasive, both within your organization and throughout the general public.

Tip: Your free ArcGIS for Developers account includes some subscription-only services for development and
testing. Sign in at developers.arcgis.com or www.ArcGIS.com. If you upgrade your free account to a paid
plan, you can still sign in using both of these sites.
Learn more about ArcGIS for organizations on esri.com.

Portals, users, roles, groups, and sharing


ArcGIS Online is an information portal and is represented in the API by the ArcGISPortal class.
When you sign in to ArcGIS Online with an organization account, you see a specialized view that your organization administrator has
configured for you, giving you access to maps, content, and other services specific to your organization. You can also access all your
own content and services.
A registered user of a portal is represented in the API by the ArcGISPortalUser class. When you have signed in to a portal, you can
get information relating to the authenticated user from the portal class. There are different ways to sign in to a portalsee the
Authentication documentation online.
Portals and users have an essential role to play in some app licensing scenarios. For more information about licensing, see License
your app.
Groups are a way to collaborate with other users who share a common interest. A user can create groups, join groups, and share items
with those groups. Groups have titles, descriptions, thumbnails, and unique IDs to help users identify them. The sharing model within
ArcGIS Online is based on groups. Groups are represented in the API by the ArcGISPortalGroup class.
A free, public account is another way to access ArcGIS Online. These accounts are not associated with an organization and offer a
limited set of functionality. A public account allows you to use and create maps and share your maps and apps with everyone. Public
accounts are for noncommercial use only.

Connect to public content and services on ArcGIS Online


To connect to ArcGIS Online and access public content anonymously, you can begin by creating a portal, without passing in any user
credentials:

Copyright 1995-2015 Esri. All rights reserved. 254


ArcGIS Runtime SDK for .NET

// call the static method CreateAsync without arguments to get a reference to the arcgis.com portal
ArcGISPortal portal = await ArcGISPortal.CreateAsync();
// get portal info and display it to the user
ArcGISPortalInfo portalInfo = portal.ArcGISPortalInfo;

propertiesListBox.Items.Add(string.Format("Current Version: {0}", portal.CurrentVersion));


propertiesListBox.Items.Add(string.Format("Access: {0}", portalInfo.Access));
propertiesListBox.Items.Add(string.Format("Host Name: {0}", portalInfo.PortalHostname));
propertiesListBox.Items.Add(string.Format("Name: {0}", portalInfo.PortalName));
propertiesListBox.Items.Add(string.Format("Mode: {0}", portalInfo.PortalMode));

From here, you can access public content; for example, you can display a web map, or download the data stored in a portal item. You
can also Search portal content such as web maps, map services, map features, groups, and users.
Some organizations share content publicly and allow anonymous access to that content; connect to publicly accessible content from
such organizations by specifying the organization URL, for example:
// call the static method CreateAsync with a Uri argument to get a reference to a specific portal
ArcGISPortal portal = await ArcGISPortal.CreateAsync(new Uri("http://anorganization.maps.arcgis.com"));

Connect to secured content and services on ArcGIS Online


Apps that target organization users who are known to the ArcGIS platform (a named user) should pass credentials for the user when
creating the portal object.
// use the IdentityManager to authenticate a user for a portal
try
{
// exception will be thrown here for bad credential ...
var cred = await Esri.ArcGISRuntime.Security.IdentityManager.Current.GenerateCredentialAsync(
"http://anorganization.maps.arcgis.com", UserTextBox.Text, PasswordTextBox.Password);
// add credential if generation was successful
Esri.ArcGISRuntime.Security.IdentityManager.Current.AddCredential(cred);
}
catch(ArcGISWebException webExp)
{
// ... handle exception for bad credential here ...
}
// connect to the server (IdentityManager automatically includes the credential if available)
_portal = await Esri.ArcGISRuntime.Portal.ArcGISPortal.CreateAsync(new Uri("http://anorganization.maps.arcgis.com"));
ArcGISPortalUser user = _portal.CurrentUser;
var userName = user.FullName;
var orgName = _portal.ArcGISPortalInfo.Name;

The portal object now has access to all the secure content for which the user has access rights and can find out more information about
the user, such as the full name (instead of the account user name). Additionally, information about the organization such as the name,
banner image, description, and so on, can be found as shown above. Apps often make use of this information when a user connects to
a specific portal, to show the user organization branding and context.
Typically, the portal object with the authenticated user is cached and used throughout the app session, to provide the app with a view of
a portal that is centered around a single user. When the app is restarted, the credentials must be reinstated, or the user must repeat the
authentication process.
To access secure content, an app needs to provide a way to sign in to the platform, a process often known as authentication. The
recommended approach for authenticating a user known to the platform is to use a user login and OAuth. Apps that target users who
are unknown to the ArcGIS platform can authenticate with the platform on behalf of the user by using an app login.
The portal class contains methods to authenticate using OAuth 2.0 for both user and app logins. Again, the authenticated portal object
can be cached and reused throughout the app session.

Portal for ArcGIS


Portal for ArcGIS provides you with the same core capabilities as ArcGIS Online, but it can be installed and hosted on your own premises,
behind your firewall, for controlled distribution of content.
Learn more about Portal for ArcGIS on esri.com.

Connect to Portal for ArcGIS


Connecting to an instance of Portal for ArcGIS is done in a very similar way to connecting to ArcGIS Online and is represented in the
API by the same class, ArcGISPortal. Use the URL to the Portal for ArcGIS website, along with appropriate credentials valid on that
portal, or no credentials if accessing public content anonymously.

Copyright 1995-2015 Esri. All rights reserved. 255


ArcGIS Runtime SDK for .NET

// use the IdentityManager to authenticate a user for a portal


try
{
// exception will be thrown here for bad credential ...
var cred = await Esri.ArcGISRuntime.Security.IdentityManager.Current.GenerateCredentialAsync(
"http://geoportal.mycompany.com", UserTextBox.Text, PasswordTextBox.Password);

// add credential if generation was successful


Esri.ArcGISRuntime.Security.IdentityManager.Current.AddCredential(cred);
}
catch(ArcGISWebException webExp)
{
// ... ignore exception for bad credential, try to connect anonymously (access public content) ...
}

// connect to the server (IdentityManager automatically includes the credential if available)


_portal = await Esri.ArcGISRuntime.Portal.ArcGISPortal.CreateAsync(new Uri("http://geoportal.mycompany.com"));
ArcGISPortalUser user = _portal.CurrentUser;
var userName = user.FullName;
var orgName = _portal.ArcGISPortalInfo.Name;

ArcGIS for Server


ArcGIS for Server is a complete and integrated server-based GIS, allowing you to publish many different types of GIS services for use by
a variety of clients including ArcGIS Runtime apps. Some services provide similar functionality to that available from ArcGIS Onlinefor
example, you can create map layers based on map, feature, or WMS services, and perform geocoding, routing, or geoprocessing
functions by using services hosted by ArcGIS for Server.

Discover content and services on ArcGIS for Server


Use the ArcGIS Services Directory to browse the available services on an ArcGIS for Server site. Open the REST Services home page
in a browser, for example, http://sampleserver6.arcgisonline.com/arcgis/rest/services.
Contact your ArcGIS Server system administrator if you're uncertain about the server URL or ArcGIS instance.

Connect to ArcGIS for Server


Connecting to ArcGIS for Server is a little different from connecting to portalsinstead of connecting to the portal itself, you pass the
URL of the service you want to use to a class designed to work with that service type.
For example, you can create a map layer by passing in the URL to a dynamic map service:
var uri = new Uri("http://sampleserver6.arcgisonline.com/arcgis/rest/services/DamageAssessment/MapServer");
ArcGISDynamicMapServiceLayer dynamicLayer = new ArcGISDynamicMapServiceLayer(uri);

ArcGIS for Server services are listed below, along with the classes that make use of them.

Service type API classes


Feature service FeatureLayer, FeatureTable
Feature serviceQuery endpoint QueryTask
Feature serviceCreate replica, synchronize replica, unregister replica, and apply edits GeodatabaseSyncTask
endpoints

Map serviceDynamic ArcGISDynamicMapServiceLayer


Map serviceTiled ArcGISTiledMapServiceLayer
Map serviceWMS endpoint WMSLayer
Map serviceWMTS endpoint WMTSLayer
Map serviceIdentify endpoint IdentifyTask
Map serviceExport tiles endpoint ExportTileCacheTask
GeocodeServer LocatorTask
GPServer Geoprocessor
NAServer RouteTask

ArcGIS for Server services and related API classes

Learn more about ArcGIS for Server on esri.com.

Copyright 1995-2015 Esri. All rights reserved. 256


ArcGIS Runtime SDK for .NET

Related Topics
Tutorial: Access maps and content from your portal
Access portal content
Search portal content
Security

Copyright 1995-2015 Esri. All rights reserved. 257


ArcGIS Runtime SDK for .NET

Search portal content


A portal can contain a variety of types of items, including web maps, feature services, text files, and so on. All of these items are
represented in ArcGIS Runtime SDK as ArcGISPortalItem objects. You can search a portal using keywords to find items and can filter
searches according to the type of content you want to find. You can also search users that belong to a particular portal or organization, the
content owned by a user, and so on. Publicly accessible items and groups can be accessed without any authentication, but to find items
that are secured, a user with access to the item must be authenticated with the portal. See Access the ArcGIS Platform for more
information about authenticating with a portal.
If you want to access a specific portal item, you can do so using it's ID, which is unique for all items in a portal. Portal items are
represented in ArcGIS Runtime SDK for .NET using the ArcGISPortalItem class. This class has properties that describe an item,
including the type of data it represents. For information about how to access a portal item's data, see Access content.

Search for portal items


ArcGIS for Portal has a full-featured text search engine, and provides the ability to search for items or groups based on structured queries.
ArcGIS Runtime SDK for .NET provides several methods for searching content in a portal, each designed for searching different types of
items. Some searches, such as for basemaps or featured content, do not require additional parameters. For a more focused search,
however, you can provide parameters to narrow your query criteria or to define preferences for the search.
The SearchItemsAsync method on the ArcGISPortal class can be used to find any type of portal item. The method accepts a
SearchParameters argument that holds a query expression and other preferences for the search.
The following table describes properties of the SearchParameters class.

Property Type Description


Limit int Gets or sets the maximum number of results to be included in the result set response. The default
value is 10 and the maximum allowed value is 100.
QueryString string Gets or sets the expression that defines the search criteria.
SortField string Gets or sets the name of a field on which to sort results.
SortOrder QuerySortOrder.Ascending Gets or sets the order in which results are sorted (default value is ascending).
=0
QuerySortOrder.Descending
=1
StartIndex int Gets or sets the index of the first entry in the result set response. The index number is 1-based, and
the default value is 1. StartIndex, along with the Limit property can be used to paginate the
search results.

The expression used to set the QueryString property can further refine search criteria using specific fields as well. In your query
expression, use a property identifier (such as orgid, owner, title, or type), followed by a colon and the value. The following
expression, for example, will search for web map items within the portal organization with id 123ABC that match the term Cache.
var searchParams = new Esri.ArcGISRuntime.Portal.SearchParameters("\"Cache\" orgid:\"123ABC\" type:(\"web map\" NOT \"web mapping application\")");

See the ArcGIS Rest API search reference for more information, including the fields available for use in your query expression.
The following example searches ArcGIS Online for web map portal items. The results are limited to a maximum of 20 items and will be
sorted in descending order (highest to lowest) on the number of views.
// create the search expression (searchTerm is passed in)
var queryString = string.Format("\"{0}\" type:(\"web map\" NOT \"web mapping application\")", searchTerm);

// create a SearchParameters object, set options


var searchParameters = new Esri.ArcGISRuntime.Portal.SearchParameters()
{
QueryString = queryString,
SortField = "numviews",
SortOrder = QuerySortOrder.Descending,
Limit = 20
};
// open the portal
var arcGISOnline = await Esri.ArcGISRuntime.Portal.ArcGISPortal.CreateAsync();

// execute the search


var itemSearch = await arcGISOnline.SearchItemsAsync(searchParameters);
results = itemSearch.Results;

ArcGISPortal search methods, such as SearchItemsAsync, SearchGroupsAsync, and SearchUsersAsync allow you to provide
an optional CancellationToken argument that gives the user the ability to cancel execution of the search task. See the Asynchronous
programming topic for more information about allowing task cancellation.

Copyright 1995-2015 Esri. All rights reserved. 258


ArcGIS Runtime SDK for .NET

Search for basemaps


Basemaps are represented in a portal as web maps containing a single basemap layer. The following example returns a collection of
portal items from the ArcGIS Online basemap gallery using the SearchBasemapGalleryAsync method. This method can be called
without any arguments to return all basemap portal items, or by passing a SearchParameters object to further refine your search.
// get a reference to the portal (ArcGIS Online)
var portal = await Esri.ArcGISRuntime.Portal.ArcGISPortal.CreateAsync();
// search the basemaps
var basemapSearch = await portal.ArcGISPortalInfo.SearchBasemapGalleryAsync();
var results = basemapSearch.Results;

// show the results (portal items) in a list box


this.ResultListBox.ItemsSource = results;

Search for featured content


A portal administrator may decide to highlight specific content for an organization. A portal may highlight certain items and groups
because they are relevant to the majority of users, or because they are relevant due to current events. For example, maps of disaster
areas after a hurricane, or groups containing wildlife habitat maps if the portal is predominantly used by biologists.
The SearchFeaturedItemsAsync method can be used to get featured ArcGISPortalItem objects. This method can be called
without any arguments to return all featured portal items, or by passing a SearchParameters object to further refine your search. The
following example returns all featured items for a portal.
private async void SearchFeaturedContent()
{
// get a reference to the portal (ArcGIS Online)
var portal = await Esri.ArcGISRuntime.Portal.ArcGISPortal.CreateAsync();
// search the featured content
var featuredItemSearch = await portal.ArcGISPortalInfo.SearchFeaturedItemsAsync();
var results = featuredItemSearch.Results;
// show the results (portal items) in a list box
this.ResultListBox.ItemsSource = results;
}

Search for portal users and groups


The same programming pattern described previously for searching portal items can be applied to searches for portal users or groups. Call
the SearchUsersAsync or SearchGroupsAsync method on the ArcGISPortal object and pass in the same SearchParameters
object to define the query expression and search preferences.
The following example searches for users of the portal with the specified user name. A maximum of 20 results are sorted by account
creation date (oldest to newest).
// connect to ArcGIS Online
var portal = await Esri.ArcGISRuntime.Portal.ArcGISPortal.CreateAsync();
// build a query that searches for the specified user
var queryString = string.Format("\"{0}\"", this.UsernameTextBox.Text);
// create a SearchParameters object, set options
var searchParameters = new Esri.ArcGISRuntime.Portal.SearchParameters()
{
QueryString = queryString,
SortField = "created",
SortOrder = QuerySortOrder.Ascending,
Limit = 20
};
// execute the search
var userSearch = await portal.SearchUsersAsync(searchParameters);
var results = userSearch.Results;

Note: The fields available in a query expression for users or groups differ from those used for a portal items
search. See the ArcGIS Rest API search reference for more information.
More information
The following resources provide more information about working with portal content.
Tutorial - Work with portal content
Sample code -ArcGIS Runtime SDK for .NET samples
Complete app (source code) - ArcGIS Portal Viewer app

Related Topics
Tutorial: Access maps and content from your portal
Access the ArcGIS platform

Copyright 1995-2015 Esri. All rights reserved. 259


ArcGIS Runtime SDK for .NET

Access portal content


Security

Copyright 1995-2015 Esri. All rights reserved. 260


ArcGIS Runtime SDK for .NET

Access portal content


Portals such as ArcGIS Online and Portal for ArcGIS can store many types of data. Perhaps the type most commonly used by apps is a
web mapa JSON description of the data in a map, along with other display and behavioral properties. Other types include tile packages,
feature collections, and services. Some types, such as globe documents and map templates, may only be relevant to desktop systems.
Although you can access these items using the API, you may not be able to use them on a mobile device.
The ArcGISPortalItem object represents an individual item stored on a portal. Each item includes the following:
Metadata, such as a unique identifier (ID), title, summary, description, thumbnail image, and tags
Binary or text-based datafor example, the JSON that defines a web map or a feature collection, or a URL pointing to a map
service, or the binary data of a tile package or shapefile

Apps use portal items in different ways. They may show a user a range of items from a portal by combining the title, thumbnail image, and
other metadata. This approach is often used to allow users to browse web maps, basemaps, or map services, and identify the item to work
with. If a user selects an item, the app may then download the data stored in the portal item, for example, by opening and displaying a
web map in a map, or downloading a tile package. Apps sometimes access items directly by ID if a specific item should always be used.
Your app can also add new portal items and alter existing items by adding comments and ratings, updating item information, sharing,
unsharing, and deleting them, as long as the authenticated user has access permissions to do so.
You access the content of a portal item differently depending on its type. Below you can find examples of accessing different types of
portal items. For more information on connecting to a portal, see Access the ArcGIS platform. To find out how you can allow apps to
browse or search for items and groups, see Search portal content.

Display a web map by ID


A very common task is to display a web map from a portal. Web maps are stored as portal items and can be opened by using the ID of the
item, along with the URL of the portal. If the map is not public (for example, if it is shared only with a specific group), you also need to pass
in valid credentials with permission to view the map. See Access the ArcGIS platform for more information on accessing secured items.
In the following example, the web map is opened using the WebMap.FromPortalItemAsync static method and is loaded into a
WebMapViewModel object. The WebMapViewModel class is designed to work as a view model for apps designed using the Model-View-
ViewModel (MVVM) pattern. Changes made to the web map saved in the portal will be reflected in the map displayed in your app's map
view. For more information about using the MVVM pattern with the ArcGIS Runtime SDK for .NET, see the Use the MVVM design pattern
tutorial.
// get a reference to the portal (ArcGIS Online)
var portal = await Esri.ArcGISRuntime.Portal.ArcGISPortal.CreateAsync();
// get a portal item using its ID (ArcGISWebException is thrown if the item is not found)
var item = await Esri.ArcGISRuntime.Portal.ArcGISPortalItem.CreateAsync(portal, "16055a012a4c4bfdb972c90e20b5e7b8");

// check type: if the item is not a web map, return


if (item.Type != Esri.ArcGISRuntime.Portal.ItemType.WebMap) { return; }

// get the web map represented by the portal item


var webMap = await Esri.ArcGISRuntime.WebMap.WebMap.FromPortalItemAsync(item);

// create a WebMapViewModel and load the web map


var webMapVM = await Esri.ArcGISRuntime.WebMap.WebMapViewModel.LoadAsync(webMap, portal);

// get the map from the view model; display it in the app's map view
this.MyMapView.Map = webMapVM.Map;

Copyright 1995-2015 Esri. All rights reserved. 261


ArcGIS Runtime SDK for .NET

Open a web map


You can also create an object that represents a web map without needing to display it immediately. From this, you could find out more
about the contents of the map before displaying itfor example, getting the basemap, operational layers, bookmarks, and initial extent.
The following example gets a web map portal item, finds one of its bookmarks, and then displays it in the app's map view control and
zooms to the extent of the bookmark.
// get a reference to the portal (ArcGIS Online)
var portal = await Esri.ArcGISRuntime.Portal.ArcGISPortal.CreateAsync();

// get a portal item using its ID (ArcGISWebException is thrown if the item is not found)
var item = await Esri.ArcGISRuntime.Portal.ArcGISPortalItem.CreateAsync(portal, "16055a012a4c4bfdb972c90e20b5e7b8");
// check type: if the item is not a web map, return
if (item.Type != Esri.ArcGISRuntime.Portal.ItemType.WebMap) { return; }

// get the web map represented by the portal item


var webMap = await Esri.ArcGISRuntime.WebMap.WebMap.FromPortalItemAsync(item);
// get the "Chula Vista" bookmark
var bookMark = webMap.Bookmarks.Where(b => b.Name == "Chula Vista").FirstOrDefault();

// create a WebMapViewModel and load the web map


var webMapVM = await Esri.ArcGISRuntime.WebMap.WebMapViewModel.LoadAsync(webMap, portal);

// get the map from the view model; display it in the app's map view
this.MyMapView.Map = webMapVM.Map;
// zoom to the extent of the bookmark
this.MyMapView.SetViewAsync(bookMark.Extent);

Note: Remember that the credentials must be for a valid user with access to
the item.

Create a layer from a service item by ID


Portal items representing map or feature services can be used to create layers by using the portal item URL. The following example gets a
portal item that represents a feature service and reads the URL. The first layer in the service is added to the map.
// get a reference to the portal (ArcGIS Online)
var portal = await Esri.ArcGISRuntime.Portal.ArcGISPortal.CreateAsync();
// get a portal item using its ID (ArcGISWebException is thrown if the item is not found)
var item = await Esri.ArcGISRuntime.Portal.ArcGISPortalItem.CreateAsync(portal, "9fb4d96077e24bcba72ba6cf1139c9cf");
// check type: if the item is not a feature service, return
if (item.Type != Esri.ArcGISRuntime.Portal.ItemType.FeatureService) { return; }
// build a url to the first layer in the service
var uri = new Uri(item.Url + "/0");
// create a new feature layer using the url
var featureLayer = new Esri.ArcGISRuntime.Layers.FeatureLayer(uri);
// add the layer to the map
this.MyMapView.Map.Layers.Add(featureLayer);

Find information about any portal item by ID


You can use the ID of any item stored in a portal to access it, and also to find its fieldsproperties such as its title, description, thumbnail
image, owner, and any ratings or comments added by portal users. You can also find out the type of data it contains.
// get a reference to the portal (ArcGIS Online)
var portal = await Esri.ArcGISRuntime.Portal.ArcGISPortal.CreateAsync();
// get a portal item using its ID (ArcGISWebException is thrown if the item is not found)
var item = await Esri.ArcGISRuntime.Portal.ArcGISPortalItem.CreateAsync(portal, "9fb4d96077e24bcba72ba6cf1139c9cf");
// get some information about this item
var title = item.Title;
var createdOn = item.CreationDate;
var viewed = item.NumViews;
var itemInfo = string.Format("{0} was created on {1} and has been viewed {2} times.", title, createdOn, viewed);

Note: The thumbnail of a portal item, along with the ratings and data, is not returned from the portal when you
initially create the item, in order to reduce the network traffic and memory requirements. See the section
below on how to access these properties.
Fetch thumbnails of items
When you create a portal item object, not all information associated with it is immediately returned. This allows you to work with the item
using a minimum amount of memory and delay fetching the larger pieces of data unless, or until, you really need them. Information you
need to fetch, if required, includes thumbnail images, ratings and comments, item data, group memberships, and user folder contents.
The following example shows how to create a bitmap image to display a portal item thumbnail.

Copyright 1995-2015 Esri. All rights reserved. 262


ArcGIS Runtime SDK for .NET

// get a reference to the portal (ArcGIS Online)


var portal = await Esri.ArcGISRuntime.Portal.ArcGISPortal.CreateAsync();
// get a portal item using its ID (ArcGISWebException is thrown if the item is not found)
var item = await Esri.ArcGISRuntime.Portal.ArcGISPortalItem.CreateAsync(portal, "9fb4d96077e24bcba72ba6cf1139c9cf");

// create a new bitmap from the item thumbnail uri


var uri = item.ThumbnailUri;
var bitmap = new BitmapImage(uri);
this.itemThumbailImage.Source = bitmap;

The same applies to the thumbnails of other classes, like users, groups, and organizations. ArcGISPortalUser, ArcGISPortalGroup,
and ArcGISPortalItem all provide a ThumbnailUri property.

Access item data


Portal items that represent files, such as tile packages, images, documents, PDF files, and so on, can be opened, downloaded, and then
stored or opened in your app or in another app. As in the previous example, you will need to specifically fetch the data of a portal item
after you create it. Use the GetItemDataAsync method to do this.
The following example gets the data for an image (.jpg) stored in the portal and saves it to a local file.
try
{
// get a reference to the portal (ArcGIS Online)
var portal = await Esri.ArcGISRuntime.Portal.ArcGISPortal.CreateAsync();

// get a portal item using its ID


var item = await Esri.ArcGISRuntime.Portal.ArcGISPortalItem.CreateAsync(portal, "9f4a793bf45d4292a820918524febfef");
// check type: if the item is not an image, return
if (item.Type != Esri.ArcGISRuntime.Portal.ItemType.Image) { return; }

// use a file picker to get an output file from the user


// (add at least one type to FileTypeChoices to avoid an 'unspecified error' exception)
var picker = new Windows.Storage.Pickers.FileSavePicker();
picker.FileTypeChoices.Add("Jpeg", new List<string>(){".jpg", ".jpeg"});
var outFile = await picker.PickSaveFileAsync();
// get the data for the item
var stream = await item.GetItemDataAsync();
// get the stream as a Windows RT stream
var winRTStream = stream.AsRandomAccessStream();

// create a byte reader for the stream


var buffer = new Windows.Storage.Streams.Buffer((uint)stream.Length);
var reader = await winRTStream.ReadAsync(buffer, buffer.Capacity, Windows.Storage.Streams.InputStreamOptions.None);
// write the item data to the output file
await Windows.Storage.FileIO.WriteBufferAsync(outFile, reader);
// notify the user that the file has been saved
var dialog = new MessageDialog("Saved item to " + outFile.DisplayName);
await dialog.ShowAsync();
}
catch (Esri.ArcGISRuntime.Http.ArcGISWebException webExp)
{
var dialog = new MessageDialog("Unable to access portal item: " + webExp.Message);
dialog.ShowAsync();
}
catch (Exception exp)
{
var dialog = new MessageDialog("Unable to save file: " + exp.Message);
dialog.ShowAsync();
}

Fetch a user's content


Many apps present a list of maps or other items that belong to the current user. Users can create folders within their portal accounts to
help organize their work. Apps should respect the user's view of their content and present the list of folders to the user, allowing the user
to choose which folder to look at in detail.
It's easy to get all the portal items owned by the authenticated user (that represent the content and services items created by that user).
The following example connects to ArcGIS Online with a user name and password, and then gets the groups and items belonging to the
authenticated user.

Copyright 1995-2015 Esri. All rights reserved. 263


ArcGIS Runtime SDK for .NET

try
{
// create credential from input username and password
// (exception will be thrown here if login fails)
var creds = await IdentityManager.Current.GenerateCredentialAsync(
"https://www.arcgis.com/sharing/rest",
this.UsernameTextBox.Text,
this.PasswordTextBox.Password);
// add credential to the IdentityManager
IdentityManager.Current.AddCredential(creds);

// get the portal, the connection will be made using the credentials supplied above
var portal = await Esri.ArcGISRuntime.Portal.ArcGISPortal.CreateAsync(
new Uri("https://www.arcgis.com/sharing/rest"));

// get the portal user (null if connecting anonymously)


var user = portal.CurrentUser;
// get a list of items and groups for this user
if (user != null)
{
var items = await user.GetItemsAsync();
var groups = await user.GetGroupsAsync();

// work with items and groups here ...


}
}
catch (Exception exp)
{
throw new Exception("Unable to connect to portal: " + exp.Message);
}

Note: As seen in the code above, user content is another example of information that you must explicitly fetch, like
portal item thumbnails and content.
To get items shared with the current user, or items owned by a different user, you need to search portal content.

List the groups a user belongs to


Groups can be configured in different wayssome groups are open to all users; some are only accessible by invitation; and for others,
any user can request to join. The groups to which the authenticated user belongs can be accessed, and for any group, the identities of the
members can be found.
From the group, you can find out if membership is by invitation only (using TODO), and if the user can share items with the group (using
ArcGISPortalGroup.IsInvitationOnly). To find out the items currently shared with a specific group, you need to use the group ID
to search for content in a group. To find other groups, for example, those relating to a keyword (tag), you can search for groups, or find the
featured groups of a portal.

Samples
You'll find a complete portal viewer app that illustrates working with portal content in the arcgis-portalviewer-dotnet github repository.

Related Topics
Tutorial: Access maps and content from your portal
Access the ArcGIS platform
Search portal content
Security

Copyright 1995-2015 Esri. All rights reserved. 264


ArcGIS Runtime SDK for .NET

Security
Services provided by portal or by ArcGIS for Server may require a login before they can be accessed. Some portals may provide
anonymous access to some resources, but restrict access to others based on organization or group membership. You can add logic to
your app that allows the user to access secured content using one of several authentication methods.
Your app can provide access to secured ArcGIS Server, ArcGIS Online, or ArcGIS for Portal resources using the following authorization
methods:
Tokens: ArcGIS Tokens or OAuth
Network credential: HTTP secured service
Certificate: Public Key Infrastructure
See the Use ArcGIS token authenticationand Use OAuth 2.0 authentication topics for specific information about accessing resources
secured using those methods.
Once authenticated, you can get details about the user from the ArcGISPortal.CurrentUser property. This property returns an
ArcGISPortalUser object with properties that describe the user and methods for accessing the user's content. Depending on the value
of the Access level, personal details and content may be publically available, or only to the user and administrators.

Tip: Authenticating with ArcGIS for Portal or an organization account for ArcGIS Online also provides a way to
license your ArcGIS Runtime SDK app at the Standard level. See the License your app topic for more
details.
Identity manager
To abstract some of the low level details for working with secure content, the IdentityManager class handles some of the details when
accessing secured resources in your app, such as challenging the user for credentials when a secured resource is accessed and storing
credentials when the user successfully authorizes. It also manages a collection of server information and available user credentials if they
have been provided. When a request for secured content is made to one of the servers in the collection, the identity manager
automatically includes the user's credentials in the request or handles getting a credential if one does not exist.

Set up the IdentityManager


IdentityManager is a singleton class, which means there is always exactly one instance. You cannot instantiate an
IdentityManager object in your code using new, instead you must reference it using the IdentityManager.Current static
property.
IdentityManager maintains a collection of servers for your app that require authentication for access to secured services. You can
register a server with the identity manager with its URL and indicate what type of authorization should be used. Depending on the type
of authorization used for a server, you may need to provide additional information. OAuth requires a unique ID for the client app and a
URL to handle the response, for example. In general, you will register these servers when your app initializes to ensure that the identity
manager knows how to handle requests for their services.
The following example registers a server with the IdentityManager with an OAuth user login authentication type
(TokenAuthenticationType.OAuthAuthorizationCode) and defines some required information about the client app
(OAuthClientInfo).
// Register a portal with the IdentityManager that uses OAuth authentication
var serverInfo = new ServerInfo
{
ServerUri = "https://www.arcgis.com/sharing/rest",
TokenAuthenticationType = TokenAuthenticationType.OAuthAuthorizationCode,
OAuthClientInfo = new OAuthClientInfo { ClientId = "2HEtx9ujil5rac8K", RedirectUri = "urn:ietf:wg:oauth:2.0:oob"}
};

IdentityManager.Current.RegisterServer(serverInfo);

The following members are available on the identity manager to work with registered servers:
ServerInfos - the collection of registered servers that provide secure content, represented as ServerInfo objects.
RegisterServer - a method that adds a new ServerInfo to the identity manger's ServerInfos collection.
FindServerInfo - locates and returns a ServerInfo, if it exists, from the registered server collection using the server URL.

Challenge the user for credentials


When a request is made for a secured resource, the identity manager can see if the request is to one of its registered servers. If the
user has already authorized with the server, the identity manager will automatically include the user credential with the request.

Copyright 1995-2015 Esri. All rights reserved. 265


ArcGIS Runtime SDK for .NET

Otherwise, the identity manager will challenge the user for login information according to the authorization method that's been defined
for the registered server. The following code will cause a challenge for the user to provide a login if the server is secured and registered
with the identity manager.
var portal = await ArcGISPortal.CreateAsync(new Uri(SERVER_URI));

Caution: If a server allows public access for unsecured resources, the user may be given access as an anonymous
user rather than being challenged for authorization. To explicitly challenge the user, call
IdentityManager.GetCredentialAsync().
The details of how a user is challenged for a credential (user name and password, in other words) are handled by components
associated with the IdentityManager.
Challenge handler - a component that implements the IChallengeHandler interface and is assigned to the
IdentityManager.ChallengeHandler property. The challenge handler contains logic for obtaining the required credential
for a server, either by providing hard-coded login information or prompting the user to enter it.
OAuth authorize handler - a component that implements the IOAuthAuthorizeHandler interface and is assigned to the
IdentityManager.OAuthAuthorizeHandler property. The OAuth authorize handler contains logic that's specific to
handling authorization using OAuth.
You can use the default handlers and utility classes provided by ArcGIS Runtime SDK for .NET. If needed, you can create custom
handler components by implementing the required interfaces. See the Use ArcGIS token authentication topic for more details about
setting up a challenge handler.

Add or remove credentials


The identity manager maintains a collection of credentials for use by your app. You can add or remove credentials in this collection as
needed. After successfully generating a credential, you must add it to the identity manager's credential collection. Only credentials in the
collection will be used to access secured resources.
The following example generates a new credential for connecting to a secure resource, then adds the credential to the identity manager.
try
{
// exception will be thrown here for bad credential ...
var cred = await Esri.ArcGISRuntime.Security.IdentityManager.Current.GenerateCredentialAsync(
PORTAL_SERVER_URL, UserTextBox.Text, PasswordTextBox.Password);
// add the credential if it was generated successfully
Esri.ArcGISRuntime.Security.IdentityManager.Current.AddCredential(cred);
// connecting to the portal will use an available credential (based on the server URL)
_portal = await Esri.ArcGISRuntime.Portal.ArcGISPortal.CreateAsync(new Uri(PORTAL_SERVER_URL));
}
catch(ArcGISWebException webExp)
{
var msg = "Could not log in. Please check credentials. Error code: " + webExp.Code;

var messageDlg = new MessageDialog(msg);


await messageDlg.ShowAsync();
}

Caution: If the user name and password cannot be authenticated by GenerateCredentialAsync, an


Esri.ArcGISRuntime.Http.ArcGISWebException is thrown. Make sure you handle such
exceptions, as shown in the previous example, especially if you are getting login information from the user.
One technique is to ignore such exceptions and connect anonymously (if supported by the server) when
authentication fails.
If you no longer need the credential for a server in the identity manager, you can remove it from the collection. This would be equivalent
to signing out of a portal. The credential for a particular server can be found in the collection using the server URL. The following
example finds the credential for a server and removes it from the collection.
// find the credential for this server
var cred = Esri.ArcGISRuntime.Security.IdentityManager.Current.FindCredential(PORTAL_SERVER_URL);

// remove it from the identity manager


Esri.ArcGISRuntime.Security.IdentityManager.Current.RemoveCredential(cred);

Related Topics
Access the ArcGIS platform
Use ArcGIS token authentication
Use OAuth 2.0 authentication

Copyright 1995-2015 Esri. All rights reserved. 266


ArcGIS Runtime SDK for .NET

Use ArcGIS token authentication


You can access services that have been secured using ArcGIS tokens in your ArcGIS Runtime SDK for .NET app by authenticating with
the portal on which they are hosted. To authenticate, you must provide a valid user name and password. In return, you will receive a token
that is included in all requests for secured content on the portal.
When working with any type of security, the IdentityManager is a vital component. See the Security topic for more information about
working with the identity manager.

Note: Accessing secured services has major differences between the three APIs that make up ArcGIS Runtime
SDK for .NET (Desktop, Store, and Phone). Consult the documentation for each platform for which you need
to work with secured content.
Prompt the user for login information
If an attempt is made to access secured content in your ArcGIS Runtime SDK for .NET Windows Store app, a login dialog automatically
displays so the user can provide a user name and password. The login UI indicates the URL of the resource for which a login is required.
The user is warned if incorrect login information is entered, and can continue trying to log in. If the login UI is dismissed, the map displays
without the secured resource.

Note: The user can check the Remember my credentials check box to store credentials for this portal in the
app's local storage for use between sessions of your app.

To verify what's happening in your app when access to a secured resource is attempted, review the HTTP traffic using a tool like Fiddler.
Here's a summary of what you'll see:
1. A request is made to a secured resource. The server responds with an unauthorized access error.
2. Information about the portal that hosts the resource is requested. The response contains a tokenServicesUrl for obtaining
ArcGIS tokens with an authorized user name and password.
3. A user name and password are sent to the tokenServicesUrl. If the login is successful, the response contains a token (a long
alphanumeric string).
4. The request to the secured service is resent, this time with the token included in the URL query string. A successful response
returns.
5. All subsequent requests to the service (or any others hosted on the same portal) include the token.

Use a hard-coded login


If needed, provide a user name and password in your app code to authenticate for a secured resource you need to access. While this may
sometimes be a valid use case and spares your user from interacting with a login dialog box, it's not very secure. A malicious user can
retrieve login information by decompiling your app code or by viewing the HTTP traffic from your app.

Copyright 1995-2015 Esri. All rights reserved. 267


ArcGIS Runtime SDK for .NET

In the following example, the IdentityManager is used to generate a credential for the specified portal. A user name and password are
hard-coded into the call to GenerateCredentialAsync. The credential is then stored with the IdentityManager before a secured
resource hosted by the portal is accessed.
try
{
var opts = new GenerateTokenOptions();
opts.TokenAuthenticationType = TokenAuthenticationType.ArcGISToken;
// generate an ArcGIS token credential with a hard-coded user name and password
// (if authentication fails, an ArcGISWebException will be thrown)
var cred = await IdentityManager.Current.GenerateCredentialAsync(
"http://serverapps10.esri.com/arcgis/rest/services/",
"user1",
"pass.word1",
opts);

// add the credential to the IdentityManager (will be included in all requests to this portal)
IdentityManager.Current.AddCredential(cred);
// load a layer based on a secured resource on the portal
var layer = new ArcGISDynamicMapServiceLayer(new Uri
("http://serverapps10.esri.com/arcgis/rest/services/GulfLawrenceSecureUser1/MapServer"));
await layer.InitializeAsync();
// add the layer to the map and zoom to its extent
this.MyMapView.Map.Layers.Add(layer);
await this.MyMapView.SetViewAsync(layer.FullExtent);
}
catch (ArcGISWebException webExp)
{
var msgBox = new MessageDialog("Unable to authenticate with portal: " + webExp.Message);
msgBox.ShowAsync();
}
catch (Exception exp)
{
var msgBox = new MessageDialog("Unable to load secured layer: " + exp.Message);
msgBox.ShowAsync();
}

In the previous example, accessing the secured content is transparent to the user. A credential is generated and stored with the identity
manager before an attempt is made to access data on the portal. With the request to the secured resource, the identity manager
automatically includes the required credential (ArcGIS token). From the user's perspective, the layer loads like any unsecured layer would.
Additionally, any other secured resources on the same portal to which the provided login has permission can also be accessed without
having to authenticate again.

Use a challenge handler to generate a credential


When loading layers in your ArcGIS Runtime app, an ArcGISWebException is thrown when an attempt is made to access a secured
resource if the identity manager does not have the required credential. Since you have the ability to catch such exceptions when creating
or initializing a layer, you may want to respond by generating the required credential and trying to access the resource again. Fortunately,
ArcGIS Runtime SDK for .NET provides a framework that allows you to respond to requests for secured content without having to directly
handle the exceptions that are raised. To do so, create a challenge handler component.

Note: Assigning a challenge handler removes the default one used by the identity manager. To disable challenges
for secured content, for example, set IdentityManager.ChallengeHandler to null.

A challenge handler class must implement the IChallengeHandler interface, which defines a single method,
CreateCredentialAsync. The signature for this method is shown in the following example.
public async Task<Credential> CreateCredentialAsync(CredentialRequestInfo requestInfo)

As you can see, the challenge handler is responsible for returning a Credential. The CredentialRequestInfo that is passed into
CreateCredentialAsync can be used to discover the URI of the service.
The following example shows an implementation of CreateCredentialAsync that returns a credential for one of several portals using
hard-coded login information.

Copyright 1995-2015 Esri. All rights reserved. 268


ArcGIS Runtime SDK for .NET

private async Task<Credential> CreateHardCodedCredentialAsync(CredentialRequestInfo requestInfo)


{
Credential cred = null;
if (requestInfo.ServiceUri.Contains("serverapps10.esri.com"))
{
cred = await IdentityManager.Current.GenerateCredentialAsync(
requestInfo.ServiceUri,
"user1",
"pass.word1");
}
else if (requestInfo.ServiceUri.Contains("server6.esri.com"))
{
cred = await IdentityManager.Current.GenerateCredentialAsync(
requestInfo.ServiceUri,
"user1",
"user1");
}
else if (requestInfo.ServiceUri.Contains("my.server.com"))
{
cred = await IdentityManager.Current.GenerateCredentialAsync(
requestInfo.ServiceUri,
"Ted",
"Im.Ted.Be11");
}

return cred;
}

To put this code into action, it must be a method of a class that implements IChallengeHandler, which must be assigned to the
IdentityManager.ChallengeHandler property. The following example creates a new challenge handler and sets the
ChallengeHandler property.
var myChallenger = new MyChallengeHandler(); // custom class that implements IChallengeHander
IdentityManager.Current.ChallengeHandler = myChallenger;

As a shortcut, you can create a new challenge handler using the Esri.ArcGISRuntime.Security.ChallengeHandler utility class
and passing in a function with the proper signature for the IChallengeHandler.CreateCredentialAsync method. The following
example shows creating a new challenge handler using this utility class.
var myChallenger = new Esri.ArcGISRuntime.Security.ChallengeHandler
(this.CreateHardCodedCredentialAsync);
IdentityManager.Current.ChallengeHandler = myChallenger;

Once the ChallengeHandler property is assigned, attempts to access secured resources will be funnelled through your challenge
handler (specifically, through the IChallengeHandler.CreateCredentialAsync method).

Caution: Specifying your challenge handler disables the default behavior that prompts for a user name and password
for secured services. If using the challenge handler illustrated above, for example, you would not be
prompted for a user name and password for secured resources hosted on a portal other than the three for
which credentials are provided.

Copyright 1995-2015 Esri. All rights reserved. 269


ArcGIS Runtime SDK for .NET

Use OAuth 2.0 authentication


You may have used OAuth 2.0 to log on to third-party applications using a social network account, such as Twitter or Facebook. For
general information about OAuth 2.0 in ArcGIS and how to use it in different scenarios, see OAuth 2.0 authentication. You'll find complete
samples using OAuth under the Online Services category in the ArcGIS Runtime SDK samples for .NET.
As a developer using the ArcGIS platform, you can use OAuth 2.0 to build the following two types of apps:
Apps that target users of the ArcGIS platformThese apps allow users to log in to the platform via your app. These types of logins
are known as user logins. In this scenario, your app redirects to a page that prompts the user for their ArcGIS Online user name
and password, and uses their credentials to access content.
Apps that target users who are unknown to the ArcGIS platformThese apps need to log in to the platform for the user. These
types of logins are known as app logins. In this scenario, your app accesses content using hard-coded credentials that belong to
the app. This allows access to content to which the user otherwise would not have permission.

Tip: Authenticating with ArcGIS for Portal or an organization account for ArcGIS Online provides a way to license
your ArcGIS Runtime SDK app at the Standard level. See the License your app topic for more details.

OAuth user logins


OAuth user logins allow app users to authorize themselves on an ArcGIS portal and access secured resources for which they have
permission, without the app handling the user's credentials. User logins can be implemented in all types of apps: browser-based Web
apps, server-based Web apps, device or tablet-based apps, and desktop apps. A Web app redirects the user to the login page on the
remote server, while device, tablet, and desktop-based apps use client side browser controls to integrate this login experience into the
app. Your app receives a unique alphanumeric string known as an authorization code in response to a successful login. An authorization
code provides proof to the server that the user has authenticated successfully and allows access to resources for which the user has
permission.
There are a few broad steps involved for implementing a user login with OAuth 2.0 in your ArcGIS Runtime app.
1. Respond to attempts to access secured resources in your app. If credentials are available for the server that hosts the resource,
they are included automatically, otherwise the user is challenged to authenticate.
2. If needed, get an authorization code for the user by opening a browser window (or control) and directing the user to a portal URL
where they can log in using their user name and password. The user's credentials are entered directly at the specified server
endpoint, so your app does not handle the user's login information. Upon successfully logging in at the specified URL, your app
receives an authorization code for the user.
3. Use the authorization code to get a corresponding access token, which is used to return secured resources for which the user has
permission. The identity manager handles this step for you, automatically obtaining and storing an access token once an
authorization code is available. All requests for secured resources require the access token, which is automatically included when
using the IdentityManager in your app.

Note: Much of the work involved in these steps can be handled by ArcGIS Runtime. You will not need to write
code to implement the entire workflow.

Register servers with IdentityManager


The IdentityManager class abstracts some of the details of working with secured resources in your app, such as challenging the
user for credentials when a secured resource is accessed, storing credentials when the user successfully authenticates, and
automatically including credentials in requests for secured content when they are available.

Note: IdentityManager is a singleton class, which means there is always exactly one instance. You cannot
instantiate an IdentityManager object in your code using new, instead you must reference it using the
IdentityManager.Current static property.
IdentityManager maintains a collection of servers for your app that require authentication for access to secured services. You can
register a server with the identity manager with its URL and indicate what type of authorization should be used. For OAuth user or app
logins, you need to provide additional information about the client app:
Client IDAn alphanumeric string that identifies the app on the server. See the Get a Client ID and Secret section in this topic
for instructions on creating a client ID for your app with ArcGIS Online.
Redirect URIAn address to which a successful authentication response is sent. For a server app, this might be the URL of a
web service that can accept the authorization response. You can use the special value of urn:ietf:wg:oauth:2.0:oob to
deliver the response to a portal URL (/oauth2/approval). This value is typically used by applications that don't have a web server

Copyright 1995-2015 Esri. All rights reserved. 270


ArcGIS Runtime SDK for .NET

or a custom URI scheme where the code can be delivered. When received by your app, the response is read from the
authentication success page.
The following example registers a server with the IdentityManager with an OAuth user login authentication type
(TokenAuthenticationType.OAuthAuthorizationCode) and defines some required information about the client app
(OAuthClientInfo).
// Register the portal to use OAuth authentication
var serverInfo = new ServerInfo
{
ServerUri = "https://www.arcgis.com/sharing/rest",
TokenAuthenticationType = TokenAuthenticationType.OAuthAuthorizationCode,
OAuthClientInfo = new OAuthClientInfo { ClientId = "2HEtx9ujil5rac8K", RedirectUri = "urn:ietf:wg:oauth:2.0:oob"}
};

IdentityManager.Current.RegisterServer(serverInfo);

When a request is made for a secured resource, the identity manager can see if the request is to one of its registered servers. If the
user has already authorized with the server, the identity manager automatically includes the user credential with the request. Otherwise,
the identity manager challenges the user for login information according to the authorization method that's been defined for the
registered server. The following code causes a challenge for the user to provide a login if the server is secured and registered with the
identity manager.
var portal = await ArcGISPortal.CreateAsync(new Uri(SERVER_URI));

Caution: If a server allows public access for unsecured resources, the user may be given access as an anonymous
user rather than being challenged for authorization. To explicitly challenge the user, call
IdentityManager.GetCredentialAsync().

Handle access to secured content


Challenging the user for a login is handled by a component defined by the IdentityManager.ChallengeHandler property. For
authentication with ArcGIS tokens, the challenge handler is responsible for displaying a UI from within the app that allows the user to
provide a user name and password. For OAuth, the aim is to prevent the app from having to deal directly with login information, the
challenge handler directs the user to a login UI hosted by the server. The IdentityManager.OAuthAuthorizeHandler handles
additional details of OAuth authentication.

Note: You can create custom ChallengeHandler and OAuthAuthorizeHandler components by


implementing the IChallengeHandler and IOAuthAuthorizeHandler interfaces respectively.
Except for specialized use cases, the built-in handlers provided by ArcGIS Runtime SDK for .NET are
sufficient and save you from writing a lot of code.
The AllowSaveCredentials option for the Esri.ArcGISRuntime.Security.DefaultChallengeHandler allows you to store
the user's credentials so they can be used between sessions with your app. The following example gets the default challenge handler
and sets it to save credentials between sessions.
var challenger = IdentityManager.Current.ChallengeHandler as Esri.ArcGISRuntime.Security.DefaultChallengeHandler;
challenger.AllowSaveCredentials = true;
challenger.CredentialSaveOption = Windows.Security.Credentials.UI.CredentialSaveOption.Selected;

The identity manager challenges requests for a secured resource on a registered server by redirecting the user to the login UI on the
server. If the user authorizes successfully, an access token is returned and stored with the identity manager.
An access token is an alphanumeric string that provides a key for accessing the platform on behalf of the user, and must be sent with all
requests for secured content on the server. The IdentityManager class manages access tokens for portals used by the app and
automatically includes one when needed for requests made by ArcGIS Runtime classes.

Note: When a user authenticates with a portal, in addition to the access token, the identity manager receives and
stores a refresh token. The refresh token is used to obtain a new access token when it expires. The
identity manager automatically handles getting the new access token using the refresh token when
needed.

Sign in and out


The identity manager automatically handles authenticating for secured resources when they are accessed. You can also manually log
the user on or off of a particular server if you need to. A server might offer both authenticated and anonymous access, for example, or
you might want to let the user switch between logins to access different resources on the server.

Copyright 1995-2015 Esri. All rights reserved. 271


ArcGIS Runtime SDK for .NET

To explicitly challenge the user to sign in, call IdentityManager.GetCredentialAsync as shown in the following example.
private async Task SignIn()
{
try
{
var crd = await IdentityManager.Current.GetCredentialAsync
(new CredentialRequestInfo { ServiceUri = PORTAL_URL }, true);
IdentityManager.Current.AddCredential(crd);
// access the portal as the authenticated user
this.portal = await ArcGISPortal.CreateAsync(new Uri(PORTAL_URL));
}
catch { } // can happen if user cancels the authentication
}

To sign out of a portal, you need to remove the credential stored with the identity manager. If the AllowSaveCredentials option is
enabled for the challenge handler, you also need to clear credentails that may have been saved. The following example removes the
credential for a particular server then reaccesses it with anonymous access.
private async Task SignOut()
{
// clear the credential for the server from the IdenityManager (if it exists)
foreach (var cred in IdentityManager.Current.Credentials)
{
if (cred.ServiceUri.Contains(PORTAL_URL)) {
IdentityManager.Current.RemoveCredential(cred);
}
}

// clear the credentials cache from the DefaultChallengeHandler so they won't be reused in the next session
var challenger = IdentityManager.Current.ChallengeHandler
as Esri.ArcGISRuntime.Security.DefaultChallengeHandler;
challenger.ClearCredentialsCache();
// access the portal as anonymous
this.portal = await ArcGISPortal.CreateAsync(new Uri(PORTAL_URL));
}

App logins
If your app targets users unknown to the ArcGIS platform, the app can log in to the ArcGIS platform and access secured resources to
which it has permission. Unlike the user logins described previously in this topic, your user will not be prompted with a UI to enter a login
and password. Instead, your app is required to authenticate with the portal to receive an access token.
What does an app use to authenticate? The equivalent of user name and password for an app is Client ID and Client Secret. For an
OAuth app login, your app needs to provide this information to the portal hosting the secured resources. As with a user login, your app
receives an access token that the identity manager can use for working with secured resources.

Get a Client ID and Client Secret


Your app's Client ID and Client Secret are created by logging into your developer account at developers.arcgis.com. Click the
Applications tab at the top of the page, and click New Application.
Provide a name, some tags (to make your app searchable), a description, and optionally a redirect URI. After creating the app, click the
OAuth Credentials tab to see the Client ID and Client Secret generated for you.
Note: The name you provide for your app on developers.arcgis.com does not need to match the name of your
actual app. The information you provide when creating an app, such as the name, tags, description, and
redirect URIs is essentially metadata and can be updated at any time. The Client ID and Client Secret are
used by the server to uniquely identify your app and cannot be edited.

Copyright 1995-2015 Esri. All rights reserved. 272


ArcGIS Runtime SDK for .NET

The Client ID is required for user logins, as described previously, as well as for app logins. Unlike user logins, however, an app login
also requires that you provide the Client Secret.

Caution: With an app's Client ID and Client Secret, a user can access secured and billable content on ArcGIS.com.
It's therefore important that you keep your app's Client Secret a secret. Care must be taken to prevent
malicious users from extracting the client secret from the application using developer tools. For most apps,
this implies that the app must have a server side component that keeps these credentials secure and
performs work on behalf of the app.

Get OAuth client credentials


Getting credentials with an OAuth app login works much the same way as for user logins. The only differences are:
The ServerInfo.TokenAuthenticationType is set to TokenAuthenticationType.OAuthClientCredentials
rather than TokenAuthenticationType.OAuthAuthorizationCode.
You must include the app's client secret by setting the OAuthClientInfo.ClientSecret property.
The following example gets an access token with an app login by registering the server with the identity manager and calling
GetCredentialAsync. This will be seamless to the user and they will not be prompted for login information.
private async void OAuthAppLogin()
{
// register the portal to use OAuth app authentication
var serverInfo = new ServerInfo
{
ServerUri = PORTAL_URL,
TokenAuthenticationType = TokenAuthenticationType.OAuthClientCredentials,
OAuthClientInfo = new OAuthClientInfo
{
ClientId = CLIENT_ID,
ClientSecret = CLIENT_SECRET,
RedirectUri = REDIRECT_URI
}
};
IdentityManager.Current.RegisterServer(serverInfo);
// get a credential (app login, user will not be prompted)
var credRequestInfo = new CredentialRequestInfo { ServiceUri = PORTAL_URL };
var cred = await IdentityManager.Current.GetCredentialAsync(credRequestInfo, false);
}

Although it's possible to run code on the client that gets an app login using the Client ID and Client Secret, it's not recommended to do
so if security is a concern. Remember that access to secured services by a malicious user may be billed to your app. This scenario is
described in more detail in the topic App logins and OAuth 2.0 with some suggestions as to how to secure the Client Secret.

Related Topics
Security
Use ArcGIS token authentication

Copyright 1995-2015 Esri. All rights reserved. 273


ArcGIS Runtime SDK for .NET

Supported web map features


You can create a web map using ArcGIS Online or Portal for ArcGIS, then display it in your map application's MapView, as described in
Work with web maps. This topic describes how the ArcGIS Runtime SDK for .NET handles certain features of web maps.

Supported web map layers


When you display a web map created using ArcGIS Online or Portal for ArcGIS in a MapView, the web map's layers are converted to
layer types native to ArcGIS Runtime SDK for .NET. For more information on the JSON structure of web maps, see ArcGIS web map
JSON format. The list that follows describes the layers you can add to an ArcGIS Online web map and the corresponding layer types in
the ArcGIS Runtime API:
ArcGIS map service layer:
With tile cacheCreates an ArcGISTiledMapServiceLayer
Without tile cacheCreates an ArcGISDynamicMapServiceLayer
ArcGIS feature service layerCreates a FeatureLayer
ArcGIS image service layerCreates an ArcGISImageServiceLayer
Bing Maps basemapsCreates a BingMapsLayer
Note: For your web map's Bing Maps basemap to display in an ArcGIS Runtime SDK application, set your
Bing Maps key for the map by using the static LoadAsync overload of WebMapViewModel which
takes a Bing key: WebMapViewModel.LoadAsync(webMap, portal, "yourBingKey");.

Feature collection - Creates a GraphicsLayer and displays all features in the collection as graphics
OpenStreetMap basemapCreates an OpenStreetMapLayer
Layer from KML via URLCreates a KMLLayer
Note: The URL of the KML or KMZ (compressed KML) file must be publicly accessible for the layer to
display in your MapView. If you added a file to your ArcGIS Online account, the file/resource must be
public.

Layer from CSV (by referencing a URL)Creates a CSVLayer

Disabling editing on feature layers


When you add a layer from an editable feature server to an ArcGIS web map, you have the option to disable editing for this layer. You can
do so with the ArcGIS Online web map editor by clicking the layer and selecting Disable Editing from the list of options (or conversely, if
editing is disabled, Enable Editing will show as the option). If you save the web map with the editing disabled on a feature layer and open
this web map in an ArcGIS Runtime application, edits on this layer will not be permitted. The reverse is not true; you cannot enable editing
via the ArcGIS Online web map editor on a layer from a feature service that is not editable.

Note: You cannot edit layers created within ArcGIS Online as map notes. The ArcGIS Runtime .NET API treats
map note layers as feature collections and therefore presents them as graphics. You cannot apply graphic
edits back to the service, therefore editing is disabled.
Setting a minimum and maximum scale on layers
When you create or edit a web map on ArcGIS Online, you can set a minimum and maximum scale on any layer. This is done by clicking
the layer in the table of contents and, from the resulting list of options, choosing Set Visibility Range. If you've set a minimum scale on a
layer in a web map, the layer will no longer display in your MapView when you are zoomed out past this scale. If you've set a maximum
scale on a layer, the layer will no longer display if you are zoomed in beyond this scale.

Related Topics
Tutorial: Access maps and content from your portal
Work with web maps

Copyright 1995-2015 Esri. All rights reserved. 274


ArcGIS Runtime SDK for .NET

License your app


With a developer account, you can download and install an ArcGIS Runtime SDK and immediately have access to all of the functionality in
the API for development and testing purposes. However, any map in your app will be watermarked (as pictured below) and debug
messages will appear saying that your app is licensed for developer use only.

To deploy an app, you must license it at either the Basic or Standard level. When deploying Runtime technology, costs are incurred only at
the Standard level. Usage of ArcGIS Online services may also incur costs. For details, see Terms of Use - FAQ and Plans. For an
overview of the current ArcGIS Runtime licensing model, see Licensing your Runtime app.
License your app for deployment by adding a few lines of code, as described in the following sections. After this is done, the watermark
and debug messages will no longer display and your app is ready to be deployed.
The following table shows which functionality will work for each license level:

License level Available functionality


Developer (development and testing only) All functionality (watermarks and debug messages will be generated)
Basic All functionality except:
Local locators (geocoding)
Local routing
Local editing (such as geodatabase editing)
Local geodatabase sync operations with an upload
Local Server

Standard All functionality

License your app at the Basic level


Steps:
1. Read the end user license agreement.
2. Go to developers.arcgis.com and sign into your ArcGIS for Developers account.
Note: If you do not have access to an ArcGIS for Developers account then you can obtain a client ID by
contacting the Esri office that serves you. If you're in the United States, call Esri at
1-800-447-9778. Then skip to Step 5.

3. Once you're logged in, the Applications section displays. If you havent already done so, register your app by clicking the
Register New Application button. On the page that displays, complete the fields, then click Register New Application.
In the page that displays, a client ID appears for your app.
4. Copy the client ID.
5. Use the following code to set the client ID in your app in a location in your project that comes before any ArcGIS Runtime
functionality is used:
Esri.ArcGISRuntime.ArcGISRuntimeEnvironment.ClientId = "mYcLieNTid";

After setting the ClientId property, initialize the runtime by calling the static Initialize method on the
ArcGISRuntimeEnvironment class. Make sure to wrap the call in a try/catch block as shown below. If the initialization
fails because of an invalid client ID, an exception will be thrown.

Copyright 1995-2015 Esri. All rights reserved. 275


ArcGIS Runtime SDK for .NET

Esri.ArcGISRuntime.ArcGISRuntimeEnvironment.ClientId = "mYcLieNTid";

try
{
Esri.ArcGISRuntime.ArcGISRuntimeEnvironment.Initialize();
}
catch (Exception ex)
{
Console.WriteLine("Unable to initialize the ArcGIS Runtime with the client ID provided: " + ex.Message);
}

Your app is now licensed at the Basic level for deployment.

License your app at the Standard level


You can license your app at the Standard level in one of two ways:
Use ArcGIS Online or Portal for ArcGIS to license your app if your app will be connected to ArcGIS Online or your portal at least
every 30 days.
Use a license code to license your app if you're writing an app that is either never connected to a network or is disconnected for
periods of 30 days or more. Obtain a license code (purchase Standard deployment packs). To purchase deployment packs,
contact the Esri office that serves you. If you're in the United States, call Esri at 1-800-447-9778.

Use ArcGIS Online or Portal for ArcGIS to license your app


Users of your app can unlock its Standard level functionality for up to 30 days by authenticating with their organizational account on
ArcGIS Online or with their Portal for ArcGIS. The app will then work in a disconnected mode for up to 30 days. Follow these steps to
license your app this way:

Steps:
1. Obtain and set the client ID for your app by following all of the Basic level licensing steps.
2. Allow the app user to authenticate with ArcGIS Online or Portal for ArcGIS. You must do this before any Standard level
ArcGIS Runtime functionality is used. As part of the process, save the license information in preparation for your app being
used in an offline environment for up to 30 days. This is achieved as follows:
// connect to ArcGIS Online or an ArcGIS portal as a named user
// The code below shows the use of token based security but you may consider using OAuth authentication
try
{
// exception will be thrown here if bad credential ...
var cred = await Esri.ArcGISRuntime.Security.IdentityManager.Current.GenerateCredentialAsync(
PORTAL_SERVER_URL, UserTextBox.Text, PasswordTextBox.Password);
// add the credential if it was generated successfully
Esri.ArcGISRuntime.Security.IdentityManager.Current.AddCredential(cred);
// identity manager will automatically include an available credential when connecting (based on the server URL)
_portal = await Esri.ArcGISRuntime.Portal.ArcGISPortal.CreateAsync(new Uri(PORTAL_SERVER_URL));
}
catch(ArcGISWebException webExp)
{
var msg = "Could not log in. Please check credentials. Error code: " + webExp.Code;
var messageDlg = new MessageDialog(msg);
await messageDlg.ShowAsync();
}

// once connected, get the license info from the portal for the current user
var licenseInfo = _portal.ArcGISPortalInfo.LicenseInfo;

// set the license using the static ArcGISRuntimeEnvironment class


Esri.ArcGISRuntime.ArcGISRuntimeEnvironment.License.SetLicense(licenseInfo);

// get a JSON representation of the license info


var licenseJSON = licenseInfo.ToJson();
// ... code here to save JSON license string locally ...

3. If you saved the license information on local storage, your app can be started in an offline environment. You need to
license your app with the following code:

Copyright 1995-2015 Esri. All rights reserved. 276


ArcGIS Runtime SDK for .NET

try
{
// set the client ID and initialize the ArcGIS Runtime
Esri.ArcGISRuntime.ArcGISRuntimeEnvironment.ClientId = "mYcLieNTid";
Esri.ArcGISRuntime.ArcGISRuntimeEnvironment.Initialize();
}
catch (Exception ex)
{
Console.WriteLine("Unable to initialize the ArcGIS Runtime with the provided client ID: " + ex.Message);
}

try
{
// read the saved license string from a local source (file on disk, e.g.)
var licenseJSON = this.GetSavedLicenseString();

// use the static FromJson method on LicenseInfo to create the license


var localLicenseInfo = Esri.ArcGISRuntime.LicenseInfo.FromJson(licenseJSON);
// set the license
Esri.ArcGISRuntime.ArcGISRuntimeEnvironment.License.SetLicense(localLicenseInfo);
}
catch (Esri.ArcGISRuntime.LicenseException ex)
{
Console.WriteLine("Unable to license the ArcGIS Runtime with the license string provided: " + ex.Message);
}

The saved license information will allow your app to be used offline for a period of 30 days, after which the license
information will expire. The app must reconnect to ArcGIS Online or Portal for ArcGIS for new license information to be
obtained and a new 30 day period to start. If an app attempts to use expired license information, it will only function with
Basic level functionality.

Your app is now licensed for deployment with Standard functionality, including Local Server. Local Server extensions are however not
available for named users of ArcGIS Online or Portal for ArcGIS. You can only use these extensions with a license code, as described
below.

Use a license code to license your app

Steps:
1. Obtain and set the client ID for your app by following all of the Basic level licensing steps.
2. Obtain a license code by contacting the Esri office that serves you. You can also obtain a client ID from this Esri office if
you don't have access to an ArcGIS for Developers account. If you're in the United States, call Esri at 1-800-447-9778.
Note that each Extension license is a separate license code. To use an Extension license you must have a Standard
license.
3. Using the following code sample, set the license code in your app after you set the client ID and before any ArcGIS
Runtime functionality is used:
try
{
// set the client ID and initialize the ArcGIS Runtime
Esri.ArcGISRuntime.ArcGISRuntimeEnvironment.ClientId = "mYcLieNTid";
Esri.ArcGISRuntime.ArcGISRuntimeEnvironment.Initialize();
}
catch (Exception ex)
{
Console.WriteLine("Unable to initialize the ArcGIS Runtime with the provided client ID: " + ex.Message);
}

try
{
// use the license code to enable standard level functionality
Esri.ArcGISRuntime.ArcGISRuntimeEnvironment.License.SetLicense("runtimestandard,101,rux00000,none,XXXXXXX");
}
catch (Esri.ArcGISRuntime.LicenseException ex)
{
Console.WriteLine("Unable to license the ArcGIS Runtime with the license string provided: " + ex.Message);
}

4. If your app requires functionality provided by Local Server extensions, you'll need to specify their licenses as the second
parameter of the SetLicense method. The following example shows a license code being applied (first argument)
followed by codes for all extensions:
Esri.ArcGISRuntime.ArcGISRuntimeEnvironment.License.SetLicense(
"runtimestandard,101,rux00000,none, XXXXXXX",
"runtimespatial,101,rux00000,none, XXXXXXX",
"runtimenetwork,101,rux00000,none, XXXXXXX",
"runtime3d,101,rux00000,none, XXXXXXX");

Your app will now function offline or online with Standard functionality, including any Local Server extensions youve provided license
codes for, without any time limitations.

Copyright 1995-2015 Esri. All rights reserved. 277


ArcGIS Runtime SDK for .NET

Attribute Esri in your app


You are required to attribute Esri in your app using the following guidelines:
About and Credit screens must include the following text: "Mapping API provided by Esri ArcGIS Runtime SDK for .NET".
Map dataAll map data used in an application must be attributed in About and Credit screens using the Copyright Text section
of the REST endpoint(s) being used. For example, ESRI_Imagery_World_2D service must use Copyright: 2013 ESRI, i-cubed,
GeoEye.
Esri logoIf your application uses data served by Esri through ArcGIS Online, you must display a logo on the map. For examples
of such data, see this ArcGIS Online page.

Related Topics
Deploy an app
Create an ArcGIS Runtime deployment

Copyright 1995-2015 Esri. All rights reserved. 278


ArcGIS Runtime SDK for .NET

Deploy an app
Apps built with ArcGIS Runtime SDK for .NET can be deployed to your users by uploading your app package to the Windows Store, or
by sideloading it directly onto a device. In either case, you'll need to prepare your app for deployment and test it on real devices to ensure
a quality experience before putting it in the hands of your users.
The following broad steps are required to prepare your app for deployment:
1. License your app.
2. Add attribution.
3. Create a deployment of ArcGIS Runtime (for the platforms you want to support).
4. Deploy to a device for testing

Note: Deployment steps differ for each platform in the ArcGIS Runtime SDK for .NET (Windows Desktop,
Windows Store, and Windows Phone). Please consult the deployment information for each platform you
want to deploy.
License your app
Before creating a deployment, you must ensure that your app includes logic to apply the proper licensing for the functionality it provides.
Consult the License your app topic for licensing requirements and instructions.

Note: There is no need to license your app when deploying to devices for testing. You can deploy your app for
testing using a developer license.
Add attribution
You are required to attribute Esri in your Windows Store app according to the following guidelines.
ArcGIS Runtime SDK for .NETAbout and Credit screens must include the following text: Mapping API provided by Esri
ArcGIS Runtime SDK for .NET.
Map dataAll map data used in an application must be attributed in the About and Credit screens using the Copyright Text
section of the REST endpoint or endpoints being used. For example, ESRI_Imagery_World_2D service must use Copyright:
2009 ESRI, i-cubed, GeoEye.
Esri logoIf your application uses data served by Esri through ArcGIS Online, display a logo on the map pursuant to the logo
guidelines below. Examples of such data can be found on the ArcGIS Online maps page.

Note: When using Bing Maps in your application, it's important to include the proper attribution information. See
the Branding Guidelines from Microsoft for more information.

Esri logo guidelines


The following guidelines must be followed when applying logo attribution.
Minimum size of the logo is 43 x 25 pixels.
Place the logo directly on the map with no background.
Logo should be located on the bottom left corner of the map.
Do not apply transparency to the logo.
Do not overlap with another logo or visual component (excluding elements of the map).
Download Esri logos.

Deploy to a device for testing


While Windows 8.1 apps are generally deployed through the Windows Store, you can sideload an app by creating an app package
(*.appx) and manually loading it onto a device. The basic steps are described below, consult the links provided in the instructions for more
detailed information.

Steps:
1. Ensure that you have satisfied the prerequisites described on the Windows Store apps Dev Center.

Copyright 1995-2015 Esri. All rights reserved. 279


ArcGIS Runtime SDK for .NET

2. Open the project for the app you want to deploy in Visual Studio.
3. In the Visual Studio Configuration Manager dialog box for your project, specify the Platform for your deployment (x86,
x64, or ARM).
4. Build your project.
5. From the Project menu, choose Store > Create app packages. Choose No when prompted to create a package to upload

to the Windows Store. Choose an output folder for the package.

A new app package is created in the folder you specified in the wizard. Everything needed to run the app is included in the
package. The following image shows the contents for a typical app package output folder.

The app package is the file with an *.appx extension. This is an archive file that contains the required files for your app. To
view its contents, you can change the extension to *.zip and open it in Windows Explorer. Inside, you'll find your app's
executable, the ArcGIS Runtime assembly, and an ArcGIS Runtime deployment folder (if you created one). The output folder
also contains a *.cer file, which is the developer's certificate that was used to sign the app package, and a PowerShell script
(*.ps1) that can be used to install the package on the target device.
6. Copy the deployment folder (not just the *.appx file) to the target device.
7. Open the folder on the device and run the PowerShell script (*.ps1). The script will guide you through installing the app.
8. When the installation is complete, you can launch the app from the WIndows 8 Apps menu for testing.

Note: Consult the System requirements topic for the supported target machine
requirements.
For more information about sideloading Windows Store apps, consult the following links:
How do I deploy an Windows 8 app to another device for testing?
Try it out: Sideload Windows Store apps
Sideloading Store apps to Windows 8.1 devices

Related Topics
License your app
Create an ArcGIS Runtime deployment

Copyright 1995-2015 Esri. All rights reserved. 280


ArcGIS Runtime SDK for .NET

Create an ArcGIS Runtime deployment


Apps built with ArcGIS Runtime SDK for .NET require an ArcGIS Runtime deployment. The ArcGIS Runtime deployment contains the
minimum set of ArcGIS Runtime components required to support the functionality in your app, from rendering beautiful maps to performing
complex GIS analysis. Excluding unrequired components allows you to create focused apps with a smaller footprint, containing only the
capabilities you need.

Define ArcGIS Runtime components to deploy


You can build an ArcGIS Runtime deployment directly in the Visual Studio IDE via a deployment manifest file that you add to your project
and modify using the manifest designer.

Note: Deployment steps differ for each platform in ArcGIS Runtime SDK for .NET (Windows Desktop, Windows
Store, and Windows Phone). Consult the deployment information for each platform you want to deploy.

The ArcGIS Runtime API for Windows Phone and Store does not use the developer installation but automatically includes the core ArcGIS
Runtime components as soon as a project is built in the location specified by the Output path property of the project.
The following image shows the options available in the deployment manifest designer. Because Visual Studio handles including ArcGIS
Runtime in the app package, it is not listed as an option in the manifest.

It is not necessary to use the ArcGIS Runtime deployment unless you want to display specialized symbology in your app that is referenced
by the ArcGISRuntimeEnvironment.SymbolsPath property. To display specialized symbology in your app, you will need to include
the symbol sets in your deployment using the deployment manifest file. Once you have specified the symbology required and built the
project, the deployment creates a folder named arcgisruntime<version> with a resources folder containing all the specialized symbol
sets.
You will require an ArcGIS Runtime deployment for every target platform. The deployment manifest file will automatically detect the
current platform target of each project in which it is included and build an ArcGIS Runtime with the appropriate architecture. This can be
one or more of x86 (32 bit), x64 (64 bit), any CPU, or ARM depending on your app type.

ArcGIS Runtime deployment manifest file


The ArcGIS Runtime deployment manifest file allows you to define your ArcGIS Runtime deployment using Visual Studio. The deployment
manifest file is added using the Project context menu and is edited by choosing components in the manifest designer UI.
The deployment manifest designer has a UI that allows you to do the following:
Choose the target project from a list of projects in which the manifest is included (in the current solution).
View the current solution configuration (debug or release and x86, x64, or ARM).
Choose the required specialized symbology.
View the total estimated deployment size as you choose components to include or exclude.
The deployment manifest file can be included in a single project such as a WPF application, or it can be included in a shared project and
used by multiple dependent projects. The deployment manifest will detect if it is shared, and the manifest designer will allow you to choose
the desired target project from a list of available projects within the current open solution. To choose different deployment options for each
project in the solution, you should add a separate deployment manifest to each project. The deployment manifest will automatically detect
the current platform target of each project in which it is included and build an ArcGIS Runtime deployment with the appropriate
architecture.

Note: The platform target is a property of your project and is modified in the Project properties designer or the
Solution Configuration Manager dialog box. The deployment manifest shows you the current setting, but it
does not provide a tool that allows you to change it.

Copyright 1995-2015 Esri. All rights reserved. 281


ArcGIS Runtime SDK for .NET

Manifest file versions


The Deployment.arcgisruntimemanifest file displays the version of the most current ArcGIS Runtime SDK and the version of the
SDK from which the manifest file was produced.

You can update a deployment from a previous version (a project in which the manifest file version preceeds the extension SDK version,
in other words) using the existing deployment manifest file. Upon building your project, a deployment for the previous SDK version will
be generated (the same version as the manifest file).
You cannot, however, update your application deployment with an older manifest file if you change the referenced ArcGIS Runtime
assemblies to a newer version. To upgrade such a deployment, delete the existing deployment manifest file, update your SDK
references, add a new deployment manifest, and recreate the required settings.

Create a deployment using the manifest designer


Follow these steps to create an ArcGIS Runtime deployment.

Note: The menu item for adding an ArcGIS Runtime Deployment Manifest is not available in the Express editions
of Visual Studio.
1. Open the project or solution for your ArcGIS Runtime app in Visual Studio.
2. Right-click the project listing in the Solution Explorer window and choose Add ArcGIS Runtime .NET Deployment Manifest. This
adds a file to your project, named Deployment.arcgisruntimemanifest.

3. Access the manifest editor by double-clicking the manifest file or right-clicking the manifest file and choosing Open.
4. Click Yes if Visual Studio asks if you want to update and save the project.

Copyright 1995-2015 Esri. All rights reserved. 282


ArcGIS Runtime SDK for .NET

You will then get a file modification warning as the ArcGIS Runtime deployment build extensions make changes to the project file.
Click Reload.

5. If the manifest is included in multiple projects, choose the target project from the list.
6. Choose required ArcGIS Runtime components for capabilities you have included in the app you want to deploy.
7. After choosing all required components, view the estimated deployment size.
8. Build the project.
9. When you build your project, an ArcGIS Runtime deployment will be created in the project's output location.
The deployment folder contains a resources folder with a symbols subfolder that contains the specific symbol sets you chose.

10. After building your project, create a package for your app (click Project menu > Store > Create app packages). The app
package will include your ArcGIS Runtime deployment. To test your app package, you can sideload your app onto a device
following instructions provided in this Microsoft article: Sideload Windows Store apps.

Runtime functionality options


The ArcGIS Runtime components available to include in your deployment are described in the following table.

Option Description
Specialized Symbology Additional symbol sets required by your app.
Military (MIL2525C) Supports the handling and display of military messages using a MIL-STD-2525C-based symbol dictionary.
Military (App6B) Supports the handling and display of military messages using an App6B symbol dictionary.
Hydrographic (S57) Supports the handling and display of S57 data.

Copyright 1995-2015 Esri. All rights reserved. 283


ArcGIS Runtime SDK for .NET

Create an ArcGIS Runtime deployment without the manifest


An ArcGIS Runtime deployment can be created manually without using the ArcGIS Runtime deployment tool.
1. Create a new folder to contain the deployment and provide a descriptive name.
2. Copy the executable for your application and any required supporting files from your project (data, resources, and so on) to the
deployment folder.
3. Copy the ArcGIS Runtime for .NET assembly and the Esri.ArcGISRuntime.dll file to the deployment folder. This file is in the same
location as your executable.
4. Copy the entire ArcGISRuntime<version> folder from your ArcGIS Runtime SDK for .NET installation directory to your
deployment directory.
5. Expand the ArcGISRuntime<version> subfolder (in your deployment folder) and delete folders for platforms you do not want to
deploy (if any). If you are building a deployment for 64 bit exclusively, for example, delete the Client32 subfolder. Your deployment
must include at least one client folder.
6. Load your app onto a device and verify that it starts and works as expected.

Related Topics
License your app
Deploy an app

Copyright 1995-2015 Esri. All rights reserved. 284


ArcGIS Runtime SDK for .NET

Design considerations
When youre starting to build an app, consider the following:
The type of app to buildBecause you're reading an ArcGIS Runtime SDK guide right now, most likely it will be a native app. But
you can review the advantages and disadvantages to each type of appnative, hybrid, and web in Native vs. web.
The type of location-based app to build and how it should be presented to your usersDetermine your app/map pattern discusses
the main location-based app patterns and how they can affect the overall design of your app.
The main UI design elements of a mapping appProvide map tools discusses tools and map interactions. It's designed to get you
started quickly, especially if youre an advanced developer new to GIS or a GIS developer new to delivering apps.
Online or offlineIf your users will be working without an Internet connection, determine what capabilities will be supported offline.
For details, see Create an offline map.
The costs associated with licensing and deploying your appFor details, see Deploy your app.

Related Topics
Determine your app/map pattern
Provide map tools
Performance considerations
Native vs. web

Copyright 1995-2015 Esri. All rights reserved. 285


ArcGIS Runtime SDK for .NET

Determine your app/map pattern


Many apps contain maps or location-based intelligence, yet they can be very different. Have you ever thought about why they differ so
greatly? These differences may be attributed to the many individual and creative ideas of the different designers and developers. But quite
often the look and behavior of these apps are due to the developers and designers recognizing the specific goals of their users and
adapting their app to meet those goals.
While this topic provides a detailed look at the main types of native, location-based apps (patterns), you also need to have a solid
understanding of your users and what they need to achieve with the app.
The patterns can be categorized into two main groups: apps with maps and mapless apps. The latter group is by no means inferior.
ArcGIS Runtime SDKs contain a large amount of functionality that can be leveraged with and without a map.
For details about choosing among the native, hybrid, and web patterns, see Native vs. web.

Mapping apps
Maps can be added to an app for different reasons. It is the context in which the map is used that determines how it should appear and
behave in the app, which, in turn, is determined by what your users need.

Map-centric apps
In map-centric apps, the map is the most important thing about the app. Usually the map opens first and is the focus of the app.
Examples include the ArcGIS App and Collector for ArcGIS. The user gets value out of the app by interacting with the map; it's the map
that provides the desired intelligence or information.
Many of these apps open only one map or allow the user to choose from a few maps that are important to them. Users interact with the
same map for some time.
An example of this type of app is one that allows field workers to:
View their organization's assets in relation to their current location.
Determine the route and time it will take to get to the asset.
The value to the user is the map itself.

App start-up

In these apps, it's imperative that users get to the map as quickly as possible every time they start the app. Re-opening the last map
they were looking at is usually good practice. To do this, store information about the map (and its state, if desired) on disk so it can be
retrieved when the app restarts.

Device form factor

The form factor of the device will also affect how the map is presented. Map-centric apps will take over the entire screen of devices
such as tablets and phones, whether in portrait or landscape. However, on tablets in landscape mode or on desktops, there may be
enough screen real estate to incorporate side panels that contain information about the map. Some apps restrict the screen
orientation to ensure a good user experience. For example, an app may restrict phones to portrait because in landscape, the map is
too small and getting to the tools too difficult. Consider carefully what the user needs to do and whether they get usability benefits
from using the app in the different orientations.
If you do support multiple screen orientations and sizes, you should make sure that you optimize the design for each of those that you
support. This may mean designing specific screen layouts for the different options. You may also have to consider what happens
when a user turns the device from one orientation to another.

Cartography

The cartography of the map is also important. Full cartography recommendations are outside the scope of this topic, but many
resources are available to help you make maps like professional cartographers do, such as the Esri Mapping Center. In general, use
appropriate symbols that make sense to the user without having to look at a legend. Ensure layers are visible at appropriate scales.
Using scale dependency settings not only provides the right information at the right time (scale), but it also can improve performance.
Also ensure that colors of symbols and the commonly used basemap in your app work well together.

Copyright 1995-2015 Esri. All rights reserved. 286


ArcGIS Runtime SDK for .NET

Tools

Be aware of the tools your apps expose. Your default tools should be the most commonly used, and they should be provided to the
user in an appropriate way for the platform and form factor your app is running on. For tips on appropriate use of tools, see Provide
mapping tools.

Map-as-navigation apps
In maps-as-navigation apps, the map is important, but it's not the most important part of the app. The map in this case drives the
navigation of the app and lets the user discover additional information and access other screens that provide value to the user. From the
user's point of view, the map itself has little value in this app; it's a tool to get to the information they need.
The toolset associated with the map should be focused, as the user will not be performing many additional map functions unless it
allows them to get to the target information more quickly or add some value to the information they receive. Often a drawing or selection
tool is appropriate to allow users to quickly draw their area of interest as a graphic on the map. The resulting graphic is then used to
query information (in the form of a QueryTask or query on a layer in the map). It's possible to query for information as the graphic is
being drawn to provide instant feedback, although the performance considerations of this should be evaluated. The use of
geoprocessing to retrieve data and provide information can also be used in this scenario.
Cartography is typically important, as the map should be simple and allow the user to select the areas or features that will display the
information of interest without any distractions. Consider which basemap you should use in this scenario.
An example of this type of app is one that allows users to define areas on the map that show what properties are for sale, what school
districts the properties are in, and what the average sales price is. The valuable content for the user is not the map, but the resulting
information. However, without the map, the user is unable to get to the target information.
Pop-ups can be used to display information based on features in the map. These are UI components that are provided in the SDKs that
allow you to build rich user experiences through map configuration rather than code.

Map-as-context apps
In a map-as-context app, the map is an additional or auxiliary view in the app and is mainly used for contextual purposes. The map is
created and shown based on some other source information also visible in the app. The map displays additional information, which the
user can choose to consider. The map is typically auto-populated with the correct layers, layer filters (also called layer definitions),
location, and zoom level specifically based on the source information.
In this case, map tools should be limited. In many cases, there should be no map tools, and the source information actually navigates or
changes the map. This requires binding the map's behavior to other view controls or elements that hold the source information and can
provide for an intuitive user experience, especially for those users who are not used to working with map interfaces.
Again, cartography is important for this scenario, as there should be few distractions on the map.
An example of this scenario is displaying a weather map for a specific location and time. The source information in this case is the
location name, the time of day, and the weather forecast for that area (temperature, wind speed, humidity, and so on). Initially, the map
shows additional weather information (cloud cover and rain radar for example) for the location and its surroundings at the time that is
being displayed. If the user changes the time of day, the map updates to show the weather information for the new time. The information
the user wants to know is the weather forecast (the source information); the map in this case is additional contextual information that
adds value to the source information. A map can be useful in this scenario, for example, when the source data shows the location will
have clear skies at 1:00 p.m., but the map shows a rain cloud nearby, at 2:00 p.m. the forecast is still sunny but the rain cloud is closer,
the user now knows a rain cloud is heading in their direction.

Mapless apps
Mapless apps that contain location-based intelligence are common and valuable, especially in devices that leverage GPS and motion
sensors to provide information to users. In this pattern, the user should never know about GIS, spatial intelligence, or mapping, and you
should choose your tool names and information screens carefully to hide these from the user.
Any spatial tasks that are run in these apps are run in the background and should not interrupt the user's flow. This typically requires
asynchronous development for tasks to run on background threads (not on the UI thread).
Some of these mapless apps (as well as many mapping apps) may require local data to be on the device. To achieve this, you can use
services, or you can provision the device with the data. For details on how to retrieve and access offline data (whether using a map or
not), see Create an offline map.
ArcGIS Runtime SDKs have many functions, described in the following bullets, that can help you build a mapless app.

Copyright 1995-2015 Esri. All rights reserved. 287


ArcGIS Runtime SDK for .NET

Geometry engine allows you to:


Measure distancesHow far away is a location I'm interested in?
Determine intersections/proximity of features and geometriesWhat county am I in? Does this road cross any rivers?
Buffer locations to find other featuresHow many coffee shops are near me?
Perform conversion from one coordinate system to anotherWhere am I on the map? You can convert lat/long
coordinates from a GPS to a projected coordinate system.
Geocoding allows you to:
Find placesWhere is Redlands, CA? Can you show me coffee shops near me?
Reverse geocodeWhat's the address at this location?
Routing allows you to show directions without a mapWhat are the driving directions to get from one location to another?

Related Topics
Design considerations
Provide map tools
Performance considerations
Native vs. web

Copyright 1995-2015 Esri. All rights reserved. 288


ArcGIS Runtime SDK for .NET

Provide map tools


When considering which tools your users need and which map interactions make sense for their tasks, it's important to know which tools
are available and current trends and user expectations. Equally important is understanding device and platform patterns as well as your
users' various environments. ArcGIS Runtime SDKs provide many tools and capabilities out of the box, such as those for navigating the
map, displaying information, and performing actions in context.

Easy and focused apps are trending


Apps are becoming more focused. Ease-of-use expectations (getting the job done quickly) are on the rise. User perceptions are more
relevant in app design than they've been in the past.
Especially in the world of smartphones and tablets, today's trend is toward making apps more focused and targeted at a specific use case.
Users are accustomed to using multiple apps to get their work done. They've come to expect an app to be focused on helping them get
one or a small number of tasks accomplished quickly. More and more, users have a high expectation that an app will get the job done
quickly and effortlessly.
Devices have become a part of most users' everyday life, even to the point that some users develop an emotional attachment to them.
App builders and UX designers alike recognize that this attachment can come from a pleasant experience or a feeling of satisfaction when
using an app. These feelings can derive from the app making the task fun, from the UI being particularly pleasing, or from the task just
being just easy to do.
Devices (even desktops) have changed significantly. UIs are simplified, often animated, and aesthetically appealing. Touch screens and
the touch-enabled mouse devices have had an enormous impact on the user experience. In addition to expecting a fast and easy
experience, users have come to expect using an app to be an enjoyable and delightful experience.
The focused apps of today are built to run on a variety of devices, including small form factors. Long toolbars with multiple tools which
some GIS users have become accustomed to are unwieldy and unnecessary. The story is similar for other tools. For example, in most
cases, pop-ups are a better choice for an app than the Identify button. Pop-ups remove an extra click for the user to get to the same
information. The same goes for a long table of contents pane with an endless number of layers. Often a long table of contents is a sign
that the app doesn't target a specific enough task.

Map interactions
Think about how your users will want to interact with the map. Older applications required you to pick a particular tool on a toolbar to pan,
zoom in, zoom out, or view the full extent. With touch screens, mouse devices, and trackpads, many of these tools can be provided
through gestures, removing the need for tools on a tool bar altogether. In addition, the proliferation of devices that can provide their own
location based on GPS or other technique means that you can use this information to change the map's extent without the user doing
anything.
ArcGIS Runtime SDKs provide many of these interactions for you out of the box. But you still need to consider whether they're suitable for
your app. What will the user expect to happen when they touch the map? Will they be able to use two fingers to pinch and spread the map
(are they wearing gloves for instance)? Will they know to try a long press, double-tap, and a left/right swipe to open the search tool? For
answers to questions similar to these, see the section Understand your users and their surrounding environment.

Gestures
ArcGIS Runtime SDKs provide many gestures out of the box. Gestures aren't the answer to everything, but if you keep things simple,
intuitive, and follow the device's standard practices, you can provide a lot of functionality in your mapping app without a toolbar.

Display information
Once you've built some default map interactions or gesture-based tools, the next step is to display some information to the user. You can
turn complex data into rich, decision-making information for your users. If you understand your users and know what they want to achieve,
displaying the right information in an appropriate way can reduce the need for additional tools. Older GIS applications have displayed
tables and rows of data to the user, but modern approaches are more intuitive and powerful.
ArcGIS Runtime SDKs provide several API components to display information:
GraphicsArcGIS Runtime SDKs provide a graphics layer. Graphics layers allow you to add, to a map, graphics (points, lines,
polygons, or text) that can be associated with a symbol to make the graphics look the way you want. Graphics let you provide a lot
of information to users about something they have tapped on or an area they're interested in. However, you might need a legend
or additional information to allow the user to interpret what you've added. For details on graphics layers, see Add graphics and
text.

Copyright 1995-2015 Esri. All rights reserved. 289


ArcGIS Runtime SDK for .NET

CalloutsA callout is a small view that displays on top of the map and has a leader that can point to a feature on the map. You
can use these effectively as long as you have enough screen real estate. You can embed text, images, and other items in these
callouts to provide information. The callout can be considered part of the map as it is tied to a specific geographic location and
therefore it moves as the map is panned or zoomed.

Pop-ups, supported throughout the ArcGIS platform, are a powerful way to bring your maps to life. ArcGIS Runtime SDKs fully
support pop-up configurations and provide you with views to display their content without having to write any of the UI code
yourself.
Platform-specific viewsFor native apps, there's a wide array of platform-specific views, widgets, and graphical layouts you can
use to display information, such as graphs, pie charts, meters, categorized text, and so on.

Contextual actions
When you want to provide non-gesture based functionality or tools for your users, you want to ensure they appear at the right place at the
right time. They dont always need to be executed from a toolbar.
For instance, let's say that a default map interaction of a long press adds a feature to the map and displays a list of actions or tools that
can be performed on the location like viewing more details, zooming, or finding directions to the location. You can change these actions or
tools based on the type of location the user pressed. This approach is typically better than exposing these actions on a toolbar, as they
would be active only after a location had been selectedthey might be greyed out most of the time, taking up valuable screen real estate
and confusing the user as to when they can be used.

For capabilities that may be hidden, such as a long press in a blank area of the map as a way to add a feature, it is recommended you add
in-app help. For example, to ensure the user knows that a long press adds a feature, when the user first opens the app, you could have an
image of a finger "fly in" from the right, then animate it to mimic the adding of a feature, with a dismiss control the user can press once he
understands the message being conveyed.
With contextual actions, you need to provide a clear exit path for the user, so they can return to where they came from. Use your target
platform's best practice and navigation tools to provide this behavior.

Toolbars
Not everything can be done without a toolbar. If your app requires a toolbar, make sure you plan out where the tools will display and how
the user will access or interact with them. You have many options to consider here, some of which depend on the platform and form factor
of the devices youre targeting.

Tools on top of the map


Many map-centric applications add tools that hover on top of the map. This approach makes sense for tools that are directly associated
with the map, such as navigation buttons (which may make it easier than a gesture to zoom and pan the map with one hand or when
wearing gloves). The GPS tool can often be seen near the top of the map, and, since it usually navigates the map to your current
location, this approach makes sense.

Copyright 1995-2015 Esri. All rights reserved. 290


ArcGIS Runtime SDK for .NET

Tools on a toolbar
Android has explicit design guidelines for adding tools to a toolbar (or ActionBar, in Android's case) that are relevant to all platforms.
Essentially, tools should be visible if they adhere to the FIT scheme (frequently used, important, and/or typical). If you are adding tools
to your toolbar try to adhere to this guidance. Cluttered toolbars make it difficult for users to find what they are looking for.

Hidden toolbars
Another approach is to provide the user with toolbars or menus that are viewable only through a gesture or button click. This allows a
number of tools to be shown at once but without them cluttering up the app's interface at all times. Patterns in use for hidden toolbars
include the following:
Slide out drawersMenus or tools display from the side of the screen via a gesture or a button click. Lots of apps are using this
approach so that commonly used tools don't clutter the app's screen real estate. The tools are easy for the user to show at any
time and can provide a long list of scrollable menus or tools. Most apps use menu items with clear text and icons so the user
knows exactly what will happen when these are pressed.

Tool wheelMenus and tools display in a wheel shape via a gesture or button click. This approach is more commonly used for
showing multiple tool buttons (typically without accompanying text) rather than menus. Like the slide out drawers, this approach
provides quick access to a number of tools for the user to quickly switch between. It's been used in apps for advanced drawing
to allow users to quickly switch between the vast array of draw tools. It's also been used in camera apps, whfere the user needs
to quickly pick the right setting to take pictures.

Platform concepts and patterns


Above all, it's important for your user experience and user interface design to incorporate guidelines, best practices, and design patterns
specific to the platform you're using. This should include the icon styles to use (flat vs 3D), the use and design of tabs (top or bottom of the
screen), app navigation tools (OS back button vs app back buttons) and the change in interface as screens are rotated or as the screens
appear on different devices.

Copyright 1995-2015 Esri. All rights reserved. 291


ArcGIS Runtime SDK for .NET

Your users and their environment


Additional important questions to ask yourself about your users and their surrounding environment are provided below. The answers can
affect the user experience and how you present tools.
Where will they be using the application?Outdoors in strong sunlight? Indoors in a dark basement? At night? Or all three? The
answer will affect the design of your UI and icons. A white background with dark text is good for an app used in strong daylight. A
dark background with light colored text is best for dark conditions. Does you app need both a daytime mode and a night mode with
different icon sets for each?
How will your users be working with the application and what else might they be doing at the same time?Will they be sitting
down? Standing up? Driving? Flying helicopters? (ArcGIS Runtime SDK apps have been built for pilots.). The answer tells you if
they are holding the device in one hand, two hands, or relying on a device docking station. This information, in turn, helps you
determine which tools and gestures will work. For example, a pinch won't work to zoom out of a map if the user only has one hand
available. Voice commands or some other handling should be considered in that case.
What will users be wearing?Will they be wearing gloves? If so, button and tool size need to take this into account. For example,
bigger buttons and controls are needed for gloved fingers. Will they be wearing sunglasses, helmets, or other items that will get in
the way of the screen and affect how the screen looks?
What sort of device will they be using?A tablet, phone, laptop, or an embedded device? These form factors will likely affect your
choice of how best to provide tools. Phones require the ability to work with a single hand for most things. Tablets typically allow the
user to place them on a surface so that two hands can be used (but this depends on how they will be using the application). For
laptops, typically two hands are available for gestures and touches. Embedded devices might come with multiple ways to control
the app, such as hard buttons, dials, and switches. An app may sometimes be connected to a keyboard and at other times not; in
that case, you need to account for both scenarios.

Related Topics
Design considerations
Determine your app/map pattern
Performance considerations
Native vs. web

Copyright 1995-2015 Esri. All rights reserved. 292


ArcGIS Runtime SDK for .NET

Performance considerations
Hardware specifications, choices within your application development environment, and the ArcGIS Runtime each contribute to how well
your application will perform. You should consider each of these when trying to improve performance.

ArcGIS Runtime
The Runtime SDKs are built to be fast, but there are still ways you can improve performance by working with the items described below,
such as spatial reference and rendering modes.

Note: A video presentation of this topic's information is available, Squeezing every ounce of performance from
ArcGIS Runtime.

Spatial reference
When working with online services, it's important to choose the spatial reference for your map early and ensure data and layers are
stored, managed, and shared in the same spatial reference. This practice lets you avoid having data be reprojected on the server.
Reprojecting data is detrimental to performance.

Layers
As the topic Layer Types describes, multiple types of layers are available in the API depending on the content you want to display in the
map. Each type of layer has specific functional characteristics that determine the appropriate layer type for your content. With those
characteristics also come a set of performance characteristics you must consider when designing your map.
Another factor to consider is the number of layers in the map. This is typically expected to be in the range of 1s and 10s of layers. The
precise number of layers that can be added to the map while still being able to meet the performance expectations of your users is not a
simple calculation, because it depends on many factors. Some of these factors involve the performance characteristics mentioned
earlier. Other factors are noted in this topic, such as the volume of information in a layer and the way in which you symbolize the layer.
Additionally, the processor speed, memory, and graphics hardware resources of the device, or devices, on which you intend to deploy
the application significantly affect the application performance.

Graphics layer rendering modes


When choosing between dynamic and static rendering modes for graphics layers, keep the following considerations in mind:
Dynamic rendering modeIn this mode, which is good in most use cases, the entire graphic representation is stored on the
GPU. This mode is especially good for moving objects, as individual graphic changes can be efficiently applied directly to GPU
state, resulting in a seamless experience. However, the volume of graphics has a direct impact on (GPU) resources, and the
number and complexity of graphics that can be rendered in this mode is dependent on the power of the GPU and the amount of
GPU memory.
Static rendering modeUse this mode for stationary graphics, complex geometries, and very large numbers of polygons.
Volume of graphics has little impact on frame render time (scales well) and pushes a constant GPU payload. However,
rendering graphic updates is CPU/system memory intensive, which can have an impact on device battery life.

Layer type and rendering mode


Layers are arranged bottom to top in the map, usually with the basemap layer at the bottom having a layer index of 0. Other layers are
stacked on top of the base layer with ascending layer index values. As layers are added to the map, try to keep layers with the same
type and rendering mode next to each other in the stack. Some examples follow:
Keep feature layers togetherThey use the underlying static rendering mode available as an option on graphics layers.
Keep graphics layers with static rendering mode together.

Copyright 1995-2015 Esri. All rights reserved. 293


ArcGIS Runtime SDK for .NET

Adhering to these groupings allows the Runtime to optimize data transfer to the GPU. When layers with static rendering mode are
rendered to an image on the CPU, the Runtime can stack the images for multiple adjacent layers together and push the stack as a
single set of textures to the GPU. In contrast, when static layers are not adjacent to one another, the Runtime must generate multiple
images to preserve graphics' visibility ordering. In this case, multiple sets of textures must be pushed for each extent change. Layer
order does not affect layers rendering in dynamic mode because all resources for the layers reside on the GPU, and the GPU can easily
arrange these items when drawing.

One graphics layer per geometry type


It's recommended that you create one graphics layer for each type of geometry to improve rendering performance on graphics layers
with dynamic rendering mode. This practice results in fewer GPU switches and flushes, which are necessary when rendering different
geometry types on the same layer.

Polygon feature layers


For polygon feature layers (ArcGISFeatureLayer), where the number of polygons and polygon complexity (fill texture, outline texture,
and so on) can be unknown, its typically better to use static rendering mode.

Number of graphics
Many variables are at play when it comes to the number of graphics that can be rendered quickly on the map. The major factors to
consider are:
The complexity of the graphics (large numbers of vertices)
The target device
The mode you use (dynamic or static)
The end-user experience
In dynamic mode, graphics are constantly rendered, giving the map a seamless look and feel when interacting with it. The entire graphic
representation resides on the GPU, so as the number of graphics increases, the GPU has to work harder to render. A large number of
graphics can impact how responsive the map is to user interaction.
Static mode renders graphics when needed (when the map extent changes) and offloads a significant portion of the graphical
processing onto the CPU. As a result, less work is required by the GPU to draw the graphics, and the GPU can spend its resources on
allowing the map UI to remain interactive. However, heavy use of the CPU can impact battery life on a device.

Adding graphics
You can add graphics individually to the graphic collection on a graphics layer, or you can add graphics in bulk. The Runtime has
optimization checks on bulk additions for creating new textures for unique graphics and only pushes those textures to the GPU once.
This optimization typically makes adding graphics two to five times faster.

Symbolizing graphics
Graphics within graphics layers can be symbolized with either symbols or renderers. For graphics layers with small numbers of
graphics, it's acceptable to assign an individual symbol to each graphic. The Runtime will attempt to reuse duplicate symbols where it
can, but there is an overhead in this calculation.
For larger numbers of graphics, you should always use a renderer, which ensures the reuse of symbol instances. Another benefit of
using renderers is the efficiency related to adding new graphics. Since symbols are defined on the renderer, the API has less data to
push to the Runtime. Individual graphics can have symbols assigned even when the layer also has a renderer. In this scenario, the
symbol typically takes precedence, although in some cases, it's possible to control this behavior via the API. For more information on
symbols and renderers, see Symbols and renderers.

Renderers
Graphics layers can have both symbols and renderers assigned to them. For graphics layers with small numbers of graphics, it's
acceptable to use individual symbols on each graphic. The Runtime will attempt to reuse duplicate symbols where it can, but there's an
overhead in this calculation.

Copyright 1995-2015 Esri. All rights reserved. 294


ArcGIS Runtime SDK for .NET

For larger numbers of graphics, you should always use a renderer, where unique symbol reuse is ensured. Another benefit of using a
renderer is the efficiency related to adding new graphics. Since symbols are defined on the renderer, the API can push less data to the
Runtime.

Scale range
You can improve performance by rendering only the graphics that make sense for a scale range and turn off the graphics that don't. You
do this by setting a scale range on a layer to indicate at which scales (zoom level range) you want that layer to display. For example,
when your user zooms out to a country boundary, you can have the detailed bus routes layer turn off automatically.
Setting this scale range, also known as setting scale dependency, not only makes the map less cluttered and easier to use, but it also
conserves GPU (in dynamic mode) and CPU (in static mode) resources, because unneeded graphics aren't rendered.

Additional resources
A video presentation of this topic's information is available, Squeezing every ounce of performance from ArcGIS Runtime.
Maps and layersDescribes layer types and includes information on how they relate to performance.

Application development environment


The hardware that you choose may mean you that you have more than one application development environment choice. Each of these
will provide you will different ways to improve performance.

Asynchronous programming
On mobile devices where you have limited resources and variable network speed it is advisable to perform long running tasks on a
background thread.
However, since threads consume device resources, you still do need to pay particular attention to minimizing the amount of threads that
are created. See the Asynchronous programming and Threading considerations topics for more details.

Hardware
Hardware is designed with functionality and specific needs in mind. Be sure to understand the capabilities of your hardware before adding
the complexities of an application environment and the ArcGIS Runtime to your requirements.

Device limitations
Mobile devices have less processor and memory resources compared to standard desktop machines. For this reason, applications need
to be developed to run in an efficient manner.

Network speed
Mobile devices often use 3G or sometimes lower speed radio communication networks to obtain and transfer data. The speed of these
networks vary but are much slower (in terms of data per second) than wired or wireless networks. Due to this network latency, small
requests can take time to return, which makes your application seem sluggish. Therefore, you need to carefully manage the total
amount of data and the number of network requests submitted by your mobile application. As an example, it may be more efficient to
send a single large request for data rather than multiple small requests. Changing the layer types, application functions, or the flow of
your application can also affect network speed.
If your mobile application users are always in the range of a wireless network, your application can retrieve and submit larger amounts
of data. However, even in this scenario, it's always good practice to remember the amount of data and number of requests your
application uses, whatever the bandwidth.
By understanding the characteristics of the different types of map layers in the API, you can determine the best layers for your needs
and ensure that your application performs for your users.

Network connectivity
Some application users may only have intermittent network access, such as intermittent 3G access due to working in remote areas or
daily access to a wireless network for synchronizing data. If this is the case, local storage usage is important. The application can be
designed to connect to the server to retrieve data the user needs, then store this data on disk or in a local SQLite database.

Copyright 1995-2015 Esri. All rights reserved. 295


ArcGIS Runtime SDK for .NET

Applications need to be developed robustly with this in mind, because the network connection can be dropped anytime. Functions need
to fail gracefully, and any long running application transactions may need to be rolled back.

Related Topics
Design considerations
Determine your app/map pattern
Provide map tools
Native vs. web

Copyright 1995-2015 Esri. All rights reserved. 296


ArcGIS Runtime SDK for .NET

Native vs. web


ArcGIS software development patterns are similar at a high level across ArcGIS Runtime SDKs and ArcGIS Web APIs. When choosing an
approach for creating apps with ArcGIS capabilities, it's helpful to have an understanding of the general differences among native, web,
and hybrid apps, as well as the differences in ArcGIS capabilities among native, web, and hybrid apps.
NativeThe native strategy offers the best device integration and the most out-of-the-box functionality for offline workflows, but it
requires native development skills. You can use the ArcGIS Runtime SDK for Windows Store apps to create native apps.
HybridHybrid strategies use a mix of native components and web app content (HTML, JavaScript and CSS) to build native
applications and there are many different ways that this can be achieved. The easiest approach is to embed a web control into a
native app and load web content. More advanced approaches include using frameworks (for example, PhoneGap or Appcelerator
Titanium) that allow for richer integration with the native platform. You can use Esris JavaScript API and the ArcGIS Runtime SDK
for Windows Store apps in hybrid strategies. The Wikipedia topic on hybrids explain hybrid strategies. These topics provide
additional context, that is, Inside Facebooks mobile strategy by Kurt Wagner, Mashable, and Mobile: Native Apps, Web Apps, and
Hybrid Apps, by Raluca Budiu of Nielsen Norman Group.
WebA web strategy is one in which HTML, JavaScript, and CSS are hosted on a web server and delivered to the user's device
or desktop using its web browser. This strategy is best if you don't know the devices your users have and you need to reach a
wide audience. You can use Esris JavaScript API in a web strategy.
The content from this topic was excerpted from Development strategies for targeting Android, iOS, and Windows Phone.

Key comparison points


The most important goal is to deliver the best experience and functionality for the audience of your app. Below are questions to ask
yourself to help you achieve this.
Do you know the regions of the world you want to target? Do you know what devices they have?
Who is the target audience (internal or consumer public) and what functionality (mapping, advanced analysis, and so on) is
required to support the application?
Are your users sometimes disconnected and need the app to run offline?
What skills do your current development team possess?
What data and web services are required to support the application?
Who is the steward of the data behind the web services? Do you have access to the data if necessary (for example, ability to
create offline data sources)?
Are there requirements for device integration, such as use of the device's GPS, compass, media, calendar, contacts, text
messaging (SMS), notifications, and so on?
The tables below provides a detailed look at these and additional comparison points.

General differences compared


Consideration Native strategy Hybrid strategy Web strategy Notes
Understanding your Target each specific device OS, and Target each specific device Target the Device popularity varies
users and which deliver the best native experience (an OS, but leverage existing web devices browser geographically (North
devices they prefer app for each device OS) content and native APIs (an (a single hosted America, Europe, Asia)
app for each device OS) web app used by
all)
What skills do your Requires skills developing on each Requires HTML, JavaScript, Requires HTML,
developers have? native platform (for example, and CSS, and knowledge JavaScript, and
Objective-C for iOS, Java for Android, about compiling the hybrid CSS
and .NET for Windows Phone) framework
Do you want to Distribution through a store is Distribution through a store is Distribution
distribute the app supported supported through a store is
through a store (App not supported
Store and/or Google
Play)?
Access to device Access to all device utilities (GPS, Limited based on the Limited to HTML5 Some hybrid strategies
utilities compass, calendar, media, contacts, development approach, and mobile features (frameworks) provide
camera, and so on) frameworks used wrapper calls to
underlying native API
technology
Maintenance on When you update your app, update it When you update your app, When you update
multiple devices and for each device type update it for each device type your app, it is
desktops immediately
available to all
devices

Copyright 1995-2015 Esri. All rights reserved. 297


ArcGIS Runtime SDK for .NET

ArcGIS capabilities compared


Consideration Native strategy Hybrid strategy Web strategy Notes
Will users need Offline app use is built into Offline app use is Some local Hybrid offline workflows using PhoneGap or
to use the app the native platforms. Offline possible through the storage is possible Titanium are not straightforward and basic
and data GIS is possible and includes hybrid frameworks local with HTML5. as compared to building native apps.
offline? offline map viewing, editing storage mechanism. Offline GIS is also
with sync, geocoding, routing, Offline GIS is possible but possible but
and analysis.*** involved** for the involved** for the
developer. developer.
Routing and Online and offline are Online only* Online only*
geocoding supported.*** Requires
ArcGIS for Desktop to author
offline data sources.
GeoEnrichment Online only** Online only* Online only*
(demographic
and landscape
variables)
Analysis Supported online** and Online only* Online only* Operations such as clip, buffer, and
(geometry offline*** intersect. Editing workflows such as simplify,
operations) densify, union, merge, split, and so on.
Model-based Supported online*** and Online only* Online only* Build models in ArcGIS for Desktop, and
analysis offline. Offline is available on provide clients analysis through
(geoprocessing) Windows and Linux.*** geoprocessing services.
Geometric Supported online*** and Online only* Online only* Supported through model-based analysis
network tracing offline. Offline is available on (geoprocessing service), for example, valve
Windows and Linux*** isolation trace.
Advanced Supported online and Online only* Online only* Includes support for rotation, offset,
cartography offline*** geodesic symbols, and military symbology,
and symbology such as 2525C and APP-6B.
Display and Once you have the features, Not recommended Not recommended A native app can support millions of
animate large animate their graphics, and features. For web and hybrid, the number of
numbers of maintain smooth and fast features you can have before performance
features map navigation.*** degrades depend on several factors, such
as the browser, but generally 10,000
100,000 is the maximum.
Local file based Offline and local access to Not available Not available Planned in a future release.
data (shapefiles shapefiles and imagery is
and imagery) built into the native
offline platforms.***

* Uses ArcGIS API for JavaScript out-of-the-box API components.


** Uses ArcGIS REST API, and the developer sends requests and processes responses.
*** Uses ArcGIS Runtime SDKs out-of-the-box API components.

Related Topics
Design considerations
Determine your app/map pattern
Provide map tools
Performance considerations

Copyright 1995-2015 Esri. All rights reserved. 298


ArcGIS Runtime SDK for .NET

Release notes for 10.2.7


These release notes describe details of the ArcGIS Runtime for .NET 10.2.7 release. This release adds improvements in 3D mapping,
Keyhole Markup Language (KML) layers, network analysis, and more. The release also improves the quality of the APIs by addressing
issues affecting areas such as map display, querying, and the use of local data.

New functionality
The 10.2.7 release includes enhancements to 3D mapping that provide a better scene interaction experience for the user, more efficient
tile and surface rendering, and improved label display. New network analysis tasks have been added for determining service areas and
closest facilities along a network, and several improvements have been made to KML layers. The following lists improvements and new
functionality for this release.
3D mapping improvements
Depth based scene navigation
Better calculation of mouse/touch location in three dimensions
Smooth navigation towards the surface, buildings, or objects under the mouse/touch location
Accurate navigation relative to objects in a scene (buildings, for example) and navigating around these objects is now
possible
Interactive navigation options (see the Scene navigation topic for details)
Enable or disable keyboard, mouse, touch, or stylus input
Set mouse wheel direction for zooming in/out
Set zoom factor and flick inertia
Tile rendering and elevation improvements
More efficient management of imagery resources for tiles and terrain/elevation data
Optimized tile rendering
Reduced memory usage
Atmospheric effects: Enable basic or realistic atmosphere representation
Labeling
Fade in/out of label display
Label alignment adjusts during navigation
Resolution of label conflicts for increased readability
KML: Support for extrusion, altitude modes, and model symbols
New network analysis tasks
Service area task: Calculate service area polygons for a set of facilities on a network
Closest facility task: Determine routes from points on a network to the closest facility
Others
Support for developing with Visual Studio 2015 and Blend 2015
GeodatabaseSyncTask.Unregister is overloaded to accept a replica ID (string) rather than the full Geodatabase object
KML enhancements, including Network Link and improved authentication handling.

Bug fixes
In addition to addressing overall quality and the new functionality added to the APIs, the following bugs have been fixed with the 10.2.7
release.
Layers in a Scene do not display correctly around the poles.
A search for features from an ArcGIS for Server 10.3 service using FindTask.ExecuteAsync does not honor a value of true
for FindParameters.Contains. This prevents searching for anything but exact matches of the find string from those services.
BUG-000084840 MrSID raster imagery added via the DynamicLayer endpoint displays with higher than normal brightness.
BUG-000087473 GeodatabaseFeatureTable.QueryRelatedAsync throws SEHException.

Copyright 1995-2015 Esri. All rights reserved. 299


ArcGIS Runtime SDK for .NET

BUG-000090122 DynamicLayerInfo min/max scales are not honored when rendering a DynamicLayer in WGS84.
BUG-000090189 LocalLocatorTask fails to initialize when the path to the locator contains multi-byte characters.
BUG-000090851 Rapid zooms or pans on a MapView containing layers from a .geodatabase file may produce an access violation
error.
BUG-000091175 LocalServer fails to start the LocalMapService when loading a map package that uses third party fonts.
ShapeFileTable.OpenAsync fails with custom SR PRJ file citing Invalid argument : wkt.size() == 0 (GeoNet)
GraphicsLayer labels do not display on the MapView when the layer RenderingMode is Static (GeoNet).
Store app may freeze when loading layers with labels from local geodatabase (GeoNet).

Known limitations
The following list describes known limitations or issues with the 10.2.7 release. Where one is available, a workaround is described.

Note: Several graphic issues are specific to the graphic layer rendering mode. The implied workaround for these
issues is to change the rendering mode (if practical for your use case). See the Rendering modes topic for
more information about choosing the rendering mode for a GraphicsLayer or GraphicsOverlay.
Windows 8.0 is no longer supported as an app development or deployment platform with the 10.2.7 release. For more information
please see: Deprecation Plan for ArcGIS
[3D] A scene does not use the extent of the base layer to define an initial view. This contrasts with the behavior of the map.
Workaround: Handle the LayerLoaded event for the Scene control and set the initial view to focus on the layer.
private void MySceneView_LayerLoaded(object sender, Esri.ArcGISRuntime.Controls.LayerLoadedEventArgs e)
{
if (e.LoadError == null && e.Layer.ID == "MyLayer")
{
var initialViewpoint = new ViewpointExtent(e.Layer.FullExtent);
var animationDuration = TimeSpan.FromSeconds(2);
MySceneView.SetViewAsync(initialViewpoint, animationDuration);
}
}

[3D] Graphics near the horizon may exhibit display issues.


ArcGIS Runtime SDK for .NET is targeting support for KML version 2.2 and some extensions. The following lists some of the
functionality, either from the KML 2.2 specification or Google extensions, that is not available in the ArcGIS Runtime KML
implementation as of the 10.2.7 release.
Tour
Time-aware layers
Authoring and editing of KML files
[3D] Line styles for SimpleLineSymbol other than SimpleLineStyle.Solid are not displayed correctly on graphics in a
Scene when rendered in dynamic mode.
Features with Z or M values in a ServiceFeatureTable cannot be edited via the ArcGIS Runtime API.
Workaround: create a new class that wraps REST calls to the underlying feature service to add, update, or delete
features using System.Net.WebClient. More details are available on GeoNet.
[Desktop only]MapView or SceneView are not rendered correctly if added to a ContentPresenter.ContentTemplate.
Workaround: wrap the view control in a UserControl, then reference the user control in the ContentTemplate.
[3D] A change to the selection color (for a GraphicsLayer, FeatureLayer, or SceneLayer, for example) is only applied when
the scene is drawing. If a selection color is changed after the scene has completely rendered, the new color is not effective
immediately. It will be applied after the next navigation of the scene (pan or zoom).
Changes to an existing CompositeSymbol (adding, removing, or updating the symbols it contains) are not reflected in the
display.
Workaround: Recreate, modify, and re-apply the composite symbol as illustrated in the following example.

Copyright 1995-2015 Esri. All rights reserved. 300


ArcGIS Runtime SDK for .NET

// create a new composite symbol


var newCompoiteSymbol = new CompositeSymbol();
// loop through all symbols in the existing composite symbol
foreach (Symbol s in oldCompositeSymbol.Symbols) {
// copy symbols from the existing composite symbol to the new one
newCompoiteSymbol.Symbols.Add(s);
}
// make desired changes for newCompoiteSymbol here ...

// apply the new composite symbol


foreach (Graphic g in gOverlay.Graphics)
g.Symbol = newCompoiteSymbol;

PictureFillSymbol.Angle and PictureFillSymbol.Opacity properties are not honored for graphics displayed in a
MapView when the GraphicsLayer RenderingMode is Static.
[3D] PictureFillSymbol.Width and PictureFillSymbol.Height properties are not honored in a SceneView when the
image source is based on an absolute URL.
HydrographicS57Layer is not available in the Windows Phone API. This layer type is available for Windows Store and
Windows Desktop apps only at this release. We hope to make this available for Windows Phone in a future release.
[3D] Z values of Features from a feature service are not honored in a FeatureLayer displayed in a SceneView.
Workaround: Query the feature service with ReturnZ = true and display the results in a GraphicsLayer with the
desired elevation mode, as shown in the following example.
var queryTask = new QueryTask(new Uri("http://myserver/arcgis/rest/services/FlightPaths3D/FeatureServer/0"));
var query = new Query("1=1");
query.ReturnZ = true;

var result = await queryTask.ExecuteAsync(query);


var graphicsLayer = MySceneView.Scene.Layers["MyGraphicsLayer"] as GraphicsLayer;
graphicsLayer.GraphicsSource = from g in result.FeatureSet.Features select new Graphic(g.Geometry);

TemporalRenderer.TrackIdField only supports fields containing string values.


[3D] New features cannot be added to a feature layer when editing in a scene. Geometry returned by SceneView events
(SceneView.SceneViewTapped, for example) contains Z-coordinate values. These coordinates cannot be saved in a standard
feature service.
Workaround: the geometry returned can be modified to remove z-coordinate values, which allow it to be stored
successfully in a two-dimensional feature layer. The following example removes the z-coordinate value from a MapPoint
before using the geometry to store a new feature.
// get the 3D point passed to the SceneViewTapped event (with Z coordinate, in other words)
var dddPoint = e.Location;

// create a MapPointBuilder to edit the point


var pointBuilder = new Esri.ArcGISRuntime.Geometry.MapPointBuilder(dddPoint);
// clear the Z coordinate value (set to NaN)
pointBuilder.Z = double.NaN;
// return the 2D point from the builder
var pointWithoutZ = pointBuilder.ToGeometry();
// get the feature table from the feature layer
var featureLayer = MySceneView.Scene.Layers["MyFeatureLayer"] as FeatureLayer;
var featureTable = featureLayer.FeatureTable as ServiceFeatureTable;
var newFeature = new GeodatabaseFeature(featureTable.Schema);
// create a new feature and set its geometry with the Z-less map point
newFeature.Geometry = pointWithoutZ;

// add the new feature and apply edits


await featureTable.AddAsync(newFeature);
await featureTable.ApplyEditsAsync();

[3D] FeatureLayer layers displayed in a SceneView do not request additional features after exceeding the feature transfer limit
determined by the service, the equivalent of QueryMode.Snapshot. This contrasts with the MapView, where the layer may
request additional features as new extents are displayed (QueryMode.OnDemand).
Labels are not displayed for lines that share a vertex and have the same label value. While this is often the desired behavior (a
single label for a street rather than one for each segment that composes it, for example), there is no option to enable distinct labels
under those conditions.
[3D] Polyline graphics in a SceneView may suffer some display degradation during a SetViewAsync animation when the
RenderingMode is Static.
Sharing the same map instance simultaneously among two or more map views, or scene instance among multiple scene views, is
not supported and is likely to cause stability or performance issues. Similar issues are likely to be encountered when attempting to
share graphics overlays, layers, or distinct feature layer instances that share the same feature service (ServiceFeatureTable)
between multiple maps or scenes at the same time.

Copyright 1995-2015 Esri. All rights reserved. 301


ArcGIS Runtime SDK for .NET

Workaround: if you need to reuse a Map or Scene in another view control, you should ensure that it is then removed from
the previous control. The same technique can be used for reusing a layer instance between maps and/or scenes, as
illustrated in the following example.
var layer = MyMapView1.Map.Layers["MyFeatureLayer"] as FeatureLayer;

MyMapView2.Map.Layers.Add(layer); // add the layer to a new map


MyMapView1.Map.Layers.Remove(layer); // remove the layer from its original map

TemporalRenderer.LatestObservationRenderer may not display when zooming in and out.


[Windows Phone] Loading large datasets can be memory intensive and may cause crashes on low memory devices. If your app
requires scenes, working with KML datasets that contain large amounts of data, and so on, you might consider disabling support
for low-memory phones.
[3D] FeatureLayer labels do not display in a SceneView.
Workaround: Query the layer's FeatureTable, then create a GraphicsLayer to display the results with label classes.
[3D] Graphics with MultiPoint geometry do not display when the GraphicsOverlay.RenderingMode is Dynamic.
[3D] PictureFillSymbol properties: Angle, Opacity, Width, and Height are not honored for graphics displayed in a
SceneView (whether in Static or Dynamic RenderingMode).
[3D] GPResultImageLayer does not render at all scales in a SceneView.
Workaround: Use GetResultMapServiceLayer instead of GetResultImageLayer to show the results of a
geoprocessing task (for geoprocessing services running on ArcGIS for Server 10.1 or later).
[3D] A GraphicsOverlay or GraphicsLayer in Static RenderingMode does not render PictureMakerSymbol or
PictureFillSymbol symbols when the image source uses a relative or absolute URI.
[3D] GraphicsOverlay or GraphicsLayer opacity is not applied when RenderingMode is Dynamic.
[3D] Graphics displayed in a SceneView using SurfacePlacement.Absolute mode may not update their Z value when
elevation exaggeration is applied to the scene.
Workaround: After an elevation exaggeration is applied to the scene, clear and recreate the graphics displayed in the
layer.
BUG-000089518: Geodatabase feature tables that contain features with arc segments or curves are not currently supported within
ArcGIS Runtime. The Create Runtime Content ArcMap wizard and geoprocessing tool will persist these geometries within the
output runtime geodatabase feature tables but they are not supported for use by the API.
Workaround: Use the Densify geoprocessing tool to remove arc segments and curves from the data you wish to use in
ArcGIS Runtime.
BUG-000082987 / ENH-000086717: TextSymbol.AngleAlignment value of Screen is not honored when RenderingMode is
static
BUG-000083692: AttributeLabelClass ignores the positioning values for the TextSymbol.
BUG-000090089 Geoprocessing packages created in ArcMap 10.3 and 10.3.1, that include the MakeFeatureLayer or
MakeTableView tools are invalid.
BUG-000085985 Call ApplyAttachmentEditsAsync will fail when the ServiceFeatureTable references a LocalFeatureService.

Breaking changes
No breaking changes have been introduced with this release. For a detailed description of the changes between the previous (10.2.6) and
current (10.2.7) releases, see the Esri.ArcGISRuntime assembly comparison.

Copyright 1995-2015 Esri. All rights reserved. 302


ArcGIS Runtime SDK for .NET

Release notes for 10.2.6


These release notes describe details of the ArcGIS Runtime for .NET 10.2.6 release. This release adds support for 3D mapping and
Keyhole Markup Language (KML) data sources. The release also improves the quality of the APIs by addressing critical issues affecting
editing, labeling, and the use of local data sources.

New functionality
The 10.2.6 release includes new classes to support 3D mapping, such as the SceneView and Scene controls. An online or local data
source can be used to define an elevation surface for your scene, and there are several options for displaying graphics relative to the
surface using a variety of 3D symbols and renderers. A new SceneLayer class enables you to consume a new 3D service type available
in ArcGIS for Server 10.3, called scene services. KML data can now also be consumed in your ArcGIS Runtime app (in a map or scene)
using the KmlLayer class.

Note: Several new topics have been added to the Developers Guide that describe 3D mapping in ArcGIS Runtime
SDK for .NET, including how to create a scene, navigate, add layers, and display 3D graphics.
The following enhancements have also been made.
ENH-000082926: Localize labels of MapGrid.
ENH-000086053: Expose a property to allow users to explore the map with a stylus.
AddAsync, UpdateAsync, and DeleteAsync methods on FeatureTable now accept IEnumerable<Feature>.

Bug fixes
In addition to addressing overall quality and the new functionality added to the APIs, the following bugs have been fixed with the 10.2.6
release.
BUG-000082908: Shifted position when changing the geometry of TextSymbol graphic with rending mode Static.
BUG-000083073: ArcGIS Runtime apps fail to execute when run within a directory that contains a multi-byte character.
BUG-000083158: Shapefile feature attributes look garbled when using a Shift-JIS encoding instead of UTF-8.
BUG-000083933: A LabelPosition setting of FixedPositionWithOverlaps is ignored after first draw.
BUG-000084223: Changing the MapView control position does not rerender the map and ignores any map changes.
BUG-000084521 / BUG-000084625: Editing a feature layer attribute which participates in a label definition on a feature service
causes a crash.
BUG-000084603: The ShapefileTable class is unable to read a shapefile in a Japanese name path.
BUG-000084624: A AttributeLabelClass with a TextExpression ignores the LabelPlacement value after updating
graphic attributes.
BUG-000084781: The ShapefileFeatureTable class reads date values incorrectly.
BUG-000084845: Unwanted white line when calling HitTest on a line symbol defined by CIM json.
BUG-000085172: Intermittent exceptions occur when updating graphic geometries on a very frequent basis.
BUG-000086359: An InvalidOperationException error occurs when syncing with a feature service which has versioned
data that supports per replica synchronization.
BUG-000086664 / BUG-000086665: Calling ServiceFeatureTable.ApplyEditsAsync with a large number of features
returns a task canceled exception.
Opening Geodatabase throws exception: "non-convertible value type in convert".
Reusing the MapView or Map control causes the map to freeze (Store/Phone only).
Setting MapView.MinScale in XAML has no effect.
Polylines from a runtime geodatabase do not renderer as expected.
Exception when removing layers and panning (Store/Phone only).

Known issues
The following list describes known issues or limitations with the 10.2.6 release. Where one is available, a workaround is described.

Copyright 1995-2015 Esri. All rights reserved. 303


ArcGIS Runtime SDK for .NET

Note: Several graphic issues are specific to the graphic layer rendering mode. The implied workaround for these
issues is to change the rendering mode (if practical for your use case). See the Rendering modes topic for
more information about choosing the rendering mode for a GraphicsLayer or GraphicsOverlay.
HydrographicS57Layer is not available in the Windows Phone API. This layer type is available for Windows Store and
Windows Desktop apps only at this release. We hope to make this available for Windows Phone in a future release.
[3D] Graphics may not display correctly (may become distorted, in other words) when near the horizon.
Changes to an existing CompositeSymbol (adding, removing, or updating the symbols it contains) are not reflected in the
display.
Workaround: Recreate, modify, and re-apply the composite symbol as illustrated in the following example.
// create a new composite symbol
var newCompoiteSymbol = new CompositeSymbol();
// loop through all symbols in the existing composite symbol
foreach (Symbol s in oldCompositeSymbol.Symbols) {
// copy symbols from the existing composite symbol to the new one
newCompoiteSymbol.Symbols.Add(s);
}

// make desired changes for newCompoiteSymbol here ...

// apply the new composite symbol


foreach (Graphic g in gOverlay.Graphics)
g.Symbol = newCompoiteSymbol;

[3D] Labels for a FeatureLayer do not display in a scene.


Workaround: Query the layer's FeatureTable, then create a GraphicsLayer to display the results with label classes.
[3D] A change to the selection color (for a GraphicsLayer, FeatureLayer, or SceneLayer, for example) is only applied when
the scene is drawing. If a selection color is changed after the scene has completely rendered, the new color is not effective
immediately. It will be applied after the next navigation of the scene (pan or zoom).
[3D] Graphics displayed using absolute surface placement mode may not update their z position (elevation, for example) when
elevation exaggeration is applied to the scene.
Workaround: After an elevation exaggeration is applied to the scene, clear and recreate the graphics displayed in the
layer.
[3D] Z values (elevation, for example) from a feature service are not honored in a FeatureLayer displayed in a scene.
Workaround: Query the feature service with ReturnZ = true and display the results in a GraphicsLayer with the
desired elevation mode, as shown in the following example.
var queryTask = new QueryTask(new Uri("http://myserver/arcgis/rest/services/FlightPaths3D/FeatureServer/0"));
var query = new Query("1=1");
query.ReturnZ = true;

var result = await queryTask.ExecuteAsync(query);


var graphicsLayer = MySceneView.Scene.Layers["MyGraphicsLayer"] as GraphicsLayer;
graphicsLayer.GraphicsSource = from g in result.FeatureSet.Features select new Graphic(g.Geometry);

Only fields containing string values are supported for use as the TemporalRenderer.TrackIdField.
[3D] Layers in a Scene do not display correctly around the poles.
[3D] GraphicsLayer in static rendering mode does not render picture symbols using a relative or absolute URI.
[Windows Phone] Loading large datasets can be memory intensive and may cause crashes on low memory devices. If your app
requires scenes, working with KML datasets that contain large amounts of data, and so on, you might consider disabling support
for low-memory phones.
[3D] Line styles for SimpleLineSymbol other than SimpleLineStyle.Solid are not honored on graphics in a Scene when
rendered in dynamic mode using absolute or relative placement.
Sharing the same map instance simultaneously among two or more map views, or scene instance among multiple scene views, is
not supported and is likely to cause stability or performance issues. Similar issues are likely to be encountered when attempting to
share graphics overlays, layers, or distinct feature layer instances that share the same feature service (ServiceFeatureTable)
between multiple maps or scenes at the same time.
Workaround: if you need to reuse a Map or Scene in another view control, you should ensure that it is then removed from
the previous control. The same technique can be used for reusing a layer instance between maps and/or scenes, as
illustrated in the following example.
var layer = MyMapView1.Map.Layers["MyFeatureLayer"] as FeatureLayer;
MyMapView2.Map.Layers.Add(layer); // add the layer to a new map
MyMapView1.Map.Layers.Remove(layer); // remove the layer from its original map

Copyright 1995-2015 Esri. All rights reserved. 304


ArcGIS Runtime SDK for .NET

[3D] A scene does not use the extent of the base layer to define an initial view. This contrasts with the behavior of the map.
Workaround: Handle the LayerLoaded event for the Scene control and set the initial view to focus on the layer.
private void MySceneView_LayerLoaded(object sender, Esri.ArcGISRuntime.Controls.LayerLoadedEventArgs e)
{
if (e.LoadError == null && e.Layer.ID == "MyLayer")
{
var initialViewpoint = new ViewpointExtent(e.Layer.FullExtent);
var animationDuration = TimeSpan.FromSeconds(2);
MySceneView.SetViewAsync(initialViewpoint, animationDuration);
}
}

[3D] Graphics with MultiPoint geometry do not render in dynamic mode.


[3D] GPResultImageLayer does not render at all scales in a SceneView.
Workaround: Use GetResultMapServiceLayer instead of GetResultImageLayer to show the results of a
geoprocessing task (for geoprocessing services running on ArcGIS for Server 10.1 or later).
A TemporalRenderer applied to a GraphicsLayer or GraphicsOverlay may not work as expected when the
RenderingMode is static.
[3D] The display of polyline graphics in a Scene may be degraded during a SetViewAsync animation when the RenderingMode
is static.
[3D] The following properties of PictureFillSymbol are not honored for graphics displayed in a Scene (whether in static or
dynamic rendering mode): Angle, Opacity, Width, Height.
The following properties of PictureFillSymbol are not honored for graphics displayed in a Map while in static rendering mode:
Angle, Opacity.
A search for features from an ArcGIS for Server 10.3 service using FindTask.ExecuteAsync does not honor a value of true
for FindParameters.Contains. This prevents searching for anything but exact matches of the find string from those services.
Workaround: manually build and send the REST request and include a false value for the contains parameter. An
example of a class to send such a request and process the results is available on the GeoNet forum.
[3D] Opacity set on a GraphicsLayer or GraphicsOverlay is not applied when rendered in dynamic mode.
[3D] Polylines that cross the antimeridian (180 degrees longitude) may not be constructed as expected (the line may circle the
globe in the other direction).
MapView or SceneView are not rendered correctly if added to a ContentPresenter.ContentTemplate.
Workaround: wrap the view control in a UserControl, then reference the user control in the ContentTemplate.
Labels are not displayed for lines that share a vertex and have the same label value. While this is often the desired behavior (a
single label for a street rather than one for each segment that composes it, for example), there is no option to enable distinct labels
under those conditions.
TemporalRenderer.LatestObservationRenderer may not display when zooming in and out.
[3D] When displayed in a Scene, a FeatureLayer does not request additional features after exceeding the feature transfer limit
(set for the service). Unlike in a Map, where the layer may request additional features as new extents are displayed (dynamic
display mode), when in a Scene, the layer will work only with the originally retrieved set of features for the entire session
(snapshot display mode).
ArcGIS Runtime SDK for .NET is targeting support for KML version 2.2 and some extensions. The following lists some of the
functionality, either from the KML 2.2 specification or Google extensions, that is not available in the ArcGIS Runtime KML
implementation as of the 10.2.6 release.
Tour
NetworkLinkControl message
Time-aware layers
Authoring and editing of KML files
[3D] New features cannot be added to a feature layer when editing in a scene. Geometry returned by SceneView events
(SceneView.SceneViewTapped, for example) contains Z-coordinate values. These coordinates cannot be saved in a standard
feature service.
Workaround: the geometry returned can be modified to remove z-coordinate values, which allow it to be stored
successfully in a two-dimensional feature layer. The following example removes the z-coordinate value from a MapPoint
before using the geometry to store a new feature.

Copyright 1995-2015 Esri. All rights reserved. 305


ArcGIS Runtime SDK for .NET

// get the 3D point passed to the SceneViewTapped event (with Z coordinate, in other words)
var dddPoint = e.Location;
// create a MapPointBuilder to edit the point
var pointBuilder = new Esri.ArcGISRuntime.Geometry.MapPointBuilder(dddPoint);

// clear the Z coordinate value (set to NaN)


pointBuilder.Z = double.NaN;
// return the 2D point from the builder
var pointWithoutZ = pointBuilder.ToGeometry();

// get the feature table from the feature layer


var featureLayer = MySceneView.Scene.Layers["MyFeatureLayer"] as FeatureLayer;
var featureTable = featureLayer.FeatureTable as ServiceFeatureTable;
var newFeature = new GeodatabaseFeature(featureTable.Schema);

// create a new feature and set its geometry with the Z-less map point
newFeature.Geometry = pointWithoutZ;

// add the new feature and apply edits


await featureTable.AddAsync(newFeature);
await featureTable.ApplyEditsAsync();

BUG-000082987 / ENH-000086717: TextSymbol.AngleAlignment value of Screen is not honored when RenderingMode is


static
BUG-000083692: AttributeLabelClass ignores the positioning values for the TextSymbol.
SymbolDictionary returns a symbol when using GetSymbolImage with name value that isn't in the dictionary.
[3D] Symbol width and height are not honored for a PictureFillSymbol based on an absolute URL in a scene.

Breaking changes
For a detailed description of the changes between the previous (10.2.5) and current (10.2.6) releases, see the Esri.ArcGISRuntime
assembly comparison.
The following properties have been removed.
Esri.ArcGISRuntime.ArcGISRuntimeEnvironment.UseTextureFonts
Esri.ArcGISRuntime.Controls.ViewBase.Editor
Note: This property is still available on the MapView control. It is no longer defined on the abstract
ViewBase base class.

Esri.ArcGISRuntime.Controls.ViewBase.InteractionOptions
Note: This property is still available on the MapView control. It is no longer defined on the abstract
ViewBase base class.

The following methods have changed their signature.


Esri.ArcGISRuntime.Tasks.NetworkAnalyst.RouteParameters.SetPolygonBarriers now accepts an
IEnumerable<Polygon> instead of IEnumerable<MapPoint>.
Esri.ArcGISRuntime.Tasks.NetworkAnalyst.RouteParameters.SetPolylineBarriers now accepts an
IEnumerable<Polyline> instead of IEnumerable<MapPoint>.

Copyright 1995-2015 Esri. All rights reserved. 306


ArcGIS Runtime SDK for .NET

System requirements
Version 10.2.7 of ArcGIS Runtime SDK for .NET contains APIs to develop for Windows Desktop, Windows Store, and Windows Phone.
Each API has specific system requirements for your development machine as well as for the machines and devices to which you will
deploy your app.

Requirements for app development


The requirements for the machine on which you develop your Windows Store apps are listed here.

Supported platforms
Windows 10 Home, Professional, Enterprise, and Educational (32 bit and 64 bit [EM64T])
Windows 8.1 Basic, Professional, and Enterprise (32 bit and 64 bit [EM64T])
* - Deployment to Windows 8.1 only

Supported IDEs
Visual Studio 2015 (all editions)
Visual Studio Express 2015 for Windows
Visual Studio 2013 (all editions)
Visual Studio Express 2013 for Windows

DirectX
ArcGIS Runtime SDK for .NET uses DirectX to provide high-performance map rendering. DirectX provides support for hardware and
software rendering of graphics, and is provided by the supported Windows platforms.
Direct3D feature level 9_3
Default: DirectX 11 hardware support
Falls back to DirectX 11 software rendering if hardware support is not available

Requirements for deployment targets


The requirements for the target machine or device to which you deploy your Windows Store apps are listed here.

Supported platforms
Windows 8.1

ArcGIS for Server and ArcGIS for Portal


To connect your app to ArcGIS for Server data or services, use ArcGIS for Server version 10.0 or later. To use ArcGIS for Server data
when your app is offline, use ArcGIS for Server 10.2.2 or later.
You can use ArcGIS for Portal version 10.2 or later with your Runtime apps.

Copyright 1995-2015 Esri. All rights reserved. 307


ArcGIS Runtime SDK for .NET

System requirements for 10.2.6


Version 10.2.6 of ArcGIS Runtime SDK for .NET contains APIs to develop for Windows Desktop, Windows Store, and Windows Phone.
Each API has specific system requirements for your development machine as well as for the machines and devices to which you will
deploy your app.

Requirements for app development


The requirements for the machine on which you develop your Windows Store apps are listed here.

Supported platforms
Windows 8.1 Basic, Professional, and Enterprise (32 bit and 64 bit [EM64T])

Supported IDEs
Visual Studio 2013 (all editions)
Visual Studio Express 2013 for Windows

DirectX
ArcGIS Runtime SDK for .NET uses DirectX to provide high-performance map rendering. DirectX provides support for hardware and
software rendering of graphics, and is provided by the supported Windows platforms.
Direct3D feature level 9_3
Default: DirectX 11 hardware support
Falls back to DirectX 11 software rendering if hardware support is not available

Requirements for deployment targets


The requirements for the target machine or device to which you deploy your Windows Store apps are listed here.

Supported platforms
Windows 8.1

ArcGIS for Server and ArcGIS for Portal


To connect your app to ArcGIS for Server data or services, use ArcGIS for Server version 10.0 or later. To use ArcGIS for Server data
when your app is offline, use ArcGIS for Server 10.2.2 or later.
You can use ArcGIS for Portal version 10.2 or later with your Runtime apps.

Copyright 1995-2015 Esri. All rights reserved. 308


ArcGIS Runtime SDK for .NET

Essential vocabulary
analysis
A systematic examination of a problem that provides new information. ArcGIS Runtime SDKs support many types of analysis, from simple
geometry-based analysis to advanced spatial analysis. You can also string analysis operations together to build models for analysis. For
details on analysis and model building, see geoprocessing.

API
Application programming interface. A specification that allows developers to create applications.

basemap
A map layer that helps orient the user of the map. Typically it shows roads and buildings, is non-editable, and is a tiled layer. For a
description of basemaps and other layer types, see Layer types.

cache
For details, see tile cache.

Client ID
In ArcGIS Runtime SDKs, an identifier you associate with the app you build (one Client ID per app). You get a Client ID by signing into
developers.arcgis.com. For details, see License your app.

connected
In ArcGIS Runtime SDKs, the state of having a network connection to one or more of the following: ArcGIS for Server, Portal for ArcGIS,
or ArcGIS Online.

coordinate
A value that denotes the location of a vertex. Coordinates may represent 2D (x,y) or 3D (x,y,z) space. The meaning of the x,y,z-
coordinates is determined by a coordinate system. The vertices and coordinate system together allow your app to translate a real-world
object from its location on the Earth to its location on your map. For details, see Geometry contents in the Geometry operations topic.

coordinate system
A reference framework consisting of a set of points, lines, and/or surfaces, and a set of rules, used to define the positions of points in
space in two or three dimensions. For details, see Geometry contents in the Geometry operations topic. Also known as map projections.

deployment manifest file


A file that can be included in your Visual Studio project that allows you to choose optional capabilities that your app uses. The
corresponding files are copied to a folder to include with your app's deployment. The manifest helps you avoid including more capabilities
than your app requires, thereby helping you keep your app's footprint as small as possible. See Create an ArcGIS Runtime deployment for
information on using the deployment manifest.

deployment pack
In ArcGIS Runtime SDKs, a set of deployments for an app that contains Standard license level capabilities and does not require users to
sign in with their ArcGIS Online or Portal for ArcGIS organizational account. Each pack comes with at least one product license string.
Available licenses (license strings) are:
Standard
3D Analyst
Network Analyst
Spatial Analyst
For details, see the topics License your app and Deploy your app.

device
In ArcGIS Runtime SDKs, nearly any kind of computer, including desktops, mobile phones and devices, laptops, smartwatches, and large
mainframes.

Copyright 1995-2015 Esri. All rights reserved. 309


ArcGIS Runtime SDK for .NET

disconnected
For details, see offline.

feature
A representation of a real-world object on a map, such as a building, a river, or a county. A feature may include attributes and a geometry .
For more information, see Features and graphics.

geodatabase feature
A representation of a real-world object persisted in a geodatabase. When displayed, it is displayed in a feature layer.
GeodatabaseFeatures can have geometry and attributes. GeodatabaseFeatures are associated with a feature table, with which they
share a common schema.

geometry
The combination of location and shape for a real-world object or for a geometric construct such as an area of interest or a buffer area
around an object. Geometry is the fundamental element for performing spatial analysis. For information on analysis operations such as
clip, buffer, and intersect, see Geometry operations.

GeoPackage
A single SQLite file (.gpkg) that conforms to OGC GeoPackage specification (http://www.opengeospatial.org/standards/geopackage) that
defines GeoPackages for direct use of vector geospatial features and/or tile matrix sets.

geometry
The combination of location and shape for a real-world object or for a geometric construct such as an area of interest or a buffer area
around an object. Geometry is the fundamental element for performing spatial analysis. For information on analysis operations such as
clip, buffer, and intersect, see Geometry operations.

geoprocessing
A GIS operation used to manipulate data. A typical geoprocessing operation takes an input dataset, performs an operation on that
dataset, and returns the result of the operation as an output dataset. Common geoprocessing operations include geographic feature
overlay, feature selection and analysis, topology processing, raster processing, and data conversion. Geoprocessing allows for definition,
management, and analysis of information used to form decisions.
You can use geoprocessing tools to chain together a sequence of operations, feeding the output of one tool into another tool, to automate
your work, solve complex problems, or perform batch processing. Sequencing operations like this are referred to as model building.
Your app can consume online geoprocessing services or local (packaged) geoprocessing tools. For details on which local tools are
supported in each license level, see Supported geoprocessing tools.

graphic
A representation of a real-world object stored in memory. When displayed, it is displayed in a graphics layer. Graphics exist while the app
is running, and therefore are used often for temporary features. Graphics can have geometry and attributes. Graphics are not associated
with a feature table. For more information, see Features and graphics.

license code
A string of characters that you add to your project, as described in License your app to unlock certain capabilities on the deployment
device.

local service
Services, such as geoprocessing services you create, used by your deployed application that are running on the same machine or device
as the application. Because they can consume local services, applications you build with ArcGIS Runtime SDK do not require an ArcGIS
Server connection to run or to access geodatabase data. Local services use packages. For details, see packages.

map cache
For details, see tile cache.

Copyright 1995-2015 Esri. All rights reserved. 310


ArcGIS Runtime SDK for .NET

mobile app
In ArcGIS Runtime SDKs, a software application that operates on a mobile device. A mobile device is typically a mobile phone or tablet,
such as an iPhone, iPad, and an Android phone and tablet. Apps for custom-purpose handhelds, such as Windows Mobile devices, and
car navigation systems are not included unless otherwise specified.

mobile device
In ArcGIS Runtime SDKs, a mobile phone or tablet, such as an iPhone, iPad, and an Android phone and tablet. Custom-purpose
handheld devices, such as Windows Mobile devices, and car navigation systems are not included unless otherwise specified.

offline
In ArcGIS Runtime SDKs, the state of having no network connection to any of the following: ArcGIS for Server, ArcGIS Online, or Portal
for ArcGIS.

operational layer
A map layer that users can interact with. Typically, an operational layer is vector-based and is editable by users. However, it can also be
tiled data that can be queried against. See Maps and layers for more information.

package
A set of items, such as a map and its referenced data, that ArcGIS for Desktop bundles into a single file on your local machine so that the
items can be easily transfered from user to user or provisioned onto a device. Especially useful for disconnected apps.

renderer
A mechanism that defines how data appears when displayed. See Symbols and renderers for more information.

Runtime components
A collection of files containing various parts of ArcGIS Runtime functionality, installed and used on your development machine and
deployed with the apps that you create.
The full collection, installed to your development machine when you install ArcGIS Runtime SDK, includes the required Runtime core
components and optional components such as those for Local Server and advanced symbology. When you prepare an app for
deployment, the Deployment Builder tool helps ensure you deploy only the parts of the collection that are required by the app you build.
For descriptions of optional Runtime functionality sets, see Create an ArcGIS Runtime deployment.

Runtime core
Client files (.dll or .so) that must be deployed with all ArcGIS Runtime apps. For Java, Qt, and WPF, you can use the Deployment Builder
wizard to choose which Local Server capabilities you want to deploy so they can be bundled with the Runtime core files for you.

SDK
Software development kit. A collection of documentation, sample code, and sample apps to help a developer use an API to build apps.

shapefile
A vector data storage format for storing the location, shape, and attributes of geographic features. A shapefile is stored in a set of related
files.

side-by-side development
A capability that lets you develop with different versions of the same SDK on the same machine.

tile
An image, often a graphics file (for example, a .jpg file) and typically stored in a directory known as a cache. The image is part of a set of
tiles that, conceptually, are pieces of a bigger map. How the tiles fit into the bigger map, along with other information, is defined in a tiling
scheme. Two tile categories are:
Tiles in dynamic layers are created on-the-fly and can be stored in a cache on the client machine or on the server machine. Which
tiles are created in this scenario depends on where the user pans and zooms, so technically, the tiles may not make up a
complete bigger map when put together.

Copyright 1995-2015 Esri. All rights reserved. 311


ArcGIS Runtime SDK for .NET

Tiles in tile cache layers are created before users view the map, often by a developer or GIS data administrator. These tiles are
known as pre-processed tiles.
Also see tile cache.

tile cache
A directory that contains tiles of a map extent at specific levels. The directory can be local to a desktop app or to a client app in a client/
server configuration. Also see tile.

tiled layer
A tiled layer is a layer comprised of images that when put together make up a bigger image of a map. Tiles are generated before they're
displayed for the user. This differs from a dynamic layer, which generates the images as they are requested by the user, or on-the-fly.
Tiled layers are often used for basemaps.

tile package
Tile packages (.tpk files) make is easy to share complete map documents with others. A tile package contains a map and the tile cache of
the data contained within it, packaged into one convenient, portable file. Tile packages can be used for easy sharing of cached maps
between colleagues in a workgroup, across departments in an organization, or with any other ArcGIS user using ArcGIS Online. Tile
packages are ideal in disconnected environments where access to local data is required.

toolkit
A set of user interface components to assist rapid application development. The toolkit components are contained in the toolkit assembly
for which the source code is available in a public GitHub repository.

vertex
A point that stands alone or makes up part of a geometry. Vertices that make up a geometry may be connected, one to the next, in a
linear order. For more information on vertices and how they're stored in geometries, see Geometry contents in the Geometry operations
topic.

viewshed
The locations visible from one or more specified points or lines. Viewshed maps are useful for such applications as finding well-exposed
places for communication towers, or hidden places for parking lots. You can create viewsheds using the Standard license level of ArcGIS
Runtime SDKs.

USB flash drive


A removable thumb-sized device that provides storage space. USB stands for universal serial bus, an interface compatible with most
computers. Also known as thumb drive, flash drive, USB drive, and memory stick. Apps created with ArcGIS Runtime SDK can be
deployed to a USB flash drive.

Copyright 1995-2015 Esri. All rights reserved. 312


ArcGIS Runtime SDK for .NET

Supported geodatabase formats


A geodatabase is a container that holds four different dataset types:
1. A .geodatabase (notice the leading dot) is based on a portable SQLite format. It's used primarily for offline workflows in ArcGIS
Runtime apps. For details, see Create an offline map.
2. A file geodatabase is stored as a folder in a Windows file system and can scale up to 1 TB in size.
3. A personal geodatabase is stored as a Microsoft Access file, which is limited in size to 2 GB.
4. An enterprise geodatabase is stored on a supported third-party database, such as Oracle, SQL Server, DB2, Informix, or
PostgreSQL. The storage and number of users are unlimited.

Esri SDK .geodatabase File geodatabase Personal Enterprise


geodatabase geodatabase
ArcObjects Not Supported Supported Supported
supported
ArcGIS Runtime for Supported Not supported Not supported Supported only if using
Android services
ArcGIS Runtime for iOS Supported Not supported Not supported Supported only if using
and OS X services
ArcGIS Runtime for Java Supported Supported only if using local server Not supported Supported only if using
services
ArcGIS Runtime for Supported Supported only if using local server Not supported Supported only if using
.NET services
ArcGIS Runtime for Qt Supported Supported only if using C++ API and local server. Not Not supported Supported only if using
supported with QML API. services

Copyright 1995-2015 Esri. All rights reserved. 313


ArcGIS Runtime SDK for .NET

Geographic coordinate systems


Well- Name Well-known text
known
ID
3819 GCS_HD1909 GEOGCS["GCS_HD1909",DATUM["D_Hungarian_Datum_1909",SPHEROID["Bessel_1841",6377397.155,299.1528
3821 GCS_TWD_1967 GEOGCS["GCS_TWD_1967",DATUM["D_TWD_1967",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PR
3824 GCS_TWD_1997 GEOGCS["GCS_TWD_1997",DATUM["D_TWD_1997",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIM
3889 GCS_IGRS GEOGCS["GCS_IGRS",DATUM["D_Iraqi_Geospatial_Reference_System",SPHEROID["GRS_1980",6378137.0,298
3906 GCS_MGI_1901 GEOGCS["GCS_MGI_1901",DATUM["D_MGI_1901",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIM
4001 GCS_Airy_1830 GEOGCS["GCS_Airy_1830",DATUM["D_Airy_1830",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM
4002 GCS_Airy_Modified GEOGCS["GCS_Airy_Modified",DATUM["D_Airy_Modified",SPHEROID["Airy_Modified",6377340.189,299.3249646]
4003 GCS_Australian GEOGCS["GCS_Australian",DATUM["D_Australian",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenw
4004 GCS_Bessel_1841 GEOGCS["GCS_Bessel_1841",DATUM["D_Bessel_1841",SPHEROID["Bessel_1841",6377397.155,299.1528128]],P
4005 GCS_Bessel_Modified GEOGCS["GCS_Bessel_Modified",DATUM["D_Bessel_Modified",SPHEROID["Bessel_Modified",6377492.018,299.1
4006 GCS_Bessel_Namibia GEOGCS["GCS_Bessel_Namibia",DATUM["D_Bessel_Namibia",SPHEROID["Bessel_Namibia",6377483.86528041
4007 GCS_Clarke_1858 GEOGCS["GCS_Clarke_1858",DATUM["D_Clarke_1858",SPHEROID["Clarke_1858",6378293.645208759,294.2606
4008 GCS_Clarke_1866 GEOGCS["GCS_Clarke_1866",DATUM["D_Clarke_1866",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRI
4009 GCS_Clarke_1866_Michigan GEOGCS["GCS_Clarke_1866_Michigan",DATUM["D_Clarke_1866_Michigan",SPHEROID["Clarke_1866_Michigan"
4010 GCS_Clarke_1880_Benoit GEOGCS["GCS_Clarke_1880_Benoit",DATUM["D_Clarke_1880_Benoit",SPHEROID["Clarke_1880_Benoit",637830
4011 GCS_Clarke_1880_IGN GEOGCS["GCS_Clarke_1880_IGN",DATUM["D_Clarke_1880_IGN",SPHEROID["Clarke_1880_IGN",6378249.2,293
4012 GCS_Clarke_1880_RGS GEOGCS["GCS_Clarke_1880_RGS",DATUM["D_Clarke_1880_RGS",SPHEROID["Clarke_1880_RGS",6378249.14
4013 GCS_Clarke_1880_Arc GEOGCS["GCS_Clarke_1880_Arc",DATUM["D_Clarke_1880_Arc",SPHEROID["Clarke_1880_Arc",6378249.145,29
4014 GCS_Clarke_1880_SGA GEOGCS["GCS_Clarke_1880_SGA",DATUM["D_Clarke_1880_SGA",SPHEROID["Clarke_1880_SGA",6378249.2,2
4015 GCS_Everest_Adj_1937 GEOGCS["GCS_Everest_Adj_1937",DATUM["D_Everest_Adj_1937",SPHEROID["Everest_Adjustment_1937",6377
4016 GCS_Everest_def_1967 GEOGCS["GCS_Everest_def_1967",DATUM["D_Everest_Def_1967",SPHEROID["Everest_Definition_1967",637729
4018 GCS_Everest_Modified GEOGCS["GCS_Everest_Modified",DATUM["D_Everest_Modified",SPHEROID["Everest_1830_Modified",6377304.0
4019 GCS_GRS_1980 GEOGCS["GCS_GRS_1980",DATUM["D_GRS_1980",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIME
4020 GCS_Helmert_1906 GEOGCS["GCS_Helmert_1906",DATUM["D_Helmert_1906",SPHEROID["Helmert_1906",6378200.0,298.3]],PRIME
4021 GCS_Indonesian GEOGCS["GCS_Indonesian",DATUM["D_Indonesian",SPHEROID["Indonesian",6378160.0,298.247]],PRIMEM["Gre
4022 GCS_International_1924 GEOGCS["GCS_International_1924",DATUM["D_International_1924",SPHEROID["International_1924",6378388.0,2
4023 GCS_MOLDREF99 GEOGCS["GCS_MOLDREF99",DATUM["D_MOLDREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],P
4024 GCS_Krasovsky_1940 GEOGCS["GCS_Krasovsky_1940",DATUM["D_Krasovsky_1940",SPHEROID["Krasovsky_1940",6378245.0,298.3]],
4025 GCS_NWL_9D GEOGCS["GCS_NWL_9D",DATUM["D_NWL_9D",SPHEROID["NWL_9D",6378145.0,298.25]],PRIMEM["Greenwich
4027 GCS_Plessis_1817 GEOGCS["GCS_Plessis_1817",DATUM["D_Plessis_1817",SPHEROID["Plessis_1817",6376523.0,308.64]],PRIMEM
4028 GCS_Struve_1860 GEOGCS["GCS_Struve_1860",DATUM["D_Struve_1860",SPHEROID["Struve_1860",6378298.3,294.73]],PRIMEM["
4029 GCS_War_Office GEOGCS["GCS_War_Office",DATUM["D_War_Office",SPHEROID["War_Office",6378300.0,296.0]],PRIMEM["Green
4031 GCS_GEM_10C GEOGCS["GCS_GEM_10C",DATUM["D_GEM_10C",SPHEROID["GEM_10C",6378137.0,298.257223563]],PRIMEM
4032 GCS_OSU_86F GEOGCS["GCS_OSU_86F",DATUM["D_OSU_86F",SPHEROID["OSU_86F",6378136.2,298.257223563]],PRIMEM[
4033 GCS_OSU_91A GEOGCS["GCS_OSU_91A",DATUM["D_OSU_91A",SPHEROID["OSU_91A",6378136.3,298.257223563]],PRIMEM
4034 GCS_Clarke_1880 GEOGCS["GCS_Clarke_1880",DATUM["D_Clarke_1880",SPHEROID["Clarke_1880",6378249.144808011,293.4663
4035 GCS_Sphere GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UN
4036 GCS_GRS_1967 GEOGCS["GCS_GRS_1967",DATUM["D_GRS_1967",SPHEROID["GRS_1967",6378160.0,298.247167427]],PRIME
4042 GCS_Everest_1830 GEOGCS["GCS_Everest_1830",DATUM["D_Everest_1830",SPHEROID["Everest_1830",6377299.36,300.8017]],PR
4044 GCS_Everest_def_1962 GEOGCS["GCS_Everest_def_1962",DATUM["D_Everest_Def_1962",SPHEROID["Everest_Definition_1962",637730
4045 GCS_Everest_def_1975 GEOGCS["GCS_Everest_def_1975",DATUM["D_Everest_Def_1975",SPHEROID["Everest_Definition_1975",637729
4046 GCS_RGRDC_2005 GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",63
4047 GCS_Sphere_GRS_1980_Authalic GEOGCS["GCS_Sphere_GRS_1980_Authalic",DATUM["D_Sphere_GRS_1980_Authalic",SPHEROID["Sphere_GR
4052 GCS_Sphere_Clarke_1866_Authalic GEOGCS["GCS_Sphere_Clarke_1866_Authalic",DATUM["D_Sphere_Clarke_1866_Authalic",SPHEROID["Sphere_C
4053 GCS_Sphere_International_1924_Authalic GEOGCS["GCS_Sphere_International_1924_Authalic",DATUM["D_Sphere_International_1924_Authalic",SPHEROI
4054 GCS_Hughes_1980 GEOGCS["GCS_Hughes_1980",DATUM["D_Hughes_1980",SPHEROID["Hughes_1980",6378273.0,298.279411123
4075 GCS_SREF98 GEOGCS["GCS_SREF98",DATUM["D_Serbian_Reference_Network_1998",SPHEROID["GRS_1980",6378137.0,29
4081 GCS_REGCAN95 GEOGCS["GCS_REGCAN95",DATUM["D_Red_Geodesica_de_Canarias_1995",SPHEROID["GRS_1980",6378137
4120 GCS_Greek GEOGCS["GCS_Greek",DATUM["D_Greek",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Gre
4121 GCS_GGRS_1987 GEOGCS["GCS_GGRS_1987",DATUM["D_GGRS_1987",SPHEROID["GRS_1980",6378137.0,298.257222101]],PR

Copyright 1995-2015 Esri. All rights reserved. 314


ArcGIS Runtime SDK for .NET

4122 GCS_ATS_1977 GEOGCS["GCS_ATS_1977",DATUM["D_ATS_1977",SPHEROID["ATS_1977",6378135.0,298.257]],PRIMEM["Gree


4123 GCS_KKJ GEOGCS["GCS_KKJ",DATUM["D_KKJ",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",
4124 GCS_RT_1990 GEOGCS["GCS_RT_1990",DATUM["D_RT_1990",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM
4125 GCS_Samboja GEOGCS["GCS_Samboja",DATUM["D_Samboja",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM
4127 GCS_Tete GEOGCS["GCS_Tete",DATUM["D_Tete",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich
4128 GCS_Madzansua GEOGCS["GCS_Madzansua",DATUM["D_Madzansua",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIME
4129 GCS_Observatario GEOGCS["GCS_Observatario",DATUM["D_Observatario",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRI
4130 GCS_Moznet GEOGCS["GCS_Moznet",DATUM["D_Moznet",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Gre
4131 GCS_Indian_1960 GEOGCS["GCS_Indian_1960",DATUM["D_Indian_1960",SPHEROID["Everest_Adjustment_1937",6377276.345,300
4132 GCS_FD_1958 GEOGCS["GCS_FD_1958",DATUM["D_FD_1958",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIME
4133 GCS_Estonia_1992 GEOGCS["GCS_Estonia_1992",DATUM["D_Estonia_1992",SPHEROID["GRS_1980",6378137.0,298.257222101]],P
4134 GCS_PDO_1993 GEOGCS["GCS_PDO_1993",DATUM["D_PDO_1993",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRI
4135 GCS_Old_Hawaiian GEOGCS["GCS_Old_Hawaiian",DATUM["D_Old_Hawaiian",SPHEROID["Clarke_1866",6378206.4,294.9786982]],P
4136 GCS_St_Lawrence_Island GEOGCS["GCS_St_Lawrence_Island",DATUM["D_St_Lawrence_Island",SPHEROID["Clarke_1866",6378206.4,294
4137 GCS_St_Paul_Island GEOGCS["GCS_St_Paul_Island",DATUM["D_St_Paul_Island",SPHEROID["Clarke_1866",6378206.4,294.9786982]]
4138 GCS_St_George_Island GEOGCS["GCS_St_George_Island",DATUM["D_St_George_Island",SPHEROID["Clarke_1866",6378206.4,294.978
4139 GCS_Puerto_Rico GEOGCS["GCS_Puerto_Rico",DATUM["D_Puerto_Rico",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIM
4141 GCS_Israel GEOGCS["GCS_Israel",DATUM["D_Israel",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenw
4142 GCS_Locodjo_1965 GEOGCS["GCS_Locodjo_1965",DATUM["D_Locodjo_1965",SPHEROID["Clarke_1880_RGS",6378249.145,293.465
4143 GCS_Abidjan_1987 GEOGCS["GCS_Abidjan_1987",DATUM["D_Abidjan_1987",SPHEROID["Clarke_1880_RGS",6378249.145,293.465
4144 GCS_Kalianpur_1937 GEOGCS["GCS_Kalianpur_1937",DATUM["D_Kalianpur_1937",SPHEROID["Everest_Adjustment_1937",6377276.3
4145 GCS_Kalianpur_1962 GEOGCS["GCS_Kalianpur_1962",DATUM["D_Kalianpur_1962",SPHEROID["Everest_Definition_1962",6377301.243
4146 GCS_Kalianpur_1975 GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianpur_1975",SPHEROID["Everest_Definition_1975",6377299.151
4147 GCS_Hanoi_1972 GEOGCS["GCS_Hanoi_1972",DATUM["D_Hanoi_1972",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM
4148 GCS_Hartebeesthoek_1994 GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebeesthoek_1994",SPHEROID["WGS_1984",6378137.0,2
4149 GCS_CH1903 GEOGCS["GCS_CH1903",DATUM["D_CH1903",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["
4150 GCS_CH1903+ GEOGCS["GCS_CH1903+",DATUM["D_CH1903+",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM
4151 GCS_Swiss_TRF_1995 GEOGCS["GCS_Swiss_TRF_1995",DATUM["D_Swiss_TRF_1995",SPHEROID["GRS_1980",6378137.0,298.25722
4152 GCS_North_American_1983_HARN GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_198
4153 GCS_Rassadiran GEOGCS["GCS_Rassadiran",DATUM["D_Rassadiran",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM
4154 GCS_European_1950_ED77 GEOGCS["GCS_European_1950_ED77",DATUM["D_European_1950_ED77",SPHEROID["International_1924",637
4155 GCS_Dabola_1981 GEOGCS["GCS_Dabola_1981",DATUM["D_Dabola_1981",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212
4156 GCS_S_JTSK GEOGCS["GCS_S_JTSK",DATUM["D_S_JTSK",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["
4157 GCS_Mount_Dillon GEOGCS["GCS_Mount_Dillon",DATUM["D_Mount_Dillon",SPHEROID["Clarke_1858",6378293.645208759,294.260
4158 GCS_Naparima_1955 GEOGCS["GCS_Naparima_1955",DATUM["D_Naparima_1955",SPHEROID["International_1924",6378388.0,297.0]
4159 GCS_European_Libyan_Datum_1979 GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_European_Libyan_1979",SPHEROID["International_1
4160 GCS_Chos_Malal_1914 GEOGCS["GCS_Chos_Malal_1914",DATUM["D_Chos_Malal_1914",SPHEROID["International_1924",6378388.0,29
4161 GCS_Pampa_del_Castillo GEOGCS["GCS_Pampa_del_Castillo",DATUM["D_Pampa_del_Castillo",SPHEROID["International_1924",6378388.0
4162 GCS_Korean_Datum_1985 GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Korean_Datum_1985",SPHEROID["Bessel_1841",6377397.155
4163 GCS_Yemen_NGN_1996 GEOGCS["GCS_Yemen_NGN_1996",DATUM["D_Yemen_NGN_1996",SPHEROID["WGS_1984",6378137.0,298.25
4164 GCS_South_Yemen GEOGCS["GCS_South_Yemen",DATUM["D_South_Yemen",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIM
4165 GCS_Bissau GEOGCS["GCS_Bissau",DATUM["D_Bissau",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenw
4166 GCS_Korean_Datum_1995 GEOGCS["GCS_Korean_Datum_1995",DATUM["D_Korean_Datum_1995",SPHEROID["WGS_1984",6378137.0,29
4167 GCS_NZGD_2000 GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PR
4168 GCS_Accra GEOGCS["GCS_Accra",DATUM["D_Accra",SPHEROID["War_Office",6378300.0,296.0]],PRIMEM["Greenwich",0.0],
4169 GCS_American_Samoa_1962 GEOGCS["GCS_American_Samoa_1962",DATUM["D_American_Samoa_1962",SPHEROID["Clarke_1866",637820
4170 GCS_SIRGAS GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["G
4171 GCS_RGF_1993 GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIME
4172 GCS_POSGAR GEOGCS["GCS_POSGAR",DATUM["D_POSGAR",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM
4173 GCS_IRENET95 GEOGCS["GCS_IRENET95",DATUM["D_IRENET95",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIME
4174 GCS_Sierra_Leone_1924 GEOGCS["GCS_Sierra_Leone_1924",DATUM["D_Sierra_Leone_1924",SPHEROID["War_Office",6378300.0,296.0]
4175 GCS_Sierra_Leone_1968 GEOGCS["GCS_Sierra_Leone_1968",DATUM["D_Sierra_Leone_1968",SPHEROID["Clarke_1880_RGS",6378249.1
4176 GCS_Australian_Antarctic_1998 GEOGCS["GCS_Australian_Antarctic_1998",DATUM["D_Australian_Antarctic_1998",SPHEROID["GRS_1980",6378
4178 GCS_Pulkovo_1942_Adj_1983 GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",63

Copyright 1995-2015 Esri. All rights reserved. 315


ArcGIS Runtime SDK for .NET

4179 GCS_Pulkovo_1942_Adj_1958 GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",63


4180 GCS_Estonia_1997 GEOGCS["GCS_Estonia_1997",DATUM["D_Estonia_1997",SPHEROID["GRS_1980",6378137.0,298.257222101]],P
4181 GCS_Luxembourg_1930 GEOGCS["GCS_Luxembourg_1930",DATUM["D_Luxembourg_1930",SPHEROID["International_1924",6378388.0,2
4182 GCS_Azores_Occidental_1939 GEOGCS["GCS_Azores_Occidental_1939",DATUM["D_Azores_Occidental_Islands_1939",SPHEROID["Internationa
4183 GCS_Azores_Central_1948 GEOGCS["GCS_Azores_Central_1948",DATUM["D_Azores_Central_Islands_1948",SPHEROID["International_1924
4184 GCS_Azores_Oriental_1940 GEOGCS["GCS_Azores_Oriental_1940",DATUM["D_Azores_Oriental_Islands_1940",SPHEROID["International_192
4185 GCS_Madeira_1936 GEOGCS["GCS_Madeira_1936",DATUM["D_Madeira_1936",SPHEROID["International_1924",6378388.0,297.0]],PR
4188 GCS_OSNI_1952 GEOGCS["GCS_OSNI_1952",DATUM["D_OSNI_1952",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIME
4189 GCS_REGVEN GEOGCS["GCS_REGVEN",DATUM["D_REGVEN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM[
4190 GCS_POSGAR_1998 GEOGCS["GCS_POSGAR_1998",DATUM["D_POSGAR_1998",SPHEROID["GRS_1980",6378137.0,298.25722210
4191 GCS_Albanian_1987 GEOGCS["GCS_Albanian_1987",DATUM["D_Albanian_1987",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PR
4192 GCS_Douala_1948 GEOGCS["GCS_Douala_1948",DATUM["D_Douala_1948",SPHEROID["International_1924",6378388.0,297.0]],PRIM
4193 GCS_Manoca_1962 GEOGCS["GCS_Manoca_1962",DATUM["D_Manoca_1962",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602
4194 GCS_Qornoq_1927 GEOGCS["GCS_Qornoq_1927",DATUM["D_Qornoq_1927",SPHEROID["International_1924",6378388.0,297.0]],PRI
4195 GCS_Scoresbysund_1952 GEOGCS["GCS_Scoresbysund_1952",DATUM["D_Scoresbysund_1952",SPHEROID["International_1924",6378388
4196 GCS_Ammassalik_1958 GEOGCS["GCS_Ammassalik_1958",DATUM["D_Ammassalik_1958",SPHEROID["International_1924",6378388.0,29
4197 GCS_Garoua GEOGCS["GCS_Garoua",DATUM["D_Garoua",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["G
4198 GCS_Kousseri GEOGCS["GCS_Kousseri",DATUM["D_Kousseri",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM
4199 GCS_Egypt_1930 GEOGCS["GCS_Egypt_1930",DATUM["D_Egypt_1930",SPHEROID["International_1924",6378388.0,297.0]],PRIME
4200 GCS_Pulkovo_1995 GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIM
4201 GCS_Adindan GEOGCS["GCS_Adindan",DATUM["D_Adindan",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM
4202 GCS_Australian_1966 GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIM
4203 GCS_Australian_1984 GEOGCS["GCS_Australian_1984",DATUM["D_Australian_1984",SPHEROID["Australian",6378160.0,298.25]],PRIM
4204 GCS_Ain_el_Abd_1970 GEOGCS["GCS_Ain_el_Abd_1970",DATUM["D_Ain_el_Abd_1970",SPHEROID["International_1924",6378388.0,297
4205 GCS_Afgooye GEOGCS["GCS_Afgooye",DATUM["D_Afgooye",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Green
4206 GCS_Agadez GEOGCS["GCS_Agadez",DATUM["D_Agadez",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],P
4207 GCS_Lisbon GEOGCS["GCS_Lisbon",DATUM["D_Lisbon",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenw
4208 GCS_Aratu GEOGCS["GCS_Aratu",DATUM["D_Aratu",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich
4209 GCS_Arc_1950 GEOGCS["GCS_Arc_1950",DATUM["D_Arc_1950",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],P
4210 GCS_Arc_1960 GEOGCS["GCS_Arc_1960",DATUM["D_Arc_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIME
4211 GCS_Batavia GEOGCS["GCS_Batavia",DATUM["D_Batavia",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["G
4212 GCS_Barbados_1938 GEOGCS["GCS_Barbados_1938",DATUM["D_Barbados_1938",SPHEROID["Clarke_1880_RGS",6378249.145,293
4213 GCS_Beduaram GEOGCS["GCS_Beduaram",DATUM["D_Beduaram",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602129362
4214 GCS_Beijing_1954 GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIME
4215 GCS_Belge_1950 GEOGCS["GCS_Belge_1950",DATUM["D_Belge_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIME
4216 GCS_Bermuda_1957 GEOGCS["GCS_Bermuda_1957",DATUM["D_Bermuda_1957",SPHEROID["Clarke_1866",6378206.4,294.9786982]
4218 GCS_Bogota GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Green
4219 GCS_Bukit_Rimpah GEOGCS["GCS_Bukit_Rimpah",DATUM["D_Bukit_Rimpah",SPHEROID["Bessel_1841",6377397.155,299.1528128]
4220 GCS_Camacupa GEOGCS["GCS_Camacupa",DATUM["D_Camacupa",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRI
4221 GCS_Campo_Inchauspe GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe",SPHEROID["International_1924",6378388.0,2
4222 GCS_Cape GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],PRIMEM
4223 GCS_Carthage GEOGCS["GCS_Carthage",DATUM["D_Carthage",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265
4224 GCS_Chua GEOGCS["GCS_Chua",DATUM["D_Chua",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich
4225 GCS_Corrego_Alegre GEOGCS["GCS_Corrego_Alegre",DATUM["D_Corrego_Alegre",SPHEROID["International_1924",6378388.0,297.0]]
4226 GCS_Cote_d_Ivoire GEOGCS["GCS_Cote_d_Ivoire",DATUM["D_Cote_d_Ivoire",SPHEROID["Clarke_1880_IGN",6378249.2,293.466021
4227 GCS_Deir_ez_Zor GEOGCS["GCS_Deir_ez_Zor",DATUM["D_Deir_ez_Zor",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602129
4228 GCS_Douala GEOGCS["GCS_Douala",DATUM["D_Douala",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PR
4229 GCS_Egypt_1907 GEOGCS["GCS_Egypt_1907",DATUM["D_Egypt_1907",SPHEROID["Helmert_1906",6378200.0,298.3]],PRIMEM["G
4230 GCS_European_1950 GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]
4231 GCS_European_1987 GEOGCS["GCS_European_1987",DATUM["D_European_1987",SPHEROID["International_1924",6378388.0,297.0]
4232 GCS_Fahud GEOGCS["GCS_Fahud",DATUM["D_Fahud",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Gr
4235 GCS_Guyane_Francaise GEOGCS["GCS_Guyane_Francaise",DATUM["D_Guyane_Francaise",SPHEROID["International_1924",6378388.0,2
4236 GCS_Hu_Tzu_Shan GEOGCS["GCS_Hu_Tzu_Shan",DATUM["D_Hu_Tzu_Shan",SPHEROID["International_1924",6378388.0,297.0]],PR
4237 GCS_Hungarian_1972 GEOGCS["GCS_Hungarian_1972",DATUM["D_Hungarian_1972",SPHEROID["GRS_1967",6378160.0,298.2471674

Copyright 1995-2015 Esri. All rights reserved. 316


ArcGIS Runtime SDK for .NET

4238 GCS_Indonesian_1974 GEOGCS["GCS_Indonesian_1974",DATUM["D_Indonesian_1974",SPHEROID["Indonesian",6378160.0,298.247]],P


4239 GCS_Indian_1954 GEOGCS["GCS_Indian_1954",DATUM["D_Indian_1954",SPHEROID["Everest_Adjustment_1937",6377276.345,300
4240 GCS_Indian_1975 GEOGCS["GCS_Indian_1975",DATUM["D_Indian_1975",SPHEROID["Everest_Adjustment_1937",6377276.345,300
4241 GCS_Jamaica_1875 GEOGCS["GCS_Jamaica_1875",DATUM["D_Jamaica_1875",SPHEROID["Clarke_1880",6378249.144808011,293.4
4242 GCS_Jamaica_1969 GEOGCS["GCS_Jamaica_1969",DATUM["D_Jamaica_1969",SPHEROID["Clarke_1866",6378206.4,294.9786982]],
4243 GCS_Kalianpur_1880 GEOGCS["GCS_Kalianpur_1880",DATUM["D_Kalianpur_1880",SPHEROID["Everest_1830",6377299.36,300.8017]]
4244 GCS_Kandawala GEOGCS["GCS_Kandawala",DATUM["D_Kandawala",SPHEROID["Everest_Adjustment_1937",6377276.345,300.80
4245 GCS_Kertau GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Everest_1830_Modified",6377304.063,300.8017]],PRIME
4246 GCS_Kuwait_Oil_Company GEOGCS["GCS_Kuwait_Oil_Company",DATUM["D_Kuwait_Oil_Company",SPHEROID["Clarke_1880_RGS",63782
4247 GCS_La_Canoa GEOGCS["GCS_La_Canoa",DATUM["D_La_Canoa",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["
4248 GCS_Provisional_S_American_1956 GEOGCS["GCS_Provisional_S_American_1956",DATUM["D_Provisional_S_American_1956",SPHEROID["Internati
4249 GCS_Lake GEOGCS["GCS_Lake",DATUM["D_Lake",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich
4250 GCS_Leigon GEOGCS["GCS_Leigon",DATUM["D_Leigon",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["G
4251 GCS_Liberia_1964 GEOGCS["GCS_Liberia_1964",DATUM["D_Liberia_1964",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],
4252 GCS_Lome GEOGCS["GCS_Lome",DATUM["D_Lome",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIM
4253 GCS_Luzon_1911 GEOGCS["GCS_Luzon_1911",DATUM["D_Luzon_1911",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIM
4254 GCS_Hito_XVIII_1963 GEOGCS["GCS_Hito_XVIII_1963",DATUM["D_Hito_XVIII_1963",SPHEROID["International_1924",6378388.0,297.0
4255 GCS_Herat_North GEOGCS["GCS_Herat_North",DATUM["D_Herat_North",SPHEROID["International_1924",6378388.0,297.0]],PRIME
4256 GCS_Mahe_1971 GEOGCS["GCS_Mahe_1971",DATUM["D_Mahe_1971",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PR
4257 GCS_Makassar GEOGCS["GCS_Makassar",DATUM["D_Makassar",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIME
4258 GCS_ETRS_1989 GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRI
4259 GCS_Malongo_1987 GEOGCS["GCS_Malongo_1987",DATUM["D_Malongo_1987",SPHEROID["International_1924",6378388.0,297.0]],P
4260 GCS_Manoca GEOGCS["GCS_Manoca",DATUM["D_Manoca",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM[
4261 GCS_Merchich GEOGCS["GCS_Merchich",DATUM["D_Merchich",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265
4262 GCS_Massawa GEOGCS["GCS_Massawa",DATUM["D_Massawa",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM
4263 GCS_Minna GEOGCS["GCS_Minna",DATUM["D_Minna",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Gre
4265 GCS_Monte_Mario GEOGCS["GCS_Monte_Mario",DATUM["D_Monte_Mario",SPHEROID["International_1924",6378388.0,297.0]],PRIM
4266 GCS_Mporaloko GEOGCS["GCS_Mporaloko",DATUM["D_Mporaloko",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602129362
4267 GCS_North_American_1927 GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4
4269 GCS_North_American_1983 GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,2
4270 GCS_Nahrwan_1967 GEOGCS["GCS_Nahrwan_1967",DATUM["D_Nahrwan_1967",SPHEROID["Clarke_1880_RGS",6378249.145,293.4
4271 GCS_Naparima_1972 GEOGCS["GCS_Naparima_1972",DATUM["D_Naparima_1972",SPHEROID["International_1924",6378388.0,297.0]
4272 GCS_New_Zealand_1949 GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.
4273 GCS_NGO_1948 GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],P
4274 GCS_Datum_73 GEOGCS["GCS_Datum_73",DATUM["D_Datum_73",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["
4275 GCS_NTF GEOGCS["GCS_NTF",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM
4276 GCS_NSWC_9Z_2 GEOGCS["GCS_NSWC_9Z_2",DATUM["D_NSWC_9Z_2",SPHEROID["NWL_9D",6378145.0,298.25]],PRIMEM["Gr
4277 GCS_OSGB_1936 GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRI
4278 GCS_OSGB_1970_SN GEOGCS["GCS_OSGB_1970_SN",DATUM["D_OSGB_1970_SN",SPHEROID["Airy_1830",6377563.396,299.32496
4279 GCS_OS_SN_1980 GEOGCS["GCS_OS_SN_1980",DATUM["D_OS_SN_1980",SPHEROID["Airy_1830",6377563.396,299.3249646]],P
4280 GCS_Padang_1884 GEOGCS["GCS_Padang_1884",DATUM["D_Padang_1884",SPHEROID["Bessel_1841",6377397.155,299.1528128]
4281 GCS_Palestine_1923 GEOGCS["GCS_Palestine_1923",DATUM["D_Palestine_1923",SPHEROID["Clarke_1880_Benoit",6378300.789,293
4282 GCS_Pointe_Noire GEOGCS["GCS_Pointe_Noire",DATUM["D_Pointe_Noire",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212
4283 GCS_GDA_1994 GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIME
4284 GCS_Pulkovo_1942 GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIM
4285 GCS_Qatar_1974 GEOGCS["GCS_Qatar_1974",DATUM["D_Qatar",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Gre
4286 GCS_Qatar_1948 GEOGCS["GCS_Qatar_1948",DATUM["D_Qatar_1948",SPHEROID["Helmert_1906",6378200.0,298.3]],PRIMEM["G
4288 GCS_Loma_Quintana GEOGCS["GCS_Loma_Quintana",DATUM["D_Loma_Quintana",SPHEROID["International_1924",6378388.0,297.0]
4289 GCS_Amersfoort GEOGCS["GCS_Amersfoort",DATUM["D_Amersfoort",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIM
4292 GCS_Sapper_Hill_1943 GEOGCS["GCS_Sapper_Hill_1943",DATUM["D_Sapper_Hill_1943",SPHEROID["International_1924",6378388.0,29
4293 GCS_Schwarzeck GEOGCS["GCS_Schwarzeck",DATUM["D_Schwarzeck",SPHEROID["Bessel_Namibia",6377483.865280418,299.15
4294 GCS_Segora GEOGCS["GCS_Segora",DATUM["D_Segora",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["G
4295 GCS_Serindung GEOGCS["GCS_Serindung",DATUM["D_Serindung",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIME
4296 GCS_Sudan GEOGCS["GCS_Sudan",DATUM["D_Sudan",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRI

Copyright 1995-2015 Esri. All rights reserved. 317


ArcGIS Runtime SDK for .NET

4297 GCS_Tananarive_1925 GEOGCS["GCS_Tananarive_1925",DATUM["D_Tananarive_1925",SPHEROID["International_1924",6378388.0,297


4298 GCS_Timbalai_1948 GEOGCS["GCS_Timbalai_1948",DATUM["D_Timbalai_1948",SPHEROID["Everest_Definition_1967",6377298.556,3
4299 GCS_TM65 GEOGCS["GCS_TM65",DATUM["D_TM65",SPHEROID["Airy_Modified",6377340.189,299.3249646]],PRIMEM["Gree
4300 GCS_TM75 GEOGCS["GCS_TM75",DATUM["D_TM75",SPHEROID["Airy_Modified",6377340.189,299.3249646]],PRIMEM["Gree
4301 GCS_Tokyo GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Gre
4302 GCS_Trinidad_1903 GEOGCS["GCS_Trinidad_1903",DATUM["D_Trinidad_1903",SPHEROID["Clarke_1858",6378293.645208759,294.2
4303 GCS_Trucial_Coast_1948 GEOGCS["GCS_Trucial_Coast_1948",DATUM["D_Trucial_Coast_1948",SPHEROID["Helmert_1906",6378200.0,29
4304 GCS_Voirol_1875 GEOGCS["GCS_Voirol_1875",DATUM["D_Voirol_1875",SPHEROID["Clarke_1880_IGN",6378249.2,293.466021293
4305 GCS_Voirol_Unifie_1960 GEOGCS["GCS_Voirol_Unifie_1960",DATUM["D_Voirol_Unifie_1960",SPHEROID["Clarke_1880_RGS",6378249.14
4306 GCS_Bern_1938 GEOGCS["GCS_Bern_1938",DATUM["D_Bern_1938",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIM
4307 GCS_Nord_Sahara_1959 GEOGCS["GCS_Nord_Sahara_1959",DATUM["D_Nord_Sahara_1959",SPHEROID["Clarke_1880_RGS",6378249.1
4308 GCS_RT38 GEOGCS["GCS_RT38",DATUM["D_Stockholm_1938",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIM
4309 GCS_Yacare GEOGCS["GCS_Yacare",DATUM["D_Yacare",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Green
4310 GCS_Yoff GEOGCS["GCS_Yoff",DATUM["D_Yoff",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM
4311 GCS_Zanderij GEOGCS["GCS_Zanderij",DATUM["D_Zanderij",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Gree
4312 GCS_MGI GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenw
4313 GCS_Belge_1972 GEOGCS["GCS_Belge_1972",DATUM["D_Belge_1972",SPHEROID["International_1924",6378388.0,297.0]],PRIME
4314 GCS_Deutsches_Hauptdreiecksnetz GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1
4315 GCS_Conakry_1905 GEOGCS["GCS_Conakry_1905",DATUM["D_Conakry_1905",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602
4316 GCS_Dealul_Piscului_1933 GEOGCS["GCS_Dealul_Piscului_1933",DATUM["D_Dealul_Piscului_1933",SPHEROID["International_1924",63783
4317 GCS_Dealul_Piscului_1970 GEOGCS["GCS_Dealul_Piscului_1970",DATUM["D_Dealul_Piscului_1970",SPHEROID["Krasovsky_1940",6378245
4318 GCS_NGN GEOGCS["GCS_NGN",DATUM["D_NGN",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenw
4319 GCS_KUDAMS GEOGCS["GCS_KUDAMS",DATUM["D_Kuwait_Utility",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIM
4322 GCS_WGS_1972 GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Gre
4324 GCS_WGS_1972_BE GEOGCS["GCS_WGS_1972_BE",DATUM["D_WGS_1972_BE",SPHEROID["WGS_1972",6378135.0,298.26]],PRIM
4326 GCS_WGS_1984 GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIM
4463 GCS_RGSPM_2006 GEOGCS["GCS_RGSPM_2006",DATUM["D_Reseau_Geodesique_de_St_Pierre_et_Miquelon_2006",SPHEROID["
4470 GCS_RGM_2004 GEOGCS["GCS_RGM_2004",DATUM["D_Reseau_Geodesique_de_Mayotte_2004",SPHEROID["GRS_1980",63781
4475 GCS_Cadastre_1997 GEOGCS["GCS_Cadastre_1997",DATUM["D_Cadastre_1997",SPHEROID["International_1924",6378388.0,297.0]],
4483 GCS_Mexican_Datum_of_1993 GEOGCS["GCS_Mexican_Datum_of_1993",DATUM["D_Mexican_Datum_of_1993",SPHEROID["GRS_1980",63781
4490 GCS_China_Geodetic_Coordinate_System_2000 GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6
4555 GCS_New_Beijing GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM
4558 GCS_RRAF_1991 GEOGCS["GCS_RRAF_1991",DATUM["D_RRAF_1991",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRI
4600 GCS_Anguilla_1957 GEOGCS["GCS_Anguilla_1957",DATUM["D_Anguilla_1957",SPHEROID["Clarke_1880_RGS",6378249.145,293.465
4601 GCS_Antigua_1943 GEOGCS["GCS_Antigua_1943",DATUM["D_Antigua_1943",SPHEROID["Clarke_1880_RGS",6378249.145,293.465
4602 GCS_Dominica_1945 GEOGCS["GCS_Dominica_1945",DATUM["D_Dominica_1945",SPHEROID["Clarke_1880_RGS",6378249.145,293.
4603 GCS_Grenada_1953 GEOGCS["GCS_Grenada_1953",DATUM["D_Grenada_1953",SPHEROID["Clarke_1880_RGS",6378249.145,293.4
4604 GCS_Montserrat_1958 GEOGCS["GCS_Montserrat_1958",DATUM["D_Montserrat_1958",SPHEROID["Clarke_1880_RGS",6378249.145,29
4605 GCS_St_Kitts_1955 GEOGCS["GCS_St_Kitts_1955",DATUM["D_St_Kitts_1955",SPHEROID["Clarke_1880_RGS",6378249.145,293.465
4606 GCS_St_Lucia_1955 GEOGCS["GCS_St_Lucia_1955",DATUM["D_St_Lucia_1955",SPHEROID["Clarke_1880_RGS",6378249.145,293.4
4607 GCS_St_Vincent_1945 GEOGCS["GCS_St_Vincent_1945",DATUM["D_St_Vincent_1945",SPHEROID["Clarke_1880_RGS",6378249.145,2
4608 GCS_NAD_1927_Definition_1976 GEOGCS["GCS_NAD_1927_Definition_1976",DATUM["D_NAD_1927_Definition_1976",SPHEROID["Clarke_1866",
4609 GCS_NAD_1927_CGQ77 GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_NAD_1927_CGQ77",SPHEROID["Clarke_1866",6378206.4,294.
4610 GCS_Xian_1980 GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Gree
4611 GCS_Hong_Kong_1980 GEOGCS["GCS_Hong_Kong_1980",DATUM["D_Hong_Kong_1980",SPHEROID["International_1924",6378388.0,29
4612 GCS_JGD_2000 GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIME
4613 GCS_Gunung_Segara GEOGCS["GCS_Gunung_Segara",DATUM["D_Gunung_Segara",SPHEROID["Bessel_1841",6377397.155,299.1528
4614 GCS_QND_1995 GEOGCS["GCS_QND_1995",DATUM["D_QND_1995",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM
4615 GCS_Porto_Santo_1936 GEOGCS["GCS_Porto_Santo_1936",DATUM["D_Porto_Santo_1936",SPHEROID["International_1924",6378388.0,2
4616 GCS_Selvagem_Grande_1938 GEOGCS["GCS_Selvagem_Grande_1938",DATUM["D_Selvagem_Grande_1938",SPHEROID["International_1924",
4617 GCS_North_American_1983_CSRS GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_198
4618 GCS_South_American_1969 GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",
4619 GCS_SWEREF99 GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIM
4620 GCS_Point_58 GEOGCS["GCS_Point_58",DATUM["D_Point_58",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM

Copyright 1995-2015 Esri. All rights reserved. 318


ArcGIS Runtime SDK for .NET

4621 GCS_Fort_Marigot GEOGCS["GCS_Fort_Marigot",DATUM["D_Fort_Marigot",SPHEROID["International_1924",6378388.0,297.0]],PRIM


4622 GCS_Sainte_Anne GEOGCS["GCS_Sainte_Anne",DATUM["D_Sainte_Anne",SPHEROID["International_1924",6378388.0,297.0]],PRIM
4623 GCS_CSG_1967 GEOGCS["GCS_CSG_1967",DATUM["D_CSG_1967",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM
4624 GCS_RGFG_1995 GEOGCS["GCS_RGFG_1995",DATUM["D_RGFG_1995",SPHEROID["GRS_1980",6378137.0,298.257222101]],PR
4625 GCS_Fort_Desaix GEOGCS["GCS_Fort_Desaix",DATUM["D_Fort_Desaix",SPHEROID["International_1924",6378388.0,297.0]],PRIME
4626 GCS_Reunion_1947 GEOGCS["GCS_Reunion_1947",DATUM["D_Reunion_1947",SPHEROID["International_1924",6378388.0,297.0]],P
4627 GCS_RGR_1992 GEOGCS["GCS_RGR_1992",DATUM["D_RGR_1992",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIME
4628 GCS_Tahiti_1952 GEOGCS["GCS_Tahiti_1952",DATUM["D_Tahiti_1952",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM
4629 GCS_Tahaa_1954 GEOGCS["GCS_Tahaa_1954",DATUM["D_Tahaa_1954",SPHEROID["International_1924",6378388.0,297.0]],PRIM
4630 GCS_IGN72_Nuku_Hiva GEOGCS["GCS_IGN72_Nuku_Hiva",DATUM["D_IGN72_Nuku_Hiva",SPHEROID["International_1924",6378388.0,2
4632 GCS_Combani_1950 GEOGCS["GCS_Combani_1950",DATUM["D_Combani_1950",SPHEROID["International_1924",6378388.0,297.0]],P
4633 GCS_IGN56_Lifou GEOGCS["GCS_IGN56_Lifou",DATUM["D_IGN56_Lifou",SPHEROID["International_1924",6378388.0,297.0]],PRIM
4636 GCS_Petrels_1972 GEOGCS["GCS_Petrels_1972",DATUM["D_Petrels_1972",SPHEROID["International_1924",6378388.0,297.0]],PRIM
4637 GCS_Pointe_Geologie_Perroud_1950 GEOGCS["GCS_Pointe_Geologie_Perroud_1950",DATUM["D_Pointe_Geologie_Perroud_1950",SPHEROID["Intern
4638 GCS_Saint_Pierre_et_Miquelon_1950 GEOGCS["GCS_Saint_Pierre_et_Miquelon_1950",DATUM["D_Saint_Pierre_et_Miquelon_1950",SPHEROID["Clarke
4639 GCS_MOP78 GEOGCS["GCS_MOP78",DATUM["D_MOP78",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Green
4641 GCS_IGN53_Mare GEOGCS["GCS_IGN53_Mare",DATUM["D_IGN53_Mare",SPHEROID["International_1924",6378388.0,297.0]],PRIM
4642 GCS_ST84_Ile_des_Pins GEOGCS["GCS_ST84_Ile_des_Pins",DATUM["D_ST84_Ile_des_Pins",SPHEROID["International_1924",6378388.0
4643 GCS_ST71_Belep GEOGCS["GCS_ST71_Belep",DATUM["D_ST71_Belep",SPHEROID["International_1924",6378388.0,297.0]],PRIME
4644 GCS_NEA74_Noumea GEOGCS["GCS_NEA74_Noumea",DATUM["D_NEA74_Noumea",SPHEROID["International_1924",6378388.0,297.0
4645 GCS_RGNC_1991 GEOGCS["GCS_RGNC_1991",DATUM["D_RGNC_1991",SPHEROID["International_1924",6378388.0,297.0]],PRIM
4646 GCS_Grand_Comoros GEOGCS["GCS_Grand_Comoros",DATUM["D_Grand_Comoros",SPHEROID["International_1924",6378388.0,297.0
4657 GCS_Reykjavik_1900 GEOGCS["GCS_Reykjavik_1900",DATUM["D_Reykjavik_1900",SPHEROID["Danish_1876",6377019.27,300.0]],PR
4658 GCS_Hjorsey_1955 GEOGCS["GCS_Hjorsey_1955",DATUM["D_Hjorsey_1955",SPHEROID["International_1924",6378388.0,297.0]],PR
4659 GCS_ISN_1993 GEOGCS["GCS_ISN_1993",DATUM["D_Islands_Network_1993",SPHEROID["GRS_1980",6378137.0,298.2572221
4660 GCS_Helle_1954 GEOGCS["GCS_Helle_1954",DATUM["D_Helle_1954",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM
4661 GCS_LKS_1992 GEOGCS["GCS_LKS_1992",DATUM["D_Latvia_1992",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIM
4662 GCS_IGN72_Grande_Terre GEOGCS["GCS_IGN72_Grande_Terre",DATUM["D_IGN72_Grande_Terre",SPHEROID["International_1924",63783
4663 GCS_Porto_Santo_1995 GEOGCS["GCS_Porto_Santo_1995",DATUM["D_Porto_Santo_1995",SPHEROID["International_1924",6378388.0,2
4664 GCS_Azores_Oriental_1995 GEOGCS["GCS_Azores_Oriental_1995",DATUM["D_Azores_Oriental_Islands_1995",SPHEROID["International_192
4665 GCS_Azores_Central_1995 GEOGCS["GCS_Azores_Central_1995",DATUM["D_Azores_Central_Islands_1995",SPHEROID["International_1924
4666 GCS_Lisbon_1890 GEOGCS["GCS_Lisbon_1890",DATUM["D_Lisbon_1890",SPHEROID["Bessel_1841",6377397.155,299.1528128]],P
4667 GCS_IKBD_1992 GEOGCS["GCS_IKBD_1992",DATUM["D_Iraq_Kuwait_Boundary_1992",SPHEROID["WGS_1984",6378137.0,298.2
4668 GCS_European_1979 GEOGCS["GCS_European_1979",DATUM["D_European_1979",SPHEROID["International_1924",6378388.0,297.0]
4669 GCS_LKS_1994 GEOGCS["GCS_LKS_1994",DATUM["D_Lithuania_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PR
4670 GCS_IGM_1995 GEOGCS["GCS_IGM_1995",DATUM["D_IGM_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIME
4671 GCS_Voirol_1879 GEOGCS["GCS_Voirol_1879",DATUM["D_Voirol_1879",SPHEROID["Clarke_1880_IGN",6378249.2,293.466021293
4672 GCS_Chatham_Island_1971 GEOGCS["GCS_Chatham_Island_1971",DATUM["D_Chatham_Island_1971",SPHEROID["International_1924",6378
4673 GCS_Chatham_Islands_1979 GEOGCS["GCS_Chatham_Islands_1979",DATUM["D_Chatham_Islands_1979",SPHEROID["International_1924",63
4674 GCS_SIRGAS_2000 GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]
4675 GCS_Guam_1963 GEOGCS["GCS_Guam_1963",DATUM["D_Guam_1963",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIM
4676 GCS_Vientiane_1982 GEOGCS["GCS_Vientiane_1982",DATUM["D_Vientiane_1982",SPHEROID["Krasovsky_1940",6378245.0,298.3]],P
4677 GCS_Lao_1993 GEOGCS["GCS_Lao_1993",DATUM["D_Lao_1993",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Gr
4678 GCS_Lao_1997 GEOGCS["GCS_Lao_1997",DATUM["D_Lao_National_Datum_1997",SPHEROID["Krasovsky_1940",6378245.0,298
4679 GCS_Jouik_1961 GEOGCS["GCS_Jouik_1961",DATUM["D_Jouik_1961",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PR
4680 GCS_Nouakchott_1965 GEOGCS["GCS_Nouakchott_1965",DATUM["D_Nouakchott_1965",SPHEROID["Clarke_1880_RGS",6378249.145,2
4682 GCS_Gulshan_303 GEOGCS["GCS_Gulshan_303",DATUM["D_Gulshan_303",SPHEROID["Everest_Adjustment_1937",6377276.345,3
4683 GCS_PRS_1992 GEOGCS["GCS_PRS_1992",DATUM["D_Philippine_Reference_System_1992",SPHEROID["Clarke_1866",6378206
4684 GCS_Gan_1970 GEOGCS["GCS_Gan_1970",DATUM["D_Gan_1970",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["
4686 GCS_MAGNA GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["G
4687 GCS_RGPF GEOGCS["GCS_RGPF",DATUM["D_Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS_1980",6
4688 GCS_Fatu_Iva_1972 GEOGCS["GCS_Fatu_Iva_1972",DATUM["D_Fatu_Iva_1972",SPHEROID["International_1924",6378388.0,297.0]],P
4689 GCS_IGN63_Hiva_Oa GEOGCS["GCS_IGN63_Hiva_Oa",DATUM["D_IGN63_Hiva_Oa",SPHEROID["International_1924",6378388.0,297.0
4690 GCS_Tahiti_1979 GEOGCS["GCS_Tahiti_1979",DATUM["D_Tahiti_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM

Copyright 1995-2015 Esri. All rights reserved. 319


ArcGIS Runtime SDK for .NET

4691 GCS_Moorea_1987 GEOGCS["GCS_Moorea_1987",DATUM["D_Moorea_1987",SPHEROID["International_1924",6378388.0,297.0]],PR


4692 GCS_Maupiti_1983 GEOGCS["GCS_Maupiti_1983",DATUM["D_Maupiti_1983",SPHEROID["International_1924",6378388.0,297.0]],PRI
4693 GCS_Nakhl-e_Ghanem GEOGCS["GCS_Nakhl-e_Ghanem",DATUM["D_Nakhl-e_Ghanem",SPHEROID["WGS_1984",6378137.0,298.25722
4694 GCS_POSGAR_1994 GEOGCS["GCS_POSGAR_1994",DATUM["D_POSGAR_1994",SPHEROID["GRS_1980",6378137.0,298.25722210
4695 GCS_Katanga_1955 GEOGCS["GCS_Katanga_1955",DATUM["D_Katanga_1955",SPHEROID["Clarke_1866",6378206.4,294.9786982]],
4696 GCS_Kasai_1953 GEOGCS["GCS_Kasai_1953",DATUM["D_Kasai_1953",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PR
4697 GCS_IGC_1962_6th_Parallel_South GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATUM["D_IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROI
4698 GCS_Kerguelen_Island_1949 GEOGCS["GCS_Kerguelen_Island_1949",DATUM["D_Kerguelen_Island_1949",SPHEROID["International_1924",63
4699 GCS_Le_Pouce_1934 GEOGCS["GCS_Le_Pouce_1934",DATUM["D_Le_Pouce_1934",SPHEROID["Clarke_1880_RGS",6378249.145,293
4700 GCS_IGN_Astro_1960 GEOGCS["GCS_IGN_Astro_1960",DATUM["D_IGN_Astro_1960",SPHEROID["Clarke_1880_RGS",6378249.145,29
4701 GCS_IGCB_1955 GEOGCS["GCS_IGCB_1955",DATUM["D_Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke_188
4702 GCS_Mauritania_1999 GEOGCS["GCS_Mauritania_1999",DATUM["D_Mauritania_1999",SPHEROID["GRS_1980",6378137.0,298.2572221
4703 GCS_Mhast_1951 GEOGCS["GCS_Mhast_1951",DATUM["D_Mhast_1951",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],P
4704 GCS_Mhast_Onshore GEOGCS["GCS_Mhast_Onshore",DATUM["D_Mhast_Onshore",SPHEROID["International_1924",6378388.0,297.0]
4705 GCS_Mhast_Offshore GEOGCS["GCS_Mhast_Offshore",DATUM["D_Mhast_Offshore",SPHEROID["International_1924",6378388.0,297.0]
4706 GCS_Egypt_Gulf_of_Suez_S-650_TL GEOGCS["GCS_Egypt_Gulf_of_Suez_S-650_TL",DATUM["D_Egypt_Gulf_of_Suez_S-650_TL",SPHEROID["Helme
4707 GCS_Tern_Island_1961 GEOGCS["GCS_Tern_Island_1961",DATUM["D_Tern_Island_1961",SPHEROID["International_1924",6378388.0,29
4708 GCS_Anna_1_1965 GEOGCS["GCS_Anna_1_1965",DATUM["D_Anna_1_1965",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["
4709 GCS_Beacon_E_1945 GEOGCS["GCS_Beacon_E_1945",DATUM["D_Beacon_E_1945",SPHEROID["International_1924",6378388.0,297.0
4710 GCS_DOS_71_4 GEOGCS["GCS_DOS_71_4",DATUM["D_DOS_71_4",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM
4711 GCS_Astro_1952 GEOGCS["GCS_Astro_1952",DATUM["D_Astro_1952",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM
4712 GCS_Ascension_Island_1958 GEOGCS["GCS_Ascension_Island_1958",DATUM["D_Ascension_Island_1958",SPHEROID["International_1924",63
4713 GCS_Ayabelle GEOGCS["GCS_Ayabelle",DATUM["D_Ayabelle",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM
4714 GCS_Bellevue_IGN GEOGCS["GCS_Bellevue_IGN",DATUM["D_Bellevue_IGN",SPHEROID["International_1924",6378388.0,297.0]],PR
4715 GCS_Camp_Area GEOGCS["GCS_Camp_Area",DATUM["D_Camp_Area",SPHEROID["International_1924",6378388.0,297.0]],PRIME
4716 GCS_Canton_1966 GEOGCS["GCS_Canton_1966",DATUM["D_Canton_1966",SPHEROID["International_1924",6378388.0,297.0]],PRI
4717 GCS_Cape_Canaveral GEOGCS["GCS_Cape_Canaveral",DATUM["D_Cape_Canaveral",SPHEROID["Clarke_1866",6378206.4,294.97869
4718 GCS_Solomon_1968 GEOGCS["GCS_Solomon_1968",DATUM["D_Solomon_1968",SPHEROID["International_1924",6378388.0,297.0]],P
4719 GCS_Easter_Island_1967 GEOGCS["GCS_Easter_Island_1967",DATUM["D_Easter_Island_1967",SPHEROID["International_1924",6378388.0
4720 GCS_Fiji_1986 GEOGCS["GCS_Fiji_1986",DATUM["D_Fiji_1986",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenw
4721 GCS_Fiji_1956 GEOGCS["GCS_Fiji_1956",DATUM["D_Fiji_1956",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Gr
4722 GCS_ISTS_061_1968 GEOGCS["GCS_ISTS_061_1968",DATUM["D_ISTS_061_1968",SPHEROID["International_1924",6378388.0,297.0]
4723 GCS_Grand_Cayman_1959 GEOGCS["GCS_Grand_Cayman_1959",DATUM["D_Grand_Cayman_1959",SPHEROID["Clarke_1866",6378206.4,
4724 GCS_ISTS_073_1969 GEOGCS["GCS_ISTS_073_1969",DATUM["D_ISTS_073_1969",SPHEROID["International_1924",6378388.0,297.0]
4725 GCS_Johnston_Island_1961 GEOGCS["GCS_Johnston_Island_1961",DATUM["D_Johnston_Island_1961",SPHEROID["International_1924",6378
4726 GCS_Little_Cayman_1961 GEOGCS["GCS_Little_Cayman_1961",DATUM["D_Little_Cayman_1961",SPHEROID["Clarke_1866",6378206.4,294
4727 GCS_Midway_1961 GEOGCS["GCS_Midway_1961",DATUM["D_Midway_1961",SPHEROID["International_1924",6378388.0,297.0]],PR
4728 GCS_Pico_de_Las_Nieves GEOGCS["GCS_Pico_de_Las_Nieves",DATUM["D_Pico_de_Las_Nieves",SPHEROID["International_1924",637838
4729 GCS_Pitcairn_1967 GEOGCS["GCS_Pitcairn_1967",DATUM["D_Pitcairn_1967",SPHEROID["International_1924",6378388.0,297.0]],PRI
4730 GCS_Santo_DOS_1965 GEOGCS["GCS_Santo_DOS_1965",DATUM["D_Santo_DOS_1965",SPHEROID["International_1924",6378388.0,29
4731 GCS_Viti_Levu_1916 GEOGCS["GCS_Viti_Levu_1916",DATUM["D_Viti_Levu_1916",SPHEROID["Clarke_1880_RGS",6378249.145,293.4
4732 GCS_Wake_Eniwetok_1960 GEOGCS["GCS_Wake_Eniwetok_1960",DATUM["D_Wake_Eniwetok_1960",SPHEROID["Hough_1960",6378270.0
4733 GCS_Wake_Island_1952 GEOGCS["GCS_Wake_Island_1952",DATUM["D_Wake_Island_1952",SPHEROID["International_1924",6378388.0,
4734 GCS_Tristan_1968 GEOGCS["GCS_Tristan_1968",DATUM["D_Tristan_1968",SPHEROID["International_1924",6378388.0,297.0]],PRIM
4735 GCS_Kusaie_1951 GEOGCS["GCS_Kusaie_1951",DATUM["D_Kusaie_1951",SPHEROID["International_1924",6378388.0,297.0]],PRIM
4736 GCS_Deception_Island GEOGCS["GCS_Deception_Island",DATUM["D_Deception_Island",SPHEROID["Clarke_1880_RGS",6378249.145,2
4737 GCS_Korea_2000 GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRI
4738 GCS_Hong_Kong_1963 GEOGCS["GCS_Hong_Kong_1963",DATUM["D_Hong_Kong_1963",SPHEROID["Clarke_1858",6378293.64520875
4739 GCS_Hong_Kong_1963_67 GEOGCS["GCS_Hong_Kong_1963_67",DATUM["D_Hong_Kong_1963_67",SPHEROID["International_1924",63783
4740 GCS_PZ_1990 GEOGCS["GCS_PZ_1990",DATUM["D_Parametrop_Zemp_1990",SPHEROID["PZ_1990",6378136.0,298.25783930
4741 GCS_FD_1954 GEOGCS["GCS_FD_1954",DATUM["D_Faroe_Datum_1954",SPHEROID["International_1924",6378388.0,297.0]],P
4742 GCS_GDM_2000 GEOGCS["GCS_GDM_2000",DATUM["D_GDM_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIM
4743 GCS_Karbala_1979_Polservice GEOGCS["GCS_Karbala_1979_Polservice",DATUM["D_Karbala_1979_Polservice",SPHEROID["Clarke_1880_RGS
4744 GCS_Nahrwan_1934 GEOGCS["GCS_Nahrwan_1934",DATUM["D_Nahrwan_1934",SPHEROID["Clarke_1880_RGS",6378249.145,293.4

Copyright 1995-2015 Esri. All rights reserved. 320


ArcGIS Runtime SDK for .NET

4745 GCS_RD/83 GEOGCS["GCS_RD/83",DATUM["D_Rauenberg_1983",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PR


4746 GCS_PD/83 GEOGCS["GCS_PD/83",DATUM["D_Potsdam_1983",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIM
4747 GCS_Greenland_1996 GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.2572221
4748 GCS_Vanua_Levu_1915 GEOGCS["GCS_Vanua_Levu_1915",DATUM["D_Vanua_Levu_1915",SPHEROID["Clarke_1880_Intl_Ft",6378306.3
4749 GCS_RGNC_1991-93 GEOGCS["GCS_RGNC_1991-93",DATUM["D_Reseau_Geodesique_de_Nouvelle_Caledonie_1991-93",SPHEROID
4750 GCS_ST87_Ouvea GEOGCS["GCS_ST87_Ouvea",DATUM["D_ST87_Ouvea",SPHEROID["WGS_1984",6378137.0,298.257223563]],P
4751 GCS_Kertau_RSO GEOGCS["GCS_Kertau_RSO",DATUM["D_Kertau_RSO",SPHEROID["Everest_Modified_1969",6377295.664,300.8
4752 GCS_Viti_Levu_1912 GEOGCS["GCS_Viti_Levu_1912",DATUM["D_Viti_Levu_1912",SPHEROID["Clarke_1880_Intl_Ft",6378306.3696,29
4753 GCS_fk89 GEOGCS["GCS_fk89",DATUM["D_fk89",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",
4754 GCS_LGD2006 GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_Datum_2006",SPHEROID["International_1924",6378388.
4755 GCS_DGN_1995 GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,29
4756 GCS_VN_2000 GEOGCS["GCS_VN_2000",DATUM["D_Vietnam_2000",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIM
4757 GCS_SVY21 GEOGCS["GCS_SVY21",DATUM["D_SVY21",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Gre
4758 GCS_JAD_2001 GEOGCS["GCS_JAD_2001",DATUM["D_Jamaica_2001",SPHEROID["WGS_1984",6378137.0,298.257223563]],PR
4759 GCS_NAD_1983_NSRS2007 GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0
4760 GCS_WGS_1966 GEOGCS["GCS_WGS_1966",DATUM["D_WGS_1966",SPHEROID["WGS_1966",6378145.0,298.25]],PRIMEM["Gre
4761 GCS_HTRS96 GEOGCS["GCS_HTRS96",DATUM["D_Croatian_Terrestrial_Reference_System",SPHEROID["GRS_1980",6378137
4762 GCS_Bermuda_2000 GEOGCS["GCS_Bermuda_2000",DATUM["D_Bermuda_2000",SPHEROID["WGS_1984",6378137.0,298.257223563
4763 GCS_Pitcairn_2006 GEOGCS["GCS_Pitcairn_2006",DATUM["D_Pitcairn_2006",SPHEROID["WGS_1984",6378137.0,298.257223563]],P
4764 GCS_RSRGD2000 GEOGCS["GCS_RSRGD2000",DATUM["D_Ross_Sea_Region_Geodetic_Datum_2000",SPHEROID["GRS_1980",6
4765 GCS_Slovenia_1996 GEOGCS["GCS_Slovenia_1996",DATUM["D_Slovenia_Geodetic_Datum_1996",SPHEROID["GRS_1980",6378137.
4801 GCS_Bern_1898_Bern GEOGCS["GCS_Bern_1898_Bern",DATUM["D_Bern_1898",SPHEROID["Bessel_1841",6377397.155,299.1528128]
4802 GCS_Bogota_Bogota GEOGCS["GCS_Bogota_Bogota",DATUM["D_Bogota",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM
4803 GCS_Lisbon_Lisbon GEOGCS["GCS_Lisbon_Lisbon",DATUM["D_Lisbon",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM[
4804 GCS_Makassar_Jakarta GEOGCS["GCS_Makassar_Jakarta",DATUM["D_Makassar",SPHEROID["Bessel_1841",6377397.155,299.1528128]
4805 GCS_MGI_Ferro GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["F
4806 GCS_Monte_Mario_Rome GEOGCS["GCS_Monte_Mario_Rome",DATUM["D_Monte_Mario",SPHEROID["International_1924",6378388.0,297.0
4807 GCS_NTF_Paris GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],P
4808 GCS_Padang_1884_Jakarta GEOGCS["GCS_Padang_1884_Jakarta",DATUM["D_Padang_1884",SPHEROID["Bessel_1841",6377397.155,299.1
4809 GCS_Belge_1950_Brussels GEOGCS["GCS_Belge_1950_Brussels",DATUM["D_Belge_1950",SPHEROID["International_1924",6378388.0,297.
4810 GCS_Tananarive_1925_Paris GEOGCS["GCS_Tananarive_1925_Paris",DATUM["D_Tananarive_1925",SPHEROID["International_1924",6378388
4811 GCS_Voirol_1875_Paris GEOGCS["GCS_Voirol_1875_Paris",DATUM["D_Voirol_1875",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660
4812 GCS_Voirol_Unifie_1960_Paris GEOGCS["GCS_Voirol_Unifie_1960_Paris",DATUM["D_Voirol_Unifie_1960",SPHEROID["Clarke_1880_RGS",6378
4813 GCS_Batavia_Jakarta GEOGCS["GCS_Batavia_Jakarta",DATUM["D_Batavia",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PR
4814 GCS_RT38_Stockholm GEOGCS["GCS_RT38_Stockholm",DATUM["D_Stockholm_1938",SPHEROID["Bessel_1841",6377397.155,299.152
4815 GCS_Greek_Athens GEOGCS["GCS_Greek_Athens",DATUM["D_Greek",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIME
4816 GCS_Carthage_Paris GEOGCS["GCS_Carthage_Paris",DATUM["D_Carthage",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602129
4817 GCS_NGO_1948_Oslo GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528
4818 GCS_S_JTSK_Ferro GEOGCS["GCS_S_JTSK_Ferro",DATUM["D_S_JTSK",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRI
4819 GCS_Nord_Sahara_1959_Paris GEOGCS["GCS_Nord_Sahara_1959_Paris",DATUM["D_Nord_Sahara_1959",SPHEROID["Clarke_1880_RGS",637
4820 GCS_Gunung_Segara_Jakarta GEOGCS["GCS_Gunung_Segara_Jakarta",DATUM["D_Gunung_Segara",SPHEROID["Bessel_1841",6377397.155,
4821 GCS_Voirol_1879_Paris GEOGCS["GCS_Voirol_1879_Paris",DATUM["D_Voirol_1879",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660
4823 GCS_Sao_Tome GEOGCS["GCS_Sao_Tome",DATUM["D_Sao_Tome",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM
4824 GCS_Principe GEOGCS["GCS_Principe",DATUM["D_Principe",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Gree
4901 GCS_ATF_Paris GEOGCS["GCS_ATF_Paris",DATUM["D_ATF",SPHEROID["Plessis_1817",6376523.0,308.64]],PRIMEM["Paris_RG
4902 GCS_Nord_de_Guerre_Paris GEOGCS["GCS_Nord_de_Guerre_Paris",DATUM["D_Nord_de_Guerre",SPHEROID["Plessis_1817",6376523.0,308
4903 GCS_Madrid_1870_Madrid GEOGCS["GCS_Madrid_1870_Madrid",DATUM["D_Madrid_1870",SPHEROID["Struve_1860",6378298.3,294.73]],P
4904 GCS_Lisbon_1890_Lisbon GEOGCS["GCS_Lisbon_1890_Lisbon",DATUM["D_Lisbon_1890",SPHEROID["Bessel_1841",6377397.155,299.152
5013 GCS_PTRA08 GEOGCS["GCS_PTRA08",DATUM["D_PTRA08",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["G
5228 GCS_S_JTSK/05 GEOGCS["GCS_S_JTSK/05",DATUM["D_S_JTSK_05",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PR
5229 GCS_S_JTSK/05_Ferro GEOGCS["GCS_S_JTSK/05_Ferro",DATUM["D_S_JTSK_05",SPHEROID["Bessel_1841",6377397.155,299.152812
5233 GCS_SLD99 GEOGCS["GCS_SLD99",DATUM["D_Sri_Lanka_Datum_1999",SPHEROID["Everest_Adjustment_1937",6377276.3
5246 GCS_GDBD2009 GEOGCS["GCS_GDBD2009",DATUM["D_GDBD2009",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIM
5252 GCS_TUREF GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Frame",SPHEROID["GRS_1980",6378137.0,29

Copyright 1995-2015 Esri. All rights reserved. 321


ArcGIS Runtime SDK for .NET

5264 GCS_DRUKREF_03 GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137


5324 GCS_ISN_2004 GEOGCS["GCS_ISN_2004",DATUM["D_Islands_Network_2004",SPHEROID["GRS_1980",6378137.0,298.2572221
5340 GCS_POSGAR_2007 GEOGCS["GCS_POSGAR_2007",DATUM["D_POSGAR_2007",SPHEROID["GRS_1980",6378137.0,298.25722210
5354 GCS_MARGEN GEOGCS["GCS_MARGEN",DATUM["D_Marco_Geodesico_Nacional",SPHEROID["GRS_1980",6378137.0,298.257
5360 GCS_SIRGAS-Chile GEOGCS["GCS_SIRGAS-Chile",DATUM["D_SIRGAS-Chile",SPHEROID["GRS_1980",6378137.0,298.257222101]],
5365 GCS_CR05 GEOGCS["GCS_CR05",DATUM["D_Costa_Rica_2005",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIM
5371 GCS_MARCARIO_SOLIS GEOGCS["GCS_MARCARIO_SOLIS",DATUM["D_SGNP_MARCARIO_SOLIS",SPHEROID["GRS_1980",6378137.
5373 GCS_Peru96 GEOGCS["GCS_Peru96",DATUM["D_Peru96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Gre
5381 GCS_SIRGAS-ROU98 GEOGCS["GCS_SIRGAS-ROU98",DATUM["D_SIRGAS-ROU98",SPHEROID["WGS_1984",6378137.0,298.257223
5393 GCS_SIRGAS_ES2007.8 GEOGCS["GCS_SIRGAS_ES2007.8",DATUM["D_SIRGAS_ES2007.8",SPHEROID["GRS_1980",6378137.0,298.25
5451 GCS_Ocotepeque_1935 GEOGCS["GCS_Ocotepeque_1935",DATUM["D_Ocotepeque_1935",SPHEROID["Clarke_1866",6378206.4,294.978
5464 GCS_Sibun_Gorge_1922 GEOGCS["GCS_Sibun_Gorge_1922",DATUM["D_Sibun_Gorge_1922",SPHEROID["Clarke_1858",6378293.645208
5467 GCS_Panama-Colon_1911 GEOGCS["GCS_Panama-Colon_1911",DATUM["D_Panama-Colon-1911",SPHEROID["Clarke_1866",6378206.4,29
5489 GCS_RGAF09 GEOGCS["GCS_RGAF09",DATUM["Reseau_Geodesique_des_Antilles_Francaises_2009",SPHEROID["GRS_1980
5524 GCS_Corrego_Alegre_1961 GEOGCS["GCS_Corrego_Alegre_1961",DATUM["D_Corrego_Alegre_1961",SPHEROID["International_1924",63783
5527 GCS_SAD_1969_96 GEOGCS["GCS_SAD_1969_96",DATUM["D_South_American_Datum_1969_96",SPHEROID["GRS_1967_Truncate
5546 GCS_PNG94 GEOGCS["GCS_PNG94",DATUM["D_Papua_New_Guinea_Geodetic_Datum_1994",SPHEROID["GRS_1980",6378
5561 GCS_Ukraine_2000 GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIM
5593 GCS_FEH2010 GEOGCS["GCS_FEH2010",DATUM["D_Fehmarnbelt_Datum_2010",SPHEROID["GRS_1980",6378137.0,298.25722
5681 GCS_DB_REF GEOGCS["GCS_DB_REF",DATUM["D_Deutsche_Bahn_Reference_System",SPHEROID["Bessel_1841",6377397.1
5886 GCS_TGD2005 GEOGCS["GCS_TGD2005",DATUM["D_Tonga_Geodetic_Datum_2005",SPHEROID["GRS_1980",6378137.0,298.2
6135 GCS_CIGD11 GEOGCS["GCS_CIGD11",DATUM["D_Cayman_Islands_Geodetic_Datum_2011",SPHEROID["GRS_1980",6378137
6207 GCS_Nepal_Nagarkot GEOGCS["GCS_Nepal_Nagarkot",DATUM["D_Nepal_Nagarkot",SPHEROID["Everest_Adjustment_1937",6377276.
6318 GCS_NAD_1983_2011 GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222
6322 GCS_NAD_1983_PA11 GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.25722
6325 GCS_NAD_1983_MA11 GEOGCS["GCS_NAD_1983_MA11",DATUM["D_NAD_1983_MA11",SPHEROID["GRS_1980",6378137.0,298.25722
6365 GCS_Mexico_ITRF2008 GEOGCS["GCS_Mexico_ITRF2008",DATUM["D_Mexico_ITRF2008",SPHEROID["GRS_1980",6378137.0,298.2572
6668 GCS_JGD_2011 GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIME
6706 GCS_RDN2008 GEOGCS["GCS_RDN2008",DATUM["D_Rete_Dinamica_Nazionale_2008",SPHEROID["GRS_1980",6378137.0,298
37002 GCS_Fischer_1960 GEOGCS["GCS_Fischer_1960",DATUM["D_Fischer_1960",SPHEROID["Fischer_1960",6378166.0,298.3]],PRIMEM
37003 GCS_Fischer_1968 GEOGCS["GCS_Fischer_1968",DATUM["D_Fischer_1968",SPHEROID["Fischer_1968",6378150.0,298.3]],PRIMEM
37004 GCS_Fischer_Modified GEOGCS["GCS_Fischer_Modified",DATUM["D_Fischer_Modified",SPHEROID["Fischer_Modified",6378155.0,298.3
37005 GCS_Hough_1960 GEOGCS["GCS_Hough_1960",DATUM["D_Hough_1960",SPHEROID["Hough_1960",6378270.0,297.0]],PRIMEM["G
37006 GCS_Everest_Modified_1969 GEOGCS["GCS_Everest_Modified_1969",DATUM["D_Everest_Modified_1969",SPHEROID["Everest_Modified_196
37007 GCS_Walbeck GEOGCS["GCS_Walbeck",DATUM["D_Walbeck",SPHEROID["Walbeck",6376896.0,302.78]],PRIMEM["Greenwich",
37008 GCS_Sphere_ARC_INFO GEOGCS["GCS_Sphere_ARC_INFO",DATUM["D_Sphere_ARC_INFO",SPHEROID["Sphere_ARC_INFO",6370997
37202 GCS_Everest_Bangladesh GEOGCS["GCS_Everest_Bangladesh",DATUM["D_Everest_Bangladesh",SPHEROID["Everest_Adjustment_1937",6
37203 GCS_Everest_India_Nepal GEOGCS["GCS_Everest_India_Nepal",DATUM["D_Everest_India_Nepal",SPHEROID["Everest_Definition_1962",63
37206 GCS_Oman GEOGCS["GCS_Oman",DATUM["D_Oman",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Gre
37207 GCS_South_Asia_Singapore GEOGCS["GCS_South_Asia_Singapore",DATUM["D_South_Asia_Singapore",SPHEROID["Fischer_Modified",6378
37218 GCS_DOS_1968 GEOGCS["GCS_DOS_1968",DATUM["D_DOS_1968",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM
37221 GCS_GUX_1 GEOGCS["GCS_GUX_1",DATUM["D_GUX_1",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Green
37225 GCS_Carthage_Grad GEOGCS["GCS_Carthage_Grad",DATUM["D_Carthage",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602129
37240 GCS_Fort_Thomas_1955 GEOGCS["GCS_Fort_Thomas_1955",DATUM["D_Fort_Thomas_1955",SPHEROID["Clarke_1880_RGS",6378249.1
37241 GCS_Graciosa_Base_SW_1948 GEOGCS["GCS_Graciosa_Base_SW_1948",DATUM["D_Graciosa_Base_SW_1948",SPHEROID["International_192
37243 GCS_LC5_1961 GEOGCS["GCS_LC5_1961",DATUM["D_LC5_1961",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM
37245 GCS_Observatorio_Meteorologico_1939 GEOGCS["GCS_Observatorio_Meteorologico_1939",DATUM["D_Observatorio_Meteorologico_1939",SPHEROID["I
37249 GCS_Sao_Braz GEOGCS["GCS_Sao_Braz",DATUM["D_Sao_Braz",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["G
37257 GCS_S42_Hungary GEOGCS["GCS_S42_Hungary",DATUM["D_S42_Hungary",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIM
37260 GCS_Alaskan_Islands GEOGCS["GCS_Alaskan_Islands",DATUM["D_Alaskan_Islands",SPHEROID["Clarke_1866",6378206.4,294.978698
104101 GCS_Estonia_1937 GEOGCS["GCS_Estonia_1937",DATUM["D_Estonia_1937",SPHEROID["Bessel_1841",6377397.155,299.1528128]]
104102 GCS_Hermannskogel GEOGCS["GCS_Hermannskogel",DATUM["D_Hermannskogel",SPHEROID["Bessel_1841",6377397.155,299.15281
104103 GCS_Sierra_Leone_1960 GEOGCS["GCS_Sierra_Leone_1960",DATUM["D_Sierra_Leone_1960",SPHEROID["Clarke_1880_RGS",6378249.1
104105 GCS_Datum_Lisboa_Bessel GEOGCS["GCS_Datum_Lisboa_Bessel",DATUM["D_Datum_Lisboa_Bessel",SPHEROID["Bessel_1841",6377397.1

Copyright 1995-2015 Esri. All rights reserved. 322


ArcGIS Runtime SDK for .NET

104106 GCS_Datum_Lisboa_Hayford GEOGCS["GCS_Datum_Lisboa_Hayford",DATUM["D_Datum_Lisboa_Hayford",SPHEROID["International_1924",63


104109 GCS_Pohnpei GEOGCS["GCS_Pohnpei",DATUM["D_Pohnpei",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Gr
104112 GCS_Bab_South GEOGCS["GCS_Bab_South",DATUM["D_Bab_South",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIME
104113 GCS_Majuro GEOGCS["GCS_Majuro",DATUM["D_Majuro",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Gree
104115 GCS_ITRF_1988 GEOGCS["GCS_ITRF_1988",DATUM["D_ITRF_1988",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIME
104116 GCS_ITRF_1989 GEOGCS["GCS_ITRF_1989",DATUM["D_ITRF_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIME
104117 GCS_ITRF_1990 GEOGCS["GCS_ITRF_1990",DATUM["D_ITRF_1990",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIME
104118 GCS_ITRF_1991 GEOGCS["GCS_ITRF_1991",DATUM["D_ITRF_1991",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIME
104119 GCS_ITRF_1992 GEOGCS["GCS_ITRF_1992",DATUM["D_ITRF_1992",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIME
104120 GCS_ITRF_1993 GEOGCS["GCS_ITRF_1993",DATUM["D_ITRF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIME
104121 GCS_ITRF_1994 GEOGCS["GCS_ITRF_1994",DATUM["D_ITRF_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIME
104122 GCS_ITRF_1996 GEOGCS["GCS_ITRF_1996",DATUM["D_ITRF_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIME
104123 GCS_ITRF_1997 GEOGCS["GCS_ITRF_1997",DATUM["D_ITRF_1997",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIME
104124 GCS_ITRF_2000 GEOGCS["GCS_ITRF_2000",DATUM["D_ITRF_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIME
104126 GCS_Observatorio_Meteorologico_1965 GEOGCS["GCS_Observatorio_Meteorologico_1965",DATUM["D_Observatorio_Meteorologico_1965",SPHEROID["I
104127 GCS_Roma_1940 GEOGCS["GCS_Roma_1940",DATUM["D_Roma_1940",SPHEROID["International_1924",6378388.0,297.0]],PRIME
104128 GCS_Sphere_EMEP GEOGCS["GCS_Sphere_EMEP",DATUM["D_Sphere_EMEP",SPHEROID["Sphere_EMEP",6370000.0,0.0]],PRIMEM
104129 GCS_EUREF_FIN GEOGCS["GCS_EUREF_FIN",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRI
104130 GCS_Jordan GEOGCS["GCS_Jordan",DATUM["D_Jordan",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenw
104131 GCS_D48 GEOGCS["GCS_D48",DATUM["D_D48",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenw
104134 GCS_MONREF_1997 GEOGCS["GCS_MONREF_1997",DATUM["D_ITRF_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],P
104135 GCS_MSK_1942 GEOGCS["GCS_MSK_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM
104138 GCS_Old_Hawaiian_Intl_1924 GEOGCS["GCS_Old_Hawaiian_Intl_1924",DATUM["D_Old_Hawaiian_Intl_1924",SPHEROID["International_1924",6
104139 GCS_Voirol_1875_Grad GEOGCS["GCS_Voirol_1875_Grad",DATUM["D_Voirol_1875",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660
104140 GCS_Voirol_1879_Grad GEOGCS["GCS_Voirol_1879_Grad",DATUM["D_Voirol_1879",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660
104141 GCS_CGRS_1993 GEOGCS["GCS_CGRS_1993",DATUM["D_Cyprus_Geodetic_Reference_System_1993",SPHEROID["WGS_1984",
104223 GCS_NAD_1983_CORS96 GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298
104248 GCS_MACAO_2008 GEOGCS["GCS_MACAO_2008",DATUM["D_MACAO_2008",SPHEROID["GRS_1980",6378137.0,298.257222101]]
104257 GCS_ITRF_2008 GEOGCS["GCS_ITRF_2008",DATUM["D_ITRF_2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIME
104258 GCS_ETRF_1989 GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRI
104259 GCS_NAD_1983_PACP00 GEOGCS["GCS_NAD_1983_PACP00",DATUM["D_NAD_1983_PACP00",SPHEROID["GRS_1980",6378137.0,298.
104260 GCS_NAD_1983_MARP00 GEOGCS["GCS_NAD_1983_MARP00",DATUM["D_NAD_1983_MARP00",SPHEROID["GRS_1980",6378137.0,298
104261 GCS_Merchich_Degree GEOGCS["GCS_Merchich_Degree",DATUM["D_Merchich",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212
104305 GCS_Voirol_Unifie_1960_Degree GEOGCS["GCS_Voirol_Unifie_1960_Degree",DATUM["D_Voirol_Unifie_1960",SPHEROID["Clarke_1880_RGS",637
104700 GCS_NAD_1983_HARN_Adj_MN_Anoka GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Anoka",DATUM["D_NAD_1983_HARN_Adj_MN_Anoka",SPHEROID
104701 GCS_NAD_1983_HARN_Adj_MN_Becker GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Becker",DATUM["D_NAD_1983_HARN_Adj_MN_Becker",SPHEROID
104702 GCS_NAD_1983_HARN_Adj_MN_Beltrami_North GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Beltrami_North",DATUM["D_NAD_1983_HARN_Adj_MN_Beltrami_N
104703 GCS_NAD_1983_HARN_Adj_MN_Beltrami_South GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Beltrami_South",DATUM["D_NAD_1983_HARN_Adj_MN_Beltrami_S
104704 GCS_NAD_1983_HARN_Adj_MN_Benton GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Benton",DATUM["D_NAD_1983_HARN_Adj_MN_Benton",SPHEROID
104705 GCS_NAD_1983_HARN_Adj_MN_Big_Stone GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Big_Stone",DATUM["D_NAD_1983_HARN_Adj_MN_Big_Stone",SPH
104706 GCS_NAD_1983_HARN_Adj_MN_Blue_Earth GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Blue_Earth",DATUM["D_NAD_1983_HARN_Adj_MN_Blue_Earth",SP
104707 GCS_NAD_1983_HARN_Adj_MN_Brown GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Brown",DATUM["D_NAD_1983_HARN_Adj_MN_Brown",SPHEROID
104708 GCS_NAD_1983_HARN_Adj_MN_Carlton GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Carlton",DATUM["D_NAD_1983_HARN_Adj_MN_Carlton",SPHEROI
104709 GCS_NAD_1983_HARN_Adj_MN_Carver GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Carver",DATUM["D_NAD_1983_HARN_Adj_MN_Carver",SPHEROID
104710 GCS_NAD_1983_HARN_Adj_MN_Cass_North GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Cass_North",DATUM["D_NAD_1983_HARN_Adj_MN_Cass_North",S
104711 GCS_NAD_1983_HARN_Adj_MN_Cass_South GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Cass_South",DATUM["D_NAD_1983_HARN_Adj_MN_Cass_South",
104712 GCS_NAD_1983_HARN_Adj_MN_Chippewa GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Chippewa",DATUM["D_NAD_1983_HARN_Adj_MN_Chippewa",SPH
104713 GCS_NAD_1983_HARN_Adj_MN_Chisago GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Chisago",DATUM["D_NAD_1983_HARN_Adj_MN_Chisago",SPHERO
104714 GCS_NAD_1983_HARN_Adj_MN_Cook_North GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Cook_North",DATUM["D_NAD_1983_HARN_Adj_MN_Cook_North",S
104715 GCS_NAD_1983_HARN_Adj_MN_Cook_South GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Cook_South",DATUM["D_NAD_1983_HARN_Adj_MN_Cook_South",
104716 GCS_NAD_1983_HARN_Adj_MN_Cottonwood GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Cottonwood",DATUM["D_NAD_1983_HARN_Adj_MN_Cottonwood",S
104717 GCS_NAD_1983_HARN_Adj_MN_Crow_Wing GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Crow_Wing",DATUM["D_NAD_1983_HARN_Adj_MN_Crow_Wing",S
104718 GCS_NAD_1983_HARN_Adj_MN_Dakota GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Dakota",DATUM["D_NAD_1983_HARN_Adj_MN_Dakota",SPHEROID
104719 GCS_NAD_1983_HARN_Adj_MN_Dodge GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Dodge",DATUM["D_NAD_1983_HARN_Adj_MN_Dodge",SPHEROID

Copyright 1995-2015 Esri. All rights reserved. 323


ArcGIS Runtime SDK for .NET

104720 GCS_NAD_1983_HARN_Adj_MN_Douglas GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Douglas",DATUM["D_NAD_1983_HARN_Adj_MN_Douglas",SPHERO


104721 GCS_NAD_1983_HARN_Adj_MN_Faribault GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Faribault",DATUM["D_NAD_1983_HARN_Adj_MN_Faribault",SPHER
104722 GCS_NAD_1983_HARN_Adj_MN_Fillmore GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Fillmore",DATUM["D_NAD_1983_HARN_Adj_MN_Fillmore",SPHERO
104723 GCS_NAD_1983_HARN_Adj_MN_Freeborn GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Freeborn",DATUM["D_NAD_1983_HARN_Adj_MN_Freeborn",SPHER
104724 GCS_NAD_1983_HARN_Adj_MN_Goodhue GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Goodhue",DATUM["D_NAD_1983_HARN_Adj_MN_Goodhue",SPHE
104725 GCS_NAD_1983_HARN_Adj_MN_Grant GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Grant",DATUM["D_NAD_1983_HARN_Adj_MN_Grant",SPHEROID["S
104726 GCS_NAD_1983_HARN_Adj_MN_Hennepin GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Hennepin",DATUM["D_NAD_1983_HARN_Adj_MN_Hennepin",SPHE
104727 GCS_NAD_1983_HARN_Adj_MN_Houston GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Houston",DATUM["D_NAD_1983_HARN_Adj_MN_Houston",SPHER
104728 GCS_NAD_1983_HARN_Adj_MN_Isanti GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Isanti",DATUM["D_NAD_1983_HARN_Adj_MN_Isanti",SPHEROID["S
104729 GCS_NAD_1983_HARN_Adj_MN_Itasca_North GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Itasca_North",DATUM["D_NAD_1983_HARN_Adj_MN_Itasca_North"
104730 GCS_NAD_1983_HARN_Adj_MN_Itasca_South GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Itasca_South",DATUM["D_NAD_1983_HARN_Adj_MN_Itasca_South
104731 GCS_NAD_1983_HARN_Adj_MN_Jackson GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Jackson",DATUM["D_NAD_1983_HARN_Adj_MN_Jackson",SPHERO
104732 GCS_NAD_1983_HARN_Adj_MN_Kanabec GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Kanabec",DATUM["D_NAD_1983_HARN_Adj_MN_Kanabec",SPHER
104733 GCS_NAD_1983_HARN_Adj_MN_Kandiyohi GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Kandiyohi",DATUM["D_NAD_1983_HARN_Adj_MN_Kandiyohi",SPHE
104734 GCS_NAD_1983_HARN_Adj_MN_Kittson GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Kittson",DATUM["D_NAD_1983_HARN_Adj_MN_Kittson",SPHEROID
104735 GCS_NAD_1983_HARN_Adj_MN_Koochiching GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Koochiching",DATUM["D_NAD_1983_HARN_Adj_MN_Koochiching",
104736 GCS_NAD_1983_HARN_Adj_MN_Lac_Qui_Parle GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Lac_Qui_Parle",DATUM["D_NAD_1983_HARN_Adj_MN_Lac_Qui_P
104737 GCS_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_North GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_North",DATUM["D_NAD_1983_HARN_Adj_MN
104738 GCS_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_South GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_South",DATUM["D_NAD_1983_HARN_Adj_MN
104739 GCS_NAD_1983_HARN_Adj_MN_Le_Sueur GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Le_Sueur",DATUM["D_NAD_1983_HARN_Adj_MN_Le_Sueur",SPHE
104740 GCS_NAD_1983_HARN_Adj_MN_Lincoln GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Lincoln",DATUM["D_NAD_1983_HARN_Adj_MN_Lincoln",SPHEROID
104741 GCS_NAD_1983_HARN_Adj_MN_Lyon GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Lyon",DATUM["D_NAD_1983_HARN_Adj_MN_Lyon",SPHEROID["S_
104742 GCS_NAD_1983_HARN_Adj_MN_McLeod GEOGCS["GCS_NAD_1983_HARN_Adj_MN_McLeod",DATUM["D_NAD_1983_HARN_Adj_MN_McLeod",SPHERO
104743 GCS_NAD_1983_HARN_Adj_MN_Mahnomen GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Mahnomen",DATUM["D_NAD_1983_HARN_Adj_MN_Mahnomen",SP
104744 GCS_NAD_1983_HARN_Adj_MN_Marshall GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Marshall",DATUM["D_NAD_1983_HARN_Adj_MN_Marshall",SPHER
104745 GCS_NAD_1983_HARN_Adj_MN_Martin GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Martin",DATUM["D_NAD_1983_HARN_Adj_MN_Martin",SPHEROID[
104746 GCS_NAD_1983_HARN_Adj_MN_Meeker GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Meeker",DATUM["D_NAD_1983_HARN_Adj_MN_Meeker",SPHERO
104747 GCS_NAD_1983_HARN_Adj_MN_Morrison GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Morrison",DATUM["D_NAD_1983_HARN_Adj_MN_Morrison",SPHER
104748 GCS_NAD_1983_HARN_Adj_MN_Mower GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Mower",DATUM["D_NAD_1983_HARN_Adj_MN_Mower",SPHEROID
104749 GCS_NAD_1983_HARN_Adj_MN_Murray GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Murray",DATUM["D_NAD_1983_HARN_Adj_MN_Murray",SPHEROID
104750 GCS_NAD_1983_HARN_Adj_MN_Nicollet GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Nicollet",DATUM["D_NAD_1983_HARN_Adj_MN_Nicollet",SPHEROI
104751 GCS_NAD_1983_HARN_Adj_MN_Nobles GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Nobles",DATUM["D_NAD_1983_HARN_Adj_MN_Nobles",SPHEROID
104752 GCS_NAD_1983_HARN_Adj_MN_Norman GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Norman",DATUM["D_NAD_1983_HARN_Adj_MN_Norman",SPHERO
104753 GCS_NAD_1983_HARN_Adj_MN_Olmsted GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Olmsted",DATUM["D_NAD_1983_HARN_Adj_MN_Olmsted",SPHER
104754 GCS_NAD_1983_HARN_Adj_MN_Ottertail GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Ottertail",DATUM["D_NAD_1983_HARN_Adj_MN_Ottertail",SPHERO
104755 GCS_NAD_1983_HARN_Adj_MN_Pennington GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Pennington",DATUM["D_NAD_1983_HARN_Adj_MN_Pennington",SP
104756 GCS_NAD_1983_HARN_Adj_MN_Pine GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Pine",DATUM["D_NAD_1983_HARN_Adj_MN_Pine",SPHEROID["S_
104757 GCS_NAD_1983_HARN_Adj_MN_Pipestone GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Pipestone",DATUM["D_NAD_1983_HARN_Adj_MN_Pipestone",SPH
104758 GCS_NAD_1983_HARN_Adj_MN_Polk GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Polk",DATUM["D_NAD_1983_HARN_Adj_MN_Polk",SPHEROID["S_
104759 GCS_NAD_1983_HARN_Adj_MN_Pope GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Pope",DATUM["D_NAD_1983_HARN_Adj_MN_Pope",SPHEROID["S
104760 GCS_NAD_1983_HARN_Adj_MN_Ramsey GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Ramsey",DATUM["D_NAD_1983_HARN_Adj_MN_Ramsey",SPHERO
104761 GCS_NAD_1983_HARN_Adj_MN_Red_Lake GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Red_Lake",DATUM["D_NAD_1983_HARN_Adj_MN_Red_Lake",SPH
104762 GCS_NAD_1983_HARN_Adj_MN_Redwood GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Redwood",DATUM["D_NAD_1983_HARN_Adj_MN_Redwood",SPHE
104763 GCS_NAD_1983_HARN_Adj_MN_Renville GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Renville",DATUM["D_NAD_1983_HARN_Adj_MN_Renville",SPHERO
104764 GCS_NAD_1983_HARN_Adj_MN_Rice GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Rice",DATUM["D_NAD_1983_HARN_Adj_MN_Rice",SPHEROID["S_
104765 GCS_NAD_1983_HARN_Adj_MN_Rock GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Rock",DATUM["D_NAD_1983_HARN_Adj_MN_Rock",SPHEROID["S
104766 GCS_NAD_1983_HARN_Adj_MN_Roseau GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Roseau",DATUM["D_NAD_1983_HARN_Adj_MN_Roseau",SPHERO
104767 GCS_NAD_1983_HARN_Adj_MN_St_Louis_North GEOGCS["GCS_NAD_1983_HARN_Adj_MN_St_Louis_North",DATUM["D_NAD_1983_HARN_Adj_MN_St_Louis_N
104768 GCS_NAD_1983_HARN_Adj_MN_St_Louis_Central GEOGCS["GCS_NAD_1983_HARN_Adj_MN_St_Louis_Central",DATUM["D_NAD_1983_HARN_Adj_MN_St_Louis
104769 GCS_NAD_1983_HARN_Adj_MN_St_Louis_South GEOGCS["GCS_NAD_1983_HARN_Adj_MN_St_Louis_South",DATUM["D_NAD_1983_HARN_Adj_MN_St_Louis_S
104770 GCS_NAD_1983_HARN_Adj_MN_Scott GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Scott",DATUM["D_NAD_1983_HARN_Adj_MN_Scott",SPHEROID["S
104771 GCS_NAD_1983_HARN_Adj_MN_Sherburne GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Sherburne",DATUM["D_NAD_1983_HARN_Adj_MN_Sherburne",SPH
104772 GCS_NAD_1983_HARN_Adj_MN_Sibley GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Sibley",DATUM["D_NAD_1983_HARN_Adj_MN_Sibley",SPHEROID[
104773 GCS_NAD_1983_HARN_Adj_MN_Stearns GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Stearns",DATUM["D_NAD_1983_HARN_Adj_MN_Stearns",SPHERO

Copyright 1995-2015 Esri. All rights reserved. 324


ArcGIS Runtime SDK for .NET

104774 GCS_NAD_1983_HARN_Adj_MN_Steele GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Steele",DATUM["D_NAD_1983_HARN_Adj_MN_Steele",SPHEROID


104775 GCS_NAD_1983_HARN_Adj_MN_Stevens GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Stevens",DATUM["D_NAD_1983_HARN_Adj_MN_Stevens",SPHERO
104776 GCS_NAD_1983_HARN_Adj_MN_Swift GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Swift",DATUM["D_NAD_1983_HARN_Adj_MN_Swift",SPHEROID["S_
104777 GCS_NAD_1983_HARN_Adj_MN_Todd GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Todd",DATUM["D_NAD_1983_HARN_Adj_MN_Todd",SPHEROID["S
104778 GCS_NAD_1983_HARN_Adj_MN_Traverse GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Traverse",DATUM["D_NAD_1983_HARN_Adj_MN_Traverse",SPHER
104779 GCS_NAD_1983_HARN_Adj_MN_Wabasha GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Wabasha",DATUM["D_NAD_1983_HARN_Adj_MN_Wabasha",SPHE
104780 GCS_NAD_1983_HARN_Adj_MN_Wadena GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Wadena",DATUM["D_NAD_1983_HARN_Adj_MN_Wadena",SPHER
104781 GCS_NAD_1983_HARN_Adj_MN_Waseca GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Waseca",DATUM["D_NAD_1983_HARN_Adj_MN_Waseca",SPHERO
104782 GCS_NAD_1983_HARN_Adj_MN_Watonwan GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Watonwan",DATUM["D_NAD_1983_HARN_Adj_MN_Watonwan",SPH
104783 GCS_NAD_1983_HARN_Adj_MN_Winona GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Winona",DATUM["D_NAD_1983_HARN_Adj_MN_Winona",SPHERO
104784 GCS_NAD_1983_HARN_Adj_MN_Wright GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Wright",DATUM["D_NAD_1983_HARN_Adj_MN_Wright",SPHEROID
104785 GCS_NAD_1983_HARN_Adj_MN_Yellow_Medicine GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Yellow_Medicine",DATUM["D_NAD_1983_HARN_Adj_MN_Yellow_M
104786 GCS_NAD_1983_HARN_Adj_MN_St_Louis GEOGCS["GCS_NAD_1983_HARN_Adj_MN_St_Louis",DATUM["D_NAD_1983_HARN_Adj_MN_St_Louis",SPHER
104896 GCS_ITRF_2005 GEOGCS["GCS_ITRF_2005",DATUM["D_ITRF_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIME
104900 GCS_Mercury_2000 GEOGCS["GCS_Mercury_2000",DATUM["D_Mercury_2000",SPHEROID["Mercury_2000_IAU_IAG",2439700.0,0.0]
104901 GCS_Venus_1985 GEOGCS["GCS_Venus_1985",DATUM["D_Venus_1985",SPHEROID["Venus_1985_IAU_IAG_COSPAR",6051000.
104902 GCS_Venus_2000 GEOGCS["GCS_Venus_2000",DATUM["D_Venus_2000",SPHEROID["Venus_2000_IAU_IAG",6051800.0,0.0]],PRIM
104903 GCS_Moon_2000 GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIME
104904 GCS_Mars_1979 GEOGCS["GCS_Mars_1979",DATUM["D_Mars_1979",SPHEROID["Mars_1979_IAU_IAG",3393400.0,192.0430107
104905 GCS_Mars_2000 GEOGCS["GCS_Mars_2000",DATUM["D_Mars_2000",SPHEROID["Mars_2000_IAU_IAG",3396190.0,169.8944472
104906 GCS_Deimos_2000 GEOGCS["GCS_Deimos_2000",DATUM["D_Deimos_2000",SPHEROID["Deimos_2000_IAU_IAG",6200.0,0.0]],PRIM
104907 GCS_Phobos_2000 GEOGCS["GCS_Phobos_2000",DATUM["D_Phobos_2000",SPHEROID["Phobos_2000_IAU_IAG",11100.0,0.0]],PR
104908 GCS_Jupiter_2000 GEOGCS["GCS_Jupiter_2000",DATUM["D_Jupiter_2000",SPHEROID["Jupiter_2000_IAU_IAG",71492000.0,15.414
104909 GCS_Adrastea_2000 GEOGCS["GCS_Adrastea_2000",DATUM["D_Adrastea_2000",SPHEROID["Adrastea_2000_IAU_IAG",8200.0,0.0]],
104910 GCS_Amalthea_2000 GEOGCS["GCS_Amalthea_2000",DATUM["D_Amalthea_2000",SPHEROID["Amalthea_2000_IAU_IAG",83500.0,0.0
104911 GCS_Ananke_2000 GEOGCS["GCS_Ananke_2000",DATUM["D_Ananke_2000",SPHEROID["Ananke_2000_IAU_IAG",10000.0,0.0]],PR
104912 GCS_Callisto_2000 GEOGCS["GCS_Callisto_2000",DATUM["D_Callisto_2000",SPHEROID["Callisto_2000_IAU_IAG",2409300.0,0.0]],P
104913 GCS_Carme_2000 GEOGCS["GCS_Carme_2000",DATUM["D_Carme_2000",SPHEROID["Carme_2000_IAU_IAG",15000.0,0.0]],PRIM
104914 GCS_Elara_2000 GEOGCS["GCS_Elara_2000",DATUM["D_Elara_2000",SPHEROID["Elara_2000_IAU_IAG",40000.0,0.0]],PRIMEM["
104915 GCS_Europa_2000 GEOGCS["GCS_Europa_2000",DATUM["D_Europa_2000",SPHEROID["Europa_2000_IAU_IAG",1562090.0,0.0]],P
104916 GCS_Ganymede_2000 GEOGCS["GCS_Ganymede_2000",DATUM["D_Ganymede_2000",SPHEROID["Ganymede_2000_IAU_IAG",26323
104917 GCS_Himalia_2000 GEOGCS["GCS_Himalia_2000",DATUM["D_Himalia_2000",SPHEROID["Himalia_2000_IAU_IAG",85000.0,0.0]],PR
104918 GCS_Io_2000 GEOGCS["GCS_Io_2000",DATUM["D_Io_2000",SPHEROID["Io_2000_IAU_IAG",1821460.0,0.0]],PRIMEM["Referen
104919 GCS_Leda_2000 GEOGCS["GCS_Leda_2000",DATUM["D_Leda_2000",SPHEROID["Leda_2000_IAU_IAG",5000.0,0.0]],PRIMEM["R
104920 GCS_Lysithea_2000 GEOGCS["GCS_Lysithea_2000",DATUM["D_Lysithea_2000",SPHEROID["Lysithea_2000_IAU_IAG",12000.0,0.0]],P
104921 GCS_Metis_2000 GEOGCS["GCS_Metis_2000",DATUM["D_Metis_2000",SPHEROID["Metis_2000_IAU_IAG",30000.0,3.0]],PRIMEM[
104922 GCS_Pasiphae_2000 GEOGCS["GCS_Pasiphae_2000",DATUM["D_Pasiphae_2000",SPHEROID["Pasiphae_2000_IAU_IAG",18000.0,0.0
104923 GCS_Sinope_2000 GEOGCS["GCS_Sinope_2000",DATUM["D_Sinope_2000",SPHEROID["Sinope_2000_IAU_IAG",14000.0,0.0]],PRIM
104924 GCS_Thebe_2000 GEOGCS["GCS_Thebe_2000",DATUM["D_Thebe_2000",SPHEROID["Thebe_2000_IAU_IAG",49300.0,0.0]],PRIME
104925 GCS_Saturn_2000 GEOGCS["GCS_Saturn_2000",DATUM["D_Saturn_2000",SPHEROID["Saturn_2000_IAU_IAG",60268000.0,10.207
104926 GCS_Atlas_2000 GEOGCS["GCS_Atlas_2000",DATUM["D_Atlas_2000",SPHEROID["Atlas_2000_IAU_IAG",16000.0,0.0]],PRIMEM["R
104927 GCS_Calypso_2000 GEOGCS["GCS_Calypso_2000",DATUM["D_Calypso_2000",SPHEROID["Calypso_2000_IAU_IAG",9500.0,0.0]],PR
104928 GCS_Dione_2000 GEOGCS["GCS_Dione_2000",DATUM["D_Dione_2000",SPHEROID["Dione_2000_IAU_IAG",560000.0,0.0]],PRIME
104929 GCS_Enceladus_2000 GEOGCS["GCS_Enceladus_2000",DATUM["D_Enceladus_2000",SPHEROID["Enceladus_2000_IAU_IAG",249400.
104930 GCS_Epimetheus_2000 GEOGCS["GCS_Epimetheus_2000",DATUM["D_Epimetheus_2000",SPHEROID["Epimetheus_2000_IAU_IAG",595
104931 GCS_Helene_2000 GEOGCS["GCS_Helene_2000",DATUM["D_Helene_2000",SPHEROID["Helene_2000_IAU_IAG",16000.0,0.0]],PRIM
104932 GCS_Hyperion_2000 GEOGCS["GCS_Hyperion_2000",DATUM["D_Hyperion_2000",SPHEROID["Hyperion_2000_IAU_IAG",133000.0,0.0
104933 GCS_Iapetus_2000 GEOGCS["GCS_Iapetus_2000",DATUM["D_Iapetus_2000",SPHEROID["Iapetus_2000_IAU_IAG",718000.0,0.0]],PR
104934 GCS_Janus_2000 GEOGCS["GCS_Janus_2000",DATUM["D_Janus_2000",SPHEROID["Janus_2000_IAU_IAG",888000.0,0.0]],PRIME
104935 GCS_Mimas_2000 GEOGCS["GCS_Mimas_2000",DATUM["D_Mimas_2000",SPHEROID["Mimas_2000_IAU_IAG",1986300.0,0.0]],PR
104936 GCS_Pan_2000 GEOGCS["GCS_Pan_2000",DATUM["D_Pan_2000",SPHEROID["Pan_2000_IAU_IAG",10000.0,0.0]],PRIMEM["Ref
104937 GCS_Pandora_2000 GEOGCS["GCS_Pandora_2000",DATUM["D_Pandora_2000",SPHEROID["Pandora_2000_IAU_IAG",41900.0,0.0]],
104938 GCS_Phoebe_2000 GEOGCS["GCS_Phoebe_2000",DATUM["D_Phoebe_2000",SPHEROID["Phoebe_2000_IAU_IAG",110000.0,0.0]],P
104939 GCS_Prometheus_2000 GEOGCS["GCS_Prometheus_2000",DATUM["D_Prometheus_2000",SPHEROID["Prometheus_2000_IAU_IAG",501

Copyright 1995-2015 Esri. All rights reserved. 325


ArcGIS Runtime SDK for .NET

104940 GCS_Rhea_2000 GEOGCS["GCS_Rhea_2000",DATUM["D_Rhea_2000",SPHEROID["Rhea_2000_IAU_IAG",764000.0,0.0]],PRIMEM


104941 GCS_Telesto_2000 GEOGCS["GCS_Telesto_2000",DATUM["D_Telesto_2000",SPHEROID["Telesto_2000_IAU_IAG",11000.0,0.0]],PRI
104942 GCS_Tethys_2000 GEOGCS["GCS_Tethys_2000",DATUM["D_Tethys_2000",SPHEROID["Tethys_2000_IAU_IAG",529800.0,0.0]],PRIM
104943 GCS_Titan_2000 GEOGCS["GCS_Titan_2000",DATUM["D_Titan_2000",SPHEROID["Titan_2000_IAU_IAG",2575000.0,0.0]],PRIMEM
104944 GCS_Uranus_2000 GEOGCS["GCS_Uranus_2000",DATUM["D_Uranus_2000",SPHEROID["Uranus_2000_IAU_IAG",25559000.0,43.61
104945 GCS_Ariel_2000 GEOGCS["GCS_Ariel_2000",DATUM["D_Ariel_2000",SPHEROID["Ariel_2000_IAU_IAG",578900.0,0.0]],PRIMEM["R
104946 GCS_Belinda_2000 GEOGCS["GCS_Belinda_2000",DATUM["D_Belinda_2000",SPHEROID["Belinda_2000_IAU_IAG",33000.0,0.0]],PR
104947 GCS_Bianca_2000 GEOGCS["GCS_Bianca_2000",DATUM["D_Bianca_2000",SPHEROID["Bianca_2000_IAU_IAG",21000.0,0.0]],PRIM
104948 GCS_Cordelia_2000 GEOGCS["GCS_Cordelia_2000",DATUM["D_Cordelia_2000",SPHEROID["Cordelia_2000_IAU_IAG",13000.0,0.0]],P
104949 GCS_Cressida_2000 GEOGCS["GCS_Cressida_2000",DATUM["D_Cressida_2000",SPHEROID["Cressida_2000_IAU_IAG",31000.0,0.0]]
104950 GCS_Desdemona_2000 GEOGCS["GCS_Desdemona_2000",DATUM["D_Desdemona_2000",SPHEROID["Desdemona_2000_IAU_IAG",270
104951 GCS_Juliet_2000 GEOGCS["GCS_Juliet_2000",DATUM["D_Juliet_2000",SPHEROID["Juliet_2000_IAU_IAG",42000.0,0.0]],PRIMEM["
104952 GCS_Miranda_2000 GEOGCS["GCS_Miranda_2000",DATUM["D_Miranda_2000",SPHEROID["Miranda_2000_IAU_IAG",235800.0,0.0]],
104953 GCS_Oberon_2000 GEOGCS["GCS_Oberon_2000",DATUM["D_Oberon_2000",SPHEROID["Oberon_2000_IAU_IAG",761400.0,0.0]],PR
104954 GCS_Ophelia_2000 GEOGCS["GCS_Ophelia_2000",DATUM["D_Ophelia_2000",SPHEROID["Ophelia_2000_IAU_IAG",15000.0,0.0]],PR
104955 GCS_Portia_2000 GEOGCS["GCS_Portia_2000",DATUM["D_Portia_2000",SPHEROID["Portia_2000_IAU_IAG",54000.0,0.0]],PRIMEM
104956 GCS_Puck_2000 GEOGCS["GCS_Puck_2000",DATUM["D_Puck_2000",SPHEROID["Puck_2000_IAU_IAG",77000.0,0.0]],PRIMEM["R
104957 GCS_Rosalind_2000 GEOGCS["GCS_Rosalind_2000",DATUM["D_Rosalind_2000",SPHEROID["Rosalind_2000_IAU_IAG",27000.0,0.0]]
104958 GCS_Titania_2000 GEOGCS["GCS_Titania_2000",DATUM["D_Titania_2000",SPHEROID["Titania_2000_IAU_IAG",788900.0,0.0]],PRIM
104959 GCS_Umbriel_2000 GEOGCS["GCS_Umbriel_2000",DATUM["D_Umbriel_2000",SPHEROID["Umbriel_2000_IAU_IAG",584700.0,0.0]],P
104960 GCS_Neptune_2000 GEOGCS["GCS_Neptune_2000",DATUM["D_Neptune_2000",SPHEROID["Neptune_2000_IAU_IAG",24764000.0,5
104961 GCS_Despina_2000 GEOGCS["GCS_Despina_2000",DATUM["D_Despina_2000",SPHEROID["Despina_2000_IAU_IAG",74000.0,0.0]],P
104962 GCS_Galatea_2000 GEOGCS["GCS_Galatea_2000",DATUM["D_Galatea_2000",SPHEROID["Galatea_2000_IAU_IAG",79000.0,0.0]],PR
104963 GCS_Larissa_2000 GEOGCS["GCS_Larissa_2000",DATUM["D_Larissa_2000",SPHEROID["Larissa_2000_IAU_IAG",104000.0,6.93333
104964 GCS_Naiad_2000 GEOGCS["GCS_Naiad_2000",DATUM["D_Naiad_2000",SPHEROID["Naiad_2000_IAU_IAG",29000.0,0.0]],PRIMEM
104965 GCS_Nereid_2000 GEOGCS["GCS_Nereid_2000",DATUM["D_Nereid_2000",SPHEROID["Nereid_2000_IAU_IAG",170000.0,0.0]],PRIM
104966 GCS_Proteus_2000 GEOGCS["GCS_Proteus_2000",DATUM["D_Proteus_2000",SPHEROID["Proteus_2000_IAU_IAG",208000.0,0.0]],P
104967 GCS_Thalassa_2000 GEOGCS["GCS_Thalassa_2000",DATUM["D_Thalassa_2000",SPHEROID["Thalassa_2000_IAU_IAG",40000.0,0.0
104968 GCS_Triton_2000 GEOGCS["GCS_Triton_2000",DATUM["D_Triton_2000",SPHEROID["Triton_2000_IAU_IAG",1352600.0,0.0]],PRIME
104969 GCS_Pluto_2000 GEOGCS["GCS_Pluto_2000",DATUM["D_Pluto_2000",SPHEROID["Pluto_2000_IAU_IAG",1195000.0,0.0]],PRIMEM
104970 GCS_Charon_2000 GEOGCS["GCS_Charon_2000",DATUM["D_Charon_2000",SPHEROID["Charon_2000_IAU_IAG",593000.0,0.0]],PR

Related Topics
Spatial references

Copyright 1995-2015 Esri. All rights reserved. 326


ArcGIS Runtime SDK for .NET

Projected coordinate systems


Well- Name Well-known text
known
ID
2000 Anguilla_1957_British_West_Indies_Grid PROJCS["Anguilla_1957_British_West_Indies_Grid",GEOGCS["GCS_Anguilla_1957",DATUM["D_An
2001 Antigua_1943_British_West_Indies_Grid PROJCS["Antigua_1943_British_West_Indies_Grid",GEOGCS["GCS_Antigua_1943",DATUM["D_An
2002 Dominica_1945_British_West_Indies_Grid PROJCS["Dominica_1945_British_West_Indies_Grid",GEOGCS["GCS_Dominica_1945",DATUM["D_
2003 Grenada_1953_British_West_Indies_Grid PROJCS["Grenada_1953_British_West_Indies_Grid",GEOGCS["GCS_Grenada_1953",DATUM["D_G
2004 Montserrat_1958_British_West_Indies_Grid PROJCS["Montserrat_1958_British_West_Indies_Grid",GEOGCS["GCS_Montserrat_1958",DATUM[
2005 St_Kitts_1955_British_West_Indies_Grid PROJCS["St_Kitts_1955_British_West_Indies_Grid",GEOGCS["GCS_St_Kitts_1955",DATUM["D_St
2006 St_Lucia_1955_British_West_Indies_Grid PROJCS["St_Lucia_1955_British_West_Indies_Grid",GEOGCS["GCS_St_Lucia_1955",DATUM["D_S
2007 St_Vincent_1945_British_West_Indies_Grid PROJCS["St_Vincent_1945_British_West_Indies_Grid",GEOGCS["GCS_St_Vincent_1945",DATUM[
2008 NAD_1927_CGQ77_MTM_2_SCoPQ PROJCS["NAD_1927_CGQ77_MTM_2_SCoPQ",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_
2009 NAD_1927_CGQ77_MTM_3_SCoPQ PROJCS["NAD_1927_CGQ77_MTM_3_SCoPQ",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_
2010 NAD_1927_CGQ77_MTM_4_SCoPQ PROJCS["NAD_1927_CGQ77_MTM_4_SCoPQ",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_
2011 NAD_1927_CGQ77_MTM_5_SCoPQ PROJCS["NAD_1927_CGQ77_MTM_5_SCoPQ",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_
2012 NAD_1927_CGQ77_MTM_6_SCoPQ PROJCS["NAD_1927_CGQ77_MTM_6_SCoPQ",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_
2013 NAD_1927_CGQ77_MTM_7_SCoPQ PROJCS["NAD_1927_CGQ77_MTM_7_SCoPQ",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_
2014 NAD_1927_CGQ77_MTM_8_SCoPQ PROJCS["NAD_1927_CGQ77_MTM_8_SCoPQ",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_
2015 NAD_1927_CGQ77_MTM_9_SCoPQ PROJCS["NAD_1927_CGQ77_MTM_9_SCoPQ",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_
2016 NAD_1927_CGQ77_MTM_10_SCoPQ PROJCS["NAD_1927_CGQ77_MTM_10_SCoPQ",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D
2017 NAD_1927_DEF_1976_MTM_8 PROJCS["NAD_1927_DEF_1976_MTM_8",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM["
2018 NAD_1927_DEF_1976_MTM_9 PROJCS["NAD_1927_DEF_1976_MTM_9",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM["
2019 NAD_1927_DEF_1976_MTM_10 PROJCS["NAD_1927_DEF_1976_MTM_10",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM
2020 NAD_1927_DEF_1976_MTM_11 PROJCS["NAD_1927_DEF_1976_MTM_11",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM
2021 NAD_1927_DEF_1976_MTM_12 PROJCS["NAD_1927_DEF_1976_MTM_12",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM
2022 NAD_1927_DEF_1976_MTM_13 PROJCS["NAD_1927_DEF_1976_MTM_13",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM
2023 NAD_1927_DEF_1976_MTM_14 PROJCS["NAD_1927_DEF_1976_MTM_14",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM
2024 NAD_1927_DEF_1976_MTM_15 PROJCS["NAD_1927_DEF_1976_MTM_15",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM
2025 NAD_1927_DEF_1976_MTM_16 PROJCS["NAD_1927_DEF_1976_MTM_16",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM
2026 NAD_1927_DEF_1976_MTM_17 PROJCS["NAD_1927_DEF_1976_MTM_17",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM
2027 NAD_1927_DEF_1976_UTM_Zone_15N PROJCS["NAD_1927_DEF_1976_UTM_Zone_15N",GEOGCS["GCS_NAD_1927_Definition_1976",D
2028 NAD_1927_DEF_1976_UTM_Zone_16N PROJCS["NAD_1927_DEF_1976_UTM_Zone_16N",GEOGCS["GCS_NAD_1927_Definition_1976",D
2029 NAD_1927_DEF_1976_UTM_Zone_17N PROJCS["NAD_1927_DEF_1976_UTM_Zone_17N",GEOGCS["GCS_NAD_1927_Definition_1976",D
2030 NAD_1927_DEF_1976_UTM_Zone_18N PROJCS["NAD_1927_DEF_1976_UTM_Zone_18N",GEOGCS["GCS_NAD_1927_Definition_1976",D
2031 NAD_1927_CGQ77_UTM_Zone_17N PROJCS["NAD_1927_CGQ77_UTM_Zone_17N",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_
2032 NAD_1927_CGQ77_UTM_Zone_18N PROJCS["NAD_1927_CGQ77_UTM_Zone_18N",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_
2033 NAD_1927_CGQ77_UTM_Zone_19N PROJCS["NAD_1927_CGQ77_UTM_Zone_19N",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_
2034 NAD_1927_CGQ77_UTM_Zone_20N PROJCS["NAD_1927_CGQ77_UTM_Zone_20N",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_
2035 NAD_1927_CGQ77_UTM_Zone_21N PROJCS["NAD_1927_CGQ77_UTM_Zone_21N",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_
2039 Israel_TM_Grid PROJCS["Israel_TM_Grid",GEOGCS["GCS_Israel",DATUM["D_Israel",SPHEROID["GRS_1980",637
2040 Locodjo_1965_UTM_Zone_30N PROJCS["Locodjo_1965_UTM_Zone_30N",GEOGCS["GCS_Locodjo_1965",DATUM["D_Locodjo_19
2041 Abidjan_1987_UTM_Zone_30N PROJCS["Abidjan_1987_UTM_Zone_30N",GEOGCS["GCS_Abidjan_1987",DATUM["D_Abidjan_198
2042 Locodjo_1965_UTM_Zone_29N PROJCS["Locodjo_1965_UTM_Zone_29N",GEOGCS["GCS_Locodjo_1965",DATUM["D_Locodjo_19
2043 Abidjan_1987_UTM_Zone_29N PROJCS["Abidjan_1987_UTM_Zone_29N",GEOGCS["GCS_Abidjan_1987",DATUM["D_Abidjan_198
2044 Hanoi_1972_GK_Zone_18 PROJCS["Hanoi_1972_GK_Zone_18",GEOGCS["GCS_Hanoi_1972",DATUM["D_Hanoi_1972",SPH
2045 Hanoi_1972_GK_Zone_19 PROJCS["Hanoi_1972_GK_Zone_19",GEOGCS["GCS_Hanoi_1972",DATUM["D_Hanoi_1972",SPH
2056 CH1903+_LV95 PROJCS["CH1903+_LV95",GEOGCS["GCS_CH1903+",DATUM["D_CH1903+",SPHEROID["Bessel_
2057 Rassadiran_Nakhl_e_Taqi PROJCS["Rassadiran_Nakhl_e_Taqi",GEOGCS["GCS_Rassadiran",DATUM["D_Rassadiran",SPHE
2058 ED_1950_ED77_UTM_Zone_38N PROJCS["ED_1950_ED77_UTM_Zone_38N",GEOGCS["GCS_European_1950_ED77",DATUM["D_
2059 ED_1950_ED77_UTM_Zone_39N PROJCS["ED_1950_ED77_UTM_Zone_39N",GEOGCS["GCS_European_1950_ED77",DATUM["D_
2060 ED_1950_ED77_UTM_Zone_40N PROJCS["ED_1950_ED77_UTM_Zone_40N",GEOGCS["GCS_European_1950_ED77",DATUM["D_
2061 ED_1950_ED77_UTM_Zone_41N PROJCS["ED_1950_ED77_UTM_Zone_41N",GEOGCS["GCS_European_1950_ED77",DATUM["D_
2062 Madrid_1870_Madrid_Spain PROJCS["Madrid_1870_Madrid_Spain",GEOGCS["GCS_Madrid_1870_Madrid",DATUM["D_Madrid_

Copyright 1995-2015 Esri. All rights reserved. 327


ArcGIS Runtime SDK for .NET

2065 S-JTSK_Ferro_Krovak PROJCS["S-JTSK_Ferro_Krovak",GEOGCS["GCS_S_JTSK_Ferro",DATUM["D_S_JTSK",SPHERO


2066 Mount_Dillon_Tobago_Grid PROJCS["Mount_Dillon_Tobago_Grid",GEOGCS["GCS_Mount_Dillon",DATUM["D_Mount_Dillon",S
2067 Naparima_1955_UTM_Zone_20N PROJCS["Naparima_1955_UTM_Zone_20N",GEOGCS["GCS_Naparima_1955",DATUM["D_Naparim
2068 ELD_1979_Libya_5 PROJCS["ELD_1979_Libya_5",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_Europ
2069 ELD_1979_Libya_6 PROJCS["ELD_1979_Libya_6",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_Europ
2070 ELD_1979_Libya_7 PROJCS["ELD_1979_Libya_7",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_Europ
2071 ELD_1979_Libya_8 PROJCS["ELD_1979_Libya_8",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_Europ
2072 ELD_1979_Libya_9 PROJCS["ELD_1979_Libya_9",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_Europ
2073 ELD_1979_Libya_10 PROJCS["ELD_1979_Libya_10",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_Euro
2074 ELD_1979_Libya_11 PROJCS["ELD_1979_Libya_11",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_Euro
2075 ELD_1979_Libya_12 PROJCS["ELD_1979_Libya_12",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_Euro
2076 ELD_1979_Libya_13 PROJCS["ELD_1979_Libya_13",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_Euro
2077 ELD_1979_UTM_Zone_32N PROJCS["ELD_1979_UTM_Zone_32N",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["
2078 ELD_1979_UTM_Zone_33N PROJCS["ELD_1979_UTM_Zone_33N",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["
2079 ELD_1979_UTM_Zone_34N PROJCS["ELD_1979_UTM_Zone_34N",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["
2080 ELD_1979_UTM_Zone_35N PROJCS["ELD_1979_UTM_Zone_35N",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["
2081 Chos_Malal_1914_Argentina_2 PROJCS["Chos_Malal_1914_Argentina_2",GEOGCS["GCS_Chos_Malal_1914",DATUM["D_Chos_M
2082 Pampa_del_Castillo_Argentina_2 PROJCS["Pampa_del_Castillo_Argentina_2",GEOGCS["GCS_Pampa_del_Castillo",DATUM["D_Pam
2083 Hito_XVIII_1963_Argentina_2 PROJCS["Hito_XVIII_1963_Argentina_2",GEOGCS["GCS_Hito_XVIII_1963",DATUM["D_Hito_XVIII_
2084 Hito_XVIII_1963_UTM_19S PROJCS["Hito_XVIII_1963_UTM_19S",GEOGCS["GCS_Hito_XVIII_1963",DATUM["D_Hito_XVIII_1
2085 NAD_1927_Cuba_Norte PROJCS["NAD_1927_Cuba_Norte",GEOGCS["GCS_North_American_1927",DATUM["D_North_Am
2086 NAD_1927_Cuba_Sur PROJCS["NAD_1927_Cuba_Sur",GEOGCS["GCS_North_American_1927",DATUM["D_North_Amer
2087 ELD_1979_TM_12_NE PROJCS["ELD_1979_TM_12_NE",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_Eu
2088 Carthage_TM_11_NE PROJCS["Carthage_TM_11_NE",GEOGCS["GCS_Carthage",DATUM["D_Carthage",SPHEROID["Cl
2089 Yemen_NGN_1996_UTM_Zone_38N PROJCS["Yemen_NGN_1996_UTM_Zone_38N",GEOGCS["GCS_Yemen_NGN_1996",DATUM["D_
2090 Yemen_NGN_1996_UTM_Zone_39N PROJCS["Yemen_NGN_1996_UTM_Zone_39N",GEOGCS["GCS_Yemen_NGN_1996",DATUM["D_
2093 Hanoi_1972_GK_106_NE PROJCS["Hanoi_1972_GK_106_NE",GEOGCS["GCS_Hanoi_1972",DATUM["D_Hanoi_1972",SPHE
2094 WGS_1972_BE_TM_106_NE PROJCS["WGS_1972_BE_TM_106_NE",GEOGCS["GCS_WGS_1972_BE",DATUM["D_WGS_1972
2095 Bissau_UTM_Zone_28N PROJCS["Bissau_UTM_Zone_28N",GEOGCS["GCS_Bissau",DATUM["D_Bissau",SPHEROID["Inter
2096 Korean_1985_Korea_East_Belt PROJCS["Korean_1985_Korea_East_Belt",GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Kore
2097 Korean_1985_Korea_Central_Belt PROJCS["Korean_1985_Korea_Central_Belt",GEOGCS["GCS_Korean_Datum_1985",DATUM["D_K
2098 Korean_1985_Korea_West_Belt PROJCS["Korean_1985_Korea_West_Belt",GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Kor
2099 Qatar_1948_Qatar_Grid PROJCS["Qatar_1948_Qatar_Grid",GEOGCS["GCS_Qatar_1948",DATUM["D_Qatar_1948",SPHER
2100 Greek_Grid PROJCS["Greek_Grid",GEOGCS["GCS_GGRS_1987",DATUM["D_GGRS_1987",SPHEROID["GRS
2101 Lake_Maracaibo_Grid_M1 PROJCS["Lake_Maracaibo_Grid_M1",GEOGCS["GCS_Lake",DATUM["D_Lake",SPHEROID["Interna
2102 Lake_Maracaibo_Grid PROJCS["Lake_Maracaibo_Grid",GEOGCS["GCS_Lake",DATUM["D_Lake",SPHEROID["Internation
2103 Lake_Maracaibo_Grid_M3 PROJCS["Lake_Maracaibo_Grid_M3",GEOGCS["GCS_Lake",DATUM["D_Lake",SPHEROID["Interna
2104 Lake_Maracaibo_La_Rosa_Grid PROJCS["Lake_Maracaibo_La_Rosa_Grid",GEOGCS["GCS_Lake",DATUM["D_Lake",SPHEROID["
2105 NZGD_2000_Mount_Eden_Circuit PROJCS["NZGD_2000_Mount_Eden_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_20
2106 NZGD_2000_Bay_of_Plenty_Circuit PROJCS["NZGD_2000_Bay_of_Plenty_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2
2107 NZGD_2000_Poverty_Bay_Circuit PROJCS["NZGD_2000_Poverty_Bay_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_20
2108 NZGD_2000_Hawkes_Bay_Circuit PROJCS["NZGD_2000_Hawkes_Bay_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_20
2109 NZGD_2000_Taranaki_Circuit PROJCS["NZGD_2000_Taranaki_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",
2110 NZGD_2000_Tuhirangi_Circuit PROJCS["NZGD_2000_Tuhirangi_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000"
2111 NZGD_2000_Wanganui_Circuit PROJCS["NZGD_2000_Wanganui_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000
2112 NZGD_2000_Wairarapa_Circuit PROJCS["NZGD_2000_Wairarapa_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000
2113 NZGD_2000_Wellington_Circuit PROJCS["NZGD_2000_Wellington_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000
2114 NZGD_2000_Collingwood_Circuit PROJCS["NZGD_2000_Collingwood_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_200
2115 NZGD_2000_Nelson_Circuit PROJCS["NZGD_2000_Nelson_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",S
2116 NZGD_2000_Karamea_Circuit PROJCS["NZGD_2000_Karamea_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000"
2117 NZGD_2000_Buller_Circuit PROJCS["NZGD_2000_Buller_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SP
2118 NZGD_2000_Grey_Circuit PROJCS["NZGD_2000_Grey_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPH
2119 NZGD_2000_Amuri_Circuit PROJCS["NZGD_2000_Amuri_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SP
2120 NZGD_2000_Marlborough_Circuit PROJCS["NZGD_2000_Marlborough_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_20

Copyright 1995-2015 Esri. All rights reserved. 328


ArcGIS Runtime SDK for .NET

2121 NZGD_2000_Hokitika_Circuit PROJCS["NZGD_2000_Hokitika_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",S


2122 NZGD_2000_Okarito_Circuit PROJCS["NZGD_2000_Okarito_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",S
2123 NZGD_2000_Jacksons_Bay_Circuit PROJCS["NZGD_2000_Jacksons_Bay_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2
2124 NZGD_2000_Mount_Pleasant_Circuit PROJCS["NZGD_2000_Mount_Pleasant_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD
2125 NZGD_2000_Gawler_Circuit PROJCS["NZGD_2000_Gawler_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",S
2126 NZGD_2000_Timaru_Circuit PROJCS["NZGD_2000_Timaru_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",S
2127 NZGD_2000_Lindis_Peak_Circuit PROJCS["NZGD_2000_Lindis_Peak_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_200
2128 NZGD_2000_Mount_Nicholas_Circuit PROJCS["NZGD_2000_Mount_Nicholas_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_
2129 NZGD_2000_Mount_York_Circuit PROJCS["NZGD_2000_Mount_York_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_200
2130 NZGD_2000_Observation_Point_Circuit PROJCS["NZGD_2000_Observation_Point_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZG
2131 NZGD_2000_North_Taieri_Circuit PROJCS["NZGD_2000_North_Taieri_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_200
2132 NZGD_2000_Bluff_Circuit PROJCS["NZGD_2000_Bluff_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPH
2133 NZGD_2000_UTM_Zone_58S PROJCS["NZGD_2000_UTM_Zone_58S",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",
2134 NZGD_2000_UTM_Zone_59S PROJCS["NZGD_2000_UTM_Zone_59S",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",
2135 NZGD_2000_UTM_Zone_60S PROJCS["NZGD_2000_UTM_Zone_60S",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",
2136 Accra_Ghana_Grid PROJCS["Accra_Ghana_Grid",GEOGCS["GCS_Accra",DATUM["D_Accra",SPHEROID["War_Office"
2137 Accra_TM_1_NW PROJCS["Accra_TM_1_NW",GEOGCS["GCS_Accra",DATUM["D_Accra",SPHEROID["War_Office",6
2138 NAD_1927_CGQ77_Quebec_Lambert PROJCS["NAD_1927_CGQ77_Quebec_Lambert",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D
2154 RGF_1993_Lambert_93 PROJCS["RGF_1993_Lambert_93",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHERO
2157 IRENET95_Irish_Transverse_Mercator PROJCS["IRENET95_Irish_Transverse_Mercator",GEOGCS["GCS_IRENET95",DATUM["D_IRENET
2158 IRENET95_UTM_Zone_29N PROJCS["IRENET95_UTM_Zone_29N",GEOGCS["GCS_IRENET95",DATUM["D_IRENET95",SPHE
2159 Sierra_Leone_1924_New_Colony_Grid PROJCS["Sierra_Leone_1924_New_Colony_Grid",GEOGCS["GCS_Sierra_Leone_1924",DATUM["D
2160 Sierra_Leone_1924_New_War_Office_Grid PROJCS["Sierra_Leone_1924_New_War_Office_Grid",GEOGCS["GCS_Sierra_Leone_1924",DATU
2161 Sierra_Leone_1968_UTM_Zone_28N PROJCS["Sierra_Leone_1968_UTM_Zone_28N",GEOGCS["GCS_Sierra_Leone_1968",DATUM["D_
2162 Sierra_Leone_1968_UTM_Zone_29N PROJCS["Sierra_Leone_1968_UTM_Zone_29N",GEOGCS["GCS_Sierra_Leone_1968",DATUM["D_
2163 US_National_Atlas_Equal_Area PROJCS["US_National_Atlas_Equal_Area",GEOGCS["GCS_Sphere_Clarke_1866_Authalic",DATUM
2164 Locodjo_1965_TM_5_NW PROJCS["Locodjo_1965_TM_5_NW",GEOGCS["GCS_Locodjo_1965",DATUM["D_Locodjo_1965",S
2165 Abidjan_1987_TM_5_NW PROJCS["Abidjan_1987_TM_5_NW",GEOGCS["GCS_Abidjan_1987",DATUM["D_Abidjan_1987",SP
2169 Luxembourg_1930_Gauss PROJCS["Luxembourg_1930_Gauss",GEOGCS["GCS_Luxembourg_1930",DATUM["D_Luxembourg
2170 MGI_Slovenia_Grid PROJCS["MGI_Slovenia_Grid",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",
2172 Pulkovo_1942_Adj_1958_Poland_Zone_II PROJCS["Pulkovo_1942_Adj_1958_Poland_Zone_II",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DA
2173 Pulkovo_1942_Adj_1958_Poland_Zone_III PROJCS["Pulkovo_1942_Adj_1958_Poland_Zone_III",GEOGCS["GCS_Pulkovo_1942_Adj_1958",D
2174 Pulkovo_1942_Adj_1958_Poland_Zone_IV PROJCS["Pulkovo_1942_Adj_1958_Poland_Zone_IV",GEOGCS["GCS_Pulkovo_1942_Adj_1958",D
2175 Pulkovo_1942_Adj_1958_Poland_Zone_V PROJCS["Pulkovo_1942_Adj_1958_Poland_Zone_V",GEOGCS["GCS_Pulkovo_1942_Adj_1958",D
2176 ETRS_1989_Poland_CS2000_Zone_5 PROJCS["ETRS_1989_Poland_CS2000_Zone_5",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS
2177 ETRS_1989_Poland_CS2000_Zone_6 PROJCS["ETRS_1989_Poland_CS2000_Zone_6",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS
2178 ETRS_1989_Poland_CS2000_Zone_7 PROJCS["ETRS_1989_Poland_CS2000_Zone_7",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS
2179 ETRS_1989_Poland_CS2000_Zone_8 PROJCS["ETRS_1989_Poland_CS2000_Zone_8",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS
2180 ETRS_1989_Poland_CS92 PROJCS["ETRS_1989_Poland_CS92",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPH
2188 Azores_Occidental_1939_UTM_Zone_25N PROJCS["Azores_Occidental_1939_UTM_Zone_25N",GEOGCS["GCS_Azores_Occidental_1939",D
2189 Azores_Central_1948_UTM_Zone_26N PROJCS["Azores_Central_1948_UTM_Zone_26N",GEOGCS["GCS_Azores_Central_1948",DATUM
2190 Azores_Oriental_1940_UTM_Zone_26N PROJCS["Azores_Oriental_1940_UTM_Zone_26N",GEOGCS["GCS_Azores_Oriental_1940",DATUM
2191 Madeira_1936_UTM_Zone_28N PROJCS["Madeira_1936_UTM_Zone_28N",GEOGCS["GCS_Madeira_1936",DATUM["D_Madeira_1
2192 ED_1950_France_EuroLambert PROJCS["ED_1950_France_EuroLambert",GEOGCS["GCS_European_1950",DATUM["D_European
2193 NZGD_2000_New_Zealand_Transverse_Mercator PROJCS["NZGD_2000_New_Zealand_Transverse_Mercator",GEOGCS["GCS_NZGD_2000",DATU
2195 NAD_1983_HARN_UTM_Zone_2S PROJCS["NAD_1983_HARN_UTM_Zone_2S",GEOGCS["GCS_North_American_1983_HARN",DAT
2196 ETRS_1989_Kp2000_Jutland PROJCS["ETRS_1989_Kp2000_Jutland",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
2197 ETRS_1989_Kp2000_Zealand PROJCS["ETRS_1989_Kp2000_Zealand",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
2198 ETRS_1989_Kp2000_Bornholm PROJCS["ETRS_1989_Kp2000_Bornholm",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989"
2200 ATS_1977_New_Brunswick_Stereographic PROJCS["ATS_1977_New_Brunswick_Stereographic",GEOGCS["GCS_ATS_1977",DATUM["D_ATS
2201 REGVEN_UTM_Zone_18N PROJCS["REGVEN_UTM_Zone_18N",GEOGCS["GCS_REGVEN",DATUM["D_REGVEN",SPHERO
2202 REGVEN_UTM_Zone_19N PROJCS["REGVEN_UTM_Zone_19N",GEOGCS["GCS_REGVEN",DATUM["D_REGVEN",SPHERO
2203 REGVEN_UTM_Zone_20N PROJCS["REGVEN_UTM_Zone_20N",GEOGCS["GCS_REGVEN",DATUM["D_REGVEN",SPHERO
2204 NAD_1927_StatePlane_Tennessee_FIPS_4100 PROJCS["NAD_1927_StatePlane_Tennessee_FIPS_4100",GEOGCS["GCS_North_American_1927

Copyright 1995-2015 Esri. All rights reserved. 329


ArcGIS Runtime SDK for .NET

2205 NAD_1983_StatePlane_Kentucky_North_FIPS_1601 PROJCS["NAD_1983_StatePlane_Kentucky_North_FIPS_1601",GEOGCS["GCS_North_American_


2206 ED_1950_3_Degree_GK_Zone_9 PROJCS["ED_1950_3_Degree_GK_Zone_9",GEOGCS["GCS_European_1950",DATUM["D_Europe
2207 ED_1950_3_Degree_GK_Zone_10 PROJCS["ED_1950_3_Degree_GK_Zone_10",GEOGCS["GCS_European_1950",DATUM["D_Europ
2208 ED_1950_3_Degree_GK_Zone_11 PROJCS["ED_1950_3_Degree_GK_Zone_11",GEOGCS["GCS_European_1950",DATUM["D_Europ
2209 ED_1950_3_Degree_GK_Zone_12 PROJCS["ED_1950_3_Degree_GK_Zone_12",GEOGCS["GCS_European_1950",DATUM["D_Europ
2210 ED_1950_3_Degree_GK_Zone_13 PROJCS["ED_1950_3_Degree_GK_Zone_13",GEOGCS["GCS_European_1950",DATUM["D_Europ
2211 ED_1950_3_Degree_GK_Zone_14 PROJCS["ED_1950_3_Degree_GK_Zone_14",GEOGCS["GCS_European_1950",DATUM["D_Europ
2212 ED_1950_3_Degree_GK_Zone_15 PROJCS["ED_1950_3_Degree_GK_Zone_15",GEOGCS["GCS_European_1950",DATUM["D_Europ
2213 ETRS_1989_TM_30_NE PROJCS["ETRS_1989_TM_30_NE",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHE
2215 Manoca_1962_UTM_Zone_32N PROJCS["Manoca_1962_UTM_Zone_32N",GEOGCS["GCS_Manoca_1962",DATUM["D_Manoca_1
2216 Qornoq_1927_UTM_Zone_22N PROJCS["Qornoq_1927_UTM_Zone_22N",GEOGCS["GCS_Qornoq_1927",DATUM["D_Qornoq_192
2217 Qornoq_1927_UTM_Zone_23N PROJCS["Qornoq_1927_UTM_Zone_23N",GEOGCS["GCS_Qornoq_1927",DATUM["D_Qornoq_192
2219 ATS_1977_UTM_Zone_19N PROJCS["ATS_1977_UTM_Zone_19N",GEOGCS["GCS_ATS_1977",DATUM["D_ATS_1977",SPHE
2220 ATS_1977_UTM_Zone_20N PROJCS["ATS_1977_UTM_Zone_20N",GEOGCS["GCS_ATS_1977",DATUM["D_ATS_1977",SPHE
2222 NAD_1983_StatePlane_Arizona_East_FIPS_0201_Feet_Intl PROJCS["NAD_1983_StatePlane_Arizona_East_FIPS_0201_Feet_Intl",GEOGCS["GCS_North_Am
2223 NAD_1983_StatePlane_Arizona_Central_FIPS_0202_Feet_Intl PROJCS["NAD_1983_StatePlane_Arizona_Central_FIPS_0202_Feet_Intl",GEOGCS["GCS_North_A
2224 NAD_1983_StatePlane_Arizona_West_FIPS_0203_Feet_Intl PROJCS["NAD_1983_StatePlane_Arizona_West_FIPS_0203_Feet_Intl",GEOGCS["GCS_North_Am
2225 NAD_1983_StatePlane_California_I_FIPS_0401_Feet PROJCS["NAD_1983_StatePlane_California_I_FIPS_0401_Feet",GEOGCS["GCS_North_American
2226 NAD_1983_StatePlane_California_II_FIPS_0402_Feet PROJCS["NAD_1983_StatePlane_California_II_FIPS_0402_Feet",GEOGCS["GCS_North_American
2227 NAD_1983_StatePlane_California_III_FIPS_0403_Feet PROJCS["NAD_1983_StatePlane_California_III_FIPS_0403_Feet",GEOGCS["GCS_North_America
2228 NAD_1983_StatePlane_California_IV_FIPS_0404_Feet PROJCS["NAD_1983_StatePlane_California_IV_FIPS_0404_Feet",GEOGCS["GCS_North_America
2229 NAD_1983_StatePlane_California_V_FIPS_0405_Feet PROJCS["NAD_1983_StatePlane_California_V_FIPS_0405_Feet",GEOGCS["GCS_North_American
2230 NAD_1983_StatePlane_California_VI_FIPS_0406_Feet PROJCS["NAD_1983_StatePlane_California_VI_FIPS_0406_Feet",GEOGCS["GCS_North_America
2231 NAD_1983_StatePlane_Colorado_North_FIPS_0501_Feet PROJCS["NAD_1983_StatePlane_Colorado_North_FIPS_0501_Feet",GEOGCS["GCS_North_Amer
2232 NAD_1983_StatePlane_Colorado_Central_FIPS_0502_Feet PROJCS["NAD_1983_StatePlane_Colorado_Central_FIPS_0502_Feet",GEOGCS["GCS_North_Am
2233 NAD_1983_StatePlane_Colorado_South_FIPS_0503_Feet PROJCS["NAD_1983_StatePlane_Colorado_South_FIPS_0503_Feet",GEOGCS["GCS_North_Ame
2234 NAD_1983_StatePlane_Connecticut_FIPS_0600_Feet PROJCS["NAD_1983_StatePlane_Connecticut_FIPS_0600_Feet",GEOGCS["GCS_North_American
2235 NAD_1983_StatePlane_Delaware_FIPS_0700_Feet PROJCS["NAD_1983_StatePlane_Delaware_FIPS_0700_Feet",GEOGCS["GCS_North_American_1
2236 NAD_1983_StatePlane_Florida_East_FIPS_0901_Feet PROJCS["NAD_1983_StatePlane_Florida_East_FIPS_0901_Feet",GEOGCS["GCS_North_America
2237 NAD_1983_StatePlane_Florida_West_FIPS_0902_Feet PROJCS["NAD_1983_StatePlane_Florida_West_FIPS_0902_Feet",GEOGCS["GCS_North_America
2238 NAD_1983_StatePlane_Florida_North_FIPS_0903_Feet PROJCS["NAD_1983_StatePlane_Florida_North_FIPS_0903_Feet",GEOGCS["GCS_North_America
2239 NAD_1983_StatePlane_Georgia_East_FIPS_1001_Feet PROJCS["NAD_1983_StatePlane_Georgia_East_FIPS_1001_Feet",GEOGCS["GCS_North_America
2240 NAD_1983_StatePlane_Georgia_West_FIPS_1002_Feet PROJCS["NAD_1983_StatePlane_Georgia_West_FIPS_1002_Feet",GEOGCS["GCS_North_Americ
2241 NAD_1983_StatePlane_Idaho_East_FIPS_1101_Feet PROJCS["NAD_1983_StatePlane_Idaho_East_FIPS_1101_Feet",GEOGCS["GCS_North_American
2242 NAD_1983_StatePlane_Idaho_Central_FIPS_1102_Feet PROJCS["NAD_1983_StatePlane_Idaho_Central_FIPS_1102_Feet",GEOGCS["GCS_North_Americ
2243 NAD_1983_StatePlane_Idaho_West_FIPS_1103_Feet PROJCS["NAD_1983_StatePlane_Idaho_West_FIPS_1103_Feet",GEOGCS["GCS_North_American
2246 NAD_1983_StatePlane_Kentucky_North_FIPS_1601_Feet PROJCS["NAD_1983_StatePlane_Kentucky_North_FIPS_1601_Feet",GEOGCS["GCS_North_Amer
2247 NAD_1983_StatePlane_Kentucky_South_FIPS_1602_Feet PROJCS["NAD_1983_StatePlane_Kentucky_South_FIPS_1602_Feet",GEOGCS["GCS_North_Ame
2248 NAD_1983_StatePlane_Maryland_FIPS_1900_Feet PROJCS["NAD_1983_StatePlane_Maryland_FIPS_1900_Feet",GEOGCS["GCS_North_American_1
2249 NAD_1983_StatePlane_Massachusetts_Mainland_FIPS_2001_Feet PROJCS["NAD_1983_StatePlane_Massachusetts_Mainland_FIPS_2001_Feet",GEOGCS["GCS_No
2250 NAD_1983_StatePlane_Massachusetts_Island_FIPS_2002_Feet PROJCS["NAD_1983_StatePlane_Massachusetts_Island_FIPS_2002_Feet",GEOGCS["GCS_North
2251 NAD_1983_StatePlane_Michigan_North_FIPS_2111_Feet_Intl PROJCS["NAD_1983_StatePlane_Michigan_North_FIPS_2111_Feet_Intl",GEOGCS["GCS_North_A
2252 NAD_1983_StatePlane_Michigan_Central_FIPS_2112_Feet_Intl PROJCS["NAD_1983_StatePlane_Michigan_Central_FIPS_2112_Feet_Intl",GEOGCS["GCS_North_
2253 NAD_1983_StatePlane_Michigan_South_FIPS_2113_Feet_Intl PROJCS["NAD_1983_StatePlane_Michigan_South_FIPS_2113_Feet_Intl",GEOGCS["GCS_North_A
2254 NAD_1983_StatePlane_Mississippi_East_FIPS_2301_Feet PROJCS["NAD_1983_StatePlane_Mississippi_East_FIPS_2301_Feet",GEOGCS["GCS_North_Ame
2255 NAD_1983_StatePlane_Mississippi_West_FIPS_2302_Feet PROJCS["NAD_1983_StatePlane_Mississippi_West_FIPS_2302_Feet",GEOGCS["GCS_North_Ame
2256 NAD_1983_StatePlane_Montana_FIPS_2500_Feet_Intl PROJCS["NAD_1983_StatePlane_Montana_FIPS_2500_Feet_Intl",GEOGCS["GCS_North_America
2257 NAD_1983_StatePlane_New_Mexico_East_FIPS_3001_Feet PROJCS["NAD_1983_StatePlane_New_Mexico_East_FIPS_3001_Feet",GEOGCS["GCS_North_Am
2258 NAD_1983_StatePlane_New_Mexico_Central_FIPS_3002_Feet PROJCS["NAD_1983_StatePlane_New_Mexico_Central_FIPS_3002_Feet",GEOGCS["GCS_North_
2259 NAD_1983_StatePlane_New_Mexico_West_FIPS_3003_Feet PROJCS["NAD_1983_StatePlane_New_Mexico_West_FIPS_3003_Feet",GEOGCS["GCS_North_Am
2260 NAD_1983_StatePlane_New_York_East_FIPS_3101_Feet PROJCS["NAD_1983_StatePlane_New_York_East_FIPS_3101_Feet",GEOGCS["GCS_North_Amer
2261 NAD_1983_StatePlane_New_York_Central_FIPS_3102_Feet PROJCS["NAD_1983_StatePlane_New_York_Central_FIPS_3102_Feet",GEOGCS["GCS_North_Am
2262 NAD_1983_StatePlane_New_York_West_FIPS_3103_Feet PROJCS["NAD_1983_StatePlane_New_York_West_FIPS_3103_Feet",GEOGCS["GCS_North_Ame
2263 NAD_1983_StatePlane_New_York_Long_Island_FIPS_3104_Feet PROJCS["NAD_1983_StatePlane_New_York_Long_Island_FIPS_3104_Feet",GEOGCS["GCS_Nort

Copyright 1995-2015 Esri. All rights reserved. 330


ArcGIS Runtime SDK for .NET

2264 NAD_1983_StatePlane_North_Carolina_FIPS_3200_Feet PROJCS["NAD_1983_StatePlane_North_Carolina_FIPS_3200_Feet",GEOGCS["GCS_North_Ameri


2265 NAD_1983_StatePlane_North_Dakota_North_FIPS_3301_Feet_Intl PROJCS["NAD_1983_StatePlane_North_Dakota_North_FIPS_3301_Feet_Intl",GEOGCS["GCS_No
2266 NAD_1983_StatePlane_North_Dakota_South_FIPS_3302_Feet_Intl PROJCS["NAD_1983_StatePlane_North_Dakota_South_FIPS_3302_Feet_Intl",GEOGCS["GCS_No
2267 NAD_1983_StatePlane_Oklahoma_North_FIPS_3501_Feet PROJCS["NAD_1983_StatePlane_Oklahoma_North_FIPS_3501_Feet",GEOGCS["GCS_North_Ame
2268 NAD_1983_StatePlane_Oklahoma_South_FIPS_3502_Feet PROJCS["NAD_1983_StatePlane_Oklahoma_South_FIPS_3502_Feet",GEOGCS["GCS_North_Ame
2269 NAD_1983_StatePlane_Oregon_North_FIPS_3601_Feet_Intl PROJCS["NAD_1983_StatePlane_Oregon_North_FIPS_3601_Feet_Intl",GEOGCS["GCS_North_Am
2270 NAD_1983_StatePlane_Oregon_South_FIPS_3602_Feet_Intl PROJCS["NAD_1983_StatePlane_Oregon_South_FIPS_3602_Feet_Intl",GEOGCS["GCS_North_Am
2271 NAD_1983_StatePlane_Pennsylvania_North_FIPS_3701_Feet PROJCS["NAD_1983_StatePlane_Pennsylvania_North_FIPS_3701_Feet",GEOGCS["GCS_North_A
2272 NAD_1983_StatePlane_Pennsylvania_South_FIPS_3702_Feet PROJCS["NAD_1983_StatePlane_Pennsylvania_South_FIPS_3702_Feet",GEOGCS["GCS_North_A
2273 NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl",GEOGCS["GCS_North_A
2274 NAD_1983_StatePlane_Tennessee_FIPS_4100_Feet PROJCS["NAD_1983_StatePlane_Tennessee_FIPS_4100_Feet",GEOGCS["GCS_North_American_
2275 NAD_1983_StatePlane_Texas_North_FIPS_4201_Feet PROJCS["NAD_1983_StatePlane_Texas_North_FIPS_4201_Feet",GEOGCS["GCS_North_America
2276 NAD_1983_StatePlane_Texas_North_Central_FIPS_4202_Feet PROJCS["NAD_1983_StatePlane_Texas_North_Central_FIPS_4202_Feet",GEOGCS["GCS_North_
2277 NAD_1983_StatePlane_Texas_Central_FIPS_4203_Feet PROJCS["NAD_1983_StatePlane_Texas_Central_FIPS_4203_Feet",GEOGCS["GCS_North_Americ
2278 NAD_1983_StatePlane_Texas_South_Central_FIPS_4204_Feet PROJCS["NAD_1983_StatePlane_Texas_South_Central_FIPS_4204_Feet",GEOGCS["GCS_North_
2279 NAD_1983_StatePlane_Texas_South_FIPS_4205_Feet PROJCS["NAD_1983_StatePlane_Texas_South_FIPS_4205_Feet",GEOGCS["GCS_North_America
2280 NAD_1983_StatePlane_Utah_North_FIPS_4301_Feet_Intl PROJCS["NAD_1983_StatePlane_Utah_North_FIPS_4301_Feet_Intl",GEOGCS["GCS_North_Amer
2281 NAD_1983_StatePlane_Utah_Central_FIPS_4302_Feet_Intl PROJCS["NAD_1983_StatePlane_Utah_Central_FIPS_4302_Feet_Intl",GEOGCS["GCS_North_Am
2282 NAD_1983_StatePlane_Utah_South_FIPS_4303_Feet_Intl PROJCS["NAD_1983_StatePlane_Utah_South_FIPS_4303_Feet_Intl",GEOGCS["GCS_North_Amer
2283 NAD_1983_StatePlane_Virginia_North_FIPS_4501_Feet PROJCS["NAD_1983_StatePlane_Virginia_North_FIPS_4501_Feet",GEOGCS["GCS_North_Americ
2284 NAD_1983_StatePlane_Virginia_South_FIPS_4502_Feet PROJCS["NAD_1983_StatePlane_Virginia_South_FIPS_4502_Feet",GEOGCS["GCS_North_Americ
2285 NAD_1983_StatePlane_Washington_North_FIPS_4601_Feet PROJCS["NAD_1983_StatePlane_Washington_North_FIPS_4601_Feet",GEOGCS["GCS_North_Am
2286 NAD_1983_StatePlane_Washington_South_FIPS_4602_Feet PROJCS["NAD_1983_StatePlane_Washington_South_FIPS_4602_Feet",GEOGCS["GCS_North_Am
2287 NAD_1983_StatePlane_Wisconsin_North_FIPS_4801_Feet PROJCS["NAD_1983_StatePlane_Wisconsin_North_FIPS_4801_Feet",GEOGCS["GCS_North_Ame
2288 NAD_1983_StatePlane_Wisconsin_Central_FIPS_4802_Feet PROJCS["NAD_1983_StatePlane_Wisconsin_Central_FIPS_4802_Feet",GEOGCS["GCS_North_Am
2289 NAD_1983_StatePlane_Wisconsin_South_FIPS_4803_Feet PROJCS["NAD_1983_StatePlane_Wisconsin_South_FIPS_4803_Feet",GEOGCS["GCS_North_Ame
2290 Prince_Edward_Island_Stereographic PROJCS["Prince_Edward_Island_Stereographic",GEOGCS["GCS_ATS_1977",DATUM["D_ATS_197
2294 ATS_1977_MTM_4_Nova_Scotia PROJCS["ATS_1977_MTM_4_Nova_Scotia",GEOGCS["GCS_ATS_1977",DATUM["D_ATS_1977",S
2295 ATS_1977_MTM_5_Nova_Scotia PROJCS["ATS_1977_MTM_5_Nova_Scotia",GEOGCS["GCS_ATS_1977",DATUM["D_ATS_1977",S
2308 Batavia_TM_109_SE PROJCS["Batavia_TM_109_SE",GEOGCS["GCS_Batavia",DATUM["D_Batavia",SPHEROID["Besse
2309 WGS_1984_TM_116_SE PROJCS["WGS_1984_TM_116_SE",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHER
2310 WGS_1984_TM_132_SE PROJCS["WGS_1984_TM_132_SE",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHER
2311 WGS_1984_TM_6_NE PROJCS["WGS_1984_TM_6_NE",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHERO
2312 Garoua_UTM_Zone_33N PROJCS["Garoua_UTM_Zone_33N",GEOGCS["GCS_Garoua",DATUM["D_Garoua",SPHEROID["Cl
2313 Kousseri_UTM_Zone_33N PROJCS["Kousseri_UTM_Zone_33N",GEOGCS["GCS_Kousseri",DATUM["D_Kousseri",SPHEROID
2314 Trinidad_1903_Trinidad_Grid_Feet_Clarke PROJCS["Trinidad_1903_Trinidad_Grid_Feet_Clarke",GEOGCS["GCS_Trinidad_1903",DATUM["D_
2315 Campo_Inchauspe_UTM_19S PROJCS["Campo_Inchauspe_UTM_19S",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_
2316 Campo_Inchauspe_UTM_20S PROJCS["Campo_Inchauspe_UTM_20S",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_
2317 PSAD_1956_ICN_Regional PROJCS["PSAD_1956_ICN_Regional",GEOGCS["GCS_Provisional_S_American_1956",DATUM["D
2318 Ain_el_Abd_Aramco_Lambert PROJCS["Ain_el_Abd_Aramco_Lambert",GEOGCS["GCS_Ain_el_Abd_1970",DATUM["D_Ain_el_A
2319 ED_1950_TM27 PROJCS["ED_1950_TM27",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHER
2320 ED_1950_TM30 PROJCS["ED_1950_TM30",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHER
2321 ED_1950_TM33 PROJCS["ED_1950_TM33",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHER
2322 ED_1950_TM36 PROJCS["ED_1950_TM36",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHER
2323 ED_1950_TM39 PROJCS["ED_1950_TM39",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHER
2324 ED_1950_TM42 PROJCS["ED_1950_TM42",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHER
2325 ED_1950_TM45 PROJCS["ED_1950_TM45",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHER
2326 Hong_Kong_1980_Grid PROJCS["Hong_Kong_1980_Grid",GEOGCS["GCS_Hong_Kong_1980",DATUM["D_Hong_Kong_19
2327 Xian_1980_GK_Zone_13 PROJCS["Xian_1980_GK_Zone_13",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHERO
2328 Xian_1980_GK_Zone_14 PROJCS["Xian_1980_GK_Zone_14",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHERO
2329 Xian_1980_GK_Zone_15 PROJCS["Xian_1980_GK_Zone_15",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHERO
2330 Xian_1980_GK_Zone_16 PROJCS["Xian_1980_GK_Zone_16",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHERO
2331 Xian_1980_GK_Zone_17 PROJCS["Xian_1980_GK_Zone_17",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHERO
2332 Xian_1980_GK_Zone_18 PROJCS["Xian_1980_GK_Zone_18",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHERO

Copyright 1995-2015 Esri. All rights reserved. 331


ArcGIS Runtime SDK for .NET

2333 Xian_1980_GK_Zone_19 PROJCS["Xian_1980_GK_Zone_19",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHERO


2334 Xian_1980_GK_Zone_20 PROJCS["Xian_1980_GK_Zone_20",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHERO
2335 Xian_1980_GK_Zone_21 PROJCS["Xian_1980_GK_Zone_21",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHERO
2336 Xian_1980_GK_Zone_22 PROJCS["Xian_1980_GK_Zone_22",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHERO
2337 Xian_1980_GK_Zone_23 PROJCS["Xian_1980_GK_Zone_23",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHERO
2338 Xian_1980_GK_CM_75E PROJCS["Xian_1980_GK_CM_75E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHERO
2339 Xian_1980_GK_CM_81E PROJCS["Xian_1980_GK_CM_81E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHERO
2340 Xian_1980_GK_CM_87E PROJCS["Xian_1980_GK_CM_87E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHERO
2341 Xian_1980_GK_CM_93E PROJCS["Xian_1980_GK_CM_93E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHERO
2342 Xian_1980_GK_CM_99E PROJCS["Xian_1980_GK_CM_99E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHERO
2343 Xian_1980_GK_CM_105E PROJCS["Xian_1980_GK_CM_105E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHER
2344 Xian_1980_GK_CM_111E PROJCS["Xian_1980_GK_CM_111E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHER
2345 Xian_1980_GK_CM_117E PROJCS["Xian_1980_GK_CM_117E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHER
2346 Xian_1980_GK_CM_123E PROJCS["Xian_1980_GK_CM_123E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHER
2347 Xian_1980_GK_CM_129E PROJCS["Xian_1980_GK_CM_129E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHER
2348 Xian_1980_GK_CM_135E PROJCS["Xian_1980_GK_CM_135E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHER
2349 Xian_1980_3_Degree_GK_Zone_25 PROJCS["Xian_1980_3_Degree_GK_Zone_25",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2350 Xian_1980_3_Degree_GK_Zone_26 PROJCS["Xian_1980_3_Degree_GK_Zone_26",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2351 Xian_1980_3_Degree_GK_Zone_27 PROJCS["Xian_1980_3_Degree_GK_Zone_27",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2352 Xian_1980_3_Degree_GK_Zone_28 PROJCS["Xian_1980_3_Degree_GK_Zone_28",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2353 Xian_1980_3_Degree_GK_Zone_29 PROJCS["Xian_1980_3_Degree_GK_Zone_29",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2354 Xian_1980_3_Degree_GK_Zone_30 PROJCS["Xian_1980_3_Degree_GK_Zone_30",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2355 Xian_1980_3_Degree_GK_Zone_31 PROJCS["Xian_1980_3_Degree_GK_Zone_31",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2356 Xian_1980_3_Degree_GK_Zone_32 PROJCS["Xian_1980_3_Degree_GK_Zone_32",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2357 Xian_1980_3_Degree_GK_Zone_33 PROJCS["Xian_1980_3_Degree_GK_Zone_33",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2358 Xian_1980_3_Degree_GK_Zone_34 PROJCS["Xian_1980_3_Degree_GK_Zone_34",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2359 Xian_1980_3_Degree_GK_Zone_35 PROJCS["Xian_1980_3_Degree_GK_Zone_35",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2360 Xian_1980_3_Degree_GK_Zone_36 PROJCS["Xian_1980_3_Degree_GK_Zone_36",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2361 Xian_1980_3_Degree_GK_Zone_37 PROJCS["Xian_1980_3_Degree_GK_Zone_37",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2362 Xian_1980_3_Degree_GK_Zone_38 PROJCS["Xian_1980_3_Degree_GK_Zone_38",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2363 Xian_1980_3_Degree_GK_Zone_39 PROJCS["Xian_1980_3_Degree_GK_Zone_39",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2364 Xian_1980_3_Degree_GK_Zone_40 PROJCS["Xian_1980_3_Degree_GK_Zone_40",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2365 Xian_1980_3_Degree_GK_Zone_41 PROJCS["Xian_1980_3_Degree_GK_Zone_41",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2366 Xian_1980_3_Degree_GK_Zone_42 PROJCS["Xian_1980_3_Degree_GK_Zone_42",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2367 Xian_1980_3_Degree_GK_Zone_43 PROJCS["Xian_1980_3_Degree_GK_Zone_43",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2368 Xian_1980_3_Degree_GK_Zone_44 PROJCS["Xian_1980_3_Degree_GK_Zone_44",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2369 Xian_1980_3_Degree_GK_Zone_45 PROJCS["Xian_1980_3_Degree_GK_Zone_45",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2370 Xian_1980_3_Degree_GK_CM_75E PROJCS["Xian_1980_3_Degree_GK_CM_75E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980
2371 Xian_1980_3_Degree_GK_CM_78E PROJCS["Xian_1980_3_Degree_GK_CM_78E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980
2372 Xian_1980_3_Degree_GK_CM_81E PROJCS["Xian_1980_3_Degree_GK_CM_81E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980
2373 Xian_1980_3_Degree_GK_CM_84E PROJCS["Xian_1980_3_Degree_GK_CM_84E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980
2374 Xian_1980_3_Degree_GK_CM_87E PROJCS["Xian_1980_3_Degree_GK_CM_87E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980
2375 Xian_1980_3_Degree_GK_CM_90E PROJCS["Xian_1980_3_Degree_GK_CM_90E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980
2376 Xian_1980_3_Degree_GK_CM_93E PROJCS["Xian_1980_3_Degree_GK_CM_93E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980
2377 Xian_1980_3_Degree_GK_CM_96E PROJCS["Xian_1980_3_Degree_GK_CM_96E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980
2378 Xian_1980_3_Degree_GK_CM_99E PROJCS["Xian_1980_3_Degree_GK_CM_99E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980
2379 Xian_1980_3_Degree_GK_CM_102E PROJCS["Xian_1980_3_Degree_GK_CM_102E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2380 Xian_1980_3_Degree_GK_CM_105E PROJCS["Xian_1980_3_Degree_GK_CM_105E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2381 Xian_1980_3_Degree_GK_CM_108E PROJCS["Xian_1980_3_Degree_GK_CM_108E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2382 Xian_1980_3_Degree_GK_CM_111E PROJCS["Xian_1980_3_Degree_GK_CM_111E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2383 Xian_1980_3_Degree_GK_CM_114E PROJCS["Xian_1980_3_Degree_GK_CM_114E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2384 Xian_1980_3_Degree_GK_CM_117E PROJCS["Xian_1980_3_Degree_GK_CM_117E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2385 Xian_1980_3_Degree_GK_CM_120E PROJCS["Xian_1980_3_Degree_GK_CM_120E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2386 Xian_1980_3_Degree_GK_CM_123E PROJCS["Xian_1980_3_Degree_GK_CM_123E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198

Copyright 1995-2015 Esri. All rights reserved. 332


ArcGIS Runtime SDK for .NET

2387 Xian_1980_3_Degree_GK_CM_126E PROJCS["Xian_1980_3_Degree_GK_CM_126E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198


2388 Xian_1980_3_Degree_GK_CM_129E PROJCS["Xian_1980_3_Degree_GK_CM_129E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2389 Xian_1980_3_Degree_GK_CM_132E PROJCS["Xian_1980_3_Degree_GK_CM_132E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2390 Xian_1980_3_Degree_GK_CM_135E PROJCS["Xian_1980_3_Degree_GK_CM_135E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_198
2391 Finland_Zone_1 PROJCS["Finland_Zone_1",GEOGCS["GCS_KKJ",DATUM["D_KKJ",SPHEROID["International_1924
2392 Finland_Zone_2 PROJCS["Finland_Zone_2",GEOGCS["GCS_KKJ",DATUM["D_KKJ",SPHEROID["International_1924
2393 Finland_Zone_3 PROJCS["Finland_Zone_3",GEOGCS["GCS_KKJ",DATUM["D_KKJ",SPHEROID["International_1924
2394 Finland_Zone_4 PROJCS["Finland_Zone_4",GEOGCS["GCS_KKJ",DATUM["D_KKJ",SPHEROID["International_1924
2395 South_Yemen_GK_Zone_8 PROJCS["South_Yemen_GK_Zone_8",GEOGCS["GCS_South_Yemen",DATUM["D_South_Yemen"
2396 South_Yemen_GK_Zone_9 PROJCS["South_Yemen_GK_Zone_9",GEOGCS["GCS_South_Yemen",DATUM["D_South_Yemen"
2397 Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_3 PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_3",GEOGCS["GCS_Pulkovo_1942_Adj_1
2398 Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_4 PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_4",GEOGCS["GCS_Pulkovo_1942_Adj_1
2399 Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_5 PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_5",GEOGCS["GCS_Pulkovo_1942_Adj_1
2400 RT90_25_gon_W PROJCS["RT90_25_gon_W",GEOGCS["GCS_RT_1990",DATUM["D_RT_1990",SPHEROID["Besse
2401 Beijing_1954_3_Degree_GK_Zone_25 PROJCS["Beijing_1954_3_Degree_GK_Zone_25",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2402 Beijing_1954_3_Degree_GK_Zone_26 PROJCS["Beijing_1954_3_Degree_GK_Zone_26",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2403 Beijing_1954_3_Degree_GK_Zone_27 PROJCS["Beijing_1954_3_Degree_GK_Zone_27",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2404 Beijing_1954_3_Degree_GK_Zone_28 PROJCS["Beijing_1954_3_Degree_GK_Zone_28",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2405 Beijing_1954_3_Degree_GK_Zone_29 PROJCS["Beijing_1954_3_Degree_GK_Zone_29",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2406 Beijing_1954_3_Degree_GK_Zone_30 PROJCS["Beijing_1954_3_Degree_GK_Zone_30",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2407 Beijing_1954_3_Degree_GK_Zone_31 PROJCS["Beijing_1954_3_Degree_GK_Zone_31",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2408 Beijing_1954_3_Degree_GK_Zone_32 PROJCS["Beijing_1954_3_Degree_GK_Zone_32",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2409 Beijing_1954_3_Degree_GK_Zone_33 PROJCS["Beijing_1954_3_Degree_GK_Zone_33",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2410 Beijing_1954_3_Degree_GK_Zone_34 PROJCS["Beijing_1954_3_Degree_GK_Zone_34",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2411 Beijing_1954_3_Degree_GK_Zone_35 PROJCS["Beijing_1954_3_Degree_GK_Zone_35",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2412 Beijing_1954_3_Degree_GK_Zone_36 PROJCS["Beijing_1954_3_Degree_GK_Zone_36",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2413 Beijing_1954_3_Degree_GK_Zone_37 PROJCS["Beijing_1954_3_Degree_GK_Zone_37",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2414 Beijing_1954_3_Degree_GK_Zone_38 PROJCS["Beijing_1954_3_Degree_GK_Zone_38",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2415 Beijing_1954_3_Degree_GK_Zone_39 PROJCS["Beijing_1954_3_Degree_GK_Zone_39",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2416 Beijing_1954_3_Degree_GK_Zone_40 PROJCS["Beijing_1954_3_Degree_GK_Zone_40",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2417 Beijing_1954_3_Degree_GK_Zone_41 PROJCS["Beijing_1954_3_Degree_GK_Zone_41",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2418 Beijing_1954_3_Degree_GK_Zone_42 PROJCS["Beijing_1954_3_Degree_GK_Zone_42",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2419 Beijing_1954_3_Degree_GK_Zone_43 PROJCS["Beijing_1954_3_Degree_GK_Zone_43",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2420 Beijing_1954_3_Degree_GK_Zone_44 PROJCS["Beijing_1954_3_Degree_GK_Zone_44",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2421 Beijing_1954_3_Degree_GK_Zone_45 PROJCS["Beijing_1954_3_Degree_GK_Zone_45",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2422 Beijing_1954_3_Degree_GK_CM_75E PROJCS["Beijing_1954_3_Degree_GK_CM_75E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2423 Beijing_1954_3_Degree_GK_CM_78E PROJCS["Beijing_1954_3_Degree_GK_CM_78E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2424 Beijing_1954_3_Degree_GK_CM_81E PROJCS["Beijing_1954_3_Degree_GK_CM_81E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2425 Beijing_1954_3_Degree_GK_CM_84E PROJCS["Beijing_1954_3_Degree_GK_CM_84E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2426 Beijing_1954_3_Degree_GK_CM_87E PROJCS["Beijing_1954_3_Degree_GK_CM_87E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2427 Beijing_1954_3_Degree_GK_CM_90E PROJCS["Beijing_1954_3_Degree_GK_CM_90E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2428 Beijing_1954_3_Degree_GK_CM_93E PROJCS["Beijing_1954_3_Degree_GK_CM_93E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2429 Beijing_1954_3_Degree_GK_CM_96E PROJCS["Beijing_1954_3_Degree_GK_CM_96E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2430 Beijing_1954_3_Degree_GK_CM_99E PROJCS["Beijing_1954_3_Degree_GK_CM_99E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijin
2431 Beijing_1954_3_Degree_GK_CM_102E PROJCS["Beijing_1954_3_Degree_GK_CM_102E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beiji
2432 Beijing_1954_3_Degree_GK_CM_105E PROJCS["Beijing_1954_3_Degree_GK_CM_105E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beiji
2433 Beijing_1954_3_Degree_GK_CM_108E PROJCS["Beijing_1954_3_Degree_GK_CM_108E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beiji
2434 Beijing_1954_3_Degree_GK_CM_111E PROJCS["Beijing_1954_3_Degree_GK_CM_111E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beiji
2435 Beijing_1954_3_Degree_GK_CM_114E PROJCS["Beijing_1954_3_Degree_GK_CM_114E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beiji
2436 Beijing_1954_3_Degree_GK_CM_117E PROJCS["Beijing_1954_3_Degree_GK_CM_117E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beiji
2437 Beijing_1954_3_Degree_GK_CM_120E PROJCS["Beijing_1954_3_Degree_GK_CM_120E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beiji
2438 Beijing_1954_3_Degree_GK_CM_123E PROJCS["Beijing_1954_3_Degree_GK_CM_123E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beiji
2439 Beijing_1954_3_Degree_GK_CM_126E PROJCS["Beijing_1954_3_Degree_GK_CM_126E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beiji
2440 Beijing_1954_3_Degree_GK_CM_129E PROJCS["Beijing_1954_3_Degree_GK_CM_129E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beiji

Copyright 1995-2015 Esri. All rights reserved. 333


ArcGIS Runtime SDK for .NET

2441 Beijing_1954_3_Degree_GK_CM_132E PROJCS["Beijing_1954_3_Degree_GK_CM_132E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beiji


2442 Beijing_1954_3_Degree_GK_CM_135E PROJCS["Beijing_1954_3_Degree_GK_CM_135E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beiji
2443 JGD_2000_Japan_Zone_1 PROJCS["JGD_2000_Japan_Zone_1",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHER
2444 JGD_2000_Japan_Zone_2 PROJCS["JGD_2000_Japan_Zone_2",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHER
2445 JGD_2000_Japan_Zone_3 PROJCS["JGD_2000_Japan_Zone_3",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHER
2446 JGD_2000_Japan_Zone_4 PROJCS["JGD_2000_Japan_Zone_4",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHER
2447 JGD_2000_Japan_Zone_5 PROJCS["JGD_2000_Japan_Zone_5",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHER
2448 JGD_2000_Japan_Zone_6 PROJCS["JGD_2000_Japan_Zone_6",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHER
2449 JGD_2000_Japan_Zone_7 PROJCS["JGD_2000_Japan_Zone_7",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHER
2450 JGD_2000_Japan_Zone_8 PROJCS["JGD_2000_Japan_Zone_8",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHER
2451 JGD_2000_Japan_Zone_9 PROJCS["JGD_2000_Japan_Zone_9",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHER
2452 JGD_2000_Japan_Zone_10 PROJCS["JGD_2000_Japan_Zone_10",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHE
2453 JGD_2000_Japan_Zone_11 PROJCS["JGD_2000_Japan_Zone_11",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHE
2454 JGD_2000_Japan_Zone_12 PROJCS["JGD_2000_Japan_Zone_12",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHE
2455 JGD_2000_Japan_Zone_13 PROJCS["JGD_2000_Japan_Zone_13",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHE
2456 JGD_2000_Japan_Zone_14 PROJCS["JGD_2000_Japan_Zone_14",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHE
2457 JGD_2000_Japan_Zone_15 PROJCS["JGD_2000_Japan_Zone_15",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHE
2458 JGD_2000_Japan_Zone_16 PROJCS["JGD_2000_Japan_Zone_16",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHE
2459 JGD_2000_Japan_Zone_17 PROJCS["JGD_2000_Japan_Zone_17",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHE
2460 JGD_2000_Japan_Zone_18 PROJCS["JGD_2000_Japan_Zone_18",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHE
2461 JGD_2000_Japan_Zone_19 PROJCS["JGD_2000_Japan_Zone_19",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHE
2462 Albanian_1987_GK_Zone_4 PROJCS["Albanian_1987_GK_Zone_4",GEOGCS["GCS_Albanian_1987",DATUM["D_Albanian_198
2523 Pulkovo_1942_3_Degree_GK_Zone_7 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_7",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulk
2524 Pulkovo_1942_3_Degree_GK_Zone_8 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_8",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulk
2525 Pulkovo_1942_3_Degree_GK_Zone_9 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_9",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulk
2526 Pulkovo_1942_3_Degree_GK_Zone_10 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_10",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2527 Pulkovo_1942_3_Degree_GK_Zone_11 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_11",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2528 Pulkovo_1942_3_Degree_GK_Zone_12 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_12",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2529 Pulkovo_1942_3_Degree_GK_Zone_13 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_13",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2530 Pulkovo_1942_3_Degree_GK_Zone_14 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_14",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2531 Pulkovo_1942_3_Degree_GK_Zone_15 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_15",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2532 Pulkovo_1942_3_Degree_GK_Zone_16 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_16",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2533 Pulkovo_1942_3_Degree_GK_Zone_17 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_17",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2534 Pulkovo_1942_3_Degree_GK_Zone_18 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_18",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2535 Pulkovo_1942_3_Degree_GK_Zone_19 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_19",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2536 Pulkovo_1942_3_Degree_GK_Zone_20 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_20",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2537 Pulkovo_1942_3_Degree_GK_Zone_21 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_21",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2538 Pulkovo_1942_3_Degree_GK_Zone_22 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_22",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2539 Pulkovo_1942_3_Degree_GK_Zone_23 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_23",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2540 Pulkovo_1942_3_Degree_GK_Zone_24 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_24",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2541 Pulkovo_1942_3_Degree_GK_Zone_25 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_25",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2542 Pulkovo_1942_3_Degree_GK_Zone_26 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_26",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2543 Pulkovo_1942_3_Degree_GK_Zone_27 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_27",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2544 Pulkovo_1942_3_Degree_GK_Zone_28 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_28",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2545 Pulkovo_1942_3_Degree_GK_Zone_29 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_29",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2546 Pulkovo_1942_3_Degree_GK_Zone_30 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_30",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2547 Pulkovo_1942_3_Degree_GK_Zone_31 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_31",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2548 Pulkovo_1942_3_Degree_GK_Zone_32 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_32",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2549 Pulkovo_1942_3_Degree_GK_Zone_33 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_33",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2550 Samboja_UTM_Zone_50S PROJCS["Samboja_UTM_Zone_50S",GEOGCS["GCS_Samboja",DATUM["D_Samboja",SPHEROID
2551 Pulkovo_1942_3_Degree_GK_Zone_34 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_34",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2552 Pulkovo_1942_3_Degree_GK_Zone_35 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_35",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2553 Pulkovo_1942_3_Degree_GK_Zone_36 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_36",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2554 Pulkovo_1942_3_Degree_GK_Zone_37 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_37",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu

Copyright 1995-2015 Esri. All rights reserved. 334


ArcGIS Runtime SDK for .NET

2555 Pulkovo_1942_3_Degree_GK_Zone_38 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_38",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu


2556 Pulkovo_1942_3_Degree_GK_Zone_39 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_39",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2557 Pulkovo_1942_3_Degree_GK_Zone_40 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_40",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2558 Pulkovo_1942_3_Degree_GK_Zone_41 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_41",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2559 Pulkovo_1942_3_Degree_GK_Zone_42 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_42",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2560 Pulkovo_1942_3_Degree_GK_Zone_43 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_43",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2561 Pulkovo_1942_3_Degree_GK_Zone_44 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_44",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2562 Pulkovo_1942_3_Degree_GK_Zone_45 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_45",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2563 Pulkovo_1942_3_Degree_GK_Zone_46 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_46",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2564 Pulkovo_1942_3_Degree_GK_Zone_47 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_47",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2565 Pulkovo_1942_3_Degree_GK_Zone_48 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_48",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2566 Pulkovo_1942_3_Degree_GK_Zone_49 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_49",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2567 Pulkovo_1942_3_Degree_GK_Zone_50 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_50",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2568 Pulkovo_1942_3_Degree_GK_Zone_51 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_51",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2569 Pulkovo_1942_3_Degree_GK_Zone_52 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_52",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2570 Pulkovo_1942_3_Degree_GK_Zone_53 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_53",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2571 Pulkovo_1942_3_Degree_GK_Zone_54 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_54",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2572 Pulkovo_1942_3_Degree_GK_Zone_55 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_55",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2573 Pulkovo_1942_3_Degree_GK_Zone_56 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_56",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2574 Pulkovo_1942_3_Degree_GK_Zone_57 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_57",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2575 Pulkovo_1942_3_Degree_GK_Zone_58 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_58",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2576 Pulkovo_1942_3_Degree_GK_Zone_59 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_59",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2578 Pulkovo_1942_3_Degree_GK_Zone_61 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_61",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2579 Pulkovo_1942_3_Degree_GK_Zone_62 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_62",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2580 Pulkovo_1942_3_Degree_GK_Zone_63 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_63",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2581 Pulkovo_1942_3_Degree_GK_Zone_64 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_64",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2582 Pulkovo_1942_3_Degree_GK_CM_21E PROJCS["Pulkovo_1942_3_Degree_GK_CM_21E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2583 Pulkovo_1942_3_Degree_GK_CM_24E PROJCS["Pulkovo_1942_3_Degree_GK_CM_24E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2584 Pulkovo_1942_3_Degree_GK_CM_27E PROJCS["Pulkovo_1942_3_Degree_GK_CM_27E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2585 Pulkovo_1942_3_Degree_GK_CM_30E PROJCS["Pulkovo_1942_3_Degree_GK_CM_30E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2586 Pulkovo_1942_3_Degree_GK_CM_33E PROJCS["Pulkovo_1942_3_Degree_GK_CM_33E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2587 Pulkovo_1942_3_Degree_GK_CM_36E PROJCS["Pulkovo_1942_3_Degree_GK_CM_36E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2588 Pulkovo_1942_3_Degree_GK_CM_39E PROJCS["Pulkovo_1942_3_Degree_GK_CM_39E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2589 Pulkovo_1942_3_Degree_GK_CM_42E PROJCS["Pulkovo_1942_3_Degree_GK_CM_42E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2590 Pulkovo_1942_3_Degree_GK_CM_45E PROJCS["Pulkovo_1942_3_Degree_GK_CM_45E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2591 Pulkovo_1942_3_Degree_GK_CM_48E PROJCS["Pulkovo_1942_3_Degree_GK_CM_48E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2592 Pulkovo_1942_3_Degree_GK_CM_51E PROJCS["Pulkovo_1942_3_Degree_GK_CM_51E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2593 Pulkovo_1942_3_Degree_GK_CM_54E PROJCS["Pulkovo_1942_3_Degree_GK_CM_54E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2594 Pulkovo_1942_3_Degree_GK_CM_57E PROJCS["Pulkovo_1942_3_Degree_GK_CM_57E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2595 Pulkovo_1942_3_Degree_GK_CM_60E PROJCS["Pulkovo_1942_3_Degree_GK_CM_60E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2596 Pulkovo_1942_3_Degree_GK_CM_63E PROJCS["Pulkovo_1942_3_Degree_GK_CM_63E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2597 Pulkovo_1942_3_Degree_GK_CM_66E PROJCS["Pulkovo_1942_3_Degree_GK_CM_66E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2598 Pulkovo_1942_3_Degree_GK_CM_69E PROJCS["Pulkovo_1942_3_Degree_GK_CM_69E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2599 Pulkovo_1942_3_Degree_GK_CM_72E PROJCS["Pulkovo_1942_3_Degree_GK_CM_72E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2601 Pulkovo_1942_3_Degree_GK_CM_75E PROJCS["Pulkovo_1942_3_Degree_GK_CM_75E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2602 Pulkovo_1942_3_Degree_GK_CM_78E PROJCS["Pulkovo_1942_3_Degree_GK_CM_78E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2603 Pulkovo_1942_3_Degree_GK_CM_81E PROJCS["Pulkovo_1942_3_Degree_GK_CM_81E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2604 Pulkovo_1942_3_Degree_GK_CM_84E PROJCS["Pulkovo_1942_3_Degree_GK_CM_84E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2605 Pulkovo_1942_3_Degree_GK_CM_87E PROJCS["Pulkovo_1942_3_Degree_GK_CM_87E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2606 Pulkovo_1942_3_Degree_GK_CM_90E PROJCS["Pulkovo_1942_3_Degree_GK_CM_90E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2607 Pulkovo_1942_3_Degree_GK_CM_93E PROJCS["Pulkovo_1942_3_Degree_GK_CM_93E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2608 Pulkovo_1942_3_Degree_GK_CM_96E PROJCS["Pulkovo_1942_3_Degree_GK_CM_96E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2609 Pulkovo_1942_3_Degree_GK_CM_99E PROJCS["Pulkovo_1942_3_Degree_GK_CM_99E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
2610 Pulkovo_1942_3_Degree_GK_CM_102E PROJCS["Pulkovo_1942_3_Degree_GK_CM_102E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P

Copyright 1995-2015 Esri. All rights reserved. 335


ArcGIS Runtime SDK for .NET

2611 Pulkovo_1942_3_Degree_GK_CM_105E PROJCS["Pulkovo_1942_3_Degree_GK_CM_105E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P


2612 Pulkovo_1942_3_Degree_GK_CM_108E PROJCS["Pulkovo_1942_3_Degree_GK_CM_108E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2613 Pulkovo_1942_3_Degree_GK_CM_111E PROJCS["Pulkovo_1942_3_Degree_GK_CM_111E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2614 Pulkovo_1942_3_Degree_GK_CM_114E PROJCS["Pulkovo_1942_3_Degree_GK_CM_114E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2615 Pulkovo_1942_3_Degree_GK_CM_117E PROJCS["Pulkovo_1942_3_Degree_GK_CM_117E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2616 Pulkovo_1942_3_Degree_GK_CM_120E PROJCS["Pulkovo_1942_3_Degree_GK_CM_120E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2617 Pulkovo_1942_3_Degree_GK_CM_123E PROJCS["Pulkovo_1942_3_Degree_GK_CM_123E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2618 Pulkovo_1942_3_Degree_GK_CM_126E PROJCS["Pulkovo_1942_3_Degree_GK_CM_126E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2619 Pulkovo_1942_3_Degree_GK_CM_129E PROJCS["Pulkovo_1942_3_Degree_GK_CM_129E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2620 Pulkovo_1942_3_Degree_GK_CM_132E PROJCS["Pulkovo_1942_3_Degree_GK_CM_132E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2621 Pulkovo_1942_3_Degree_GK_CM_135E PROJCS["Pulkovo_1942_3_Degree_GK_CM_135E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2622 Pulkovo_1942_3_Degree_GK_CM_138E PROJCS["Pulkovo_1942_3_Degree_GK_CM_138E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2623 Pulkovo_1942_3_Degree_GK_CM_141E PROJCS["Pulkovo_1942_3_Degree_GK_CM_141E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2624 Pulkovo_1942_3_Degree_GK_CM_144E PROJCS["Pulkovo_1942_3_Degree_GK_CM_144E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2625 Pulkovo_1942_3_Degree_GK_CM_147E PROJCS["Pulkovo_1942_3_Degree_GK_CM_147E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2626 Pulkovo_1942_3_Degree_GK_CM_150E PROJCS["Pulkovo_1942_3_Degree_GK_CM_150E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2627 Pulkovo_1942_3_Degree_GK_CM_153E PROJCS["Pulkovo_1942_3_Degree_GK_CM_153E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2628 Pulkovo_1942_3_Degree_GK_CM_156E PROJCS["Pulkovo_1942_3_Degree_GK_CM_156E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2629 Pulkovo_1942_3_Degree_GK_CM_159E PROJCS["Pulkovo_1942_3_Degree_GK_CM_159E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2630 Pulkovo_1942_3_Degree_GK_CM_162E PROJCS["Pulkovo_1942_3_Degree_GK_CM_162E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2631 Pulkovo_1942_3_Degree_GK_CM_165E PROJCS["Pulkovo_1942_3_Degree_GK_CM_165E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2632 Pulkovo_1942_3_Degree_GK_CM_168E PROJCS["Pulkovo_1942_3_Degree_GK_CM_168E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2633 Pulkovo_1942_3_Degree_GK_CM_171E PROJCS["Pulkovo_1942_3_Degree_GK_CM_171E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2634 Pulkovo_1942_3_Degree_GK_CM_174E PROJCS["Pulkovo_1942_3_Degree_GK_CM_174E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2635 Pulkovo_1942_3_Degree_GK_CM_177E PROJCS["Pulkovo_1942_3_Degree_GK_CM_177E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2636 Pulkovo_1942_3_Degree_GK_CM_180E PROJCS["Pulkovo_1942_3_Degree_GK_CM_180E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2637 Pulkovo_1942_3_Degree_GK_CM_177W PROJCS["Pulkovo_1942_3_Degree_GK_CM_177W",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2638 Pulkovo_1942_3_Degree_GK_CM_174W PROJCS["Pulkovo_1942_3_Degree_GK_CM_174W",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2639 Pulkovo_1942_3_Degree_GK_CM_171W PROJCS["Pulkovo_1942_3_Degree_GK_CM_171W",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2640 Pulkovo_1942_3_Degree_GK_CM_168W PROJCS["Pulkovo_1942_3_Degree_GK_CM_168W",GEOGCS["GCS_Pulkovo_1942",DATUM["D_P
2641 Pulkovo_1995_3_Degree_GK_Zone_7 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_7",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulk
2642 Pulkovo_1995_3_Degree_GK_Zone_8 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_8",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulk
2643 Pulkovo_1995_3_Degree_GK_Zone_9 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_9",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulk
2644 Pulkovo_1995_3_Degree_GK_Zone_10 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_10",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2645 Pulkovo_1995_3_Degree_GK_Zone_11 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_11",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2646 Pulkovo_1995_3_Degree_GK_Zone_12 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_12",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2647 Pulkovo_1995_3_Degree_GK_Zone_13 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_13",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2648 Pulkovo_1995_3_Degree_GK_Zone_14 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_14",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2649 Pulkovo_1995_3_Degree_GK_Zone_15 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_15",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2650 Pulkovo_1995_3_Degree_GK_Zone_16 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_16",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2651 Pulkovo_1995_3_Degree_GK_Zone_17 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_17",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2652 Pulkovo_1995_3_Degree_GK_Zone_18 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_18",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2653 Pulkovo_1995_3_Degree_GK_Zone_19 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_19",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2654 Pulkovo_1995_3_Degree_GK_Zone_20 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_20",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2655 Pulkovo_1995_3_Degree_GK_Zone_21 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_21",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2656 Pulkovo_1995_3_Degree_GK_Zone_22 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_22",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2657 Pulkovo_1995_3_Degree_GK_Zone_23 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_23",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2658 Pulkovo_1995_3_Degree_GK_Zone_24 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_24",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2659 Pulkovo_1995_3_Degree_GK_Zone_25 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_25",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2660 Pulkovo_1995_3_Degree_GK_Zone_26 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_26",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2661 Pulkovo_1995_3_Degree_GK_Zone_27 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_27",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2662 Pulkovo_1995_3_Degree_GK_Zone_28 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_28",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2663 Pulkovo_1995_3_Degree_GK_Zone_29 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_29",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2664 Pulkovo_1995_3_Degree_GK_Zone_30 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_30",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu

Copyright 1995-2015 Esri. All rights reserved. 336


ArcGIS Runtime SDK for .NET

2665 Pulkovo_1995_3_Degree_GK_Zone_31 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_31",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu


2666 Pulkovo_1995_3_Degree_GK_Zone_32 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_32",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2667 Pulkovo_1995_3_Degree_GK_Zone_33 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_33",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2668 Pulkovo_1995_3_Degree_GK_Zone_34 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_34",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2669 Pulkovo_1995_3_Degree_GK_Zone_35 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_35",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2670 Pulkovo_1995_3_Degree_GK_Zone_36 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_36",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2671 Pulkovo_1995_3_Degree_GK_Zone_37 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_37",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2672 Pulkovo_1995_3_Degree_GK_Zone_38 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_38",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2673 Pulkovo_1995_3_Degree_GK_Zone_39 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_39",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2674 Pulkovo_1995_3_Degree_GK_Zone_40 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_40",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2675 Pulkovo_1995_3_Degree_GK_Zone_41 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_41",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2676 Pulkovo_1995_3_Degree_GK_Zone_42 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_42",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2677 Pulkovo_1995_3_Degree_GK_Zone_43 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_43",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2678 Pulkovo_1995_3_Degree_GK_Zone_44 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_44",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2679 Pulkovo_1995_3_Degree_GK_Zone_45 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_45",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2680 Pulkovo_1995_3_Degree_GK_Zone_46 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_46",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2681 Pulkovo_1995_3_Degree_GK_Zone_47 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_47",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2682 Pulkovo_1995_3_Degree_GK_Zone_48 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_48",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2683 Pulkovo_1995_3_Degree_GK_Zone_49 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_49",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2684 Pulkovo_1995_3_Degree_GK_Zone_50 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_50",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2685 Pulkovo_1995_3_Degree_GK_Zone_51 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_51",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2686 Pulkovo_1995_3_Degree_GK_Zone_52 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_52",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2687 Pulkovo_1995_3_Degree_GK_Zone_53 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_53",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2688 Pulkovo_1995_3_Degree_GK_Zone_54 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_54",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2689 Pulkovo_1995_3_Degree_GK_Zone_55 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_55",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2690 Pulkovo_1995_3_Degree_GK_Zone_56 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_56",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2691 Pulkovo_1995_3_Degree_GK_Zone_57 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_57",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2692 Pulkovo_1995_3_Degree_GK_Zone_58 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_58",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2693 Pulkovo_1995_3_Degree_GK_Zone_59 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_59",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2695 Pulkovo_1995_3_Degree_GK_Zone_61 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_61",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2696 Pulkovo_1995_3_Degree_GK_Zone_62 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_62",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2697 Pulkovo_1995_3_Degree_GK_Zone_63 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_63",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2698 Pulkovo_1995_3_Degree_GK_Zone_64 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_64",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2699 Pulkovo_1995_3_Degree_GK_CM_21E PROJCS["Pulkovo_1995_3_Degree_GK_CM_21E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2700 Pulkovo_1995_3_Degree_GK_CM_24E PROJCS["Pulkovo_1995_3_Degree_GK_CM_24E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2701 Pulkovo_1995_3_Degree_GK_CM_27E PROJCS["Pulkovo_1995_3_Degree_GK_CM_27E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2702 Pulkovo_1995_3_Degree_GK_CM_30E PROJCS["Pulkovo_1995_3_Degree_GK_CM_30E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2703 Pulkovo_1995_3_Degree_GK_CM_33E PROJCS["Pulkovo_1995_3_Degree_GK_CM_33E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2704 Pulkovo_1995_3_Degree_GK_CM_36E PROJCS["Pulkovo_1995_3_Degree_GK_CM_36E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2705 Pulkovo_1995_3_Degree_GK_CM_39E PROJCS["Pulkovo_1995_3_Degree_GK_CM_39E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2706 Pulkovo_1995_3_Degree_GK_CM_42E PROJCS["Pulkovo_1995_3_Degree_GK_CM_42E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2707 Pulkovo_1995_3_Degree_GK_CM_45E PROJCS["Pulkovo_1995_3_Degree_GK_CM_45E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2708 Pulkovo_1995_3_Degree_GK_CM_48E PROJCS["Pulkovo_1995_3_Degree_GK_CM_48E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2709 Pulkovo_1995_3_Degree_GK_CM_51E PROJCS["Pulkovo_1995_3_Degree_GK_CM_51E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2710 Pulkovo_1995_3_Degree_GK_CM_54E PROJCS["Pulkovo_1995_3_Degree_GK_CM_54E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2711 Pulkovo_1995_3_Degree_GK_CM_57E PROJCS["Pulkovo_1995_3_Degree_GK_CM_57E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2712 Pulkovo_1995_3_Degree_GK_CM_60E PROJCS["Pulkovo_1995_3_Degree_GK_CM_60E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2713 Pulkovo_1995_3_Degree_GK_CM_63E PROJCS["Pulkovo_1995_3_Degree_GK_CM_63E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2714 Pulkovo_1995_3_Degree_GK_CM_66E PROJCS["Pulkovo_1995_3_Degree_GK_CM_66E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2715 Pulkovo_1995_3_Degree_GK_CM_69E PROJCS["Pulkovo_1995_3_Degree_GK_CM_69E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2716 Pulkovo_1995_3_Degree_GK_CM_72E PROJCS["Pulkovo_1995_3_Degree_GK_CM_72E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2717 Pulkovo_1995_3_Degree_GK_CM_75E PROJCS["Pulkovo_1995_3_Degree_GK_CM_75E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2718 Pulkovo_1995_3_Degree_GK_CM_78E PROJCS["Pulkovo_1995_3_Degree_GK_CM_78E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2719 Pulkovo_1995_3_Degree_GK_CM_81E PROJCS["Pulkovo_1995_3_Degree_GK_CM_81E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu

Copyright 1995-2015 Esri. All rights reserved. 337


ArcGIS Runtime SDK for .NET

2720 Pulkovo_1995_3_Degree_GK_CM_84E PROJCS["Pulkovo_1995_3_Degree_GK_CM_84E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu


2721 Pulkovo_1995_3_Degree_GK_CM_87E PROJCS["Pulkovo_1995_3_Degree_GK_CM_87E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2722 Pulkovo_1995_3_Degree_GK_CM_90E PROJCS["Pulkovo_1995_3_Degree_GK_CM_90E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2723 Pulkovo_1995_3_Degree_GK_CM_93E PROJCS["Pulkovo_1995_3_Degree_GK_CM_93E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2724 Pulkovo_1995_3_Degree_GK_CM_96E PROJCS["Pulkovo_1995_3_Degree_GK_CM_96E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2725 Pulkovo_1995_3_Degree_GK_CM_99E PROJCS["Pulkovo_1995_3_Degree_GK_CM_99E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
2726 Pulkovo_1995_3_Degree_GK_CM_102E PROJCS["Pulkovo_1995_3_Degree_GK_CM_102E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2727 Pulkovo_1995_3_Degree_GK_CM_105E PROJCS["Pulkovo_1995_3_Degree_GK_CM_105E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2728 Pulkovo_1995_3_Degree_GK_CM_108E PROJCS["Pulkovo_1995_3_Degree_GK_CM_108E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2729 Pulkovo_1995_3_Degree_GK_CM_111E PROJCS["Pulkovo_1995_3_Degree_GK_CM_111E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2730 Pulkovo_1995_3_Degree_GK_CM_114E PROJCS["Pulkovo_1995_3_Degree_GK_CM_114E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2731 Pulkovo_1995_3_Degree_GK_CM_117E PROJCS["Pulkovo_1995_3_Degree_GK_CM_117E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2732 Pulkovo_1995_3_Degree_GK_CM_120E PROJCS["Pulkovo_1995_3_Degree_GK_CM_120E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2733 Pulkovo_1995_3_Degree_GK_CM_123E PROJCS["Pulkovo_1995_3_Degree_GK_CM_123E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2734 Pulkovo_1995_3_Degree_GK_CM_126E PROJCS["Pulkovo_1995_3_Degree_GK_CM_126E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2735 Pulkovo_1995_3_Degree_GK_CM_129E PROJCS["Pulkovo_1995_3_Degree_GK_CM_129E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2736 Tete_UTM_Zone_36S PROJCS["Tete_UTM_Zone_36S",GEOGCS["GCS_Tete",DATUM["D_Tete",SPHEROID["Clarke_186
2737 Tete_UTM_Zone_37S PROJCS["Tete_UTM_Zone_37S",GEOGCS["GCS_Tete",DATUM["D_Tete",SPHEROID["Clarke_186
2738 Pulkovo_1995_3_Degree_GK_CM_132E PROJCS["Pulkovo_1995_3_Degree_GK_CM_132E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2739 Pulkovo_1995_3_Degree_GK_CM_135E PROJCS["Pulkovo_1995_3_Degree_GK_CM_135E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2740 Pulkovo_1995_3_Degree_GK_CM_138E PROJCS["Pulkovo_1995_3_Degree_GK_CM_138E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2741 Pulkovo_1995_3_Degree_GK_CM_141E PROJCS["Pulkovo_1995_3_Degree_GK_CM_141E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2742 Pulkovo_1995_3_Degree_GK_CM_144E PROJCS["Pulkovo_1995_3_Degree_GK_CM_144E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2743 Pulkovo_1995_3_Degree_GK_CM_147E PROJCS["Pulkovo_1995_3_Degree_GK_CM_147E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2744 Pulkovo_1995_3_Degree_GK_CM_150E PROJCS["Pulkovo_1995_3_Degree_GK_CM_150E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2745 Pulkovo_1995_3_Degree_GK_CM_153E PROJCS["Pulkovo_1995_3_Degree_GK_CM_153E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2746 Pulkovo_1995_3_Degree_GK_CM_156E PROJCS["Pulkovo_1995_3_Degree_GK_CM_156E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2747 Pulkovo_1995_3_Degree_GK_CM_159E PROJCS["Pulkovo_1995_3_Degree_GK_CM_159E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2748 Pulkovo_1995_3_Degree_GK_CM_162E PROJCS["Pulkovo_1995_3_Degree_GK_CM_162E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2749 Pulkovo_1995_3_Degree_GK_CM_165E PROJCS["Pulkovo_1995_3_Degree_GK_CM_165E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2750 Pulkovo_1995_3_Degree_GK_CM_168E PROJCS["Pulkovo_1995_3_Degree_GK_CM_168E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2751 Pulkovo_1995_3_Degree_GK_CM_171E PROJCS["Pulkovo_1995_3_Degree_GK_CM_171E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2752 Pulkovo_1995_3_Degree_GK_CM_174E PROJCS["Pulkovo_1995_3_Degree_GK_CM_174E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2753 Pulkovo_1995_3_Degree_GK_CM_177E PROJCS["Pulkovo_1995_3_Degree_GK_CM_177E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2754 Pulkovo_1995_3_Degree_GK_CM_180E PROJCS["Pulkovo_1995_3_Degree_GK_CM_180E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2755 Pulkovo_1995_3_Degree_GK_CM_177W PROJCS["Pulkovo_1995_3_Degree_GK_CM_177W",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2756 Pulkovo_1995_3_Degree_GK_CM_174W PROJCS["Pulkovo_1995_3_Degree_GK_CM_174W",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2757 Pulkovo_1995_3_Degree_GK_CM_171W PROJCS["Pulkovo_1995_3_Degree_GK_CM_171W",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2758 Pulkovo_1995_3_Degree_GK_CM_168W PROJCS["Pulkovo_1995_3_Degree_GK_CM_168W",GEOGCS["GCS_Pulkovo_1995",DATUM["D_P
2759 NAD_1983_HARN_StatePlane_Alabama_East_FIPS_0101 PROJCS["NAD_1983_HARN_StatePlane_Alabama_East_FIPS_0101",GEOGCS["GCS_North_Ame
2760 NAD_1983_HARN_StatePlane_Alabama_West_FIPS_0102 PROJCS["NAD_1983_HARN_StatePlane_Alabama_West_FIPS_0102",GEOGCS["GCS_North_Ame
2761 NAD_1983_HARN_StatePlane_Arizona_East_FIPS_0201 PROJCS["NAD_1983_HARN_StatePlane_Arizona_East_FIPS_0201",GEOGCS["GCS_North_Ameri
2762 NAD_1983_HARN_StatePlane_Arizona_Central_FIPS_0202 PROJCS["NAD_1983_HARN_StatePlane_Arizona_Central_FIPS_0202",GEOGCS["GCS_North_Am
2763 NAD_1983_HARN_StatePlane_Arizona_West_FIPS_0203 PROJCS["NAD_1983_HARN_StatePlane_Arizona_West_FIPS_0203",GEOGCS["GCS_North_Amer
2764 NAD_1983_HARN_StatePlane_Arkansas_North_FIPS_0301 PROJCS["NAD_1983_HARN_StatePlane_Arkansas_North_FIPS_0301",GEOGCS["GCS_North_Am
2765 NAD_1983_HARN_StatePlane_Arkansas_South_FIPS_0302 PROJCS["NAD_1983_HARN_StatePlane_Arkansas_South_FIPS_0302",GEOGCS["GCS_North_Am
2766 NAD_1983_HARN_StatePlane_California_I_FIPS_0401 PROJCS["NAD_1983_HARN_StatePlane_California_I_FIPS_0401",GEOGCS["GCS_North_America
2767 NAD_1983_HARN_StatePlane_California_II_FIPS_0402 PROJCS["NAD_1983_HARN_StatePlane_California_II_FIPS_0402",GEOGCS["GCS_North_Americ
2768 NAD_1983_HARN_StatePlane_California_III_FIPS_0403 PROJCS["NAD_1983_HARN_StatePlane_California_III_FIPS_0403",GEOGCS["GCS_North_Americ
2769 NAD_1983_HARN_StatePlane_California_IV_FIPS_0404 PROJCS["NAD_1983_HARN_StatePlane_California_IV_FIPS_0404",GEOGCS["GCS_North_Americ
2770 NAD_1983_HARN_StatePlane_California_V_FIPS_0405 PROJCS["NAD_1983_HARN_StatePlane_California_V_FIPS_0405",GEOGCS["GCS_North_Americ
2771 NAD_1983_HARN_StatePlane_California_VI_FIPS_0406 PROJCS["NAD_1983_HARN_StatePlane_California_VI_FIPS_0406",GEOGCS["GCS_North_Americ
2772 NAD_1983_HARN_StatePlane_Colorado_North_FIPS_0501 PROJCS["NAD_1983_HARN_StatePlane_Colorado_North_FIPS_0501",GEOGCS["GCS_North_Am
2773 NAD_1983_HARN_StatePlane_Colorado_Central_FIPS_0502 PROJCS["NAD_1983_HARN_StatePlane_Colorado_Central_FIPS_0502",GEOGCS["GCS_North_A

Copyright 1995-2015 Esri. All rights reserved. 338


ArcGIS Runtime SDK for .NET

2774 NAD_1983_HARN_StatePlane_Colorado_South_FIPS_0503 PROJCS["NAD_1983_HARN_StatePlane_Colorado_South_FIPS_0503",GEOGCS["GCS_North_Am


2775 NAD_1983_HARN_StatePlane_Connecticut_FIPS_0600 PROJCS["NAD_1983_HARN_StatePlane_Connecticut_FIPS_0600",GEOGCS["GCS_North_America
2776 NAD_1983_HARN_StatePlane_Delaware_FIPS_0700 PROJCS["NAD_1983_HARN_StatePlane_Delaware_FIPS_0700",GEOGCS["GCS_North_American
2777 NAD_1983_HARN_StatePlane_Florida_East_FIPS_0901 PROJCS["NAD_1983_HARN_StatePlane_Florida_East_FIPS_0901",GEOGCS["GCS_North_Americ
2778 NAD_1983_HARN_StatePlane_Florida_West_FIPS_0902 PROJCS["NAD_1983_HARN_StatePlane_Florida_West_FIPS_0902",GEOGCS["GCS_North_Ameri
2779 NAD_1983_HARN_StatePlane_Florida_North_FIPS_0903 PROJCS["NAD_1983_HARN_StatePlane_Florida_North_FIPS_0903",GEOGCS["GCS_North_Amer
2780 NAD_1983_HARN_StatePlane_Georgia_East_FIPS_1001 PROJCS["NAD_1983_HARN_StatePlane_Georgia_East_FIPS_1001",GEOGCS["GCS_North_Amer
2781 NAD_1983_HARN_StatePlane_Georgia_West_FIPS_1002 PROJCS["NAD_1983_HARN_StatePlane_Georgia_West_FIPS_1002",GEOGCS["GCS_North_Ame
2782 NAD_1983_HARN_StatePlane_Hawaii_1_FIPS_5101 PROJCS["NAD_1983_HARN_StatePlane_Hawaii_1_FIPS_5101",GEOGCS["GCS_North_American_
2783 NAD_1983_HARN_StatePlane_Hawaii_2_FIPS_5102 PROJCS["NAD_1983_HARN_StatePlane_Hawaii_2_FIPS_5102",GEOGCS["GCS_North_American_
2784 NAD_1983_HARN_StatePlane_Hawaii_3_FIPS_5103 PROJCS["NAD_1983_HARN_StatePlane_Hawaii_3_FIPS_5103",GEOGCS["GCS_North_American_
2785 NAD_1983_HARN_StatePlane_Hawaii_4_FIPS_5104 PROJCS["NAD_1983_HARN_StatePlane_Hawaii_4_FIPS_5104",GEOGCS["GCS_North_American_
2786 NAD_1983_HARN_StatePlane_Hawaii_5_FIPS_5105 PROJCS["NAD_1983_HARN_StatePlane_Hawaii_5_FIPS_5105",GEOGCS["GCS_North_American_
2787 NAD_1983_HARN_StatePlane_Idaho_East_FIPS_1101 PROJCS["NAD_1983_HARN_StatePlane_Idaho_East_FIPS_1101",GEOGCS["GCS_North_America
2788 NAD_1983_HARN_StatePlane_Idaho_Central_FIPS_1102 PROJCS["NAD_1983_HARN_StatePlane_Idaho_Central_FIPS_1102",GEOGCS["GCS_North_Amer
2789 NAD_1983_HARN_StatePlane_Idaho_West_FIPS_1103 PROJCS["NAD_1983_HARN_StatePlane_Idaho_West_FIPS_1103",GEOGCS["GCS_North_Americ
2790 NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201 PROJCS["NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201",GEOGCS["GCS_North_Americ
2791 NAD_1983_HARN_StatePlane_Illinois_West_FIPS_1202 PROJCS["NAD_1983_HARN_StatePlane_Illinois_West_FIPS_1202",GEOGCS["GCS_North_Americ
2792 NAD_1983_HARN_StatePlane_Indiana_East_FIPS_1301 PROJCS["NAD_1983_HARN_StatePlane_Indiana_East_FIPS_1301",GEOGCS["GCS_North_Ameri
2793 NAD_1983_HARN_StatePlane_Indiana_West_FIPS_1302 PROJCS["NAD_1983_HARN_StatePlane_Indiana_West_FIPS_1302",GEOGCS["GCS_North_Amer
2794 NAD_1983_HARN_StatePlane_Iowa_North_FIPS_1401 PROJCS["NAD_1983_HARN_StatePlane_Iowa_North_FIPS_1401",GEOGCS["GCS_North_America
2795 NAD_1983_HARN_StatePlane_Iowa_South_FIPS_1402 PROJCS["NAD_1983_HARN_StatePlane_Iowa_South_FIPS_1402",GEOGCS["GCS_North_America
2796 NAD_1983_HARN_StatePlane_Kansas_North_FIPS_1501 PROJCS["NAD_1983_HARN_StatePlane_Kansas_North_FIPS_1501",GEOGCS["GCS_North_Amer
2797 NAD_1983_HARN_StatePlane_Kansas_South_FIPS_1502 PROJCS["NAD_1983_HARN_StatePlane_Kansas_South_FIPS_1502",GEOGCS["GCS_North_Ame
2798 NAD_1983_HARN_StatePlane_Kentucky_North_FIPS_1601 PROJCS["NAD_1983_HARN_StatePlane_Kentucky_North_FIPS_1601",GEOGCS["GCS_North_Am
2799 NAD_1983_HARN_StatePlane_Kentucky_South_FIPS_1602 PROJCS["NAD_1983_HARN_StatePlane_Kentucky_South_FIPS_1602",GEOGCS["GCS_North_Am
2800 NAD_1983_HARN_StatePlane_Louisiana_North_FIPS_1701 PROJCS["NAD_1983_HARN_StatePlane_Louisiana_North_FIPS_1701",GEOGCS["GCS_North_Am
2801 NAD_1983_HARN_StatePlane_Louisiana_South_FIPS_1702 PROJCS["NAD_1983_HARN_StatePlane_Louisiana_South_FIPS_1702",GEOGCS["GCS_North_Am
2802 NAD_1983_HARN_StatePlane_Maine_East_FIPS_1801 PROJCS["NAD_1983_HARN_StatePlane_Maine_East_FIPS_1801",GEOGCS["GCS_North_America
2803 NAD_1983_HARN_StatePlane_Maine_West_FIPS_1802 PROJCS["NAD_1983_HARN_StatePlane_Maine_West_FIPS_1802",GEOGCS["GCS_North_Americ
2804 NAD_1983_HARN_StatePlane_Maryland_FIPS_1900 PROJCS["NAD_1983_HARN_StatePlane_Maryland_FIPS_1900",GEOGCS["GCS_North_American_
2805 NAD_1983_HARN_StatePlane_Massachusetts_Mainland_FIPS_2001 PROJCS["NAD_1983_HARN_StatePlane_Massachusetts_Mainland_FIPS_2001",GEOGCS["GCS_N
2806 NAD_1983_HARN_StatePlane_Massachusetts_Island_FIPS_2002 PROJCS["NAD_1983_HARN_StatePlane_Massachusetts_Island_FIPS_2002",GEOGCS["GCS_Nor
2807 NAD_1983_HARN_StatePlane_Michigan_North_FIPS_2111 PROJCS["NAD_1983_HARN_StatePlane_Michigan_North_FIPS_2111",GEOGCS["GCS_North_Am
2808 NAD_1983_HARN_StatePlane_Michigan_Central_FIPS_2112 PROJCS["NAD_1983_HARN_StatePlane_Michigan_Central_FIPS_2112",GEOGCS["GCS_North_A
2809 NAD_1983_HARN_StatePlane_Michigan_South_FIPS_2113 PROJCS["NAD_1983_HARN_StatePlane_Michigan_South_FIPS_2113",GEOGCS["GCS_North_Am
2810 NAD_1983_HARN_StatePlane_Minnesota_North_FIPS_2201 PROJCS["NAD_1983_HARN_StatePlane_Minnesota_North_FIPS_2201",GEOGCS["GCS_North_Am
2811 NAD_1983_HARN_StatePlane_Minnesota_Central_FIPS_2202 PROJCS["NAD_1983_HARN_StatePlane_Minnesota_Central_FIPS_2202",GEOGCS["GCS_North_A
2812 NAD_1983_HARN_StatePlane_Minnesota_South_FIPS_2203 PROJCS["NAD_1983_HARN_StatePlane_Minnesota_South_FIPS_2203",GEOGCS["GCS_North_A
2813 NAD_1983_HARN_StatePlane_Mississippi_East_FIPS_2301 PROJCS["NAD_1983_HARN_StatePlane_Mississippi_East_FIPS_2301",GEOGCS["GCS_North_Am
2814 NAD_1983_HARN_StatePlane_Mississippi_West_FIPS_2302 PROJCS["NAD_1983_HARN_StatePlane_Mississippi_West_FIPS_2302",GEOGCS["GCS_North_Am
2815 NAD_1983_HARN_StatePlane_Missouri_East_FIPS_2401 PROJCS["NAD_1983_HARN_StatePlane_Missouri_East_FIPS_2401",GEOGCS["GCS_North_Amer
2816 NAD_1983_HARN_StatePlane_Missouri_Central_FIPS_2402 PROJCS["NAD_1983_HARN_StatePlane_Missouri_Central_FIPS_2402",GEOGCS["GCS_North_Am
2817 NAD_1983_HARN_StatePlane_Missouri_West_FIPS_2403 PROJCS["NAD_1983_HARN_StatePlane_Missouri_West_FIPS_2403",GEOGCS["GCS_North_Ame
2818 NAD_1983_HARN_StatePlane_Montana_FIPS_2500 PROJCS["NAD_1983_HARN_StatePlane_Montana_FIPS_2500",GEOGCS["GCS_North_American_
2819 NAD_1983_HARN_StatePlane_Nebraska_FIPS_2600 PROJCS["NAD_1983_HARN_StatePlane_Nebraska_FIPS_2600",GEOGCS["GCS_North_American
2820 NAD_1983_HARN_StatePlane_Nevada_East_FIPS_2701 PROJCS["NAD_1983_HARN_StatePlane_Nevada_East_FIPS_2701",GEOGCS["GCS_North_Ameri
2821 NAD_1983_HARN_StatePlane_Nevada_Central_FIPS_2702 PROJCS["NAD_1983_HARN_StatePlane_Nevada_Central_FIPS_2702",GEOGCS["GCS_North_Am
2822 NAD_1983_HARN_StatePlane_Nevada_West_FIPS_2703 PROJCS["NAD_1983_HARN_StatePlane_Nevada_West_FIPS_2703",GEOGCS["GCS_North_Amer
2823 NAD_1983_HARN_StatePlane_New_Hampshire_FIPS_2800 PROJCS["NAD_1983_HARN_StatePlane_New_Hampshire_FIPS_2800",GEOGCS["GCS_North_Am
2824 NAD_1983_HARN_StatePlane_New_Jersey_FIPS_2900 PROJCS["NAD_1983_HARN_StatePlane_New_Jersey_FIPS_2900",GEOGCS["GCS_North_Americ
2825 NAD_1983_HARN_StatePlane_New_Mexico_East_FIPS_3001 PROJCS["NAD_1983_HARN_StatePlane_New_Mexico_East_FIPS_3001",GEOGCS["GCS_North_A
2826 NAD_1983_HARN_StatePlane_New_Mexico_Central_FIPS_3002 PROJCS["NAD_1983_HARN_StatePlane_New_Mexico_Central_FIPS_3002",GEOGCS["GCS_North
2827 NAD_1983_HARN_StatePlane_New_Mexico_West_FIPS_3003 PROJCS["NAD_1983_HARN_StatePlane_New_Mexico_West_FIPS_3003",GEOGCS["GCS_North_

Copyright 1995-2015 Esri. All rights reserved. 339


ArcGIS Runtime SDK for .NET

2828 NAD_1983_HARN_StatePlane_New_York_East_FIPS_3101 PROJCS["NAD_1983_HARN_StatePlane_New_York_East_FIPS_3101",GEOGCS["GCS_North_Am


2829 NAD_1983_HARN_StatePlane_New_York_Central_FIPS_3102 PROJCS["NAD_1983_HARN_StatePlane_New_York_Central_FIPS_3102",GEOGCS["GCS_North_A
2830 NAD_1983_HARN_StatePlane_New_York_West_FIPS_3103 PROJCS["NAD_1983_HARN_StatePlane_New_York_West_FIPS_3103",GEOGCS["GCS_North_Am
2831 NAD_1983_HARN_StatePlane_New_York_Long_Island_FIPS_3104 PROJCS["NAD_1983_HARN_StatePlane_New_York_Long_Island_FIPS_3104",GEOGCS["GCS_No
2832 NAD_1983_HARN_StatePlane_North_Dakota_North_FIPS_3301 PROJCS["NAD_1983_HARN_StatePlane_North_Dakota_North_FIPS_3301",GEOGCS["GCS_North
2833 NAD_1983_HARN_StatePlane_North_Dakota_South_FIPS_3302 PROJCS["NAD_1983_HARN_StatePlane_North_Dakota_South_FIPS_3302",GEOGCS["GCS_North
2834 NAD_1983_HARN_StatePlane_Ohio_North_FIPS_3401 PROJCS["NAD_1983_HARN_StatePlane_Ohio_North_FIPS_3401",GEOGCS["GCS_North_America
2835 NAD_1983_HARN_StatePlane_Ohio_South_FIPS_3402 PROJCS["NAD_1983_HARN_StatePlane_Ohio_South_FIPS_3402",GEOGCS["GCS_North_America
2836 NAD_1983_HARN_StatePlane_Oklahoma_North_FIPS_3501 PROJCS["NAD_1983_HARN_StatePlane_Oklahoma_North_FIPS_3501",GEOGCS["GCS_North_Am
2837 NAD_1983_HARN_StatePlane_Oklahoma_South_FIPS_3502 PROJCS["NAD_1983_HARN_StatePlane_Oklahoma_South_FIPS_3502",GEOGCS["GCS_North_Am
2838 NAD_1983_HARN_StatePlane_Oregon_North_FIPS_3601 PROJCS["NAD_1983_HARN_StatePlane_Oregon_North_FIPS_3601",GEOGCS["GCS_North_Amer
2839 NAD_1983_HARN_StatePlane_Oregon_South_FIPS_3602 PROJCS["NAD_1983_HARN_StatePlane_Oregon_South_FIPS_3602",GEOGCS["GCS_North_Ame
2840 NAD_1983_HARN_StatePlane_Rhode_Island_FIPS_3800 PROJCS["NAD_1983_HARN_StatePlane_Rhode_Island_FIPS_3800",GEOGCS["GCS_North_Amer
2841 NAD_1983_HARN_StatePlane_South_Dakota_North_FIPS_4001 PROJCS["NAD_1983_HARN_StatePlane_South_Dakota_North_FIPS_4001",GEOGCS["GCS_North
2842 NAD_1983_HARN_StatePlane_South_Dakota_South_FIPS_4002 PROJCS["NAD_1983_HARN_StatePlane_South_Dakota_South_FIPS_4002",GEOGCS["GCS_North
2843 NAD_1983_HARN_StatePlane_Tennessee_FIPS_4100 PROJCS["NAD_1983_HARN_StatePlane_Tennessee_FIPS_4100",GEOGCS["GCS_North_America
2844 NAD_1983_HARN_StatePlane_Texas_North_FIPS_4201 PROJCS["NAD_1983_HARN_StatePlane_Texas_North_FIPS_4201",GEOGCS["GCS_North_Americ
2845 NAD_1983_HARN_StatePlane_Texas_North_Central_FIPS_4202 PROJCS["NAD_1983_HARN_StatePlane_Texas_North_Central_FIPS_4202",GEOGCS["GCS_North
2846 NAD_1983_HARN_StatePlane_Texas_Central_FIPS_4203 PROJCS["NAD_1983_HARN_StatePlane_Texas_Central_FIPS_4203",GEOGCS["GCS_North_Ame
2847 NAD_1983_HARN_StatePlane_Texas_South_Central_FIPS_4204 PROJCS["NAD_1983_HARN_StatePlane_Texas_South_Central_FIPS_4204",GEOGCS["GCS_Nort
2848 NAD_1983_HARN_StatePlane_Texas_South_FIPS_4205 PROJCS["NAD_1983_HARN_StatePlane_Texas_South_FIPS_4205",GEOGCS["GCS_North_Ameri
2849 NAD_1983_HARN_StatePlane_Utah_North_FIPS_4301 PROJCS["NAD_1983_HARN_StatePlane_Utah_North_FIPS_4301",GEOGCS["GCS_North_America
2850 NAD_1983_HARN_StatePlane_Utah_Central_FIPS_4302 PROJCS["NAD_1983_HARN_StatePlane_Utah_Central_FIPS_4302",GEOGCS["GCS_North_Ameri
2851 NAD_1983_HARN_StatePlane_Utah_South_FIPS_4303 PROJCS["NAD_1983_HARN_StatePlane_Utah_South_FIPS_4303",GEOGCS["GCS_North_America
2852 NAD_1983_HARN_StatePlane_Vermont_FIPS_4400 PROJCS["NAD_1983_HARN_StatePlane_Vermont_FIPS_4400",GEOGCS["GCS_North_American_
2853 NAD_1983_HARN_StatePlane_Virginia_North_FIPS_4501 PROJCS["NAD_1983_HARN_StatePlane_Virginia_North_FIPS_4501",GEOGCS["GCS_North_Amer
2854 NAD_1983_HARN_StatePlane_Virginia_South_FIPS_4502 PROJCS["NAD_1983_HARN_StatePlane_Virginia_South_FIPS_4502",GEOGCS["GCS_North_Ame
2855 NAD_1983_HARN_StatePlane_Washington_North_FIPS_4601 PROJCS["NAD_1983_HARN_StatePlane_Washington_North_FIPS_4601",GEOGCS["GCS_North_A
2856 NAD_1983_HARN_StatePlane_Washington_South_FIPS_4602 PROJCS["NAD_1983_HARN_StatePlane_Washington_South_FIPS_4602",GEOGCS["GCS_North_
2857 NAD_1983_HARN_StatePlane_West_Virginia_North_FIPS_4701 PROJCS["NAD_1983_HARN_StatePlane_West_Virginia_North_FIPS_4701",GEOGCS["GCS_North
2858 NAD_1983_HARN_StatePlane_West_Virginia_South_FIPS_4702 PROJCS["NAD_1983_HARN_StatePlane_West_Virginia_South_FIPS_4702",GEOGCS["GCS_North
2859 NAD_1983_HARN_StatePlane_Wisconsin_North_FIPS_4801 PROJCS["NAD_1983_HARN_StatePlane_Wisconsin_North_FIPS_4801",GEOGCS["GCS_North_Am
2860 NAD_1983_HARN_StatePlane_Wisconsin_Central_FIPS_4802 PROJCS["NAD_1983_HARN_StatePlane_Wisconsin_Central_FIPS_4802",GEOGCS["GCS_North_A
2861 NAD_1983_HARN_StatePlane_Wisconsin_South_FIPS_4803 PROJCS["NAD_1983_HARN_StatePlane_Wisconsin_South_FIPS_4803",GEOGCS["GCS_North_Am
2862 NAD_1983_HARN_StatePlane_Wyoming_East_FIPS_4901 PROJCS["NAD_1983_HARN_StatePlane_Wyoming_East_FIPS_4901",GEOGCS["GCS_North_Ame
2863 NAD_1983_HARN_StatePlane_Wyoming_East_Central_FIPS_4902 PROJCS["NAD_1983_HARN_StatePlane_Wyoming_East_Central_FIPS_4902",GEOGCS["GCS_No
2864 NAD_1983_HARN_StatePlane_Wyoming_West_Central_FIPS_4903 PROJCS["NAD_1983_HARN_StatePlane_Wyoming_West_Central_FIPS_4903",GEOGCS["GCS_N
2865 NAD_1983_HARN_StatePlane_Wyoming_West_FIPS_4904 PROJCS["NAD_1983_HARN_StatePlane_Wyoming_West_FIPS_4904",GEOGCS["GCS_North_Am
2866 NAD_1983_HARN_StatePlane_Puerto_Rico_Virgin_Islands_FIPS_5200 PROJCS["NAD_1983_HARN_StatePlane_Puerto_Rico_Virgin_Islands_FIPS_5200",GEOGCS["GCS
2867 NAD_1983_HARN_StatePlane_Arizona_East_FIPS_0201_Feet_Intl PROJCS["NAD_1983_HARN_StatePlane_Arizona_East_FIPS_0201_Feet_Intl",GEOGCS["GCS_No
2868 NAD_1983_HARN_StatePlane_Arizona_Central_FIPS_0202_Feet_Intl PROJCS["NAD_1983_HARN_StatePlane_Arizona_Central_FIPS_0202_Feet_Intl",GEOGCS["GCS_
2869 NAD_1983_HARN_StatePlane_Arizona_West_FIPS_0203_Feet_Intl PROJCS["NAD_1983_HARN_StatePlane_Arizona_West_FIPS_0203_Feet_Intl",GEOGCS["GCS_No
2870 NAD_1983_HARN_StatePlane_California_I_FIPS_0401_Feet PROJCS["NAD_1983_HARN_StatePlane_California_I_FIPS_0401_Feet",GEOGCS["GCS_North_Am
2871 NAD_1983_HARN_StatePlane_California_II_FIPS_0402_Feet PROJCS["NAD_1983_HARN_StatePlane_California_II_FIPS_0402_Feet",GEOGCS["GCS_North_A
2872 NAD_1983_HARN_StatePlane_California_III_FIPS_0403_Feet PROJCS["NAD_1983_HARN_StatePlane_California_III_FIPS_0403_Feet",GEOGCS["GCS_North_A
2873 NAD_1983_HARN_StatePlane_California_IV_FIPS_0404_Feet PROJCS["NAD_1983_HARN_StatePlane_California_IV_FIPS_0404_Feet",GEOGCS["GCS_North_A
2874 NAD_1983_HARN_StatePlane_California_V_FIPS_0405_Feet PROJCS["NAD_1983_HARN_StatePlane_California_V_FIPS_0405_Feet",GEOGCS["GCS_North_A
2875 NAD_1983_HARN_StatePlane_California_VI_FIPS_0406_Feet PROJCS["NAD_1983_HARN_StatePlane_California_VI_FIPS_0406_Feet",GEOGCS["GCS_North_A
2876 NAD_1983_HARN_StatePlane_Colorado_North_FIPS_0501_Feet PROJCS["NAD_1983_HARN_StatePlane_Colorado_North_FIPS_0501_Feet",GEOGCS["GCS_Nort
2877 NAD_1983_HARN_StatePlane_Colorado_Central_FIPS_0502_Feet PROJCS["NAD_1983_HARN_StatePlane_Colorado_Central_FIPS_0502_Feet",GEOGCS["GCS_No
2878 NAD_1983_HARN_StatePlane_Colorado_South_FIPS_0503_Feet PROJCS["NAD_1983_HARN_StatePlane_Colorado_South_FIPS_0503_Feet",GEOGCS["GCS_Nort
2879 NAD_1983_HARN_StatePlane_Connecticut_FIPS_0600_Feet PROJCS["NAD_1983_HARN_StatePlane_Connecticut_FIPS_0600_Feet",GEOGCS["GCS_North_A
2880 NAD_1983_HARN_StatePlane_Delaware_FIPS_0700_Feet PROJCS["NAD_1983_HARN_StatePlane_Delaware_FIPS_0700_Feet",GEOGCS["GCS_North_Ame
2881 NAD_1983_HARN_StatePlane_Florida_East_FIPS_0901_Feet PROJCS["NAD_1983_HARN_StatePlane_Florida_East_FIPS_0901_Feet",GEOGCS["GCS_North_A

Copyright 1995-2015 Esri. All rights reserved. 340


ArcGIS Runtime SDK for .NET

2882 NAD_1983_HARN_StatePlane_Florida_West_FIPS_0902_Feet PROJCS["NAD_1983_HARN_StatePlane_Florida_West_FIPS_0902_Feet",GEOGCS["GCS_North_


2883 NAD_1983_HARN_StatePlane_Florida_North_FIPS_0903_Feet PROJCS["NAD_1983_HARN_StatePlane_Florida_North_FIPS_0903_Feet",GEOGCS["GCS_North_
2884 NAD_1983_HARN_StatePlane_Georgia_East_FIPS_1001_Feet PROJCS["NAD_1983_HARN_StatePlane_Georgia_East_FIPS_1001_Feet",GEOGCS["GCS_North_
2885 NAD_1983_HARN_StatePlane_Georgia_West_FIPS_1002_Feet PROJCS["NAD_1983_HARN_StatePlane_Georgia_West_FIPS_1002_Feet",GEOGCS["GCS_North_
2886 NAD_1983_HARN_StatePlane_Idaho_East_FIPS_1101_Feet PROJCS["NAD_1983_HARN_StatePlane_Idaho_East_FIPS_1101_Feet",GEOGCS["GCS_North_Am
2887 NAD_1983_HARN_StatePlane_Idaho_Central_FIPS_1102_Feet PROJCS["NAD_1983_HARN_StatePlane_Idaho_Central_FIPS_1102_Feet",GEOGCS["GCS_North_
2888 NAD_1983_HARN_StatePlane_Idaho_West_FIPS_1103_Feet PROJCS["NAD_1983_HARN_StatePlane_Idaho_West_FIPS_1103_Feet",GEOGCS["GCS_North_A
2891 NAD_1983_HARN_StatePlane_Kentucky_North_FIPS_1601_Feet PROJCS["NAD_1983_HARN_StatePlane_Kentucky_North_FIPS_1601_Feet",GEOGCS["GCS_Nort
2892 NAD_1983_HARN_StatePlane_Kentucky_South_FIPS_1602_Feet PROJCS["NAD_1983_HARN_StatePlane_Kentucky_South_FIPS_1602_Feet",GEOGCS["GCS_Nor
2893 NAD_1983_HARN_StatePlane_Maryland_FIPS_1900_Feet PROJCS["NAD_1983_HARN_StatePlane_Maryland_FIPS_1900_Feet",GEOGCS["GCS_North_Ame
2894 NAD_1983_HARN_StatePlane_Massachusetts_Mainland_FIPS_2001_Feet PROJCS["NAD_1983_HARN_StatePlane_Massachusetts_Mainland_FIPS_2001_Feet",GEOGCS["G
2895 NAD_1983_HARN_StatePlane_Massachusetts_Island_FIPS_2002_Feet PROJCS["NAD_1983_HARN_StatePlane_Massachusetts_Island_FIPS_2002_Feet",GEOGCS["GCS
2896 NAD_1983_HARN_StatePlane_Michigan_North_FIPS_2111_Feet_Intl PROJCS["NAD_1983_HARN_StatePlane_Michigan_North_FIPS_2111_Feet_Intl",GEOGCS["GCS_
2897 NAD_1983_HARN_StatePlane_Michigan_Central_FIPS_2112_Feet_Intl PROJCS["NAD_1983_HARN_StatePlane_Michigan_Central_FIPS_2112_Feet_Intl",GEOGCS["GCS
2898 NAD_1983_HARN_StatePlane_Michigan_South_FIPS_2113_Feet_Intl PROJCS["NAD_1983_HARN_StatePlane_Michigan_South_FIPS_2113_Feet_Intl",GEOGCS["GCS_
2899 NAD_1983_HARN_StatePlane_Mississippi_East_FIPS_2301_Feet PROJCS["NAD_1983_HARN_StatePlane_Mississippi_East_FIPS_2301_Feet",GEOGCS["GCS_Nor
2900 NAD_1983_HARN_StatePlane_Mississippi_West_FIPS_2302_Feet PROJCS["NAD_1983_HARN_StatePlane_Mississippi_West_FIPS_2302_Feet",GEOGCS["GCS_No
2901 NAD_1983_HARN_StatePlane_Montana_FIPS_2500_Feet_Intl PROJCS["NAD_1983_HARN_StatePlane_Montana_FIPS_2500_Feet_Intl",GEOGCS["GCS_North_A
2902 NAD_1983_HARN_StatePlane_New_Mexico_East_FIPS_3001_Feet PROJCS["NAD_1983_HARN_StatePlane_New_Mexico_East_FIPS_3001_Feet",GEOGCS["GCS_N
2903 NAD_1983_HARN_StatePlane_New_Mexico_Central_FIPS_3002_Feet PROJCS["NAD_1983_HARN_StatePlane_New_Mexico_Central_FIPS_3002_Feet",GEOGCS["GCS
2904 NAD_1983_HARN_StatePlane_New_Mexico_West_FIPS_3003_Feet PROJCS["NAD_1983_HARN_StatePlane_New_Mexico_West_FIPS_3003_Feet",GEOGCS["GCS_N
2905 NAD_1983_HARN_StatePlane_New_York_East_FIPS_3101_Feet PROJCS["NAD_1983_HARN_StatePlane_New_York_East_FIPS_3101_Feet",GEOGCS["GCS_Nort
2906 NAD_1983_HARN_StatePlane_New_York_Central_FIPS_3102_Feet PROJCS["NAD_1983_HARN_StatePlane_New_York_Central_FIPS_3102_Feet",GEOGCS["GCS_N
2907 NAD_1983_HARN_StatePlane_New_York_West_FIPS_3103_Feet PROJCS["NAD_1983_HARN_StatePlane_New_York_West_FIPS_3103_Feet",GEOGCS["GCS_Nor
2908 NAD_1983_HARN_StatePlane_New_York_Long_Island_FIPS_3104_Feet PROJCS["NAD_1983_HARN_StatePlane_New_York_Long_Island_FIPS_3104_Feet",GEOGCS["GC
2909 NAD_1983_HARN_StatePlane_North_Dakota_North_FIPS_3301_Feet_Intl PROJCS["NAD_1983_HARN_StatePlane_North_Dakota_North_FIPS_3301_Feet_Intl",GEOGCS["G
2910 NAD_1983_HARN_StatePlane_North_Dakota_South_FIPS_3302_Feet_Intl PROJCS["NAD_1983_HARN_StatePlane_North_Dakota_South_FIPS_3302_Feet_Intl",GEOGCS["G
2911 NAD_1983_HARN_StatePlane_Oklahoma_North_FIPS_3501_Feet PROJCS["NAD_1983_HARN_StatePlane_Oklahoma_North_FIPS_3501_Feet",GEOGCS["GCS_Nor
2912 NAD_1983_HARN_StatePlane_Oklahoma_South_FIPS_3502_Feet PROJCS["NAD_1983_HARN_StatePlane_Oklahoma_South_FIPS_3502_Feet",GEOGCS["GCS_No
2913 NAD_1983_HARN_StatePlane_Oregon_North_FIPS_3601_Feet_Intl PROJCS["NAD_1983_HARN_StatePlane_Oregon_North_FIPS_3601_Feet_Intl",GEOGCS["GCS_N
2914 NAD_1983_HARN_StatePlane_Oregon_South_FIPS_3602_Feet_Intl PROJCS["NAD_1983_HARN_StatePlane_Oregon_South_FIPS_3602_Feet_Intl",GEOGCS["GCS_N
2915 NAD_1983_HARN_StatePlane_Tennessee_FIPS_4100_Feet PROJCS["NAD_1983_HARN_StatePlane_Tennessee_FIPS_4100_Feet",GEOGCS["GCS_North_Am
2916 NAD_1983_HARN_StatePlane_Texas_North_FIPS_4201_Feet PROJCS["NAD_1983_HARN_StatePlane_Texas_North_FIPS_4201_Feet",GEOGCS["GCS_North_A
2917 NAD_1983_HARN_StatePlane_Texas_North_Central_FIPS_4202_Feet PROJCS["NAD_1983_HARN_StatePlane_Texas_North_Central_FIPS_4202_Feet",GEOGCS["GCS
2918 NAD_1983_HARN_StatePlane_Texas_Central_FIPS_4203_Feet PROJCS["NAD_1983_HARN_StatePlane_Texas_Central_FIPS_4203_Feet",GEOGCS["GCS_North
2919 NAD_1983_HARN_StatePlane_Texas_South_Central_FIPS_4204_Feet PROJCS["NAD_1983_HARN_StatePlane_Texas_South_Central_FIPS_4204_Feet",GEOGCS["GCS
2920 NAD_1983_HARN_StatePlane_Texas_South_FIPS_4205_Feet PROJCS["NAD_1983_HARN_StatePlane_Texas_South_FIPS_4205_Feet",GEOGCS["GCS_North_
2921 NAD_1983_HARN_StatePlane_Utah_North_FIPS_4301_Feet_Intl PROJCS["NAD_1983_HARN_StatePlane_Utah_North_FIPS_4301_Feet_Intl",GEOGCS["GCS_Nort
2922 NAD_1983_HARN_StatePlane_Utah_Central_FIPS_4302_Feet_Intl PROJCS["NAD_1983_HARN_StatePlane_Utah_Central_FIPS_4302_Feet_Intl",GEOGCS["GCS_No
2923 NAD_1983_HARN_StatePlane_Utah_South_FIPS_4303_Feet_Intl PROJCS["NAD_1983_HARN_StatePlane_Utah_South_FIPS_4303_Feet_Intl",GEOGCS["GCS_Nort
2924 NAD_1983_HARN_StatePlane_Virginia_North_FIPS_4501_Feet PROJCS["NAD_1983_HARN_StatePlane_Virginia_North_FIPS_4501_Feet",GEOGCS["GCS_North_
2925 NAD_1983_HARN_StatePlane_Virginia_South_FIPS_4502_Feet PROJCS["NAD_1983_HARN_StatePlane_Virginia_South_FIPS_4502_Feet",GEOGCS["GCS_North
2926 NAD_1983_HARN_StatePlane_Washington_North_FIPS_4601_Feet PROJCS["NAD_1983_HARN_StatePlane_Washington_North_FIPS_4601_Feet",GEOGCS["GCS_N
2927 NAD_1983_HARN_StatePlane_Washington_South_FIPS_4602_Feet PROJCS["NAD_1983_HARN_StatePlane_Washington_South_FIPS_4602_Feet",GEOGCS["GCS_N
2928 NAD_1983_HARN_StatePlane_Wisconsin_North_FIPS_4801_Feet PROJCS["NAD_1983_HARN_StatePlane_Wisconsin_North_FIPS_4801_Feet",GEOGCS["GCS_Nor
2929 NAD_1983_HARN_StatePlane_Wisconsin_Central_FIPS_4802_Feet PROJCS["NAD_1983_HARN_StatePlane_Wisconsin_Central_FIPS_4802_Feet",GEOGCS["GCS_N
2930 NAD_1983_HARN_StatePlane_Wisconsin_South_FIPS_4803_Feet PROJCS["NAD_1983_HARN_StatePlane_Wisconsin_South_FIPS_4803_Feet",GEOGCS["GCS_No
2931 Beduaram_TM_13_NE PROJCS["Beduaram_TM_13_NE",GEOGCS["GCS_Beduaram",DATUM["D_Beduaram",SPHEROID
2932 QND_1995_Qatar_National_Grid PROJCS["QND_1995_Qatar_National_Grid",GEOGCS["GCS_QND_1995",DATUM["D_QND_1995",
2933 Gunung_Segara_UTM_Zone_50S PROJCS["Gunung_Segara_UTM_Zone_50S",GEOGCS["GCS_Gunung_Segara",DATUM["D_Gunun
2935 Pulkovo_1942_CS63_Zone_A1 PROJCS["Pulkovo_1942_CS63_Zone_A1",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_19
2936 Pulkovo_1942_CS63_Zone_A2 PROJCS["Pulkovo_1942_CS63_Zone_A2",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_19
2937 Pulkovo_1942_CS63_Zone_A3 PROJCS["Pulkovo_1942_CS63_Zone_A3",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_19
2938 Pulkovo_1942_CS63_Zone_A4 PROJCS["Pulkovo_1942_CS63_Zone_A4",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_19

Copyright 1995-2015 Esri. All rights reserved. 341


ArcGIS Runtime SDK for .NET

2939 Pulkovo_1942_CS63_Zone_K2 PROJCS["Pulkovo_1942_CS63_Zone_K2",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_19


2940 Pulkovo_1942_CS63_Zone_K3 PROJCS["Pulkovo_1942_CS63_Zone_K3",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_19
2941 Pulkovo_1942_CS63_Zone_K4 PROJCS["Pulkovo_1942_CS63_Zone_K4",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_19
2942 Porto_Santo_1936_UTM_Zone_28N PROJCS["Porto_Santo_1936_UTM_Zone_28N",GEOGCS["GCS_Porto_Santo_1936",DATUM["D_P
2943 Selvagem_Grande_1938_UTM_Zone_28N PROJCS["Selvagem_Grande_1938_UTM_Zone_28N",GEOGCS["GCS_Selvagem_Grande_1938",D
2944 NAD_1983_CSRS_MTM_2_SCoPQ PROJCS["NAD_1983_CSRS_MTM_2_SCoPQ",GEOGCS["GCS_North_American_1983_CSRS",DA
2945 NAD_1983_CSRS_MTM_3 PROJCS["NAD_1983_CSRS_MTM_3",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_
2946 NAD_1983_CSRS_MTM_4 PROJCS["NAD_1983_CSRS_MTM_4",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_
2947 NAD_1983_CSRS_MTM_5 PROJCS["NAD_1983_CSRS_MTM_5",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_
2948 NAD_1983_CSRS_MTM_6 PROJCS["NAD_1983_CSRS_MTM_6",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_
2949 NAD_1983_CSRS_MTM_7 PROJCS["NAD_1983_CSRS_MTM_7",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_
2950 NAD_1983_CSRS_MTM_8 PROJCS["NAD_1983_CSRS_MTM_8",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_
2951 NAD_1983_CSRS_MTM_9 PROJCS["NAD_1983_CSRS_MTM_9",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_
2952 NAD_1983_CSRS_MTM_10 PROJCS["NAD_1983_CSRS_MTM_10",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D
2953 NAD_1983_CSRS_New_Brunswick_Stereographic PROJCS["NAD_1983_CSRS_New_Brunswick_Stereographic",GEOGCS["GCS_North_American_19
2954 NAD_1983_CSRS_Prince_Edward_Island PROJCS["NAD_1983_CSRS_Prince_Edward_Island",GEOGCS["GCS_North_American_1983_CSR
2955 NAD_1983_CSRS_UTM_Zone_11N PROJCS["NAD_1983_CSRS_UTM_Zone_11N",GEOGCS["GCS_North_American_1983_CSRS",DA
2956 NAD_1983_CSRS_UTM_Zone_12N PROJCS["NAD_1983_CSRS_UTM_Zone_12N",GEOGCS["GCS_North_American_1983_CSRS",DA
2957 NAD_1983_CSRS_UTM_Zone_13N PROJCS["NAD_1983_CSRS_UTM_Zone_13N",GEOGCS["GCS_North_American_1983_CSRS",DA
2958 NAD_1983_CSRS_UTM_Zone_17N PROJCS["NAD_1983_CSRS_UTM_Zone_17N",GEOGCS["GCS_North_American_1983_CSRS",DA
2959 NAD_1983_CSRS_UTM_Zone_18N PROJCS["NAD_1983_CSRS_UTM_Zone_18N",GEOGCS["GCS_North_American_1983_CSRS",DA
2960 NAD_1983_CSRS_UTM_Zone_19N PROJCS["NAD_1983_CSRS_UTM_Zone_19N",GEOGCS["GCS_North_American_1983_CSRS",DA
2961 NAD_1983_CSRS_UTM_Zone_20N PROJCS["NAD_1983_CSRS_UTM_Zone_20N",GEOGCS["GCS_North_American_1983_CSRS",DA
2962 NAD_1983_CSRS_UTM_Zone_21N PROJCS["NAD_1983_CSRS_UTM_Zone_21N",GEOGCS["GCS_North_American_1983_CSRS",DA
2964 NAD_1927_Alaska_Albers_Feet PROJCS["NAD_1927_Alaska_Albers_Feet",GEOGCS["GCS_North_American_1927",DATUM["D_No
2965 NAD_1983_StatePlane_Indiana_East_FIPS_1301_Feet PROJCS["NAD_1983_StatePlane_Indiana_East_FIPS_1301_Feet",GEOGCS["GCS_North_America
2966 NAD_1983_StatePlane_Indiana_West_FIPS_1302_Feet PROJCS["NAD_1983_StatePlane_Indiana_West_FIPS_1302_Feet",GEOGCS["GCS_North_America
2967 NAD_1983_HARN_StatePlane_Indiana_East_FIPS_1301_Feet PROJCS["NAD_1983_HARN_StatePlane_Indiana_East_FIPS_1301_Feet",GEOGCS["GCS_North_A
2968 NAD_1983_HARN_StatePlane_Indiana_West_FIPS_1302_Feet PROJCS["NAD_1983_HARN_StatePlane_Indiana_West_FIPS_1302_Feet",GEOGCS["GCS_North_
2969 Fort_Marigot_UTM_20N PROJCS["Fort_Marigot_UTM_20N",GEOGCS["GCS_Fort_Marigot",DATUM["D_Fort_Marigot",SPHE
2970 Sainte_Anne_UTM_20N PROJCS["Sainte_Anne_UTM_20N",GEOGCS["GCS_Sainte_Anne",DATUM["D_Sainte_Anne",SPHE
2971 CSG_1967_UTM_22N PROJCS["CSG_1967_UTM_22N",GEOGCS["GCS_CSG_1967",DATUM["D_CSG_1967",SPHEROID
2972 RGFG_1995_UTM_22N PROJCS["RGFG_1995_UTM_22N",GEOGCS["GCS_RGFG_1995",DATUM["D_RGFG_1995",SPHE
2973 Fort_Desaix_UTM_20N PROJCS["Fort_Desaix_UTM_20N",GEOGCS["GCS_Fort_Desaix",DATUM["D_Fort_Desaix",SPHER
2975 RGR_1992_UTM_40S PROJCS["RGR_1992_UTM_40S",GEOGCS["GCS_RGR_1992",DATUM["D_RGR_1992",SPHEROI
2976 Tahiti_1952_UTM_6S PROJCS["Tahiti_1952_UTM_6S",GEOGCS["GCS_Tahiti_1952",DATUM["D_Tahiti_1952",SPHEROI
2977 Tahaa_1954_UTM_5S PROJCS["Tahaa_1954_UTM_5S",GEOGCS["GCS_Tahaa_1954",DATUM["D_Tahaa_1954",SPHER
2978 IGN72_Nuku_Hiva_UTM_7S PROJCS["IGN72_Nuku_Hiva_UTM_7S",GEOGCS["GCS_IGN72_Nuku_Hiva",DATUM["D_IGN72_N
2980 Combani_1950_UTM_38S PROJCS["Combani_1950_UTM_38S",GEOGCS["GCS_Combani_1950",DATUM["D_Combani_1950
2981 IGN56_Lifou_UTM_58S PROJCS["IGN56_Lifou_UTM_58S",GEOGCS["GCS_IGN56_Lifou",DATUM["D_IGN56_Lifou",SPHE
2984 RGNC_1991_Lambert_New_Caledonia PROJCS["RGNC_1991_Lambert_New_Caledonia",GEOGCS["GCS_RGNC_1991",DATUM["D_RGN
2985 Petrels_1972_Terre_Adelie_Polar_Stereographic PROJCS["Petrels_1972_Terre_Adelie_Polar_Stereographic",GEOGCS["GCS_Petrels_1972",DATUM
2986 Perroud_1950_Terre_Adelie_Polar_Stereographic PROJCS["Perroud_1950_Terre_Adelie_Polar_Stereographic",GEOGCS["GCS_Pointe_Geologie_Pe
2987 Saint_Pierre_et_Miquelon_1950_UTM_21N PROJCS["Saint_Pierre_et_Miquelon_1950_UTM_21N",GEOGCS["GCS_Saint_Pierre_et_Miquelon_
2988 MOP78_UTM_1S PROJCS["MOP78_UTM_1S",GEOGCS["GCS_MOP78",DATUM["D_MOP78",SPHEROID["Internatio
2991 NAD_1983_Oregon_Statewide_Lambert PROJCS["NAD_1983_Oregon_Statewide_Lambert",GEOGCS["GCS_North_American_1983",DATU
2992 NAD_1983_Oregon_Statewide_Lambert_Feet_Intl PROJCS["NAD_1983_Oregon_Statewide_Lambert_Feet_Intl",GEOGCS["GCS_North_American_19
2993 NAD_1983_HARN_Oregon_Statewide_Lambert PROJCS["NAD_1983_HARN_Oregon_Statewide_Lambert",GEOGCS["GCS_North_American_1983
2994 NAD_1983_HARN_Oregon_Statewide_Lambert_Feet_Intl PROJCS["NAD_1983_HARN_Oregon_Statewide_Lambert_Feet_Intl",GEOGCS["GCS_North_Ameri
2995 IGN53_Mare_UTM_58S PROJCS["IGN53_Mare_UTM_58S",GEOGCS["GCS_IGN53_Mare",DATUM["D_IGN53_Mare",SPHE
2996 ST84_Ile_des_Pins_UTM_58S PROJCS["ST84_Ile_des_Pins_UTM_58S",GEOGCS["GCS_ST84_Ile_des_Pins",DATUM["D_ST84_
2997 ST71_Belep_UTM_58S PROJCS["ST71_Belep_UTM_58S",GEOGCS["GCS_ST71_Belep",DATUM["D_ST71_Belep",SPHER
2998 NEA74_Noumea_UTM_58S PROJCS["NEA74_Noumea_UTM_58S",GEOGCS["GCS_NEA74_Noumea",DATUM["D_NEA74_Nou
2999 Grand_Comoros_UTM_38S PROJCS["Grand_Comoros_UTM_38S",GEOGCS["GCS_Grand_Comoros",DATUM["D_Grand_Com

Copyright 1995-2015 Esri. All rights reserved. 342


ArcGIS Runtime SDK for .NET

3000 Gunung_Segara_NEIEZ PROJCS["Gunung_Segara_NEIEZ",GEOGCS["GCS_Gunung_Segara",DATUM["D_Gunung_Segara


3001 Batavia_NEIEZ PROJCS["Batavia_NEIEZ",GEOGCS["GCS_Batavia",DATUM["D_Batavia",SPHEROID["Bessel_184
3002 Makassar_NEIEZ PROJCS["Makassar_NEIEZ",GEOGCS["GCS_Makassar",DATUM["D_Makassar",SPHEROID["Bess
3003 Monte_Mario_Italy_1 PROJCS["Monte_Mario_Italy_1",GEOGCS["GCS_Monte_Mario",DATUM["D_Monte_Mario",SPHERO
3004 Monte_Mario_Italy_2 PROJCS["Monte_Mario_Italy_2",GEOGCS["GCS_Monte_Mario",DATUM["D_Monte_Mario",SPHERO
3005 NAD_1983_BC_Environment_Albers PROJCS["NAD_1983_BC_Environment_Albers",GEOGCS["GCS_North_American_1983",DATUM["D
3006 SWEREF99_TM PROJCS["SWEREF99_TM",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["G
3007 SWEREF99_12_00 PROJCS["SWEREF99_12_00",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID
3008 SWEREF99_13_30 PROJCS["SWEREF99_13_30",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID
3009 SWEREF99_15_00 PROJCS["SWEREF99_15_00",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID
3010 SWEREF99_16_30 PROJCS["SWEREF99_16_30",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID
3011 SWEREF99_18_00 PROJCS["SWEREF99_18_00",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID
3012 SWEREF99_14_15 PROJCS["SWEREF99_14_15",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID
3013 SWEREF99_15_45 PROJCS["SWEREF99_15_45",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID
3014 SWEREF99_17_15 PROJCS["SWEREF99_17_15",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID
3015 SWEREF99_18_45 PROJCS["SWEREF99_18_45",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID
3016 SWEREF99_20_15 PROJCS["SWEREF99_20_15",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID
3017 SWEREF99_21_45 PROJCS["SWEREF99_21_45",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID
3018 SWEREF99_23_15 PROJCS["SWEREF99_23_15",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID
3019 RT90_75_gon_V PROJCS["RT90_75_gon_V",GEOGCS["GCS_RT_1990",DATUM["D_RT_1990",SPHEROID["Bessel
3020 RT90_5_gon_V PROJCS["RT90_5_gon_V",GEOGCS["GCS_RT_1990",DATUM["D_RT_1990",SPHEROID["Bessel_
3021 RT90_25_gon_V PROJCS["RT90_25_gon_V",GEOGCS["GCS_RT_1990",DATUM["D_RT_1990",SPHEROID["Bessel
3022 RT90_0_gon PROJCS["RT90_0_gon",GEOGCS["GCS_RT_1990",DATUM["D_RT_1990",SPHEROID["Bessel_184
3023 RT90_25_gon_O PROJCS["RT90_25_gon_O",GEOGCS["GCS_RT_1990",DATUM["D_RT_1990",SPHEROID["Bessel
3024 RT90_5_gon_O PROJCS["RT90_5_gon_O",GEOGCS["GCS_RT_1990",DATUM["D_RT_1990",SPHEROID["Bessel_
3025 RT38_75_gon_V PROJCS["RT38_75_gon_V",GEOGCS["GCS_RT38",DATUM["D_Stockholm_1938",SPHEROID["Bes
3026 RT38_5_gon_V PROJCS["RT38_5_gon_V",GEOGCS["GCS_RT38",DATUM["D_Stockholm_1938",SPHEROID["Bess
3027 RT38_25_gon_V PROJCS["RT38_25_gon_V",GEOGCS["GCS_RT38",DATUM["D_Stockholm_1938",SPHEROID["Bes
3028 RT38_0_gon PROJCS["RT38_0_gon",GEOGCS["GCS_RT38",DATUM["D_Stockholm_1938",SPHEROID["Bessel_
3029 RT38_25_gon_O PROJCS["RT38_25_gon_O",GEOGCS["GCS_RT38",DATUM["D_Stockholm_1938",SPHEROID["Be
3030 RT38_5_gon_O PROJCS["RT38_5_gon_O",GEOGCS["GCS_RT38",DATUM["D_Stockholm_1938",SPHEROID["Bes
3031 WGS_1984_Antarctic_Polar_Stereographic PROJCS["WGS_1984_Antarctic_Polar_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_W
3032 WGS_1984_Australian_Antarctic_Polar_Stereographic PROJCS["WGS_1984_Australian_Antarctic_Polar_Stereographic",GEOGCS["GCS_WGS_1984",DA
3033 WGS_1984_Australian_Antarctic_Lambert PROJCS["WGS_1984_Australian_Antarctic_Lambert",GEOGCS["GCS_WGS_1984",DATUM["D_WG
3034 ETRS_1989_LCC PROJCS["ETRS_1989_LCC",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["
3035 ETRS_1989_LAEA PROJCS["ETRS_1989_LAEA",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID
3036 Moznet_UTM_Zone_36S PROJCS["Moznet_UTM_Zone_36S",GEOGCS["GCS_Moznet",DATUM["D_Moznet",SPHEROID["WG
3037 Moznet_UTM_Zone_37S PROJCS["Moznet_UTM_Zone_37S",GEOGCS["GCS_Moznet",DATUM["D_Moznet",SPHEROID["WG
3038 ETRS_1989_ETRS-TM26 PROJCS["ETRS_1989_ETRS-TM26",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHE
3039 ETRS_1989_ETRS-TM27 PROJCS["ETRS_1989_ETRS-TM27",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHE
3040 ETRS_1989_ETRS-TM28 PROJCS["ETRS_1989_ETRS-TM28",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHE
3041 ETRS_1989_ETRS-TM29 PROJCS["ETRS_1989_ETRS-TM29",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHE
3042 ETRS_1989_ETRS-TM30 PROJCS["ETRS_1989_ETRS-TM30",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHE
3043 ETRS_1989_ETRS-TM31 PROJCS["ETRS_1989_ETRS-TM31",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHE
3044 ETRS_1989_ETRS-TM32 PROJCS["ETRS_1989_ETRS-TM32",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHE
3045 ETRS_1989_ETRS-TM33 PROJCS["ETRS_1989_ETRS-TM33",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHE
3046 ETRS_1989_ETRS-TM34 PROJCS["ETRS_1989_ETRS-TM34",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHE
3047 ETRS_1989_ETRS-TM35 PROJCS["ETRS_1989_ETRS-TM35",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHE
3048 ETRS_1989_ETRS-TM36 PROJCS["ETRS_1989_ETRS-TM36",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHE
3049 ETRS_1989_ETRS-TM37 PROJCS["ETRS_1989_ETRS-TM37",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHE
3050 ETRS_1989_ETRS-TM38 PROJCS["ETRS_1989_ETRS-TM38",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHE
3051 ETRS_1989_ETRS-TM39 PROJCS["ETRS_1989_ETRS-TM39",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHE
3054 Hjorsey_1955_UTM_Zone_26N PROJCS["Hjorsey_1955_UTM_Zone_26N",GEOGCS["GCS_Hjorsey_1955",DATUM["D_Hjorsey_19
3055 Hjorsey_1955_UTM_Zone_27N PROJCS["Hjorsey_1955_UTM_Zone_27N",GEOGCS["GCS_Hjorsey_1955",DATUM["D_Hjorsey_19

Copyright 1995-2015 Esri. All rights reserved. 343


ArcGIS Runtime SDK for .NET

3056 Hjorsey_1955_UTM_Zone_28N PROJCS["Hjorsey_1955_UTM_Zone_28N",GEOGCS["GCS_Hjorsey_1955",DATUM["D_Hjorsey_19


3057 ISN_1993_Lambert_1993 PROJCS["ISN_1993_Lambert_1993",GEOGCS["GCS_ISN_1993",DATUM["D_Islands_Network_199
3058 Helle_1954_Jan_Mayen_Grid PROJCS["Helle_1954_Jan_Mayen_Grid",GEOGCS["GCS_Helle_1954",DATUM["D_Helle_1954",SP
3059 LKS_1992_Latvia_TM PROJCS["LKS_1992_Latvia_TM",GEOGCS["GCS_LKS_1992",DATUM["D_Latvia_1992",SPHEROID
3060 IGN72_Grande_Terre_UTM_58S PROJCS["IGN72_Grande_Terre_UTM_58S",GEOGCS["GCS_IGN72_Grande_Terre",DATUM["D_IG
3061 Porto_Santo_1995_UTM_Zone_28N PROJCS["Porto_Santo_1995_UTM_Zone_28N",GEOGCS["GCS_Porto_Santo_1995",DATUM["D_P
3062 Azores_Oriental_1995_UTM_Zone_26N PROJCS["Azores_Oriental_1995_UTM_Zone_26N",GEOGCS["GCS_Azores_Oriental_1995",DATUM
3063 Azores_Central_1995_UTM_Zone_26N PROJCS["Azores_Central_1995_UTM_Zone_26N",GEOGCS["GCS_Azores_Central_1995",DATUM
3064 IGM_1995_UTM_Zone_32N PROJCS["IGM_1995_UTM_Zone_32N",GEOGCS["GCS_IGM_1995",DATUM["D_IGM_1995",SPHE
3065 IGM_1995_UTM_Zone_33N PROJCS["IGM_1995_UTM_Zone_33N",GEOGCS["GCS_IGM_1995",DATUM["D_IGM_1995",SPHE
3066 ED_1950_Jordan_TM PROJCS["ED_1950_Jordan_TM",GEOGCS["GCS_European_1950",DATUM["D_European_1950",S
3067 EUREF_FIN_TM35FIN PROJCS["EUREF_FIN_TM35FIN",GEOGCS["GCS_EUREF_FIN",DATUM["D_ETRS_1989",SPHER
3068 DHDN_Soldner_Berlin PROJCS["DHDN_Soldner_Berlin",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deu
3069 NAD_1927_Wisconsin_TM PROJCS["NAD_1927_Wisconsin_TM",GEOGCS["GCS_North_American_1927",DATUM["D_North_A
3070 NAD_1983_Wisconsin_TM PROJCS["NAD_1983_Wisconsin_TM",GEOGCS["GCS_North_American_1983",DATUM["D_North_A
3071 NAD_1983_HARN_Wisconsin_TM PROJCS["NAD_1983_HARN_Wisconsin_TM",GEOGCS["GCS_North_American_1983_HARN",DAT
3072 NAD_1983_Maine_2000_East_Zone PROJCS["NAD_1983_Maine_2000_East_Zone",GEOGCS["GCS_North_American_1983",DATUM["D
3074 NAD_1983_Maine_2000_West_Zone PROJCS["NAD_1983_Maine_2000_West_Zone",GEOGCS["GCS_North_American_1983",DATUM["
3075 NAD_1983_HARN_Maine_2000_East_Zone PROJCS["NAD_1983_HARN_Maine_2000_East_Zone",GEOGCS["GCS_North_American_1983_HA
3077 NAD_1983_HARN_Maine_2000_West_Zone PROJCS["NAD_1983_HARN_Maine_2000_West_Zone",GEOGCS["GCS_North_American_1983_H
3078 NAD_1983_Michigan_GeoRef_Meters PROJCS["NAD_1983_Michigan_GeoRef_Meters",GEOGCS["GCS_North_American_1983",DATUM[
3079 NAD_1983_HARN_Michigan_GeoRef_Meters PROJCS["NAD_1983_HARN_Michigan_GeoRef_Meters",GEOGCS["GCS_North_American_1983_H
3080 NAD_1927_Texas_Statewide_Mapping_System PROJCS["NAD_1927_Texas_Statewide_Mapping_System",GEOGCS["GCS_North_American_1927
3081 NAD_1983_Texas_Statewide_Mapping_System PROJCS["NAD_1983_Texas_Statewide_Mapping_System",GEOGCS["GCS_North_American_1983
3082 NAD_1983_Texas_Centric_Mapping_System_Lambert PROJCS["NAD_1983_Texas_Centric_Mapping_System_Lambert",GEOGCS["GCS_North_American
3083 NAD_1983_Texas_Centric_Mapping_System_Albers PROJCS["NAD_1983_Texas_Centric_Mapping_System_Albers",GEOGCS["GCS_North_American_
3084 NAD_1983_HARN_Texas_Centric_Mapping_System_Lambert PROJCS["NAD_1983_HARN_Texas_Centric_Mapping_System_Lambert",GEOGCS["GCS_North_A
3085 NAD_1983_HARN_Texas_Centric_Mapping_System_Albers PROJCS["NAD_1983_HARN_Texas_Centric_Mapping_System_Albers",GEOGCS["GCS_North_Am
3086 NAD_1983_Florida_GDL_Albers PROJCS["NAD_1983_Florida_GDL_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_N
3087 NAD_1983_HARN_Florida_GDL_Albers PROJCS["NAD_1983_HARN_Florida_GDL_Albers",GEOGCS["GCS_North_American_1983_HARN
3088 NAD_1983_StatePlane_Kentucky_FIPS_1600 PROJCS["NAD_1983_StatePlane_Kentucky_FIPS_1600",GEOGCS["GCS_North_American_1983",D
3089 NAD_1983_StatePlane_Kentucky_FIPS_1600_Feet PROJCS["NAD_1983_StatePlane_Kentucky_FIPS_1600_Feet",GEOGCS["GCS_North_American_1
3090 NAD_1983_HARN_StatePlane_Kentucky_FIPS_1600 PROJCS["NAD_1983_HARN_StatePlane_Kentucky_FIPS_1600",GEOGCS["GCS_North_American_
3091 NAD_1983_HARN_StatePlane_Kentucky_FIPS_1600_Feet PROJCS["NAD_1983_HARN_StatePlane_Kentucky_FIPS_1600_Feet",GEOGCS["GCS_North_Ame
3092 Tokyo_UTM_Zone_51N PROJCS["Tokyo_UTM_Zone_51N",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Besse
3093 Tokyo_UTM_Zone_52N PROJCS["Tokyo_UTM_Zone_52N",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Besse
3094 Tokyo_UTM_Zone_53N PROJCS["Tokyo_UTM_Zone_53N",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Besse
3095 Tokyo_UTM_Zone_54N PROJCS["Tokyo_UTM_Zone_54N",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Besse
3096 Tokyo_UTM_Zone_55N PROJCS["Tokyo_UTM_Zone_55N",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Besse
3097 JGD_2000_UTM_Zone_51N PROJCS["JGD_2000_UTM_Zone_51N",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHE
3098 JGD_2000_UTM_Zone_52N PROJCS["JGD_2000_UTM_Zone_52N",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHE
3099 JGD_2000_UTM_Zone_53N PROJCS["JGD_2000_UTM_Zone_53N",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHE
3100 JGD_2000_UTM_Zone_54N PROJCS["JGD_2000_UTM_Zone_54N",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHE
3101 JGD_2000_UTM_Zone_55N PROJCS["JGD_2000_UTM_Zone_55N",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHE
3102 Samoa_1962_Samoa_Lambert PROJCS["Samoa_1962_Samoa_Lambert",GEOGCS["GCS_American_Samoa_1962",DATUM["D_A
3106 Gulshan_303_Bangladesh_TM PROJCS["Gulshan_303_Bangladesh_TM",GEOGCS["GCS_Gulshan_303",DATUM["D_Gulshan_303
3107 GDA_1994_South_Australia_Lambert PROJCS["GDA_1994_South_Australia_Lambert",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_19
3108 ETRS_1989_Guernsey_Grid PROJCS["ETRS_1989_Guernsey_Grid",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
3109 ETRS_1989_Jersey_Transverse_Mercator PROJCS["ETRS_1989_Jersey_Transverse_Mercator",GEOGCS["GCS_ETRS_1989",DATUM["D_ET
3110 AGD_1966_VICGRID PROJCS["AGD_1966_VICGRID",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",S
3111 GDA_1994_VICGRID94 PROJCS["GDA_1994_VICGRID94",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHERO
3112 GDA_1994_Geoscience_Australia_Lambert PROJCS["GDA_1994_Geoscience_Australia_Lambert",GEOGCS["GCS_GDA_1994",DATUM["D_GD
3113 GDA_1994_BCSG02 PROJCS["GDA_1994_BCSG02",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID
3114 MAGNA_Colombia_Oeste_Oeste PROJCS["MAGNA_Colombia_Oeste_Oeste",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHE

Copyright 1995-2015 Esri. All rights reserved. 344


ArcGIS Runtime SDK for .NET

3115 MAGNA_Colombia_Oeste PROJCS["MAGNA_Colombia_Oeste",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["


3116 MAGNA_Colombia_Bogota PROJCS["MAGNA_Colombia_Bogota",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID
3117 MAGNA_Colombia_Este PROJCS["MAGNA_Colombia_Este",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["G
3118 MAGNA_Colombia_Este_Este PROJCS["MAGNA_Colombia_Este_Este",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHERO
3119 Douala_1948_AEF_West PROJCS["Douala_1948_AEF_West",GEOGCS["GCS_Douala_1948",DATUM["D_Douala_1948",SPH
3120 Pulkovo_1942_Adj_1958_Poland_Zone_I PROJCS["Pulkovo_1942_Adj_1958_Poland_Zone_I",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DA
3121 PRS_1992_Philippines_Zone_I PROJCS["PRS_1992_Philippines_Zone_I",GEOGCS["GCS_PRS_1992",DATUM["D_Philippine_Refe
3122 PRS_1992_Philippines_Zone_II PROJCS["PRS_1992_Philippines_Zone_II",GEOGCS["GCS_PRS_1992",DATUM["D_Philippine_Ref
3123 PRS_1992_Philippines_Zone_III PROJCS["PRS_1992_Philippines_Zone_III",GEOGCS["GCS_PRS_1992",DATUM["D_Philippine_Re
3124 PRS_1992_Philippines_Zone_IV PROJCS["PRS_1992_Philippines_Zone_IV",GEOGCS["GCS_PRS_1992",DATUM["D_Philippine_Re
3125 PRS_1992_Philippines_Zone_V PROJCS["PRS_1992_Philippines_Zone_V",GEOGCS["GCS_PRS_1992",DATUM["D_Philippine_Re
3126 ETRS_1989_ETRS-GK19FIN PROJCS["ETRS_1989_ETRS-GK19FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
3127 ETRS_1989_ETRS-GK20FIN PROJCS["ETRS_1989_ETRS-GK20FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
3128 ETRS_1989_ETRS-GK21FIN PROJCS["ETRS_1989_ETRS-GK21FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
3129 ETRS_1989_ETRS-GK22FIN PROJCS["ETRS_1989_ETRS-GK22FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
3130 ETRS_1989_ETRS-GK23FIN PROJCS["ETRS_1989_ETRS-GK23FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
3131 ETRS_1989_ETRS-GK24FIN PROJCS["ETRS_1989_ETRS-GK24FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
3132 ETRS_1989_ETRS-GK25FIN PROJCS["ETRS_1989_ETRS-GK25FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
3133 ETRS_1989_ETRS-GK26FIN PROJCS["ETRS_1989_ETRS-GK26FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
3134 ETRS_1989_ETRS-GK27FIN PROJCS["ETRS_1989_ETRS-GK27FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
3135 ETRS_1989_ETRS-GK28FIN PROJCS["ETRS_1989_ETRS-GK28FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
3136 ETRS_1989_ETRS-GK29FIN PROJCS["ETRS_1989_ETRS-GK29FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
3137 ETRS_1989_ETRS-GK30FIN PROJCS["ETRS_1989_ETRS-GK30FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
3138 ETRS_1989_ETRS-GK31FIN PROJCS["ETRS_1989_ETRS-GK31FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
3141 Fiji_1956_UTM_Zone_60S PROJCS["Fiji_1956_UTM_Zone_60S",GEOGCS["GCS_Fiji_1956",DATUM["D_Fiji_1956",SPHEROI
3142 Fiji_1956_UTM_Zone_1S PROJCS["Fiji_1956_UTM_Zone_1S",GEOGCS["GCS_Fiji_1956",DATUM["D_Fiji_1956",SPHEROID
3146 Pulkovo_1942_3_Degree_GK_Zone_6 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_6",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulk
3147 Pulkovo_1942_3_Degree_GK_CM_18E PROJCS["Pulkovo_1942_3_Degree_GK_CM_18E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
3148 Indian_1960_UTM_Zone_48N PROJCS["Indian_1960_UTM_Zone_48N",GEOGCS["GCS_Indian_1960",DATUM["D_Indian_1960",S
3149 Indian_1960_UTM_Zone_49N PROJCS["Indian_1960_UTM_Zone_49N",GEOGCS["GCS_Indian_1960",DATUM["D_Indian_1960",S
3150 Pulkovo_1995_3_Degree_GK_Zone_6 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_6",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulk
3151 Pulkovo_1995_3_Degree_GK_CM_18E PROJCS["Pulkovo_1995_3_Degree_GK_CM_18E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
3153 NAD_1983_CSRS_BC_Environment_Albers PROJCS["NAD_1983_CSRS_BC_Environment_Albers",GEOGCS["GCS_North_American_1983_CS
3154 NAD_1983_CSRS_UTM_Zone_7N PROJCS["NAD_1983_CSRS_UTM_Zone_7N",GEOGCS["GCS_North_American_1983_CSRS",DAT
3155 NAD_1983_CSRS_UTM_Zone_8N PROJCS["NAD_1983_CSRS_UTM_Zone_8N",GEOGCS["GCS_North_American_1983_CSRS",DAT
3156 NAD_1983_CSRS_UTM_Zone_9N PROJCS["NAD_1983_CSRS_UTM_Zone_9N",GEOGCS["GCS_North_American_1983_CSRS",DAT
3157 NAD_1983_CSRS_UTM_Zone_10N PROJCS["NAD_1983_CSRS_UTM_Zone_10N",GEOGCS["GCS_North_American_1983_CSRS",DA
3158 NAD_1983_CSRS_UTM_Zone_14N PROJCS["NAD_1983_CSRS_UTM_Zone_14N",GEOGCS["GCS_North_American_1983_CSRS",DA
3159 NAD_1983_CSRS_UTM_Zone_15N PROJCS["NAD_1983_CSRS_UTM_Zone_15N",GEOGCS["GCS_North_American_1983_CSRS",DA
3160 NAD_1983_CSRS_UTM_Zone_16N PROJCS["NAD_1983_CSRS_UTM_Zone_16N",GEOGCS["GCS_North_American_1983_CSRS",DA
3161 NAD_1983_Ontario_MNR_Lambert PROJCS["NAD_1983_Ontario_MNR_Lambert",GEOGCS["GCS_North_American_1983",DATUM["D
3162 NAD_1983_CSRS_Ontario_MNR_Lambert PROJCS["NAD_1983_CSRS_Ontario_MNR_Lambert",GEOGCS["GCS_North_American_1983_CSR
3163 RGNC_1991_93_Lambert_New_Caledonia PROJCS["RGNC_1991_93_Lambert_New_Caledonia",GEOGCS["GCS_RGNC_1991-93",DATUM["D
3164 ST87_Ouvea_UTM_58S PROJCS["ST87_Ouvea_UTM_58S",GEOGCS["GCS_ST87_Ouvea",DATUM["D_ST87_Ouvea",SPH
3165 NEA74_Noumea_Lambert PROJCS["NEA74_Noumea_Lambert",GEOGCS["GCS_NEA74_Noumea",DATUM["D_NEA74_Noum
3166 NEA74_Noumea_Lambert_2 PROJCS["NEA74_Noumea_Lambert_2",GEOGCS["GCS_NEA74_Noumea",DATUM["D_NEA74_No
3167 Kertau_RSO_RSO_Malaya_ChSears1922trunc PROJCS["Kertau_RSO_RSO_Malaya_ChSears1922trunc",GEOGCS["GCS_Kertau_RSO",DATUM["
3168 Kertau_RSO_RSO_Malaya PROJCS["Kertau_RSO_RSO_Malaya",GEOGCS["GCS_Kertau_RSO",DATUM["D_Kertau_RSO",SP
3169 RGNC_1991-93_UTM_Zone_57S PROJCS["RGNC_1991-93_UTM_Zone_57S",GEOGCS["GCS_RGNC_1991-93",DATUM["D_Reseau
3170 RGNC_1991-93_UTM_Zone_58S PROJCS["RGNC_1991-93_UTM_Zone_58S",GEOGCS["GCS_RGNC_1991-93",DATUM["D_Reseau
3171 RGNC_1991-93_UTM_Zone_59S PROJCS["RGNC_1991-93_UTM_Zone_59S",GEOGCS["GCS_RGNC_1991-93",DATUM["D_Reseau
3172 IGN53_Mare_UTM_Zone_59S PROJCS["IGN53_Mare_UTM_Zone_59S",GEOGCS["GCS_IGN53_Mare",DATUM["D_IGN53_Mare"
3174 NAD_1983_Great_Lakes_Basin_Albers PROJCS["NAD_1983_Great_Lakes_Basin_Albers",GEOGCS["GCS_North_American_1983",DATUM
3175 NAD_1983_Great_Lakes_and_St_Lawrence_Albers PROJCS["NAD_1983_Great_Lakes_and_St_Lawrence_Albers",GEOGCS["GCS_North_American_1

Copyright 1995-2015 Esri. All rights reserved. 345


ArcGIS Runtime SDK for .NET

3176 Indian_1960_TM_106NE PROJCS["Indian_1960_TM_106NE",GEOGCS["GCS_Indian_1960",DATUM["D_Indian_1960",SPHE


3177 LGD2006_Libya_TM PROJCS["LGD2006_Libya_TM",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_Datum_2
3178 Greenland_1996_UTM_Zone_18N PROJCS["Greenland_1996_UTM_Zone_18N",GEOGCS["GCS_Greenland_1996",DATUM["D_Green
3179 Greenland_1996_UTM_Zone_19N PROJCS["Greenland_1996_UTM_Zone_19N",GEOGCS["GCS_Greenland_1996",DATUM["D_Green
3180 Greenland_1996_UTM_Zone_20N PROJCS["Greenland_1996_UTM_Zone_20N",GEOGCS["GCS_Greenland_1996",DATUM["D_Green
3181 Greenland_1996_UTM_Zone_21N PROJCS["Greenland_1996_UTM_Zone_21N",GEOGCS["GCS_Greenland_1996",DATUM["D_Green
3182 Greenland_1996_UTM_Zone_22N PROJCS["Greenland_1996_UTM_Zone_22N",GEOGCS["GCS_Greenland_1996",DATUM["D_Green
3183 Greenland_1996_UTM_Zone_23N PROJCS["Greenland_1996_UTM_Zone_23N",GEOGCS["GCS_Greenland_1996",DATUM["D_Green
3184 Greenland_1996_UTM_Zone_24N PROJCS["Greenland_1996_UTM_Zone_24N",GEOGCS["GCS_Greenland_1996",DATUM["D_Green
3185 Greenland_1996_UTM_Zone_25N PROJCS["Greenland_1996_UTM_Zone_25N",GEOGCS["GCS_Greenland_1996",DATUM["D_Green
3186 Greenland_1996_UTM_Zone_26N PROJCS["Greenland_1996_UTM_Zone_26N",GEOGCS["GCS_Greenland_1996",DATUM["D_Green
3187 Greenland_1996_UTM_Zone_27N PROJCS["Greenland_1996_UTM_Zone_27N",GEOGCS["GCS_Greenland_1996",DATUM["D_Green
3188 Greenland_1996_UTM_Zone_28N PROJCS["Greenland_1996_UTM_Zone_28N",GEOGCS["GCS_Greenland_1996",DATUM["D_Green
3189 Greenland_1996_UTM_Zone_29N PROJCS["Greenland_1996_UTM_Zone_29N",GEOGCS["GCS_Greenland_1996",DATUM["D_Green
3190 LGD2006_Libya_TM_Zone_5 PROJCS["LGD2006_Libya_TM_Zone_5",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_
3191 LGD2006_Libya_TM_Zone_6 PROJCS["LGD2006_Libya_TM_Zone_6",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_
3192 LGD2006_Libya_TM_Zone_7 PROJCS["LGD2006_Libya_TM_Zone_7",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_
3193 LGD2006_Libya_TM_Zone_8 PROJCS["LGD2006_Libya_TM_Zone_8",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_
3194 LGD2006_Libya_TM_Zone_9 PROJCS["LGD2006_Libya_TM_Zone_9",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_
3195 LGD2006_Libya_TM_Zone_10 PROJCS["LGD2006_Libya_TM_Zone_10",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic
3196 LGD2006_Libya_TM_Zone_11 PROJCS["LGD2006_Libya_TM_Zone_11",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic
3197 LGD2006_Libya_TM_Zone_12 PROJCS["LGD2006_Libya_TM_Zone_12",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic
3198 LGD2006_Libya_TM_Zone_13 PROJCS["LGD2006_Libya_TM_Zone_13",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic
3199 LGD2006_UTM_Zone_32N PROJCS["LGD2006_UTM_Zone_32N",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_D
3200 FD_1958_Iraq PROJCS["FD_1958_Iraq",GEOGCS["GCS_FD_1958",DATUM["D_FD_1958",SPHEROID["Clarke_18
3201 LGD2006_UTM_Zone_33N PROJCS["LGD2006_UTM_Zone_33N",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_D
3202 LGD2006_UTM_Zone_34N PROJCS["LGD2006_UTM_Zone_34N",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_D
3203 LGD2006_UTM_Zone_35N PROJCS["LGD2006_UTM_Zone_35N",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_D
3294 WGS_1984_USGS_Transantarctic_Mountains PROJCS["WGS_1984_USGS_Transantarctic_Mountains",GEOGCS["GCS_WGS_1984",DATUM["D
3295 Guam_1963_Yap_Islands PROJCS["Guam_1963_Yap_Islands",GEOGCS["GCS_Guam_1963",DATUM["D_Guam_1963",SPH
3296 RGPF_UTM_Zone_5S PROJCS["RGPF_UTM_Zone_5S",GEOGCS["GCS_RGPF",DATUM["D_Reseau_Geodesique_de_la
3297 RGPF_UTM_Zone_6S PROJCS["RGPF_UTM_Zone_6S",GEOGCS["GCS_RGPF",DATUM["D_Reseau_Geodesique_de_la
3298 RGPF_UTM_Zone_7S PROJCS["RGPF_UTM_Zone_7S",GEOGCS["GCS_RGPF",DATUM["D_Reseau_Geodesique_de_la
3299 RGPF_UTM_Zone_8S PROJCS["RGPF_UTM_Zone_8S",GEOGCS["GCS_RGPF",DATUM["D_Reseau_Geodesique_de_la
3300 Estonian_Coordinate_System_of_1992 PROJCS["Estonian_Coordinate_System_of_1992",GEOGCS["GCS_Estonia_1992",DATUM["D_Esto
3301 Estonia_1997_Estonia_National_Grid PROJCS["Estonia_1997_Estonia_National_Grid",GEOGCS["GCS_Estonia_1997",DATUM["D_Eston
3302 IGN63_Hiva_Oa_UTM_Zone_7S PROJCS["IGN63_Hiva_Oa_UTM_Zone_7S",GEOGCS["GCS_IGN63_Hiva_Oa",DATUM["D_IGN63_
3303 Fatu_Iva_1972_UTM_Zone_7S PROJCS["Fatu_Iva_1972_UTM_Zone_7S",GEOGCS["GCS_Fatu_Iva_1972",DATUM["D_Fatu_Iva_1
3304 Tahiti_1979_UTM_Zone_6S PROJCS["Tahiti_1979_UTM_Zone_6S",GEOGCS["GCS_Tahiti_1979",DATUM["D_Tahiti_1979",SPH
3305 Moorea_1987_UTM_Zone_6S PROJCS["Moorea_1987_UTM_Zone_6S",GEOGCS["GCS_Moorea_1987",DATUM["D_Moorea_198
3306 Maupiti_1983_UTM_Zone_5S PROJCS["Maupiti_1983_UTM_Zone_5S",GEOGCS["GCS_Maupiti_1983",DATUM["D_Maupiti_1983
3307 Nakhl-e_Ghanem_UTM_Zone_39N PROJCS["Nakhl-e_Ghanem_UTM_Zone_39N",GEOGCS["GCS_Nakhl-e_Ghanem",DATUM["D_Nak
3308 GDA_1994_NSW_Lambert PROJCS["GDA_1994_NSW_Lambert",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHE
3309 NAD_1927_California_Teale_Albers PROJCS["NAD_1927_California_Teale_Albers",GEOGCS["GCS_North_American_1927",DATUM["D
3310 NAD_1983_California_Teale_Albers PROJCS["NAD_1983_California_Teale_Albers",GEOGCS["GCS_North_American_1983",DATUM["D
3311 NAD_1983_HARN_California_Teale_Albers PROJCS["NAD_1983_HARN_California_Teale_Albers",GEOGCS["GCS_North_American_1983_HA
3312 CSG_1967_UTM_Zone_21N PROJCS["CSG_1967_UTM_Zone_21N",GEOGCS["GCS_CSG_1967",DATUM["D_CSG_1967",SPH
3313 RGFG_1995_UTM_Zone_21N PROJCS["RGFG_1995_UTM_Zone_21N",GEOGCS["GCS_RGFG_1995",DATUM["D_RGFG_1995"
3315 Katanga_1955_Katanga_TM PROJCS["Katanga_1955_Katanga_TM",GEOGCS["GCS_Katanga_1955",DATUM["D_Katanga_195
3316 Kasai_1953_Congo_TM_Zone_22 PROJCS["Kasai_1953_Congo_TM_Zone_22",GEOGCS["GCS_Kasai_1953",DATUM["D_Kasai_195
3317 Kasai_1953_Congo_TM_Zone_24 PROJCS["Kasai_1953_Congo_TM_Zone_24",GEOGCS["GCS_Kasai_1953",DATUM["D_Kasai_195
3318 IGC_1962_Congo_TM_Zone_12 PROJCS["IGC_1962_Congo_TM_Zone_12",GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATU
3319 IGC_1962_Congo_TM_Zone_14 PROJCS["IGC_1962_Congo_TM_Zone_14",GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATU
3320 IGC_1962_Congo_TM_Zone_16 PROJCS["IGC_1962_Congo_TM_Zone_16",GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATU

Copyright 1995-2015 Esri. All rights reserved. 346


ArcGIS Runtime SDK for .NET

3321 IGC_1962_Congo_TM_Zone_18 PROJCS["IGC_1962_Congo_TM_Zone_18",GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATU


3322 IGC_1962_Congo_TM_Zone_20 PROJCS["IGC_1962_Congo_TM_Zone_20",GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATU
3323 IGC_1962_Congo_TM_Zone_22 PROJCS["IGC_1962_Congo_TM_Zone_22",GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATU
3324 IGC_1962_Congo_TM_Zone_24 PROJCS["IGC_1962_Congo_TM_Zone_24",GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATU
3325 IGC_1962_Congo_TM_Zone_26 PROJCS["IGC_1962_Congo_TM_Zone_26",GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATU
3326 IGC_1962_Congo_TM_Zone_28 PROJCS["IGC_1962_Congo_TM_Zone_28",GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATU
3327 IGC_1962_Congo_TM_Zone_30 PROJCS["IGC_1962_Congo_TM_Zone_30",GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATU
3328 Pulkovo_1942_Adj_1958_GUGiK-80 PROJCS["Pulkovo_1942_Adj_1958_GUGiK-80",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM
3329 Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_5 PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_5",GEOGCS["GCS_Pulkovo_1942_Adj_1
3330 Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_6 PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_6",GEOGCS["GCS_Pulkovo_1942_Adj_1
3331 Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_7 PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_7",GEOGCS["GCS_Pulkovo_1942_Adj_1
3332 Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_8 PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_8",GEOGCS["GCS_Pulkovo_1942_Adj_1
3333 Pulkovo_1942_Adj_1958_GK_Zone_3 PROJCS["Pulkovo_1942_Adj_1958_GK_Zone_3",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATU
3334 Pulkovo_1942_Adj_1958_GK_Zone_4 PROJCS["Pulkovo_1942_Adj_1958_GK_Zone_4",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATU
3335 Pulkovo_1942_Adj_1958_GK_Zone_5 PROJCS["Pulkovo_1942_Adj_1958_GK_Zone_5",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATU
3336 Kerguelen_Island_1949_UTM_42S PROJCS["Kerguelen_Island_1949_UTM_42S",GEOGCS["GCS_Kerguelen_Island_1949",DATUM["D
3337 Le_Pouce_1934_Mauritius_Grid PROJCS["Le_Pouce_1934_Mauritius_Grid",GEOGCS["GCS_Le_Pouce_1934",DATUM["D_Le_Pouc
3338 NAD_1983_Alaska_Albers PROJCS["NAD_1983_Alaska_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_A
3339 IGCB_1955_Congo_TM_Zone_12 PROJCS["IGCB_1955_Congo_TM_Zone_12",GEOGCS["GCS_IGCB_1955",DATUM["D_Institut_Ge
3340 IGCB_1955_Congo_TM_Zone_14 PROJCS["IGCB_1955_Congo_TM_Zone_14",GEOGCS["GCS_IGCB_1955",DATUM["D_Institut_Ge
3341 IGCB_1955_Congo_TM_Zone_16 PROJCS["IGCB_1955_Congo_TM_Zone_16",GEOGCS["GCS_IGCB_1955",DATUM["D_Institut_Ge
3342 IGCB_1955_UTM_Zone_33S PROJCS["IGCB_1955_UTM_Zone_33S",GEOGCS["GCS_IGCB_1955",DATUM["D_Institut_Geograp
3343 Mauritania_1999_UTM_Zone_28N PROJCS["Mauritania_1999_UTM_Zone_28N",GEOGCS["GCS_Mauritania_1999",DATUM["D_Mauri
3344 Mauritania_1999_UTM_Zone_29N PROJCS["Mauritania_1999_UTM_Zone_29N",GEOGCS["GCS_Mauritania_1999",DATUM["D_Mauri
3345 Mauritania_1999_UTM_Zone_30N PROJCS["Mauritania_1999_UTM_Zone_30N",GEOGCS["GCS_Mauritania_1999",DATUM["D_Mauri
3346 LKS_1994_Lithuania_TM PROJCS["LKS_1994_Lithuania_TM",GEOGCS["GCS_LKS_1994",DATUM["D_Lithuania_1994",SPH
3347 NAD_1983_Statistics_Canada_Lambert PROJCS["NAD_1983_Statistics_Canada_Lambert",GEOGCS["GCS_North_American_1983",DATUM
3348 NAD_1983_CSRS_Statistics_Canada_Lambert PROJCS["NAD_1983_CSRS_Statistics_Canada_Lambert",GEOGCS["GCS_North_American_1983_
3350 Pulkovo_1942_CS63_Zone_C0 PROJCS["Pulkovo_1942_CS63_Zone_C0",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_19
3351 Pulkovo_1942_CS63_Zone_C1 PROJCS["Pulkovo_1942_CS63_Zone_C1",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_19
3352 Pulkovo_1942_CS63_Zone_C2 PROJCS["Pulkovo_1942_CS63_Zone_C2",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_19
3353 Mhast_Onshore_UTM_Zone_32S PROJCS["Mhast_Onshore_UTM_Zone_32S",GEOGCS["GCS_Mhast_Onshore",DATUM["D_Mhast_
3354 Mhast_Offshore_UTM_Zone_32S PROJCS["Mhast_Offshore_UTM_Zone_32S",GEOGCS["GCS_Mhast_Offshore",DATUM["D_Mhast_
3355 Egypt_Gulf_of_Suez_S-650_TL_Red_Belt PROJCS["Egypt_Gulf_of_Suez_S-650_TL_Red_Belt",GEOGCS["GCS_Egypt_Gulf_of_Suez_S-650_
3356 Grand_Cayman_1959_UTM_Zone_17N PROJCS["Grand_Cayman_1959_UTM_Zone_17N",GEOGCS["GCS_Grand_Cayman_1959",DATUM
3357 Little_Cayman_1961_UTM_Zone_17N PROJCS["Little_Cayman_1961_UTM_Zone_17N",GEOGCS["GCS_Little_Cayman_1961",DATUM["D
3358 NAD_1983_HARN_StatePlane_North_Carolina_FIPS_3200 PROJCS["NAD_1983_HARN_StatePlane_North_Carolina_FIPS_3200",GEOGCS["GCS_North_Ame
3360 NAD_1983_HARN_StatePlane_South_Carolina_FIPS_3900 PROJCS["NAD_1983_HARN_StatePlane_South_Carolina_FIPS_3900",GEOGCS["GCS_North_Ame
3361 NAD_1983_HARN_StatePlane_South_Carolina_FIPS_3900_Feet_Intl PROJCS["NAD_1983_HARN_StatePlane_South_Carolina_FIPS_3900_Feet_Intl",GEOGCS["GCS_N
3362 NAD_1983_HARN_StatePlane_Pennsylvania_North_FIPS_3701 PROJCS["NAD_1983_HARN_StatePlane_Pennsylvania_North_FIPS_3701",GEOGCS["GCS_North_
3363 NAD_1983_HARN_StatePlane_Pennsylvania_North_FIPS_3701_Feet PROJCS["NAD_1983_HARN_StatePlane_Pennsylvania_North_FIPS_3701_Feet",GEOGCS["GCS_
3364 NAD_1983_HARN_StatePlane_Pennsylvania_South_FIPS_3702 PROJCS["NAD_1983_HARN_StatePlane_Pennsylvania_South_FIPS_3702",GEOGCS["GCS_North
3365 NAD_1983_HARN_StatePlane_Pennsylvania_South_FIPS_3702_Feet PROJCS["NAD_1983_HARN_StatePlane_Pennsylvania_South_FIPS_3702_Feet",GEOGCS["GCS_
3367 IGN_Astro_1960_UTM_Zone_28N PROJCS["IGN_Astro_1960_UTM_Zone_28N",GEOGCS["GCS_IGN_Astro_1960",DATUM["D_IGN_A
3368 IGN_Astro_1960_UTM_Zone_29N PROJCS["IGN_Astro_1960_UTM_Zone_29N",GEOGCS["GCS_IGN_Astro_1960",DATUM["D_IGN_A
3369 IGN_Astro_1960_UTM_Zone_30N PROJCS["IGN_Astro_1960_UTM_Zone_30N",GEOGCS["GCS_IGN_Astro_1960",DATUM["D_IGN_A
3370 NAD_1927_UTM_Zone_59N PROJCS["NAD_1927_UTM_Zone_59N",GEOGCS["GCS_North_American_1927",DATUM["D_North
3371 NAD_1927_UTM_Zone_60N PROJCS["NAD_1927_UTM_Zone_60N",GEOGCS["GCS_North_American_1927",DATUM["D_North
3372 NAD_1983_UTM_Zone_59N PROJCS["NAD_1983_UTM_Zone_59N",GEOGCS["GCS_North_American_1983",DATUM["D_North
3373 NAD_1983_UTM_Zone_60N PROJCS["NAD_1983_UTM_Zone_60N",GEOGCS["GCS_North_American_1983",DATUM["D_North
3374 FD_1954_UTM_Zone_29N PROJCS["FD_1954_UTM_Zone_29N",GEOGCS["GCS_FD_1954",DATUM["D_Faroe_Datum_1954"
3375 GDM_2000_MRSO_Peninsular_Malaysia PROJCS["GDM_2000_MRSO_Peninsular_Malaysia",GEOGCS["GCS_GDM_2000",DATUM["D_GDM
3376 GDM_2000_BRSO_East_Malaysia PROJCS["GDM_2000_BRSO_East_Malaysia",GEOGCS["GCS_GDM_2000",DATUM["D_GDM_200
3377 GDM_2000_State_Cassini_Johor PROJCS["GDM_2000_State_Cassini_Johor",GEOGCS["GCS_GDM_2000",DATUM["D_GDM_2000"

Copyright 1995-2015 Esri. All rights reserved. 347


ArcGIS Runtime SDK for .NET

3378 GDM_2000_State_Cassini_Negeri_Sembilan_and_Melaka PROJCS["GDM_2000_State_Cassini_Negeri_Sembilan_and_Melaka",GEOGCS["GCS_GDM_2000"


3379 GDM_2000_State_Cassini_Pahang PROJCS["GDM_2000_State_Cassini_Pahang",GEOGCS["GCS_GDM_2000",DATUM["D_GDM_200
3380 GDM_2000_State_Cassini_Selangor PROJCS["GDM_2000_State_Cassini_Selangor",GEOGCS["GCS_GDM_2000",DATUM["D_GDM_20
3381 GDM_2000_State_Cassini_Terengganu PROJCS["GDM_2000_State_Cassini_Terengganu",GEOGCS["GCS_GDM_2000",DATUM["D_GDM
3382 GDM_2000_State_Cassini_Pulau_Pinang_and_Seberang_Perai PROJCS["GDM_2000_State_Cassini_Pulau_Pinang_and_Seberang_Perai",GEOGCS["GCS_GDM_
3383 GDM_2000_State_Cassini_Perlis PROJCS["GDM_2000_State_Cassini_Perlis",GEOGCS["GCS_GDM_2000",DATUM["D_GDM_2000"
3384 GDM_2000_State_Cassini_Perak PROJCS["GDM_2000_State_Cassini_Perak",GEOGCS["GCS_GDM_2000",DATUM["D_GDM_2000
3385 GDM_2000_State_Cassini_Kelantan PROJCS["GDM_2000_State_Cassini_Kelantan",GEOGCS["GCS_GDM_2000",DATUM["D_GDM_20
3386 KKJ_Finland_Zone_0 PROJCS["KKJ_Finland_Zone_0",GEOGCS["GCS_KKJ",DATUM["D_KKJ",SPHEROID["International
3387 KKJ_Finland_Zone_5 PROJCS["KKJ_Finland_Zone_5",GEOGCS["GCS_KKJ",DATUM["D_KKJ",SPHEROID["International
3388 Pulkovo_1942_Caspian_Sea_Mercator PROJCS["Pulkovo_1942_Caspian_Sea_Mercator",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulk
3389 Pulkovo_1942_3_Degree_GK_Zone_60 PROJCS["Pulkovo_1942_3_Degree_GK_Zone_60",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pu
3390 Pulkovo_1995_3_Degree_GK_Zone_60 PROJCS["Pulkovo_1995_3_Degree_GK_Zone_60",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pu
3391 Karbala_1979_Polservice_UTM_Zone_37N PROJCS["Karbala_1979_Polservice_UTM_Zone_37N",GEOGCS["GCS_Karbala_1979_Polservice",
3392 Karbala_1979_Polservice_UTM_Zone_38N PROJCS["Karbala_1979_Polservice_UTM_Zone_38N",GEOGCS["GCS_Karbala_1979_Polservice",
3393 Karbala_1979_Polservice_UTM_Zone_39N PROJCS["Karbala_1979_Polservice_UTM_Zone_39N",GEOGCS["GCS_Karbala_1979_Polservice",
3394 Nahrwan_1934_Iraq_Zone PROJCS["Nahrwan_1934_Iraq_Zone",GEOGCS["GCS_Nahrwan_1934",DATUM["D_Nahrwan_1934
3395 WGS_1984_World_Mercator PROJCS["WGS_1984_World_Mercator",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
3396 PD/83_GK_Zone_3 PROJCS["PD/83_GK_Zone_3",GEOGCS["GCS_PD/83",DATUM["D_Potsdam_1983",SPHEROID["B
3397 PD/83_GK_Zone_4 PROJCS["PD/83_GK_Zone_4",GEOGCS["GCS_PD/83",DATUM["D_Potsdam_1983",SPHEROID["B
3398 RD/83_GK_Zone_4 PROJCS["RD/83_GK_Zone_4",GEOGCS["GCS_RD/83",DATUM["D_Rauenberg_1983",SPHEROID
3399 RD/83_GK_Zone_5 PROJCS["RD/83_GK_Zone_5",GEOGCS["GCS_RD/83",DATUM["D_Rauenberg_1983",SPHEROID
3400 NAD_1983_10TM_AEP_Forest PROJCS["NAD_1983_10TM_AEP_Forest",GEOGCS["GCS_North_American_1983",DATUM["D_No
3401 NAD_1983_10TM_AEP_Resource PROJCS["NAD_1983_10TM_AEP_Resource",GEOGCS["GCS_North_American_1983",DATUM["D_
3402 NAD_1983_CSRS_10TM_AEP_Forest PROJCS["NAD_1983_CSRS_10TM_AEP_Forest",GEOGCS["GCS_North_American_1983_CSRS",D
3403 NAD_1983_CSRS_10TM_AEP_Resource PROJCS["NAD_1983_CSRS_10TM_AEP_Resource",GEOGCS["GCS_North_American_1983_CSR
3404 NAD_1983_HARN_StatePlane_North_Carolina_FIPS_3200_Feet PROJCS["NAD_1983_HARN_StatePlane_North_Carolina_FIPS_3200_Feet",GEOGCS["GCS_North
3405 VN_2000_UTM_Zone_48N PROJCS["VN_2000_UTM_Zone_48N",GEOGCS["GCS_VN_2000",DATUM["D_Vietnam_2000",SPH
3406 VN_2000_UTM_Zone_49N PROJCS["VN_2000_UTM_Zone_49N",GEOGCS["GCS_VN_2000",DATUM["D_Vietnam_2000",SPH
3407 Hong_Kong_1963_Grid_System PROJCS["Hong_Kong_1963_Grid_System",GEOGCS["GCS_Hong_Kong_1963",DATUM["D_Hong_
3408 NSIDC_EASE_Grid_North PROJCS["NSIDC_EASE_Grid_North",GEOGCS["GCS_Sphere_International_1924_Authalic",DATU
3409 NSIDC_EASE_Grid_South PROJCS["NSIDC_EASE_Grid_South",GEOGCS["GCS_Sphere_International_1924_Authalic",DATU
3410 NSIDC_EASE_Grid_Global PROJCS["NSIDC_EASE_Grid_Global",GEOGCS["GCS_Sphere_International_1924_Authalic",DATU
3411 NSIDC_Sea_Ice_Polar_Stereographic_North PROJCS["NSIDC_Sea_Ice_Polar_Stereographic_North",GEOGCS["GCS_Hughes_1980",DATUM["D
3412 NSIDC_Sea_Ice_Polar_Stereographic_South PROJCS["NSIDC_Sea_Ice_Polar_Stereographic_South",GEOGCS["GCS_Hughes_1980",DATUM["D
3413 WGS_1984_NSIDC_Sea_Ice_Polar_Stereographic_North PROJCS["WGS_1984_NSIDC_Sea_Ice_Polar_Stereographic_North",GEOGCS["GCS_WGS_1984",
3414 SVY21_Singapore_TM PROJCS["SVY21_Singapore_TM",GEOGCS["GCS_SVY21",DATUM["D_SVY21",SPHEROID["WGS
3415 WGS_1972_BE_South_China_Sea_Lambert PROJCS["WGS_1972_BE_South_China_Sea_Lambert",GEOGCS["GCS_WGS_1972_BE",DATUM[
3416 ETRS_1989_Austria_Lambert PROJCS["ETRS_1989_Austria_Lambert",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
3417 NAD_1983_StatePlane_Iowa_North_FIPS_1401_Feet PROJCS["NAD_1983_StatePlane_Iowa_North_FIPS_1401_Feet",GEOGCS["GCS_North_American
3418 NAD_1983_StatePlane_Iowa_South_FIPS_1402_Feet PROJCS["NAD_1983_StatePlane_Iowa_South_FIPS_1402_Feet",GEOGCS["GCS_North_American
3419 NAD_1983_StatePlane_Kansas_North_FIPS_1501_Feet PROJCS["NAD_1983_StatePlane_Kansas_North_FIPS_1501_Feet",GEOGCS["GCS_North_Americ
3420 NAD_1983_StatePlane_Kansas_South_FIPS_1502_Feet PROJCS["NAD_1983_StatePlane_Kansas_South_FIPS_1502_Feet",GEOGCS["GCS_North_Americ
3421 NAD_1983_StatePlane_Nevada_East_FIPS_2701_Feet PROJCS["NAD_1983_StatePlane_Nevada_East_FIPS_2701_Feet",GEOGCS["GCS_North_America
3422 NAD_1983_StatePlane_Nevada_Central_FIPS_2702_Feet PROJCS["NAD_1983_StatePlane_Nevada_Central_FIPS_2702_Feet",GEOGCS["GCS_North_Ame
3423 NAD_1983_StatePlane_Nevada_West_FIPS_2703_Feet PROJCS["NAD_1983_StatePlane_Nevada_West_FIPS_2703_Feet",GEOGCS["GCS_North_Americ
3424 NAD_1983_StatePlane_New_Jersey_FIPS_2900_Feet PROJCS["NAD_1983_StatePlane_New_Jersey_FIPS_2900_Feet",GEOGCS["GCS_North_American
3425 NAD_1983_HARN_StatePlane_Iowa_North_FIPS_1401_Feet PROJCS["NAD_1983_HARN_StatePlane_Iowa_North_FIPS_1401_Feet",GEOGCS["GCS_North_Am
3426 NAD_1983_HARN_StatePlane_Iowa_South_FIPS_1402_Feet PROJCS["NAD_1983_HARN_StatePlane_Iowa_South_FIPS_1402_Feet",GEOGCS["GCS_North_A
3427 NAD_1983_HARN_StatePlane_Kansas_North_FIPS_1501_Feet PROJCS["NAD_1983_HARN_StatePlane_Kansas_North_FIPS_1501_Feet",GEOGCS["GCS_North_
3428 NAD_1983_HARN_StatePlane_Kansas_South_FIPS_1502_Feet PROJCS["NAD_1983_HARN_StatePlane_Kansas_South_FIPS_1502_Feet",GEOGCS["GCS_North
3429 NAD_1983_HARN_StatePlane_Nevada_East_FIPS_2701_Feet PROJCS["NAD_1983_HARN_StatePlane_Nevada_East_FIPS_2701_Feet",GEOGCS["GCS_North_
3430 NAD_1983_HARN_StatePlane_Nevada_Central_FIPS_2702_Feet PROJCS["NAD_1983_HARN_StatePlane_Nevada_Central_FIPS_2702_Feet",GEOGCS["GCS_Nort
3431 NAD_1983_HARN_StatePlane_Nevada_West_FIPS_2703_Feet PROJCS["NAD_1983_HARN_StatePlane_Nevada_West_FIPS_2703_Feet",GEOGCS["GCS_North_

Copyright 1995-2015 Esri. All rights reserved. 348


ArcGIS Runtime SDK for .NET

3432 NAD_1983_HARN_StatePlane_New_Jersey_FIPS_2900_Feet PROJCS["NAD_1983_HARN_StatePlane_New_Jersey_FIPS_2900_Feet",GEOGCS["GCS_North_A


3433 NAD_1983_StatePlane_Arkansas_North_FIPS_0301_Feet PROJCS["NAD_1983_StatePlane_Arkansas_North_FIPS_0301_Feet",GEOGCS["GCS_North_Amer
3434 NAD_1983_StatePlane_Arkansas_South_FIPS_0302_Feet PROJCS["NAD_1983_StatePlane_Arkansas_South_FIPS_0302_Feet",GEOGCS["GCS_North_Ame
3435 NAD_1983_StatePlane_Illinois_East_FIPS_1201_Feet PROJCS["NAD_1983_StatePlane_Illinois_East_FIPS_1201_Feet",GEOGCS["GCS_North_American
3436 NAD_1983_StatePlane_Illinois_West_FIPS_1202_Feet PROJCS["NAD_1983_StatePlane_Illinois_West_FIPS_1202_Feet",GEOGCS["GCS_North_America
3437 NAD_1983_StatePlane_New_Hampshire_FIPS_2800_Feet PROJCS["NAD_1983_StatePlane_New_Hampshire_FIPS_2800_Feet",GEOGCS["GCS_North_Ame
3438 NAD_1983_StatePlane_Rhode_Island_FIPS_3800_Feet PROJCS["NAD_1983_StatePlane_Rhode_Island_FIPS_3800_Feet",GEOGCS["GCS_North_Americ
3439 PDO_1993_UTM_Zone_39N PROJCS["PDO_1993_UTM_Zone_39N",GEOGCS["GCS_PDO_1993",DATUM["D_PDO_1993",SPH
3440 PDO_1993_UTM_Zone_40N PROJCS["PDO_1993_UTM_Zone_40N",GEOGCS["GCS_PDO_1993",DATUM["D_PDO_1993",SPH
3441 NAD_1983_HARN_StatePlane_Arkansas_North_FIPS_0301_Feet PROJCS["NAD_1983_HARN_StatePlane_Arkansas_North_FIPS_0301_Feet",GEOGCS["GCS_Nort
3442 NAD_1983_HARN_StatePlane_Arkansas_South_FIPS_0302_Feet PROJCS["NAD_1983_HARN_StatePlane_Arkansas_South_FIPS_0302_Feet",GEOGCS["GCS_Nor
3443 NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201_Feet PROJCS["NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201_Feet",GEOGCS["GCS_North_A
3444 NAD_1983_HARN_StatePlane_Illinois_West_FIPS_1202_Feet PROJCS["NAD_1983_HARN_StatePlane_Illinois_West_FIPS_1202_Feet",GEOGCS["GCS_North_A
3445 NAD_1983_HARN_StatePlane_New_Hampshire_FIPS_2800_Feet PROJCS["NAD_1983_HARN_StatePlane_New_Hampshire_FIPS_2800_Feet",GEOGCS["GCS_Nor
3446 NAD_1983_HARN_StatePlane_Rhode_Island_FIPS_3800_Feet PROJCS["NAD_1983_HARN_StatePlane_Rhode_Island_FIPS_3800_Feet",GEOGCS["GCS_North_
3447 Belge_Lambert_2005 PROJCS["Belge_Lambert_2005",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHERO
3448 JAD_2001_Jamaica_Grid PROJCS["JAD_2001_Jamaica_Grid",GEOGCS["GCS_JAD_2001",DATUM["D_Jamaica_2001",SPH
3449 JAD_2001_UTM_Zone_17N PROJCS["JAD_2001_UTM_Zone_17N",GEOGCS["GCS_JAD_2001",DATUM["D_Jamaica_2001",SP
3450 JAD_2001_UTM_Zone_18N PROJCS["JAD_2001_UTM_Zone_18N",GEOGCS["GCS_JAD_2001",DATUM["D_Jamaica_2001",SP
3451 NAD_1983_StatePlane_Louisiana_North_FIPS_1701_Feet PROJCS["NAD_1983_StatePlane_Louisiana_North_FIPS_1701_Feet",GEOGCS["GCS_North_Ame
3452 NAD_1983_StatePlane_Louisiana_South_FIPS_1702_Feet PROJCS["NAD_1983_StatePlane_Louisiana_South_FIPS_1702_Feet",GEOGCS["GCS_North_Ame
3453 NAD_1983_StatePlane_Louisiana_Offshore_FIPS_1703_Feet PROJCS["NAD_1983_StatePlane_Louisiana_Offshore_FIPS_1703_Feet",GEOGCS["GCS_North_A
3455 NAD_1983_StatePlane_South_Dakota_South_FIPS_4002_Feet PROJCS["NAD_1983_StatePlane_South_Dakota_South_FIPS_4002_Feet",GEOGCS["GCS_North_
3456 NAD_1983_HARN_StatePlane_Louisiana_North_FIPS_1701_Feet PROJCS["NAD_1983_HARN_StatePlane_Louisiana_North_FIPS_1701_Feet",GEOGCS["GCS_Nor
3457 NAD_1983_HARN_StatePlane_Louisiana_South_FIPS_1702_Feet PROJCS["NAD_1983_HARN_StatePlane_Louisiana_South_FIPS_1702_Feet",GEOGCS["GCS_Nor
3458 NAD_1983_HARN_StatePlane_South_Dakota_North_FIPS_4001_Feet PROJCS["NAD_1983_HARN_StatePlane_South_Dakota_North_FIPS_4001_Feet",GEOGCS["GCS_
3459 NAD_1983_HARN_StatePlane_South_Dakota_South_FIPS_4002_Feet PROJCS["NAD_1983_HARN_StatePlane_South_Dakota_South_FIPS_4002_Feet",GEOGCS["GCS
3460 Fiji_1986_Fiji_Map_Grid PROJCS["Fiji_1986_Fiji_Map_Grid",GEOGCS["GCS_Fiji_1986",DATUM["D_Fiji_1986",SPHEROID["
3461 Dabola_1981_UTM_Zone_28N PROJCS["Dabola_1981_UTM_Zone_28N",GEOGCS["GCS_Dabola_1981",DATUM["D_Dabola_198
3462 Dabola_1981_UTM_Zone_29N PROJCS["Dabola_1981_UTM_Zone_29N",GEOGCS["GCS_Dabola_1981",DATUM["D_Dabola_198
3463 NAD_1983_Maine_2000_Central_Zone PROJCS["NAD_1983_Maine_2000_Central_Zone",GEOGCS["GCS_North_American_1983",DATUM
3464 NAD_1983_HARN_Maine_2000_Central_Zone PROJCS["NAD_1983_HARN_Maine_2000_Central_Zone",GEOGCS["GCS_North_American_1983_
3465 NAD_1983_NSRS2007_StatePlane_Alabama_East_FIPS_0101 PROJCS["NAD_1983_NSRS2007_StatePlane_Alabama_East_FIPS_0101",GEOGCS["GCS_NAD_1
3466 NAD_1983_NSRS2007_StatePlane_Alabama_West_FIPS_0102 PROJCS["NAD_1983_NSRS2007_StatePlane_Alabama_West_FIPS_0102",GEOGCS["GCS_NAD_
3467 NAD_1983_NSRS2007_Alaska_Albers PROJCS["NAD_1983_NSRS2007_Alaska_Albers",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM
3468 NAD_1983_NSRS2007_StatePlane_Alaska_1_FIPS_5001 PROJCS["NAD_1983_NSRS2007_StatePlane_Alaska_1_FIPS_5001",GEOGCS["GCS_NAD_1983_
3469 NAD_1983_NSRS2007_StatePlane_Alaska_2_FIPS_5002 PROJCS["NAD_1983_NSRS2007_StatePlane_Alaska_2_FIPS_5002",GEOGCS["GCS_NAD_1983_
3470 NAD_1983_NSRS2007_StatePlane_Alaska_3_FIPS_5003 PROJCS["NAD_1983_NSRS2007_StatePlane_Alaska_3_FIPS_5003",GEOGCS["GCS_NAD_1983_
3471 NAD_1983_NSRS2007_StatePlane_Alaska_4_FIPS_5004 PROJCS["NAD_1983_NSRS2007_StatePlane_Alaska_4_FIPS_5004",GEOGCS["GCS_NAD_1983_
3472 NAD_1983_NSRS2007_StatePlane_Alaska_5_FIPS_5005 PROJCS["NAD_1983_NSRS2007_StatePlane_Alaska_5_FIPS_5005",GEOGCS["GCS_NAD_1983_
3473 NAD_1983_NSRS2007_StatePlane_Alaska_6_FIPS_5006 PROJCS["NAD_1983_NSRS2007_StatePlane_Alaska_6_FIPS_5006",GEOGCS["GCS_NAD_1983_
3474 NAD_1983_NSRS2007_StatePlane_Alaska_7_FIPS_5007 PROJCS["NAD_1983_NSRS2007_StatePlane_Alaska_7_FIPS_5007",GEOGCS["GCS_NAD_1983_
3475 NAD_1983_NSRS2007_StatePlane_Alaska_8_FIPS_5008 PROJCS["NAD_1983_NSRS2007_StatePlane_Alaska_8_FIPS_5008",GEOGCS["GCS_NAD_1983_
3476 NAD_1983_NSRS2007_StatePlane_Alaska_9_FIPS_5009 PROJCS["NAD_1983_NSRS2007_StatePlane_Alaska_9_FIPS_5009",GEOGCS["GCS_NAD_1983_
3477 NAD_1983_NSRS2007_StatePlane_Alaska_10_FIPS_5010 PROJCS["NAD_1983_NSRS2007_StatePlane_Alaska_10_FIPS_5010",GEOGCS["GCS_NAD_1983
3478 NAD_1983_NSRS2007_StatePlane_Arizona_Central_FIPS_0202 PROJCS["NAD_1983_NSRS2007_StatePlane_Arizona_Central_FIPS_0202",GEOGCS["GCS_NAD
3479 NAD_1983_NSRS2007_StatePlane_Arizona_Central_FIPS_0202_Ft_Intl PROJCS["NAD_1983_NSRS2007_StatePlane_Arizona_Central_FIPS_0202_Ft_Intl",GEOGCS["GC
3480 NAD_1983_NSRS2007_StatePlane_Arizona_East_FIPS_0201 PROJCS["NAD_1983_NSRS2007_StatePlane_Arizona_East_FIPS_0201",GEOGCS["GCS_NAD_19
3481 NAD_1983_NSRS2007_StatePlane_Arizona_East_FIPS_0201_Ft_Intl PROJCS["NAD_1983_NSRS2007_StatePlane_Arizona_East_FIPS_0201_Ft_Intl",GEOGCS["GCS_
3482 NAD_1983_NSRS2007_StatePlane_Arizona_West_FIPS_0203 PROJCS["NAD_1983_NSRS2007_StatePlane_Arizona_West_FIPS_0203",GEOGCS["GCS_NAD_1
3483 NAD_1983_NSRS2007_StatePlane_Arizona_West_FIPS_0203_Ft_Intl PROJCS["NAD_1983_NSRS2007_StatePlane_Arizona_West_FIPS_0203_Ft_Intl",GEOGCS["GCS_
3484 NAD_1983_NSRS2007_StatePlane_Arkansas_North_FIPS_0301 PROJCS["NAD_1983_NSRS2007_StatePlane_Arkansas_North_FIPS_0301",GEOGCS["GCS_NAD
3485 NAD_1983_NSRS2007_StatePlane_Arkansas_North_FIPS_0301_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Arkansas_North_FIPS_0301_Ft_US",GEOGCS["GC
3486 NAD_1983_NSRS2007_StatePlane_Arkansas_South_FIPS_0302 PROJCS["NAD_1983_NSRS2007_StatePlane_Arkansas_South_FIPS_0302",GEOGCS["GCS_NAD

Copyright 1995-2015 Esri. All rights reserved. 349


ArcGIS Runtime SDK for .NET

3487 NAD_1983_NSRS2007_StatePlane_Arkansas_South_FIPS_0302_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Arkansas_South_FIPS_0302_Ft_US",GEOGCS["GC


3488 NAD_1983_NSRS2007_California_Teale_Albers PROJCS["NAD_1983_NSRS2007_California_Teale_Albers",GEOGCS["GCS_NAD_1983_NSRS200
3489 NAD_1983_NSRS2007_StatePlane_California_I_FIPS_0401 PROJCS["NAD_1983_NSRS2007_StatePlane_California_I_FIPS_0401",GEOGCS["GCS_NAD_198
3490 NAD_1983_NSRS2007_StatePlane_California_I_FIPS_0401_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_California_I_FIPS_0401_Ft_US",GEOGCS["GCS_NA
3491 NAD_1983_NSRS2007_StatePlane_California_II_FIPS_0402 PROJCS["NAD_1983_NSRS2007_StatePlane_California_II_FIPS_0402",GEOGCS["GCS_NAD_198
3492 NAD_1983_NSRS2007_StatePlane_California_II_FIPS_0402_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_California_II_FIPS_0402_Ft_US",GEOGCS["GCS_N
3493 NAD_1983_NSRS2007_StatePlane_California_III_FIPS_0403 PROJCS["NAD_1983_NSRS2007_StatePlane_California_III_FIPS_0403",GEOGCS["GCS_NAD_19
3494 NAD_1983_NSRS2007_StatePlane_California_III_FIPS_0403_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_California_III_FIPS_0403_Ft_US",GEOGCS["GCS_N
3495 NAD_1983_NSRS2007_StatePlane_California_IV_FIPS_0404 PROJCS["NAD_1983_NSRS2007_StatePlane_California_IV_FIPS_0404",GEOGCS["GCS_NAD_19
3496 NAD_1983_NSRS2007_StatePlane_California_IV_FIPS_0404_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_California_IV_FIPS_0404_Ft_US",GEOGCS["GCS_N
3497 NAD_1983_NSRS2007_StatePlane_California_V_FIPS_0405 PROJCS["NAD_1983_NSRS2007_StatePlane_California_V_FIPS_0405",GEOGCS["GCS_NAD_198
3498 NAD_1983_NSRS2007_StatePlane_California_V_FIPS_0405_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_California_V_FIPS_0405_Ft_US",GEOGCS["GCS_N
3499 NAD_1983_NSRS2007_StatePlane_California_VI_FIPS_0406 PROJCS["NAD_1983_NSRS2007_StatePlane_California_VI_FIPS_0406",GEOGCS["GCS_NAD_19
3500 NAD_1983_NSRS2007_StatePlane_California_VI_FIPS_0406_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_California_VI_FIPS_0406_Ft_US",GEOGCS["GCS_N
3501 NAD_1983_NSRS2007_StatePlane_Colorado_Central_FIPS_0502 PROJCS["NAD_1983_NSRS2007_StatePlane_Colorado_Central_FIPS_0502",GEOGCS["GCS_NAD
3502 NAD_1983_NSRS2007_StatePlane_Colorado_Central_FIPS_0502_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Colorado_Central_FIPS_0502_Ft_US",GEOGCS["G
3503 NAD_1983_NSRS2007_StatePlane_Colorado_North_FIPS_0501 PROJCS["NAD_1983_NSRS2007_StatePlane_Colorado_North_FIPS_0501",GEOGCS["GCS_NAD_
3504 NAD_1983_NSRS2007_StatePlane_Colorado_North_FIPS_0501_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Colorado_North_FIPS_0501_Ft_US",GEOGCS["GCS
3505 NAD_1983_NSRS2007_StatePlane_Colorado_South_FIPS_0503 PROJCS["NAD_1983_NSRS2007_StatePlane_Colorado_South_FIPS_0503",GEOGCS["GCS_NAD
3506 NAD_1983_NSRS2007_StatePlane_Colorado_South_FIPS_0503_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Colorado_South_FIPS_0503_Ft_US",GEOGCS["GC
3507 NAD_1983_NSRS2007_StatePlane_Connecticut_FIPS_0600 PROJCS["NAD_1983_NSRS2007_StatePlane_Connecticut_FIPS_0600",GEOGCS["GCS_NAD_198
3508 NAD_1983_NSRS2007_StatePlane_Connecticut_FIPS_0600_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Connecticut_FIPS_0600_Ft_US",GEOGCS["GCS_N
3509 NAD_1983_NSRS2007_StatePlane_Delaware_FIPS_0700 PROJCS["NAD_1983_NSRS2007_StatePlane_Delaware_FIPS_0700",GEOGCS["GCS_NAD_1983_
3510 NAD_1983_NSRS2007_StatePlane_Delaware_FIPS_0700_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Delaware_FIPS_0700_Ft_US",GEOGCS["GCS_NAD
3511 NAD_1983_NSRS2007_StatePlane_Florida_East_FIPS_0901 PROJCS["NAD_1983_NSRS2007_StatePlane_Florida_East_FIPS_0901",GEOGCS["GCS_NAD_19
3512 NAD_1983_NSRS2007_StatePlane_Florida_East_FIPS_0901_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Florida_East_FIPS_0901_Ft_US",GEOGCS["GCS_N
3513 NAD_1983_NSRS2007_Florida_GDL_Albers PROJCS["NAD_1983_NSRS2007_Florida_GDL_Albers",GEOGCS["GCS_NAD_1983_NSRS2007",D
3514 NAD_1983_NSRS2007_StatePlane_Florida_North_FIPS_0903 PROJCS["NAD_1983_NSRS2007_StatePlane_Florida_North_FIPS_0903",GEOGCS["GCS_NAD_1
3515 NAD_1983_NSRS2007_StatePlane_Florida_North_FIPS_0903_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Florida_North_FIPS_0903_Ft_US",GEOGCS["GCS_
3516 NAD_1983_NSRS2007_StatePlane_Florida_West_FIPS_0902 PROJCS["NAD_1983_NSRS2007_StatePlane_Florida_West_FIPS_0902",GEOGCS["GCS_NAD_19
3517 NAD_1983_NSRS2007_StatePlane_Florida_West_FIPS_0902_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Florida_West_FIPS_0902_Ft_US",GEOGCS["GCS_
3518 NAD_1983_NSRS2007_StatePlane_Georgia_East_FIPS_1001 PROJCS["NAD_1983_NSRS2007_StatePlane_Georgia_East_FIPS_1001",GEOGCS["GCS_NAD_1
3519 NAD_1983_NSRS2007_StatePlane_Georgia_East_FIPS_1001_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Georgia_East_FIPS_1001_Ft_US",GEOGCS["GCS_
3520 NAD_1983_NSRS2007_StatePlane_Georgia_West_FIPS_1002 PROJCS["NAD_1983_NSRS2007_StatePlane_Georgia_West_FIPS_1002",GEOGCS["GCS_NAD_1
3521 NAD_1983_NSRS2007_StatePlane_Georgia_West_FIPS_1002_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Georgia_West_FIPS_1002_Ft_US",GEOGCS["GCS_
3522 NAD_1983_NSRS2007_StatePlane_Idaho_Central_FIPS_1102 PROJCS["NAD_1983_NSRS2007_StatePlane_Idaho_Central_FIPS_1102",GEOGCS["GCS_NAD_1
3523 NAD_1983_NSRS2007_StatePlane_Idaho_Central_FIPS_1102_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Idaho_Central_FIPS_1102_Ft_US",GEOGCS["GCS_
3524 NAD_1983_NSRS2007_StatePlane_Idaho_East_FIPS_1101 PROJCS["NAD_1983_NSRS2007_StatePlane_Idaho_East_FIPS_1101",GEOGCS["GCS_NAD_198
3525 NAD_1983_NSRS2007_StatePlane_Idaho_East_FIPS_1101_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Idaho_East_FIPS_1101_Ft_US",GEOGCS["GCS_NA
3526 NAD_1983_NSRS2007_StatePlane_Idaho_West_FIPS_1103 PROJCS["NAD_1983_NSRS2007_StatePlane_Idaho_West_FIPS_1103",GEOGCS["GCS_NAD_198
3527 NAD_1983_NSRS2007_StatePlane_Idaho_West_FIPS_1103_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Idaho_West_FIPS_1103_Ft_US",GEOGCS["GCS_N
3528 NAD_1983_NSRS2007_StatePlane_Illinois_East_FIPS_1201 PROJCS["NAD_1983_NSRS2007_StatePlane_Illinois_East_FIPS_1201",GEOGCS["GCS_NAD_198
3529 NAD_1983_NSRS2007_StatePlane_Illinois_East_FIPS_1201_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Illinois_East_FIPS_1201_Ft_US",GEOGCS["GCS_N
3530 NAD_1983_NSRS2007_StatePlane_Illinois_West_FIPS_1202 PROJCS["NAD_1983_NSRS2007_StatePlane_Illinois_West_FIPS_1202",GEOGCS["GCS_NAD_19
3531 NAD_1983_NSRS2007_StatePlane_Illinois_West_FIPS_1202_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Illinois_West_FIPS_1202_Ft_US",GEOGCS["GCS_N
3532 NAD_1983_NSRS2007_StatePlane_Indiana_East_FIPS_1301 PROJCS["NAD_1983_NSRS2007_StatePlane_Indiana_East_FIPS_1301",GEOGCS["GCS_NAD_19
3533 NAD_1983_NSRS2007_StatePlane_Indiana_East_FIPS_1301_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Indiana_East_FIPS_1301_Ft_US",GEOGCS["GCS_N
3534 NAD_1983_NSRS2007_StatePlane_Indiana_West_FIPS_1302 PROJCS["NAD_1983_NSRS2007_StatePlane_Indiana_West_FIPS_1302",GEOGCS["GCS_NAD_1
3535 NAD_1983_NSRS2007_StatePlane_Indiana_West_FIPS_1302_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Indiana_West_FIPS_1302_Ft_US",GEOGCS["GCS_
3536 NAD_1983_NSRS2007_StatePlane_Iowa_North_FIPS_1401 PROJCS["NAD_1983_NSRS2007_StatePlane_Iowa_North_FIPS_1401",GEOGCS["GCS_NAD_198
3537 NAD_1983_NSRS2007_StatePlane_Iowa_North_FIPS_1401_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Iowa_North_FIPS_1401_Ft_US",GEOGCS["GCS_NA
3538 NAD_1983_NSRS2007_StatePlane_Iowa_South_FIPS_1402 PROJCS["NAD_1983_NSRS2007_StatePlane_Iowa_South_FIPS_1402",GEOGCS["GCS_NAD_198
3539 NAD_1983_NSRS2007_StatePlane_Iowa_South_FIPS_1402_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Iowa_South_FIPS_1402_Ft_US",GEOGCS["GCS_N
3540 NAD_1983_NSRS2007_StatePlane_Kansas_North_FIPS_1501 PROJCS["NAD_1983_NSRS2007_StatePlane_Kansas_North_FIPS_1501",GEOGCS["GCS_NAD_1

Copyright 1995-2015 Esri. All rights reserved. 350


ArcGIS Runtime SDK for .NET

3541 NAD_1983_NSRS2007_StatePlane_Kansas_North_FIPS_1501_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Kansas_North_FIPS_1501_Ft_US",GEOGCS["GCS_


3542 NAD_1983_NSRS2007_StatePlane_Kansas_South_FIPS_1502 PROJCS["NAD_1983_NSRS2007_StatePlane_Kansas_South_FIPS_1502",GEOGCS["GCS_NAD_1
3543 NAD_1983_NSRS2007_StatePlane_Kansas_South_FIPS_1502_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Kansas_South_FIPS_1502_Ft_US",GEOGCS["GCS
3544 NAD_1983_NSRS2007_StatePlane_Kentucky_North_FIPS_1601 PROJCS["NAD_1983_NSRS2007_StatePlane_Kentucky_North_FIPS_1601",GEOGCS["GCS_NAD_
3545 NAD_1983_NSRS2007_StatePlane_Kentucky_North_FIPS_1601_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Kentucky_North_FIPS_1601_Ft_US",GEOGCS["GC
3546 NAD_1983_NSRS2007_StatePlane_Kentucky_FIPS_1600 PROJCS["NAD_1983_NSRS2007_StatePlane_Kentucky_FIPS_1600",GEOGCS["GCS_NAD_1983_
3547 NAD_1983_NSRS2007_StatePlane_Kentucky_FIPS_1600_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Kentucky_FIPS_1600_Ft_US",GEOGCS["GCS_NAD
3548 NAD_1983_NSRS2007_StatePlane_Kentucky_South_FIPS_1602 PROJCS["NAD_1983_NSRS2007_StatePlane_Kentucky_South_FIPS_1602",GEOGCS["GCS_NAD
3549 NAD_1983_NSRS2007_StatePlane_Kentucky_South_FIPS_1602_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Kentucky_South_FIPS_1602_Ft_US",GEOGCS["GC
3550 NAD_1983_NSRS2007_StatePlane_Louisiana_North_FIPS_1701 PROJCS["NAD_1983_NSRS2007_StatePlane_Louisiana_North_FIPS_1701",GEOGCS["GCS_NAD
3551 NAD_1983_NSRS2007_StatePlane_Louisiana_North_FIPS_1701_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Louisiana_North_FIPS_1701_Ft_US",GEOGCS["GC
3552 NAD_1983_NSRS2007_StatePlane_Louisiana_South_FIPS_1702 PROJCS["NAD_1983_NSRS2007_StatePlane_Louisiana_South_FIPS_1702",GEOGCS["GCS_NAD
3553 NAD_1983_NSRS2007_StatePlane_Louisiana_South_FIPS_1702_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Louisiana_South_FIPS_1702_Ft_US",GEOGCS["GC
3554 NAD_1983_NSRS2007_Maine_2000_Central_Zone PROJCS["NAD_1983_NSRS2007_Maine_2000_Central_Zone",GEOGCS["GCS_NAD_1983_NSRS
3555 NAD_1983_NSRS2007_Maine_2000_East_Zone PROJCS["NAD_1983_NSRS2007_Maine_2000_East_Zone",GEOGCS["GCS_NAD_1983_NSRS200
3556 NAD_1983_NSRS2007_Maine_2000_West_Zone PROJCS["NAD_1983_NSRS2007_Maine_2000_West_Zone",GEOGCS["GCS_NAD_1983_NSRS20
3557 NAD_1983_NSRS2007_StatePlane_Maine_East_FIPS_1801 PROJCS["NAD_1983_NSRS2007_StatePlane_Maine_East_FIPS_1801",GEOGCS["GCS_NAD_198
3558 NAD_1983_NSRS2007_StatePlane_Maine_West_FIPS_1802 PROJCS["NAD_1983_NSRS2007_StatePlane_Maine_West_FIPS_1802",GEOGCS["GCS_NAD_19
3559 NAD_1983_NSRS2007_StatePlane_Maryland_FIPS_1900 PROJCS["NAD_1983_NSRS2007_StatePlane_Maryland_FIPS_1900",GEOGCS["GCS_NAD_1983_
3560 NAD_1983_StatePlane_Utah_North_FIPS_4301_Feet PROJCS["NAD_1983_StatePlane_Utah_North_FIPS_4301_Feet",GEOGCS["GCS_North_American
3561 Old_Hawaiian_StatePlane_Hawaii_1_FIPS_5101 PROJCS["Old_Hawaiian_StatePlane_Hawaii_1_FIPS_5101",GEOGCS["GCS_Old_Hawaiian",DATU
3562 Old_Hawaiian_StatePlane_Hawaii_2_FIPS_5102 PROJCS["Old_Hawaiian_StatePlane_Hawaii_2_FIPS_5102",GEOGCS["GCS_Old_Hawaiian",DATU
3563 Old_Hawaiian_StatePlane_Hawaii_3_FIPS_5103 PROJCS["Old_Hawaiian_StatePlane_Hawaii_3_FIPS_5103",GEOGCS["GCS_Old_Hawaiian",DATU
3564 Old_Hawaiian_StatePlane_Hawaii_4_FIPS_5104 PROJCS["Old_Hawaiian_StatePlane_Hawaii_4_FIPS_5104",GEOGCS["GCS_Old_Hawaiian",DATU
3565 Old_Hawaiian_StatePlane_Hawaii_5_FIPS_5105 PROJCS["Old_Hawaiian_StatePlane_Hawaii_5_FIPS_5105",GEOGCS["GCS_Old_Hawaiian",DATU
3566 NAD_1983_StatePlane_Utah_Central_FIPS_4302_Feet PROJCS["NAD_1983_StatePlane_Utah_Central_FIPS_4302_Feet",GEOGCS["GCS_North_America
3567 NAD_1983_StatePlane_Utah_South_FIPS_4303_Feet PROJCS["NAD_1983_StatePlane_Utah_South_FIPS_4303_Feet",GEOGCS["GCS_North_American
3568 NAD_1983_HARN_StatePlane_Utah_North_FIPS_4301_Feet PROJCS["NAD_1983_HARN_StatePlane_Utah_North_FIPS_4301_Feet",GEOGCS["GCS_North_Am
3569 NAD_1983_HARN_StatePlane_Utah_Central_FIPS_4302_Feet PROJCS["NAD_1983_HARN_StatePlane_Utah_Central_FIPS_4302_Feet",GEOGCS["GCS_North_
3570 NAD_1983_HARN_StatePlane_Utah_South_FIPS_4303_Feet PROJCS["NAD_1983_HARN_StatePlane_Utah_South_FIPS_4303_Feet",GEOGCS["GCS_North_A
3571 WGS_1984_North_Pole_LAEA_Bering_Sea PROJCS["WGS_1984_North_Pole_LAEA_Bering_Sea",GEOGCS["GCS_WGS_1984",DATUM["D_W
3572 WGS_1984_North_Pole_LAEA_Alaska PROJCS["WGS_1984_North_Pole_LAEA_Alaska",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_
3573 WGS_1984_North_Pole_LAEA_Canada PROJCS["WGS_1984_North_Pole_LAEA_Canada",GEOGCS["GCS_WGS_1984",DATUM["D_WGS
3574 WGS_1984_North_Pole_LAEA_Atlantic PROJCS["WGS_1984_North_Pole_LAEA_Atlantic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS
3575 WGS_1984_North_Pole_LAEA_Europe PROJCS["WGS_1984_North_Pole_LAEA_Europe",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_
3576 WGS_1984_North_Pole_LAEA_Russia PROJCS["WGS_1984_North_Pole_LAEA_Russia",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_
3577 GDA_1994_Australia_Albers PROJCS["GDA_1994_Australia_Albers",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPH
3578 NAD_1983_Yukon_Albers PROJCS["NAD_1983_Yukon_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_A
3579 NAD_1983_CSRS_Yukon_Albers PROJCS["NAD_1983_CSRS_Yukon_Albers",GEOGCS["GCS_North_American_1983_CSRS",DATU
3580 NAD_1983_Northwest_Territories_Lambert PROJCS["NAD_1983_Northwest_Territories_Lambert",GEOGCS["GCS_North_American_1983",DAT
3581 NAD_1983_CSRS_Northwest_Territories_Lambert PROJCS["NAD_1983_CSRS_Northwest_Territories_Lambert",GEOGCS["GCS_North_American_19
3582 NAD_1983_NSRS2007_StatePlane_Maryland_FIPS_1900_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Maryland_FIPS_1900_Ft_US",GEOGCS["GCS_NAD
3583 NAD_1983_NSRS2007_StatePlane_Massachusetts_Island_FIPS_2002 PROJCS["NAD_1983_NSRS2007_StatePlane_Massachusetts_Island_FIPS_2002",GEOGCS["GCS
3584 NAD_1983_NSRS2007_StatePlane_Massachusetts_Isl_FIPS_2002_FtUS PROJCS["NAD_1983_NSRS2007_StatePlane_Massachusetts_Isl_FIPS_2002_FtUS",GEOGCS["GC
3585 NAD_1983_NSRS2007_StatePlane_Massachusetts_Mainland_FIPS_2001 PROJCS["NAD_1983_NSRS2007_StatePlane_Massachusetts_Mainland_FIPS_2001",GEOGCS["G
3586 NAD_1983_NSRS2007_StatePlane_Massachusetts_Mnld_FIPS_2001_FtUS PROJCS["NAD_1983_NSRS2007_StatePlane_Massachusetts_Mnld_FIPS_2001_FtUS",GEOGCS["
3587 NAD_1983_NSRS2007_StatePlane_Michigan_Central_FIPS_2112 PROJCS["NAD_1983_NSRS2007_StatePlane_Michigan_Central_FIPS_2112",GEOGCS["GCS_NAD
3588 NAD_1983_NSRS2007_StatePlane_Michigan_Central_FIPS_2112_Ft_Intl PROJCS["NAD_1983_NSRS2007_StatePlane_Michigan_Central_FIPS_2112_Ft_Intl",GEOGCS["GC
3589 NAD_1983_NSRS2007_StatePlane_Michigan_North_FIPS_2111 PROJCS["NAD_1983_NSRS2007_StatePlane_Michigan_North_FIPS_2111",GEOGCS["GCS_NAD_
3590 NAD_1983_NSRS2007_StatePlane_Michigan_North_FIPS_2111_Ft_Intl PROJCS["NAD_1983_NSRS2007_StatePlane_Michigan_North_FIPS_2111_Ft_Intl",GEOGCS["GCS
3591 NAD_1983_NSRS2007_Michigan_GeoRef_Meters PROJCS["NAD_1983_NSRS2007_Michigan_GeoRef_Meters",GEOGCS["GCS_NAD_1983_NSRS2
3592 NAD_1983_NSRS2007_StatePlane_Michigan_South_FIPS_2113 PROJCS["NAD_1983_NSRS2007_StatePlane_Michigan_South_FIPS_2113",GEOGCS["GCS_NAD
3593 NAD_1983_NSRS2007_StatePlane_Michigan_South_FIPS_2113_Ft_Intl PROJCS["NAD_1983_NSRS2007_StatePlane_Michigan_South_FIPS_2113_Ft_Intl",GEOGCS["GC
3594 NAD_1983_NSRS2007_StatePlane_Minnesota_Central_FIPS_2202 PROJCS["NAD_1983_NSRS2007_StatePlane_Minnesota_Central_FIPS_2202",GEOGCS["GCS_NA

Copyright 1995-2015 Esri. All rights reserved. 351


ArcGIS Runtime SDK for .NET

3595 NAD_1983_NSRS2007_StatePlane_Minnesota_North_FIPS_2201 PROJCS["NAD_1983_NSRS2007_StatePlane_Minnesota_North_FIPS_2201",GEOGCS["GCS_NAD


3596 NAD_1983_NSRS2007_StatePlane_Minnesota_South_FIPS_2203 PROJCS["NAD_1983_NSRS2007_StatePlane_Minnesota_South_FIPS_2203",GEOGCS["GCS_NAD
3597 NAD_1983_NSRS2007_StatePlane_Mississippi_East_FIPS_2301 PROJCS["NAD_1983_NSRS2007_StatePlane_Mississippi_East_FIPS_2301",GEOGCS["GCS_NAD
3598 NAD_1983_NSRS2007_StatePlane_Mississippi_East_FIPS_2301_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Mississippi_East_FIPS_2301_Ft_US",GEOGCS["GC
3599 NAD_1983_NSRS2007_StatePlane_Mississippi_West_FIPS_2302 PROJCS["NAD_1983_NSRS2007_StatePlane_Mississippi_West_FIPS_2302",GEOGCS["GCS_NAD
3600 NAD_1983_NSRS2007_StatePlane_Mississippi_West_FIPS_2302_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Mississippi_West_FIPS_2302_Ft_US",GEOGCS["GC
3601 NAD_1983_NSRS2007_StatePlane_Missouri_Central_FIPS_2402 PROJCS["NAD_1983_NSRS2007_StatePlane_Missouri_Central_FIPS_2402",GEOGCS["GCS_NAD
3602 NAD_1983_NSRS2007_StatePlane_Missouri_East_FIPS_2401 PROJCS["NAD_1983_NSRS2007_StatePlane_Missouri_East_FIPS_2401",GEOGCS["GCS_NAD_1
3603 NAD_1983_NSRS2007_StatePlane_Missouri_West_FIPS_2403 PROJCS["NAD_1983_NSRS2007_StatePlane_Missouri_West_FIPS_2403",GEOGCS["GCS_NAD_1
3604 NAD_1983_NSRS2007_StatePlane_Montana_FIPS_2500 PROJCS["NAD_1983_NSRS2007_StatePlane_Montana_FIPS_2500",GEOGCS["GCS_NAD_1983_
3605 NAD_1983_NSRS2007_StatePlane_Montana_FIPS_2500_Ft_Intl PROJCS["NAD_1983_NSRS2007_StatePlane_Montana_FIPS_2500_Ft_Intl",GEOGCS["GCS_NAD
3606 NAD_1983_NSRS2007_StatePlane_Nebraska_FIPS_2600 PROJCS["NAD_1983_NSRS2007_StatePlane_Nebraska_FIPS_2600",GEOGCS["GCS_NAD_1983_
3607 NAD_1983_NSRS2007_StatePlane_Nevada_Central_FIPS_2702 PROJCS["NAD_1983_NSRS2007_StatePlane_Nevada_Central_FIPS_2702",GEOGCS["GCS_NAD
3608 NAD_1983_NSRS2007_StatePlane_Nevada_Central_FIPS_2702_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Nevada_Central_FIPS_2702_Ft_US",GEOGCS["GC
3609 NAD_1983_NSRS2007_StatePlane_Nevada_East_FIPS_2701 PROJCS["NAD_1983_NSRS2007_StatePlane_Nevada_East_FIPS_2701",GEOGCS["GCS_NAD_19
3610 NAD_1983_NSRS2007_StatePlane_Nevada_East_FIPS_2701_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Nevada_East_FIPS_2701_Ft_US",GEOGCS["GCS_
3611 NAD_1983_NSRS2007_StatePlane_Nevada_West_FIPS_2703 PROJCS["NAD_1983_NSRS2007_StatePlane_Nevada_West_FIPS_2703",GEOGCS["GCS_NAD_1
3612 NAD_1983_NSRS2007_StatePlane_Nevada_West_FIPS_2703_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Nevada_West_FIPS_2703_Ft_US",GEOGCS["GCS_
3613 NAD_1983_NSRS2007_StatePlane_New_Hampshire_FIPS_2800 PROJCS["NAD_1983_NSRS2007_StatePlane_New_Hampshire_FIPS_2800",GEOGCS["GCS_NAD
3614 NAD_1983_NSRS2007_StatePlane_New_Hampshire_FIPS_2800_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_New_Hampshire_FIPS_2800_Ft_US",GEOGCS["GC
3615 NAD_1983_NSRS2007_StatePlane_New_Jersey_FIPS_2900 PROJCS["NAD_1983_NSRS2007_StatePlane_New_Jersey_FIPS_2900",GEOGCS["GCS_NAD_19
3616 NAD_1983_NSRS2007_StatePlane_New_Jersey_FIPS_2900_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_New_Jersey_FIPS_2900_Ft_US",GEOGCS["GCS_N
3617 NAD_1983_NSRS2007_StatePlane_New_Mexico_Central_FIPS_3002 PROJCS["NAD_1983_NSRS2007_StatePlane_New_Mexico_Central_FIPS_3002",GEOGCS["GCS_
3618 NAD_1983_NSRS2007_StatePlane_New_Mexico_Central_FIPS_3002_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_New_Mexico_Central_FIPS_3002_Ft_US",GEOGCS
3619 NAD_1983_NSRS2007_StatePlane_New_Mexico_East_FIPS_3001 PROJCS["NAD_1983_NSRS2007_StatePlane_New_Mexico_East_FIPS_3001",GEOGCS["GCS_NA
3620 NAD_1983_NSRS2007_StatePlane_New_Mexico_East_FIPS_3001_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_New_Mexico_East_FIPS_3001_Ft_US",GEOGCS["G
3621 NAD_1983_NSRS2007_StatePlane_New_Mexico_West_FIPS_3003 PROJCS["NAD_1983_NSRS2007_StatePlane_New_Mexico_West_FIPS_3003",GEOGCS["GCS_N
3622 NAD_1983_NSRS2007_StatePlane_New_Mexico_West_FIPS_3003_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_New_Mexico_West_FIPS_3003_Ft_US",GEOGCS["G
3623 NAD_1983_NSRS2007_StatePlane_New_York_Central_FIPS_3102 PROJCS["NAD_1983_NSRS2007_StatePlane_New_York_Central_FIPS_3102",GEOGCS["GCS_NA
3624 NAD_1983_NSRS2007_StatePlane_New_York_Central_FIPS_3102_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_New_York_Central_FIPS_3102_Ft_US",GEOGCS["G
3625 NAD_1983_NSRS2007_StatePlane_New_York_East_FIPS_3101 PROJCS["NAD_1983_NSRS2007_StatePlane_New_York_East_FIPS_3101",GEOGCS["GCS_NAD
3626 NAD_1983_NSRS2007_StatePlane_New_York_East_FIPS_3101_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_New_York_East_FIPS_3101_Ft_US",GEOGCS["GC
3627 NAD_1983_NSRS2007_StatePlane_New_York_Long_Island_FIPS_3104 PROJCS["NAD_1983_NSRS2007_StatePlane_New_York_Long_Island_FIPS_3104",GEOGCS["GC
3628 NAD_1983_NSRS2007_StatePlane_New_York_Long_Isl_FIPS_3104_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_New_York_Long_Isl_FIPS_3104_Ft_US",GEOGCS["
3629 NAD_1983_NSRS2007_StatePlane_New_York_West_FIPS_3103 PROJCS["NAD_1983_NSRS2007_StatePlane_New_York_West_FIPS_3103",GEOGCS["GCS_NAD
3630 NAD_1983_NSRS2007_StatePlane_New_York_West_FIPS_3103_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_New_York_West_FIPS_3103_Ft_US",GEOGCS["GC
3631 NAD_1983_NSRS2007_StatePlane_North_Carolina_FIPS_3200 PROJCS["NAD_1983_NSRS2007_StatePlane_North_Carolina_FIPS_3200",GEOGCS["GCS_NAD_
3632 NAD_1983_NSRS2007_StatePlane_North_Carolina_FIPS_3200_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_North_Carolina_FIPS_3200_Ft_US",GEOGCS["GCS
3633 NAD_1983_NSRS2007_StatePlane_North_Dakota_North_FIPS_3301 PROJCS["NAD_1983_NSRS2007_StatePlane_North_Dakota_North_FIPS_3301",GEOGCS["GCS_N
3634 NAD_1983_NSRS2007_StatePlane_North_Dakota_North_FIPS_3301_FtI PROJCS["NAD_1983_NSRS2007_StatePlane_North_Dakota_North_FIPS_3301_FtI",GEOGCS["GC
3635 NAD_1983_NSRS2007_StatePlane_North_Dakota_South_FIPS_3302 PROJCS["NAD_1983_NSRS2007_StatePlane_North_Dakota_South_FIPS_3302",GEOGCS["GCS_
3636 NAD_1983_NSRS2007_StatePlane_North_Dakota_South_FIPS_3302_FtI PROJCS["NAD_1983_NSRS2007_StatePlane_North_Dakota_South_FIPS_3302_FtI",GEOGCS["GC
3637 NAD_1983_NSRS2007_StatePlane_Ohio_North_FIPS_3401 PROJCS["NAD_1983_NSRS2007_StatePlane_Ohio_North_FIPS_3401",GEOGCS["GCS_NAD_198
3638 NAD_1983_NSRS2007_StatePlane_Ohio_South_FIPS_3402 PROJCS["NAD_1983_NSRS2007_StatePlane_Ohio_South_FIPS_3402",GEOGCS["GCS_NAD_198
3639 NAD_1983_NSRS2007_StatePlane_Oklahoma_North_FIPS_3501 PROJCS["NAD_1983_NSRS2007_StatePlane_Oklahoma_North_FIPS_3501",GEOGCS["GCS_NAD
3640 NAD_1983_NSRS2007_StatePlane_Oklahoma_North_FIPS_3501_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Oklahoma_North_FIPS_3501_Ft_US",GEOGCS["GC
3641 NAD_1983_NSRS2007_StatePlane_Oklahoma_South_FIPS_3502 PROJCS["NAD_1983_NSRS2007_StatePlane_Oklahoma_South_FIPS_3502",GEOGCS["GCS_NAD
3642 NAD_1983_NSRS2007_StatePlane_Oklahoma_South_FIPS_3502_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Oklahoma_South_FIPS_3502_Ft_US",GEOGCS["GC
3643 NAD_1983_NSRS2007_Oregon_Statewide_Lambert PROJCS["NAD_1983_NSRS2007_Oregon_Statewide_Lambert",GEOGCS["GCS_NAD_1983_NSRS
3644 NAD_1983_NSRS2007_Oregon_Statewide_Lambert_Ft_Intl PROJCS["NAD_1983_NSRS2007_Oregon_Statewide_Lambert_Ft_Intl",GEOGCS["GCS_NAD_1983
3645 NAD_1983_NSRS2007_StatePlane_Oregon_North_FIPS_3601 PROJCS["NAD_1983_NSRS2007_StatePlane_Oregon_North_FIPS_3601",GEOGCS["GCS_NAD_1
3646 NAD_1983_NSRS2007_StatePlane_Oregon_North_FIPS_3601_Ft_Intl PROJCS["NAD_1983_NSRS2007_StatePlane_Oregon_North_FIPS_3601_Ft_Intl",GEOGCS["GCS_
3647 NAD_1983_NSRS2007_StatePlane_Oregon_South_FIPS_3602 PROJCS["NAD_1983_NSRS2007_StatePlane_Oregon_South_FIPS_3602",GEOGCS["GCS_NAD_1
3648 NAD_1983_NSRS2007_StatePlane_Oregon_South_FIPS_3602_Ft_Intl PROJCS["NAD_1983_NSRS2007_StatePlane_Oregon_South_FIPS_3602_Ft_Intl",GEOGCS["GCS

Copyright 1995-2015 Esri. All rights reserved. 352


ArcGIS Runtime SDK for .NET

3649 NAD_1983_NSRS2007_StatePlane_Pennsylvania_North_FIPS_3701 PROJCS["NAD_1983_NSRS2007_StatePlane_Pennsylvania_North_FIPS_3701",GEOGCS["GCS_N


3650 NAD_1983_NSRS2007_StatePlane_Pennsylvania_North_FIPS_3701_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Pennsylvania_North_FIPS_3701_Ft_US",GEOGCS["
3651 NAD_1983_NSRS2007_StatePlane_Pennsylvania_South_FIPS_3702 PROJCS["NAD_1983_NSRS2007_StatePlane_Pennsylvania_South_FIPS_3702",GEOGCS["GCS_N
3652 NAD_1983_NSRS2007_StatePlane_Pennsylvania_South_FIPS_3702_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Pennsylvania_South_FIPS_3702_Ft_US",GEOGCS[
3653 NAD_1983_NSRS2007_StatePlane_Rhode_Island_FIPS_3800 PROJCS["NAD_1983_NSRS2007_StatePlane_Rhode_Island_FIPS_3800",GEOGCS["GCS_NAD_1
3654 NAD_1983_NSRS2007_StatePlane_Rhode_Island_FIPS_3800_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Rhode_Island_FIPS_3800_Ft_US",GEOGCS["GCS_
3655 NAD_1983_NSRS2007_StatePlane_South_Carolina_FIPS_3900 PROJCS["NAD_1983_NSRS2007_StatePlane_South_Carolina_FIPS_3900",GEOGCS["GCS_NAD_
3656 NAD_1983_NSRS2007_StatePlane_South_Carolina_FIPS_3900_Ft_Intl PROJCS["NAD_1983_NSRS2007_StatePlane_South_Carolina_FIPS_3900_Ft_Intl",GEOGCS["GCS
3657 NAD_1983_NSRS2007_StatePlane_South_Dakota_North_FIPS_4001 PROJCS["NAD_1983_NSRS2007_StatePlane_South_Dakota_North_FIPS_4001",GEOGCS["GCS_
3658 NAD_1983_NSRS2007_StatePlane_South_Dakota_North_FIPS_4001_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_South_Dakota_North_FIPS_4001_Ft_US",GEOGCS
3659 NAD_1983_NSRS2007_StatePlane_South_Dakota_South_FIPS_4002 PROJCS["NAD_1983_NSRS2007_StatePlane_South_Dakota_South_FIPS_4002",GEOGCS["GCS_
3660 NAD_1983_NSRS2007_StatePlane_South_Dakota_South_FIPS_4002_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_South_Dakota_South_FIPS_4002_Ft_US",GEOGCS
3661 NAD_1983_NSRS2007_StatePlane_Tennessee_FIPS_4100 PROJCS["NAD_1983_NSRS2007_StatePlane_Tennessee_FIPS_4100",GEOGCS["GCS_NAD_198
3662 NAD_1983_NSRS2007_StatePlane_Tennessee_FIPS_4100_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Tennessee_FIPS_4100_Ft_US",GEOGCS["GCS_NA
3663 NAD_1983_NSRS2007_StatePlane_Texas_Central_FIPS_4203 PROJCS["NAD_1983_NSRS2007_StatePlane_Texas_Central_FIPS_4203",GEOGCS["GCS_NAD_1
3664 NAD_1983_NSRS2007_StatePlane_Texas_Central_FIPS_4203_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Texas_Central_FIPS_4203_Ft_US",GEOGCS["GCS
3665 NAD_1983_NSRS2007_Texas_Centric_Mapping_System_Albers PROJCS["NAD_1983_NSRS2007_Texas_Centric_Mapping_System_Albers",GEOGCS["GCS_NAD_
3666 NAD_1983_NSRS2007_Texas_Centric_Mapping_System_Lambert PROJCS["NAD_1983_NSRS2007_Texas_Centric_Mapping_System_Lambert",GEOGCS["GCS_NA
3667 NAD_1983_NSRS2007_StatePlane_Texas_North_FIPS_4201 PROJCS["NAD_1983_NSRS2007_StatePlane_Texas_North_FIPS_4201",GEOGCS["GCS_NAD_19
3668 NAD_1983_NSRS2007_StatePlane_Texas_North_FIPS_4201_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Texas_North_FIPS_4201_Ft_US",GEOGCS["GCS_N
3669 NAD_1983_NSRS2007_StatePlane_Texas_North_Central_FIPS_4202 PROJCS["NAD_1983_NSRS2007_StatePlane_Texas_North_Central_FIPS_4202",GEOGCS["GCS_
3670 NAD_1983_NSRS2007_StatePlane_Texas_North_Central_FIPS_4202_FtUS PROJCS["NAD_1983_NSRS2007_StatePlane_Texas_North_Central_FIPS_4202_FtUS",GEOGCS["
3671 NAD_1983_NSRS2007_StatePlane_Texas_South_FIPS_4205 PROJCS["NAD_1983_NSRS2007_StatePlane_Texas_South_FIPS_4205",GEOGCS["GCS_NAD_19
3672 NAD_1983_NSRS2007_StatePlane_Texas_South_FIPS_4205_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Texas_South_FIPS_4205_Ft_US",GEOGCS["GCS_
3673 NAD_1983_NSRS2007_StatePlane_Texas_South_Central_FIPS_4204 PROJCS["NAD_1983_NSRS2007_StatePlane_Texas_South_Central_FIPS_4204",GEOGCS["GCS_
3674 NAD_1983_NSRS2007_StatePlane_Texas_South_Central_FIPS_4204_FtUS PROJCS["NAD_1983_NSRS2007_StatePlane_Texas_South_Central_FIPS_4204_FtUS",GEOGCS[
3675 NAD_1983_NSRS2007_StatePlane_Utah_Central_FIPS_4302 PROJCS["NAD_1983_NSRS2007_StatePlane_Utah_Central_FIPS_4302",GEOGCS["GCS_NAD_19
3676 NAD_1983_NSRS2007_StatePlane_Utah_Central_FIPS_4302_Ft_Intl PROJCS["NAD_1983_NSRS2007_StatePlane_Utah_Central_FIPS_4302_Ft_Intl",GEOGCS["GCS_N
3677 NAD_1983_NSRS2007_StatePlane_Utah_Central_FIPS_4302_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Utah_Central_FIPS_4302_Ft_US",GEOGCS["GCS_
3678 NAD_1983_NSRS2007_StatePlane_Utah_North_FIPS_4301 PROJCS["NAD_1983_NSRS2007_StatePlane_Utah_North_FIPS_4301",GEOGCS["GCS_NAD_198
3679 NAD_1983_NSRS2007_StatePlane_Utah_North_FIPS_4301_Ft_Intl PROJCS["NAD_1983_NSRS2007_StatePlane_Utah_North_FIPS_4301_Ft_Intl",GEOGCS["GCS_NA
3680 NAD_1983_NSRS2007_StatePlane_Utah_North_FIPS_4301_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Utah_North_FIPS_4301_Ft_US",GEOGCS["GCS_NA
3681 NAD_1983_NSRS2007_StatePlane_Utah_South_FIPS_4303 PROJCS["NAD_1983_NSRS2007_StatePlane_Utah_South_FIPS_4303",GEOGCS["GCS_NAD_198
3682 NAD_1983_NSRS2007_StatePlane_Utah_South_FIPS_4303_Ft_Intl PROJCS["NAD_1983_NSRS2007_StatePlane_Utah_South_FIPS_4303_Ft_Intl",GEOGCS["GCS_N
3683 NAD_1983_NSRS2007_StatePlane_Utah_South_FIPS_4303_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Utah_South_FIPS_4303_Ft_US",GEOGCS["GCS_N
3684 NAD_1983_NSRS2007_StatePlane_Vermont_FIPS_4400 PROJCS["NAD_1983_NSRS2007_StatePlane_Vermont_FIPS_4400",GEOGCS["GCS_NAD_1983_N
3685 NAD_1983_NSRS2007_StatePlane_Virginia_North_FIPS_4501 PROJCS["NAD_1983_NSRS2007_StatePlane_Virginia_North_FIPS_4501",GEOGCS["GCS_NAD_1
3686 NAD_1983_NSRS2007_StatePlane_Virginia_North_FIPS_4501_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Virginia_North_FIPS_4501_Ft_US",GEOGCS["GCS_
3687 NAD_1983_NSRS2007_StatePlane_Virginia_South_FIPS_4502 PROJCS["NAD_1983_NSRS2007_StatePlane_Virginia_South_FIPS_4502",GEOGCS["GCS_NAD_1
3688 NAD_1983_NSRS2007_StatePlane_Virginia_South_FIPS_4502_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Virginia_South_FIPS_4502_Ft_US",GEOGCS["GCS
3689 NAD_1983_NSRS2007_StatePlane_Washington_North_FIPS_4601 PROJCS["NAD_1983_NSRS2007_StatePlane_Washington_North_FIPS_4601",GEOGCS["GCS_NA
3690 NAD_1983_NSRS2007_StatePlane_Washington_North_FIPS_4601_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Washington_North_FIPS_4601_Ft_US",GEOGCS["G
3691 NAD_1983_NSRS2007_StatePlane_Washington_South_FIPS_4602 PROJCS["NAD_1983_NSRS2007_StatePlane_Washington_South_FIPS_4602",GEOGCS["GCS_NA
3692 NAD_1983_NSRS2007_StatePlane_Washington_South_FIPS_4602_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Washington_South_FIPS_4602_Ft_US",GEOGCS["G
3693 NAD_1983_NSRS2007_StatePlane_West_Virginia_North_FIPS_4701 PROJCS["NAD_1983_NSRS2007_StatePlane_West_Virginia_North_FIPS_4701",GEOGCS["GCS_N
3694 NAD_1983_NSRS2007_StatePlane_West_Virginia_South_FIPS_4702 PROJCS["NAD_1983_NSRS2007_StatePlane_West_Virginia_South_FIPS_4702",GEOGCS["GCS_
3695 NAD_1983_NSRS2007_StatePlane_Wisconsin_Central_FIPS_4802 PROJCS["NAD_1983_NSRS2007_StatePlane_Wisconsin_Central_FIPS_4802",GEOGCS["GCS_NA
3696 NAD_1983_NSRS2007_StatePlane_Wisconsin_Central_FIPS_4802_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Wisconsin_Central_FIPS_4802_Ft_US",GEOGCS["G
3697 NAD_1983_NSRS2007_StatePlane_Wisconsin_North_FIPS_4801 PROJCS["NAD_1983_NSRS2007_StatePlane_Wisconsin_North_FIPS_4801",GEOGCS["GCS_NAD
3698 NAD_1983_NSRS2007_StatePlane_Wisconsin_North_FIPS_4801_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Wisconsin_North_FIPS_4801_Ft_US",GEOGCS["GC
3699 NAD_1983_NSRS2007_StatePlane_Wisconsin_South_FIPS_4803 PROJCS["NAD_1983_NSRS2007_StatePlane_Wisconsin_South_FIPS_4803",GEOGCS["GCS_NAD
3700 NAD_1983_NSRS2007_StatePlane_Wisconsin_South_FIPS_4803_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Wisconsin_South_FIPS_4803_Ft_US",GEOGCS["GC
3701 NAD_1983_NSRS2007_Wisconsin_TM PROJCS["NAD_1983_NSRS2007_Wisconsin_TM",GEOGCS["GCS_NAD_1983_NSRS2007",DATU
3702 NAD_1983_NSRS2007_StatePlane_Wyoming_East_FIPS_4901 PROJCS["NAD_1983_NSRS2007_StatePlane_Wyoming_East_FIPS_4901",GEOGCS["GCS_NAD_

Copyright 1995-2015 Esri. All rights reserved. 353


ArcGIS Runtime SDK for .NET

3703 NAD_1983_NSRS2007_StatePlane_Wyoming_East_Central_FIPS_4902 PROJCS["NAD_1983_NSRS2007_StatePlane_Wyoming_East_Central_FIPS_4902",GEOGCS["GC


3704 NAD_1983_NSRS2007_StatePlane_Wyoming_West_Central_FIPS_4903 PROJCS["NAD_1983_NSRS2007_StatePlane_Wyoming_West_Central_FIPS_4903",GEOGCS["GC
3705 NAD_1983_NSRS2007_StatePlane_Wyoming_West_FIPS_4904 PROJCS["NAD_1983_NSRS2007_StatePlane_Wyoming_West_FIPS_4904",GEOGCS["GCS_NAD_
3706 NAD_1983_NSRS2007_UTM_Zone_59N PROJCS["NAD_1983_NSRS2007_UTM_Zone_59N",GEOGCS["GCS_NAD_1983_NSRS2007",DAT
3707 NAD_1983_NSRS2007_UTM_Zone_60N PROJCS["NAD_1983_NSRS2007_UTM_Zone_60N",GEOGCS["GCS_NAD_1983_NSRS2007",DAT
3708 NAD_1983_NSRS2007_UTM_Zone_1N PROJCS["NAD_1983_NSRS2007_UTM_Zone_1N",GEOGCS["GCS_NAD_1983_NSRS2007",DATU
3709 NAD_1983_NSRS2007_UTM_Zone_2N PROJCS["NAD_1983_NSRS2007_UTM_Zone_2N",GEOGCS["GCS_NAD_1983_NSRS2007",DATU
3710 NAD_1983_NSRS2007_UTM_Zone_3N PROJCS["NAD_1983_NSRS2007_UTM_Zone_3N",GEOGCS["GCS_NAD_1983_NSRS2007",DATU
3711 NAD_1983_NSRS2007_UTM_Zone_4N PROJCS["NAD_1983_NSRS2007_UTM_Zone_4N",GEOGCS["GCS_NAD_1983_NSRS2007",DATU
3712 NAD_1983_NSRS2007_UTM_Zone_5N PROJCS["NAD_1983_NSRS2007_UTM_Zone_5N",GEOGCS["GCS_NAD_1983_NSRS2007",DATU
3713 NAD_1983_NSRS2007_UTM_Zone_6N PROJCS["NAD_1983_NSRS2007_UTM_Zone_6N",GEOGCS["GCS_NAD_1983_NSRS2007",DATU
3714 NAD_1983_NSRS2007_UTM_Zone_7N PROJCS["NAD_1983_NSRS2007_UTM_Zone_7N",GEOGCS["GCS_NAD_1983_NSRS2007",DATU
3715 NAD_1983_NSRS2007_UTM_Zone_8N PROJCS["NAD_1983_NSRS2007_UTM_Zone_8N",GEOGCS["GCS_NAD_1983_NSRS2007",DATU
3716 NAD_1983_NSRS2007_UTM_Zone_9N PROJCS["NAD_1983_NSRS2007_UTM_Zone_9N",GEOGCS["GCS_NAD_1983_NSRS2007",DATU
3717 NAD_1983_NSRS2007_UTM_Zone_10N PROJCS["NAD_1983_NSRS2007_UTM_Zone_10N",GEOGCS["GCS_NAD_1983_NSRS2007",DAT
3718 NAD_1983_NSRS2007_UTM_Zone_11N PROJCS["NAD_1983_NSRS2007_UTM_Zone_11N",GEOGCS["GCS_NAD_1983_NSRS2007",DAT
3719 NAD_1983_NSRS2007_UTM_Zone_12N PROJCS["NAD_1983_NSRS2007_UTM_Zone_12N",GEOGCS["GCS_NAD_1983_NSRS2007",DAT
3720 NAD_1983_NSRS2007_UTM_Zone_13N PROJCS["NAD_1983_NSRS2007_UTM_Zone_13N",GEOGCS["GCS_NAD_1983_NSRS2007",DAT
3721 NAD_1983_NSRS2007_UTM_Zone_14N PROJCS["NAD_1983_NSRS2007_UTM_Zone_14N",GEOGCS["GCS_NAD_1983_NSRS2007",DAT
3722 NAD_1983_NSRS2007_UTM_Zone_15N PROJCS["NAD_1983_NSRS2007_UTM_Zone_15N",GEOGCS["GCS_NAD_1983_NSRS2007",DAT
3723 NAD_1983_NSRS2007_UTM_Zone_16N PROJCS["NAD_1983_NSRS2007_UTM_Zone_16N",GEOGCS["GCS_NAD_1983_NSRS2007",DAT
3724 NAD_1983_NSRS2007_UTM_Zone_17N PROJCS["NAD_1983_NSRS2007_UTM_Zone_17N",GEOGCS["GCS_NAD_1983_NSRS2007",DAT
3725 NAD_1983_NSRS2007_UTM_Zone_18N PROJCS["NAD_1983_NSRS2007_UTM_Zone_18N",GEOGCS["GCS_NAD_1983_NSRS2007",DAT
3726 NAD_1983_NSRS2007_UTM_Zone_19N PROJCS["NAD_1983_NSRS2007_UTM_Zone_19N",GEOGCS["GCS_NAD_1983_NSRS2007",DAT
3727 Reunion_1947_TM_Reunion PROJCS["Reunion_1947_TM_Reunion",GEOGCS["GCS_Reunion_1947",DATUM["D_Reunion_194
3728 NAD_1983_NSRS2007_StatePlane_Ohio_North_FIPS_3401_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Ohio_North_FIPS_3401_Ft_US",GEOGCS["GCS_NA
3729 NAD_1983_NSRS2007_StatePlane_Ohio_South_FIPS_3402_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Ohio_South_FIPS_3402_Ft_US",GEOGCS["GCS_N
3730 NAD_1983_NSRS2007_StatePlane_Wyoming_East_FIPS_4901_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Wyoming_East_FIPS_4901_Ft_US",GEOGCS["GCS
3731 NAD_1983_NSRS2007_StatePlane_Wyoming_E_Central_FIPS_4902_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Wyoming_E_Central_FIPS_4902_Ft_US",GEOGCS[
3732 NAD_1983_NSRS2007_StatePlane_Wyoming_W_Central_FIPS_4903_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Wyoming_W_Central_FIPS_4903_Ft_US",GEOGCS
3733 NAD_1983_NSRS2007_StatePlane_Wyoming_West_FIPS_4904_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Wyoming_West_FIPS_4904_Ft_US",GEOGCS["GCS
3734 NAD_1983_StatePlane_Ohio_North_FIPS_3401_Feet PROJCS["NAD_1983_StatePlane_Ohio_North_FIPS_3401_Feet",GEOGCS["GCS_North_American
3735 NAD_1983_StatePlane_Ohio_South_FIPS_3402_Feet PROJCS["NAD_1983_StatePlane_Ohio_South_FIPS_3402_Feet",GEOGCS["GCS_North_American
3736 NAD_1983_StatePlane_Wyoming_East_FIPS_4901_Feet PROJCS["NAD_1983_StatePlane_Wyoming_East_FIPS_4901_Feet",GEOGCS["GCS_North_Ameri
3737 NAD_1983_StatePlane_Wyoming_East_Central_FIPS_4902_Feet PROJCS["NAD_1983_StatePlane_Wyoming_East_Central_FIPS_4902_Feet",GEOGCS["GCS_Nort
3738 NAD_1983_StatePlane_Wyoming_West_Central_FIPS_4903_Feet PROJCS["NAD_1983_StatePlane_Wyoming_West_Central_FIPS_4903_Feet",GEOGCS["GCS_Nor
3739 NAD_1983_StatePlane_Wyoming_West_FIPS_4904_Feet PROJCS["NAD_1983_StatePlane_Wyoming_West_FIPS_4904_Feet",GEOGCS["GCS_North_Amer
3740 NAD_1983_HARN_UTM_Zone_10N PROJCS["NAD_1983_HARN_UTM_Zone_10N",GEOGCS["GCS_North_American_1983_HARN",DA
3741 NAD_1983_HARN_UTM_Zone_11N PROJCS["NAD_1983_HARN_UTM_Zone_11N",GEOGCS["GCS_North_American_1983_HARN",DA
3742 NAD_1983_HARN_UTM_Zone_12N PROJCS["NAD_1983_HARN_UTM_Zone_12N",GEOGCS["GCS_North_American_1983_HARN",DA
3743 NAD_1983_HARN_UTM_Zone_13N PROJCS["NAD_1983_HARN_UTM_Zone_13N",GEOGCS["GCS_North_American_1983_HARN",DA
3744 NAD_1983_HARN_UTM_Zone_14N PROJCS["NAD_1983_HARN_UTM_Zone_14N",GEOGCS["GCS_North_American_1983_HARN",DA
3745 NAD_1983_HARN_UTM_Zone_15N PROJCS["NAD_1983_HARN_UTM_Zone_15N",GEOGCS["GCS_North_American_1983_HARN",DA
3746 NAD_1983_HARN_UTM_Zone_16N PROJCS["NAD_1983_HARN_UTM_Zone_16N",GEOGCS["GCS_North_American_1983_HARN",DA
3747 NAD_1983_HARN_UTM_Zone_17N PROJCS["NAD_1983_HARN_UTM_Zone_17N",GEOGCS["GCS_North_American_1983_HARN",DA
3748 NAD_1983_HARN_UTM_Zone_18N PROJCS["NAD_1983_HARN_UTM_Zone_18N",GEOGCS["GCS_North_American_1983_HARN",DA
3749 NAD_1983_HARN_UTM_Zone_19N PROJCS["NAD_1983_HARN_UTM_Zone_19N",GEOGCS["GCS_North_American_1983_HARN",DA
3750 NAD_1983_HARN_UTM_Zone_4N PROJCS["NAD_1983_HARN_UTM_Zone_4N",GEOGCS["GCS_North_American_1983_HARN",DAT
3751 NAD_1983_HARN_UTM_Zone_5N PROJCS["NAD_1983_HARN_UTM_Zone_5N",GEOGCS["GCS_North_American_1983_HARN",DAT
3753 NAD_1983_HARN_StatePlane_Ohio_North_FIPS_3401_Feet PROJCS["NAD_1983_HARN_StatePlane_Ohio_North_FIPS_3401_Feet",GEOGCS["GCS_North_Am
3754 NAD_1983_HARN_StatePlane_Ohio_South_FIPS_3402_Feet PROJCS["NAD_1983_HARN_StatePlane_Ohio_South_FIPS_3402_Feet",GEOGCS["GCS_North_A
3755 NAD_1983_HARN_StatePlane_Wyoming_East_FIPS_4901_Feet PROJCS["NAD_1983_HARN_StatePlane_Wyoming_East_FIPS_4901_Feet",GEOGCS["GCS_North
3756 NAD_1983_HARN_StatePlane_Wyoming_East_Central_FIPS_4902_Feet PROJCS["NAD_1983_HARN_StatePlane_Wyoming_East_Central_FIPS_4902_Feet",GEOGCS["GC
3757 NAD_1983_HARN_StatePlane_Wyoming_West_Central_FIPS_4903_Feet PROJCS["NAD_1983_HARN_StatePlane_Wyoming_West_Central_FIPS_4903_Feet",GEOGCS["GC

Copyright 1995-2015 Esri. All rights reserved. 354


ArcGIS Runtime SDK for .NET

3758 NAD_1983_HARN_StatePlane_Wyoming_West_FIPS_4904_Feet PROJCS["NAD_1983_HARN_StatePlane_Wyoming_West_FIPS_4904_Feet",GEOGCS["GCS_Nort


3759 NAD_1983_StatePlane_Hawaii_3_FIPS_5103_Feet PROJCS["NAD_1983_StatePlane_Hawaii_3_FIPS_5103_Feet",GEOGCS["GCS_North_American_1
3760 NAD_1983_HARN_StatePlane_Hawaii_3_FIPS_5103_Feet PROJCS["NAD_1983_HARN_StatePlane_Hawaii_3_FIPS_5103_Feet",GEOGCS["GCS_North_Ame
3761 NAD_1983_CSRS_UTM_Zone_22N PROJCS["NAD_1983_CSRS_UTM_Zone_22N",GEOGCS["GCS_North_American_1983_CSRS",DA
3762 WGS_1984_South_Georgia_Lambert PROJCS["WGS_1984_South_Georgia_Lambert",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
3763 ETRS_1989_Portugal_TM06 PROJCS["ETRS_1989_Portugal_TM06",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
3764 NZGD_2000_Chatham_Island_Circuit PROJCS["NZGD_2000_Chatham_Island_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD
3765 HTRS96_Croatia_TM PROJCS["HTRS96_Croatia_TM",GEOGCS["GCS_HTRS96",DATUM["D_Croatian_Terrestrial_Refer
3766 HTRS96_Croatia_LCC PROJCS["HTRS96_Croatia_LCC",GEOGCS["GCS_HTRS96",DATUM["D_Croatian_Terrestrial_Refe
3767 HTRS96_UTM_Zone_33N PROJCS["HTRS96_UTM_Zone_33N",GEOGCS["GCS_HTRS96",DATUM["D_Croatian_Terrestrial_R
3768 HTRS96_UTM_Zone_34N PROJCS["HTRS96_UTM_Zone_34N",GEOGCS["GCS_HTRS96",DATUM["D_Croatian_Terrestrial_R
3769 Bermuda_1957_UTM_Zone_20N PROJCS["Bermuda_1957_UTM_Zone_20N",GEOGCS["GCS_Bermuda_1957",DATUM["D_Bermuda
3770 Bermuda_2000_National_Grid PROJCS["Bermuda_2000_National_Grid",GEOGCS["GCS_Bermuda_2000",DATUM["D_Bermuda_2
3771 NAD_1927_3TM_111 PROJCS["NAD_1927_3TM_111",GEOGCS["GCS_North_American_1927",DATUM["D_North_Ameri
3772 NAD_1927_3TM_114 PROJCS["NAD_1927_3TM_114",GEOGCS["GCS_North_American_1927",DATUM["D_North_Ameri
3773 NAD_1927_3TM_117 PROJCS["NAD_1927_3TM_117",GEOGCS["GCS_North_American_1927",DATUM["D_North_Ameri
3775 NAD_1983_3TM_111 PROJCS["NAD_1983_3TM_111",GEOGCS["GCS_North_American_1983",DATUM["D_North_Ameri
3776 NAD_1983_3TM_114 PROJCS["NAD_1983_3TM_114",GEOGCS["GCS_North_American_1983",DATUM["D_North_Ameri
3777 NAD_1983_3TM_117 PROJCS["NAD_1983_3TM_117",GEOGCS["GCS_North_American_1983",DATUM["D_North_Ameri
3779 NAD_1983_CSRS_3TM_111 PROJCS["NAD_1983_CSRS_3TM_111",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D
3780 NAD_1983_CSRS_3TM_114 PROJCS["NAD_1983_CSRS_3TM_114",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D
3781 NAD_1983_CSRS_3TM_117 PROJCS["NAD_1983_CSRS_3TM_117",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D
3783 Pitcairn_2006_Pitcairn_TM_2006 PROJCS["Pitcairn_2006_Pitcairn_TM_2006",GEOGCS["GCS_Pitcairn_2006",DATUM["D_Pitcairn_2
3784 Pitcairn_1967_UTM_Zone_9S PROJCS["Pitcairn_1967_UTM_Zone_9S",GEOGCS["GCS_Pitcairn_1967",DATUM["D_Pitcairn_1967
3788 NZGD_2000_Auckland_Islands_TM_2000 PROJCS["NZGD_2000_Auckland_Islands_TM_2000",GEOGCS["GCS_NZGD_2000",DATUM["D_NZ
3789 NZGD_2000_Campbell_Island_TM_2000 PROJCS["NZGD_2000_Campbell_Island_TM_2000",GEOGCS["GCS_NZGD_2000",DATUM["D_NZ
3790 NZGD_2000_Antipodes_Islands_TM_2000 PROJCS["NZGD_2000_Antipodes_Islands_TM_2000",GEOGCS["GCS_NZGD_2000",DATUM["D_N
3791 NZGD_2000_Raoul_Island_TM_2000 PROJCS["NZGD_2000_Raoul_Island_TM_2000",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD
3793 NZGD_2000_Chatham_Islands_TM_2000 PROJCS["NZGD_2000_Chatham_Islands_TM_2000",GEOGCS["GCS_NZGD_2000",DATUM["D_NZ
3794 Slovenia_1996_Slovene_National_Grid PROJCS["Slovenia_1996_Slovene_National_Grid",GEOGCS["GCS_Slovenia_1996",DATUM["D_Slo
3797 NAD_1927_MTQ_Lambert PROJCS["NAD_1927_MTQ_Lambert",GEOGCS["GCS_North_American_1927",DATUM["D_North_A
3798 NAD_1983_MTQ_Lambert PROJCS["NAD_1983_MTQ_Lambert",GEOGCS["GCS_North_American_1983",DATUM["D_North_A
3799 NAD_1983_CSRS_MTQ_Lambert PROJCS["NAD_1983_CSRS_MTQ_Lambert",GEOGCS["GCS_North_American_1983_CSRS",DATU
3800 NAD_1927_3TM_120 PROJCS["NAD_1927_3TM_120",GEOGCS["GCS_North_American_1927",DATUM["D_North_Ameri
3801 NAD_1983_3TM_120 PROJCS["NAD_1983_3TM_120",GEOGCS["GCS_North_American_1983",DATUM["D_North_Ameri
3802 NAD_1983_CSRS_3TM_120 PROJCS["NAD_1983_CSRS_3TM_120",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D
3812 Belge_Lambert_2008 PROJCS["Belge_Lambert_2008",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHERO
3814 NAD_1983_Mississippi_TM PROJCS["NAD_1983_Mississippi_TM",GEOGCS["GCS_North_American_1983",DATUM["D_North_
3815 NAD_1983_HARN_Mississippi_TM PROJCS["NAD_1983_HARN_Mississippi_TM",GEOGCS["GCS_North_American_1983_HARN",DAT
3816 NAD_1983_NSRS2007_Mississippi_TM PROJCS["NAD_1983_NSRS2007_Mississippi_TM",GEOGCS["GCS_NAD_1983_NSRS2007",DATU
3825 TWD_1997_TM_Penghu PROJCS["TWD_1997_TM_Penghu",GEOGCS["GCS_TWD_1997",DATUM["D_TWD_1997",SPHER
3826 TWD_1997_TM_Taiwan PROJCS["TWD_1997_TM_Taiwan",GEOGCS["GCS_TWD_1997",DATUM["D_TWD_1997",SPHERO
3827 TWD_1967_TM_Penghu PROJCS["TWD_1967_TM_Penghu",GEOGCS["GCS_TWD_1967",DATUM["D_TWD_1967",SPHER
3828 TWD_1967_TM_Taiwan PROJCS["TWD_1967_TM_Taiwan",GEOGCS["GCS_TWD_1967",DATUM["D_TWD_1967",SPHERO
3829 Hu_Tzu_Shan_UTM_Zone_51N PROJCS["Hu_Tzu_Shan_UTM_Zone_51N",GEOGCS["GCS_Hu_Tzu_Shan",DATUM["D_Hu_Tzu_S
3832 WGS_1984_PDC_Mercator PROJCS["WGS_1984_PDC_Mercator",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
3833 Pulkovo_1942_Adj_1958_GK_Zone_2 PROJCS["Pulkovo_1942_Adj_1958_GK_Zone_2",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATU
3834 Pulkovo_1942_Adj_1983_GK_Zone_2 PROJCS["Pulkovo_1942_Adj_1983_GK_Zone_2",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATU
3835 Pulkovo_1942_Adj_1983_GK_Zone_3 PROJCS["Pulkovo_1942_Adj_1983_GK_Zone_3",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATU
3836 Pulkovo_1942_Adj_1983_GK_Zone_4 PROJCS["Pulkovo_1942_Adj_1983_GK_Zone_4",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATU
3837 Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_3 PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_3",GEOGCS["GCS_Pulkovo_1942_Adj_1
3838 Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_4 PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_4",GEOGCS["GCS_Pulkovo_1942_Adj_1
3839 Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_9 PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_9",GEOGCS["GCS_Pulkovo_1942_Adj_1
3840 Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_10 PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_10",GEOGCS["GCS_Pulkovo_1942_Adj_

Copyright 1995-2015 Esri. All rights reserved. 355


ArcGIS Runtime SDK for .NET

3841 Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_6 PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_6",GEOGCS["GCS_Pulkovo_1942_Adj_1


3844 Pulkovo_1942_Adj_58_Stereo_70 PROJCS["Pulkovo_1942_Adj_58_Stereo_70",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D
3845 SWEREF99_RT90_7.5_gon_V_emulation PROJCS["SWEREF99_RT90_7.5_gon_V_emulation",GEOGCS["GCS_SWEREF99",DATUM["D_SW
3846 SWEREF99_RT90_5_gon_V_emulation PROJCS["SWEREF99_RT90_5_gon_V_emulation",GEOGCS["GCS_SWEREF99",DATUM["D_SWE
3847 SWEREF99_RT90_2.5_gon_V_emulation PROJCS["SWEREF99_RT90_2.5_gon_V_emulation",GEOGCS["GCS_SWEREF99",DATUM["D_SW
3848 SWEREF99_RT90_0_gon_emulation PROJCS["SWEREF99_RT90_0_gon_emulation",GEOGCS["GCS_SWEREF99",DATUM["D_SWERE
3849 SWEREF99_RT90_2.5_gon_O_emulation PROJCS["SWEREF99_RT90_2.5_gon_O_emulation",GEOGCS["GCS_SWEREF99",DATUM["D_SW
3850 SWEREF99_RT90_5_gon_O_emulation PROJCS["SWEREF99_RT90_5_gon_O_emulation",GEOGCS["GCS_SWEREF99",DATUM["D_SWE
3851 NZGD_2000_NZ_Continental_Shelf_2000 PROJCS["NZGD_2000_NZ_Continental_Shelf_2000",GEOGCS["GCS_NZGD_2000",DATUM["D_NZ
3852 RSRGD2000_DGLC2000 PROJCS["RSRGD2000_DGLC2000",GEOGCS["GCS_RSRGD2000",DATUM["D_Ross_Sea_Region
3854 SWEREF99_County_ST74 PROJCS["SWEREF99_County_ST74",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPH
3857 WGS_1984_Web_Mercator_Auxiliary_Sphere PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_
3873 ETRS_1989_GK19FIN PROJCS["ETRS_1989_GK19FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHERO
3874 ETRS_1989_GK20FIN PROJCS["ETRS_1989_GK20FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHERO
3875 ETRS_1989_GK21FIN PROJCS["ETRS_1989_GK21FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHERO
3876 ETRS_1989_GK22FIN PROJCS["ETRS_1989_GK22FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHERO
3877 ETRS_1989_GK23FIN PROJCS["ETRS_1989_GK23FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHERO
3878 ETRS_1989_GK24FIN PROJCS["ETRS_1989_GK24FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHERO
3879 ETRS_1989_GK25FIN PROJCS["ETRS_1989_GK25FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHERO
3880 ETRS_1989_GK26FIN PROJCS["ETRS_1989_GK26FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHERO
3881 ETRS_1989_GK27FIN PROJCS["ETRS_1989_GK27FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHERO
3882 ETRS_1989_GK28FIN PROJCS["ETRS_1989_GK28FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHERO
3883 ETRS_1989_GK29FIN PROJCS["ETRS_1989_GK29FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHERO
3884 ETRS_1989_GK30FIN PROJCS["ETRS_1989_GK30FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHERO
3885 ETRS_1989_GK31FIN PROJCS["ETRS_1989_GK31FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHERO
3890 IGRS_UTM_Zone_37N PROJCS["IGRS_UTM_Zone_37N",GEOGCS["GCS_IGRS",DATUM["D_Iraqi_Geospatial_Reference
3891 IGRS_UTM_Zone_38N PROJCS["IGRS_UTM_Zone_38N",GEOGCS["GCS_IGRS",DATUM["D_Iraqi_Geospatial_Reference
3892 IGRS_UTM_Zone_39N PROJCS["IGRS_UTM_Zone_39N",GEOGCS["GCS_IGRS",DATUM["D_Iraqi_Geospatial_Reference
3893 ED_1950_Iraq_National_Grid PROJCS["ED_1950_Iraq_National_Grid",GEOGCS["GCS_European_1950",DATUM["D_European_1
3907 MGI_1901_Balkans_5 PROJCS["MGI_1901_Balkans_5",GEOGCS["GCS_MGI_1901",DATUM["D_MGI_1901",SPHEROID[
3908 MGI_1901_Balkans_6 PROJCS["MGI_1901_Balkans_6",GEOGCS["GCS_MGI_1901",DATUM["D_MGI_1901",SPHEROID[
3909 MGI_1901_Balkans_7 PROJCS["MGI_1901_Balkans_7",GEOGCS["GCS_MGI_1901",DATUM["D_MGI_1901",SPHEROID[
3910 MGI_1901_Balkans_8 PROJCS["MGI_1901_Balkans_8",GEOGCS["GCS_MGI_1901",DATUM["D_MGI_1901",SPHEROID[
3911 MGI_1901_Slovenia_Grid PROJCS["MGI_1901_Slovenia_Grid",GEOGCS["GCS_MGI_1901",DATUM["D_MGI_1901",SPHERO
3912 MGI_1901_Slovene_National_Grid PROJCS["MGI_1901_Slovene_National_Grid",GEOGCS["GCS_MGI_1901",DATUM["D_MGI_1901"
3920 Puerto_Rico_UTM_Zone_20N PROJCS["Puerto_Rico_UTM_Zone_20N",GEOGCS["GCS_Puerto_Rico",DATUM["D_Puerto_Rico",S
3942 RGF_1993_CC42 PROJCS["RGF_1993_CC42",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GR
3943 RGF_1993_CC43 PROJCS["RGF_1993_CC43",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GR
3944 RGF_1993_CC44 PROJCS["RGF_1993_CC44",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GR
3945 RGF_1993_CC45 PROJCS["RGF_1993_CC45",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GR
3946 RGF_1993_CC46 PROJCS["RGF_1993_CC46",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GR
3947 RGF_1993_CC47 PROJCS["RGF_1993_CC47",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GR
3948 RGF_1993_CC48 PROJCS["RGF_1993_CC48",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GR
3949 RGF_1993_CC49 PROJCS["RGF_1993_CC49",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GR
3950 RGF_1993_CC50 PROJCS["RGF_1993_CC50",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GR
3968 NAD_1983_Virginia_Lambert PROJCS["NAD_1983_Virginia_Lambert",GEOGCS["GCS_North_American_1983",DATUM["D_North
3969 NAD_1983_HARN_Virginia_Lambert PROJCS["NAD_1983_HARN_Virginia_Lambert",GEOGCS["GCS_North_American_1983_HARN",DA
3970 NAD_1983_NSRS2007_Virginia_Lambert PROJCS["NAD_1983_NSRS2007_Virginia_Lambert",GEOGCS["GCS_NAD_1983_NSRS2007",DAT
3973 WGS_1984_EASE_Grid_North PROJCS["WGS_1984_EASE_Grid_North",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",S
3974 WGS_1984_EASE_Grid_South PROJCS["WGS_1984_EASE_Grid_South",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",S
3975 WGS_1984_EASE_Grid_Global PROJCS["WGS_1984_EASE_Grid_Global",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",
3976 WGS_1984_NSIDC_Sea_Ice_Polar_Stereographic_South PROJCS["WGS_1984_NSIDC_Sea_Ice_Polar_Stereographic_South",GEOGCS["GCS_WGS_1984"
3978 NAD_1983_Canada_Atlas_Lambert PROJCS["NAD_1983_Canada_Atlas_Lambert",GEOGCS["GCS_North_American_1983",DATUM["D
3979 NAD_1983_CSRS_Canada_Atlas_Lambert PROJCS["NAD_1983_CSRS_Canada_Atlas_Lambert",GEOGCS["GCS_North_American_1983_CSR

Copyright 1995-2015 Esri. All rights reserved. 356


ArcGIS Runtime SDK for .NET

3986 Katanga_1955_Katanga_Gauss_Zone_A PROJCS["Katanga_1955_Katanga_Gauss_Zone_A",GEOGCS["GCS_Katanga_1955",DATUM["D_K


3987 Katanga_1955_Katanga_Gauss_Zone_B PROJCS["Katanga_1955_Katanga_Gauss_Zone_B",GEOGCS["GCS_Katanga_1955",DATUM["D_K
3988 Katanga_1955_Katanga_Gauss_Zone_C PROJCS["Katanga_1955_Katanga_Gauss_Zone_C",GEOGCS["GCS_Katanga_1955",DATUM["D_K
3989 Katanga_1955_Katanga_Gauss_Zone_D PROJCS["Katanga_1955_Katanga_Gauss_Zone_D",GEOGCS["GCS_Katanga_1955",DATUM["D_K
3991 Puerto_Rico_StatePlane_Puerto_Rico_FIPS_5201 PROJCS["Puerto_Rico_StatePlane_Puerto_Rico_FIPS_5201",GEOGCS["GCS_Puerto_Rico",DATU
3992 Puerto_Rico_StatePlane_Virgin_Islands_St_Croix_FIPS_5202 PROJCS["Puerto_Rico_StatePlane_Virgin_Islands_St_Croix_FIPS_5202",GEOGCS["GCS_Puerto_R
3994 WGS_1984_Mercator_41 PROJCS["WGS_1984_Mercator_41",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHER
3995 WGS_1984_Arctic_Polar_Stereographic PROJCS["WGS_1984_Arctic_Polar_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS
3996 WGS_1984_IBCAO_Polar_Stereographic PROJCS["WGS_1984_IBCAO_Polar_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WG
3997 WGS_1984_Dubai_Local_TM PROJCS["WGS_1984_Dubai_Local_TM",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
4026 MOLDREF99_Moldova_TM PROJCS["MOLDREF99_Moldova_TM",GEOGCS["GCS_MOLDREF99",DATUM["D_MOLDREF99",S
4037 WGS_1984_TMzn35N PROJCS["WGS_1984_TMzn35N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHERO
4038 WGS_1984_TMzn36N PROJCS["WGS_1984_TMzn36N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHERO
4048 RGRDC_2005_Congo_TM_Zone_12 PROJCS["RGRDC_2005_Congo_TM_Zone_12",GEOGCS["GCS_RGRDC_2005",DATUM["D_Rese
4049 RGRDC_2005_Congo_TM_Zone_14 PROJCS["RGRDC_2005_Congo_TM_Zone_14",GEOGCS["GCS_RGRDC_2005",DATUM["D_Rese
4050 RGRDC_2005_Congo_TM_Zone_16 PROJCS["RGRDC_2005_Congo_TM_Zone_16",GEOGCS["GCS_RGRDC_2005",DATUM["D_Rese
4051 RGRDC_2005_Congo_TM_Zone_18 PROJCS["RGRDC_2005_Congo_TM_Zone_18",GEOGCS["GCS_RGRDC_2005",DATUM["D_Rese
4056 RGRDC_2005_Congo_TM_Zone_20 PROJCS["RGRDC_2005_Congo_TM_Zone_20",GEOGCS["GCS_RGRDC_2005",DATUM["D_Rese
4057 RGRDC_2005_Congo_TM_Zone_22 PROJCS["RGRDC_2005_Congo_TM_Zone_22",GEOGCS["GCS_RGRDC_2005",DATUM["D_Rese
4058 RGRDC_2005_Congo_TM_Zone_24 PROJCS["RGRDC_2005_Congo_TM_Zone_24",GEOGCS["GCS_RGRDC_2005",DATUM["D_Rese
4059 RGRDC_2005_Congo_TM_Zone_26 PROJCS["RGRDC_2005_Congo_TM_Zone_26",GEOGCS["GCS_RGRDC_2005",DATUM["D_Rese
4060 RGRDC_2005_Congo_TM_Zone_28 PROJCS["RGRDC_2005_Congo_TM_Zone_28",GEOGCS["GCS_RGRDC_2005",DATUM["D_Rese
4061 RGRDC_2005_UTM_Zone_33S PROJCS["RGRDC_2005_UTM_Zone_33S",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_G
4062 RGRDC_2005_UTM_Zone_34S PROJCS["RGRDC_2005_UTM_Zone_34S",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_G
4063 RGRDC_2005_UTM_Zone_35S PROJCS["RGRDC_2005_UTM_Zone_35S",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_G
4071 Chua_UTM_Zone_23S PROJCS["Chua_UTM_Zone_23S",GEOGCS["GCS_Chua",DATUM["D_Chua",SPHEROID["Internatio
4082 REGCAN95_UTM_Zone_27N PROJCS["REGCAN95_UTM_Zone_27N",GEOGCS["GCS_REGCAN95",DATUM["D_Red_Geodesic
4083 REGCAN95_UTM_Zone_28N PROJCS["REGCAN95_UTM_Zone_28N",GEOGCS["GCS_REGCAN95",DATUM["D_Red_Geodesic
4093 ETRS_1989_DKTM1 PROJCS["ETRS_1989_DKTM1",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROI
4094 ETRS_1989_DKTM2 PROJCS["ETRS_1989_DKTM2",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROI
4095 ETRS_1989_DKTM3 PROJCS["ETRS_1989_DKTM3",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROI
4096 ETRS_1989_DKTM4 PROJCS["ETRS_1989_DKTM4",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROI
4217 NAD_1983_BLM_Zone_59N PROJCS["NAD_1983_BLM_Zone_59N",GEOGCS["GCS_North_American_1983",DATUM["D_North_
4399 NAD_1927_BLM_Zone_59N PROJCS["NAD_1927_BLM_Zone_59N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
4400 NAD_1927_BLM_Zone_60N PROJCS["NAD_1927_BLM_Zone_60N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
4401 NAD_1927_BLM_Zone_1N PROJCS["NAD_1927_BLM_Zone_1N",GEOGCS["GCS_North_American_1927",DATUM["D_North_A
4402 NAD_1927_BLM_Zone_2N PROJCS["NAD_1927_BLM_Zone_2N",GEOGCS["GCS_North_American_1927",DATUM["D_North_A
4403 NAD_1927_BLM_Zone_3N PROJCS["NAD_1927_BLM_Zone_3N",GEOGCS["GCS_North_American_1927",DATUM["D_North_A
4404 NAD_1927_BLM_Zone_4N PROJCS["NAD_1927_BLM_Zone_4N",GEOGCS["GCS_North_American_1927",DATUM["D_North_A
4405 NAD_1927_BLM_Zone_5N PROJCS["NAD_1927_BLM_Zone_5N",GEOGCS["GCS_North_American_1927",DATUM["D_North_A
4406 NAD_1927_BLM_Zone_6N PROJCS["NAD_1927_BLM_Zone_6N",GEOGCS["GCS_North_American_1927",DATUM["D_North_A
4407 NAD_1927_BLM_Zone_7N PROJCS["NAD_1927_BLM_Zone_7N",GEOGCS["GCS_North_American_1927",DATUM["D_North_A
4408 NAD_1927_BLM_Zone_8N PROJCS["NAD_1927_BLM_Zone_8N",GEOGCS["GCS_North_American_1927",DATUM["D_North_A
4409 NAD_1927_BLM_Zone_9N PROJCS["NAD_1927_BLM_Zone_9N",GEOGCS["GCS_North_American_1927",DATUM["D_North_A
4410 NAD_1927_BLM_Zone_10N PROJCS["NAD_1927_BLM_Zone_10N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
4411 NAD_1927_BLM_Zone_11N PROJCS["NAD_1927_BLM_Zone_11N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
4412 NAD_1927_BLM_Zone_12N PROJCS["NAD_1927_BLM_Zone_12N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
4413 NAD_1927_BLM_Zone_13N PROJCS["NAD_1927_BLM_Zone_13N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
4414 NAD_1983_HARN_Guam_Map_Grid PROJCS["NAD_1983_HARN_Guam_Map_Grid",GEOGCS["GCS_North_American_1983_HARN",DA
4415 Katanga_1955_Katanga_Lambert PROJCS["Katanga_1955_Katanga_Lambert",GEOGCS["GCS_Katanga_1955",DATUM["D_Katanga
4417 Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_7 PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_7",GEOGCS["GCS_Pulkovo_1942_Adj_1
4418 NAD_1927_BLM_Zone_18N PROJCS["NAD_1927_BLM_Zone_18N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
4419 NAD_1927_BLM_Zone_19N PROJCS["NAD_1927_BLM_Zone_19N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
4420 NAD_1983_BLM_Zone_60N PROJCS["NAD_1983_BLM_Zone_60N",GEOGCS["GCS_North_American_1983",DATUM["D_North_

Copyright 1995-2015 Esri. All rights reserved. 357


ArcGIS Runtime SDK for .NET

4421 NAD_1983_BLM_Zone_1N PROJCS["NAD_1983_BLM_Zone_1N",GEOGCS["GCS_North_American_1983",DATUM["D_North_A


4422 NAD_1983_BLM_Zone_2N PROJCS["NAD_1983_BLM_Zone_2N",GEOGCS["GCS_North_American_1983",DATUM["D_North_A
4423 NAD_1983_BLM_Zone_3N PROJCS["NAD_1983_BLM_Zone_3N",GEOGCS["GCS_North_American_1983",DATUM["D_North_A
4424 NAD_1983_BLM_Zone_4N PROJCS["NAD_1983_BLM_Zone_4N",GEOGCS["GCS_North_American_1983",DATUM["D_North_A
4425 NAD_1983_BLM_Zone_5N PROJCS["NAD_1983_BLM_Zone_5N",GEOGCS["GCS_North_American_1983",DATUM["D_North_A
4426 NAD_1983_BLM_Zone_6N PROJCS["NAD_1983_BLM_Zone_6N",GEOGCS["GCS_North_American_1983",DATUM["D_North_A
4427 NAD_1983_BLM_Zone_7N PROJCS["NAD_1983_BLM_Zone_7N",GEOGCS["GCS_North_American_1983",DATUM["D_North_A
4428 NAD_1983_BLM_Zone_8N PROJCS["NAD_1983_BLM_Zone_8N",GEOGCS["GCS_North_American_1983",DATUM["D_North_A
4429 NAD_1983_BLM_Zone_9N PROJCS["NAD_1983_BLM_Zone_9N",GEOGCS["GCS_North_American_1983",DATUM["D_North_A
4430 NAD_1983_BLM_Zone_10N PROJCS["NAD_1983_BLM_Zone_10N",GEOGCS["GCS_North_American_1983",DATUM["D_North_
4431 NAD_1983_BLM_Zone_11N PROJCS["NAD_1983_BLM_Zone_11N",GEOGCS["GCS_North_American_1983",DATUM["D_North_
4432 NAD_1983_BLM_Zone_12N PROJCS["NAD_1983_BLM_Zone_12N",GEOGCS["GCS_North_American_1983",DATUM["D_North_
4433 NAD_1983_BLM_Zone_13N PROJCS["NAD_1983_BLM_Zone_13N",GEOGCS["GCS_North_American_1983",DATUM["D_North_
4434 Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_8 PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_8",GEOGCS["GCS_Pulkovo_1942_Adj_1
4437 NAD_1983_NSRS2007_StatePlane_Puerto_Rico_Virgin_Isls_FIPS_5200 PROJCS["NAD_1983_NSRS2007_StatePlane_Puerto_Rico_Virgin_Isls_FIPS_5200",GEOGCS["GC
4438 NAD_1983_BLM_Zone_18N PROJCS["NAD_1983_BLM_Zone_18N",GEOGCS["GCS_North_American_1983",DATUM["D_North_
4439 NAD_1983_BLM_Zone_19N PROJCS["NAD_1983_BLM_Zone_19N",GEOGCS["GCS_North_American_1983",DATUM["D_North_
4455 NAD_1927_StatePlane_Pennsylvania_South_FIPS_3702 PROJCS["NAD_1927_StatePlane_Pennsylvania_South_FIPS_3702",GEOGCS["GCS_North_Americ
4456 NAD_1927_StatePlane_New_York_Long_Island_FIPS_3104 PROJCS["NAD_1927_StatePlane_New_York_Long_Island_FIPS_3104",GEOGCS["GCS_North_Am
4457 NAD_1983_StatePlane_South_Dakota_North_FIPS_4001_Feet PROJCS["NAD_1983_StatePlane_South_Dakota_North_FIPS_4001_Feet",GEOGCS["GCS_North_
4462 WGS_1984_Australian_Centre_for_Remote_Sensing_Lambert PROJCS["WGS_1984_Australian_Centre_for_Remote_Sensing_Lambert",GEOGCS["GCS_WGS_1
4467 RGSPM_2006_UTM_Zone_21N PROJCS["RGSPM_2006_UTM_Zone_21N",GEOGCS["GCS_RGSPM_2006",DATUM["D_Reseau_G
4471 RGM_2004_UTM_Zone_38S PROJCS["RGM_2004_UTM_Zone_38S",GEOGCS["GCS_RGM_2004",DATUM["D_Reseau_Geodes
4484 Mexican_Datum_1993_UTM_Zone_11N PROJCS["Mexican_Datum_1993_UTM_Zone_11N",GEOGCS["GCS_Mexican_Datum_of_1993",DA
4485 Mexican_Datum_1993_UTM_Zone_12N PROJCS["Mexican_Datum_1993_UTM_Zone_12N",GEOGCS["GCS_Mexican_Datum_of_1993",DA
4486 Mexican_Datum_1993_UTM_Zone_13N PROJCS["Mexican_Datum_1993_UTM_Zone_13N",GEOGCS["GCS_Mexican_Datum_of_1993",DA
4487 Mexican_Datum_1993_UTM_Zone_14N PROJCS["Mexican_Datum_1993_UTM_Zone_14N",GEOGCS["GCS_Mexican_Datum_of_1993",DA
4488 Mexican_Datum_1993_UTM_Zone_15N PROJCS["Mexican_Datum_1993_UTM_Zone_15N",GEOGCS["GCS_Mexican_Datum_of_1993",DA
4489 Mexican_Datum_1993_UTM_Zone_16N PROJCS["Mexican_Datum_1993_UTM_Zone_16N",GEOGCS["GCS_Mexican_Datum_of_1993",DA
4491 CGCS2000_GK_Zone_13 PROJCS["CGCS2000_GK_Zone_13",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",
4492 CGCS2000_GK_Zone_14 PROJCS["CGCS2000_GK_Zone_14",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",
4493 CGCS2000_GK_Zone_15 PROJCS["CGCS2000_GK_Zone_15",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",
4494 CGCS2000_GK_Zone_16 PROJCS["CGCS2000_GK_Zone_16",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",
4495 CGCS2000_GK_Zone_17 PROJCS["CGCS2000_GK_Zone_17",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",
4496 CGCS2000_GK_Zone_18 PROJCS["CGCS2000_GK_Zone_18",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",
4497 CGCS2000_GK_Zone_19 PROJCS["CGCS2000_GK_Zone_19",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",
4498 CGCS2000_GK_Zone_20 PROJCS["CGCS2000_GK_Zone_20",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",
4499 CGCS2000_GK_Zone_21 PROJCS["CGCS2000_GK_Zone_21",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",
4500 CGCS2000_GK_Zone_22 PROJCS["CGCS2000_GK_Zone_22",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",
4501 CGCS2000_GK_Zone_23 PROJCS["CGCS2000_GK_Zone_23",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",
4502 CGCS2000_GK_CM_75E PROJCS["CGCS2000_GK_CM_75E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",
4503 CGCS2000_GK_CM_81E PROJCS["CGCS2000_GK_CM_81E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",
4504 CGCS2000_GK_CM_87E PROJCS["CGCS2000_GK_CM_87E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",
4505 CGCS2000_GK_CM_93E PROJCS["CGCS2000_GK_CM_93E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",
4506 CGCS2000_GK_CM_99E PROJCS["CGCS2000_GK_CM_99E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",
4507 CGCS2000_GK_CM_105E PROJCS["CGCS2000_GK_CM_105E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000
4508 CGCS2000_GK_CM_111E PROJCS["CGCS2000_GK_CM_111E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000
4509 CGCS2000_GK_CM_117E PROJCS["CGCS2000_GK_CM_117E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000
4510 CGCS2000_GK_CM_123E PROJCS["CGCS2000_GK_CM_123E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000
4511 CGCS2000_GK_CM_129E PROJCS["CGCS2000_GK_CM_129E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000
4512 CGCS2000_GK_CM_135E PROJCS["CGCS2000_GK_CM_135E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000
4513 CGCS2000_3_Degree_GK_Zone_25 PROJCS["CGCS2000_3_Degree_GK_Zone_25",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4514 CGCS2000_3_Degree_GK_Zone_26 PROJCS["CGCS2000_3_Degree_GK_Zone_26",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4515 CGCS2000_3_Degree_GK_Zone_27 PROJCS["CGCS2000_3_Degree_GK_Zone_27",GEOGCS["GCS_China_Geodetic_Coordinate_Sys

Copyright 1995-2015 Esri. All rights reserved. 358


ArcGIS Runtime SDK for .NET

4516 CGCS2000_3_Degree_GK_Zone_28 PROJCS["CGCS2000_3_Degree_GK_Zone_28",GEOGCS["GCS_China_Geodetic_Coordinate_Sys


4517 CGCS2000_3_Degree_GK_Zone_29 PROJCS["CGCS2000_3_Degree_GK_Zone_29",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4518 CGCS2000_3_Degree_GK_Zone_30 PROJCS["CGCS2000_3_Degree_GK_Zone_30",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4519 CGCS2000_3_Degree_GK_Zone_31 PROJCS["CGCS2000_3_Degree_GK_Zone_31",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4520 CGCS2000_3_Degree_GK_Zone_32 PROJCS["CGCS2000_3_Degree_GK_Zone_32",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4521 CGCS2000_3_Degree_GK_Zone_33 PROJCS["CGCS2000_3_Degree_GK_Zone_33",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4522 CGCS2000_3_Degree_GK_Zone_34 PROJCS["CGCS2000_3_Degree_GK_Zone_34",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4523 CGCS2000_3_Degree_GK_Zone_35 PROJCS["CGCS2000_3_Degree_GK_Zone_35",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4524 CGCS2000_3_Degree_GK_Zone_36 PROJCS["CGCS2000_3_Degree_GK_Zone_36",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4525 CGCS2000_3_Degree_GK_Zone_37 PROJCS["CGCS2000_3_Degree_GK_Zone_37",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4526 CGCS2000_3_Degree_GK_Zone_38 PROJCS["CGCS2000_3_Degree_GK_Zone_38",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4527 CGCS2000_3_Degree_GK_Zone_39 PROJCS["CGCS2000_3_Degree_GK_Zone_39",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4528 CGCS2000_3_Degree_GK_Zone_40 PROJCS["CGCS2000_3_Degree_GK_Zone_40",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4529 CGCS2000_3_Degree_GK_Zone_41 PROJCS["CGCS2000_3_Degree_GK_Zone_41",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4530 CGCS2000_3_Degree_GK_Zone_42 PROJCS["CGCS2000_3_Degree_GK_Zone_42",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4531 CGCS2000_3_Degree_GK_Zone_43 PROJCS["CGCS2000_3_Degree_GK_Zone_43",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4532 CGCS2000_3_Degree_GK_Zone_44 PROJCS["CGCS2000_3_Degree_GK_Zone_44",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4533 CGCS2000_3_Degree_GK_Zone_45 PROJCS["CGCS2000_3_Degree_GK_Zone_45",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4534 CGCS2000_3_Degree_GK_CM_75E PROJCS["CGCS2000_3_Degree_GK_CM_75E",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4535 CGCS2000_3_Degree_GK_CM_78E PROJCS["CGCS2000_3_Degree_GK_CM_78E",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4536 CGCS2000_3_Degree_GK_CM_81E PROJCS["CGCS2000_3_Degree_GK_CM_81E",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4537 CGCS2000_3_Degree_GK_CM_84E PROJCS["CGCS2000_3_Degree_GK_CM_84E",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4538 CGCS2000_3_Degree_GK_CM_87E PROJCS["CGCS2000_3_Degree_GK_CM_87E",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4539 CGCS2000_3_Degree_GK_CM_90E PROJCS["CGCS2000_3_Degree_GK_CM_90E",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4540 CGCS2000_3_Degree_GK_CM_93E PROJCS["CGCS2000_3_Degree_GK_CM_93E",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4541 CGCS2000_3_Degree_GK_CM_96E PROJCS["CGCS2000_3_Degree_GK_CM_96E",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4542 CGCS2000_3_Degree_GK_CM_99E PROJCS["CGCS2000_3_Degree_GK_CM_99E",GEOGCS["GCS_China_Geodetic_Coordinate_Sys
4543 CGCS2000_3_Degree_GK_CM_102E PROJCS["CGCS2000_3_Degree_GK_CM_102E",GEOGCS["GCS_China_Geodetic_Coordinate_Sy
4544 CGCS2000_3_Degree_GK_CM_105E PROJCS["CGCS2000_3_Degree_GK_CM_105E",GEOGCS["GCS_China_Geodetic_Coordinate_Sy
4545 CGCS2000_3_Degree_GK_CM_108E PROJCS["CGCS2000_3_Degree_GK_CM_108E",GEOGCS["GCS_China_Geodetic_Coordinate_Sy
4546 CGCS2000_3_Degree_GK_CM_111E PROJCS["CGCS2000_3_Degree_GK_CM_111E",GEOGCS["GCS_China_Geodetic_Coordinate_Sy
4547 CGCS2000_3_Degree_GK_CM_114E PROJCS["CGCS2000_3_Degree_GK_CM_114E",GEOGCS["GCS_China_Geodetic_Coordinate_Sy
4548 CGCS2000_3_Degree_GK_CM_117E PROJCS["CGCS2000_3_Degree_GK_CM_117E",GEOGCS["GCS_China_Geodetic_Coordinate_Sy
4549 CGCS2000_3_Degree_GK_CM_120E PROJCS["CGCS2000_3_Degree_GK_CM_120E",GEOGCS["GCS_China_Geodetic_Coordinate_Sy
4550 CGCS2000_3_Degree_GK_CM_123E PROJCS["CGCS2000_3_Degree_GK_CM_123E",GEOGCS["GCS_China_Geodetic_Coordinate_Sy
4551 CGCS2000_3_Degree_GK_CM_126E PROJCS["CGCS2000_3_Degree_GK_CM_126E",GEOGCS["GCS_China_Geodetic_Coordinate_Sy
4552 CGCS2000_3_Degree_GK_CM_129E PROJCS["CGCS2000_3_Degree_GK_CM_129E",GEOGCS["GCS_China_Geodetic_Coordinate_Sy
4553 CGCS2000_3_Degree_GK_CM_132E PROJCS["CGCS2000_3_Degree_GK_CM_132E",GEOGCS["GCS_China_Geodetic_Coordinate_Sy
4554 CGCS2000_3_Degree_GK_CM_135E PROJCS["CGCS2000_3_Degree_GK_CM_135E",GEOGCS["GCS_China_Geodetic_Coordinate_Sy
4559 RRAF_1991_UTM_20N PROJCS["RRAF_1991_UTM_20N",GEOGCS["GCS_RRAF_1991",DATUM["D_RRAF_1991",SPHER
4568 New_Beijing_Gauss_Kruger_Zone_13 PROJCS["New_Beijing_Gauss_Kruger_Zone_13",GEOGCS["GCS_New_Beijing",DATUM["D_New_B
4569 New_Beijing_Gauss_Kruger_Zone_14 PROJCS["New_Beijing_Gauss_Kruger_Zone_14",GEOGCS["GCS_New_Beijing",DATUM["D_New_B
4570 New_Beijing_Gauss_Kruger_Zone_15 PROJCS["New_Beijing_Gauss_Kruger_Zone_15",GEOGCS["GCS_New_Beijing",DATUM["D_New_B
4571 New_Beijing_Gauss_Kruger_Zone_16 PROJCS["New_Beijing_Gauss_Kruger_Zone_16",GEOGCS["GCS_New_Beijing",DATUM["D_New_B
4572 New_Beijing_Gauss_Kruger_Zone_17 PROJCS["New_Beijing_Gauss_Kruger_Zone_17",GEOGCS["GCS_New_Beijing",DATUM["D_New_B
4573 New_Beijing_Gauss_Kruger_Zone_18 PROJCS["New_Beijing_Gauss_Kruger_Zone_18",GEOGCS["GCS_New_Beijing",DATUM["D_New_B
4574 New_Beijing_Gauss_Kruger_Zone_19 PROJCS["New_Beijing_Gauss_Kruger_Zone_19",GEOGCS["GCS_New_Beijing",DATUM["D_New_B
4575 New_Beijing_Gauss_Kruger_Zone_20 PROJCS["New_Beijing_Gauss_Kruger_Zone_20",GEOGCS["GCS_New_Beijing",DATUM["D_New_B
4576 New_Beijing_Gauss_Kruger_Zone_21 PROJCS["New_Beijing_Gauss_Kruger_Zone_21",GEOGCS["GCS_New_Beijing",DATUM["D_New_B
4577 New_Beijing_Gauss_Kruger_Zone_22 PROJCS["New_Beijing_Gauss_Kruger_Zone_22",GEOGCS["GCS_New_Beijing",DATUM["D_New_B
4578 New_Beijing_Gauss_Kruger_Zone_23 PROJCS["New_Beijing_Gauss_Kruger_Zone_23",GEOGCS["GCS_New_Beijing",DATUM["D_New_B
4579 New_Beijing_Gauss_Kruger_CM_75E PROJCS["New_Beijing_Gauss_Kruger_CM_75E",GEOGCS["GCS_New_Beijing",DATUM["D_New_B
4580 New_Beijing_Gauss_Kruger_CM_81E PROJCS["New_Beijing_Gauss_Kruger_CM_81E",GEOGCS["GCS_New_Beijing",DATUM["D_New_B
4581 New_Beijing_Gauss_Kruger_CM_87E PROJCS["New_Beijing_Gauss_Kruger_CM_87E",GEOGCS["GCS_New_Beijing",DATUM["D_New_B

Copyright 1995-2015 Esri. All rights reserved. 359


ArcGIS Runtime SDK for .NET

4582 New_Beijing_Gauss_Kruger_CM_93E PROJCS["New_Beijing_Gauss_Kruger_CM_93E",GEOGCS["GCS_New_Beijing",DATUM["D_New_B


4583 New_Beijing_Gauss_Kruger_CM_99E PROJCS["New_Beijing_Gauss_Kruger_CM_99E",GEOGCS["GCS_New_Beijing",DATUM["D_New_B
4584 New_Beijing_Gauss_Kruger_CM_105E PROJCS["New_Beijing_Gauss_Kruger_CM_105E",GEOGCS["GCS_New_Beijing",DATUM["D_New_
4585 New_Beijing_Gauss_Kruger_CM_111E PROJCS["New_Beijing_Gauss_Kruger_CM_111E",GEOGCS["GCS_New_Beijing",DATUM["D_New_
4586 New_Beijing_Gauss_Kruger_CM_117E PROJCS["New_Beijing_Gauss_Kruger_CM_117E",GEOGCS["GCS_New_Beijing",DATUM["D_New_
4587 New_Beijing_Gauss_Kruger_CM_123E PROJCS["New_Beijing_Gauss_Kruger_CM_123E",GEOGCS["GCS_New_Beijing",DATUM["D_New_
4588 New_Beijing_Gauss_Kruger_CM_129E PROJCS["New_Beijing_Gauss_Kruger_CM_129E",GEOGCS["GCS_New_Beijing",DATUM["D_New_
4589 New_Beijing_Gauss_Kruger_CM_135E PROJCS["New_Beijing_Gauss_Kruger_CM_135E",GEOGCS["GCS_New_Beijing",DATUM["D_New_
4647 ETRS_1989_UTM_Zone_N32 PROJCS["ETRS_1989_UTM_Zone_N32",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
4652 New_Beijing_3_Degree_Gauss_Kruger_Zone_25 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_25",GEOGCS["GCS_New_Beijing",DATUM
4653 New_Beijing_3_Degree_Gauss_Kruger_Zone_26 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_26",GEOGCS["GCS_New_Beijing",DATUM
4654 New_Beijing_3_Degree_Gauss_Kruger_Zone_27 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_27",GEOGCS["GCS_New_Beijing",DATUM
4655 New_Beijing_3_Degree_Gauss_Kruger_Zone_28 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_28",GEOGCS["GCS_New_Beijing",DATUM
4656 New_Beijing_3_Degree_Gauss_Kruger_Zone_29 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_29",GEOGCS["GCS_New_Beijing",DATUM
4766 New_Beijing_3_Degree_Gauss_Kruger_Zone_30 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_30",GEOGCS["GCS_New_Beijing",DATUM
4767 New_Beijing_3_Degree_Gauss_Kruger_Zone_31 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_31",GEOGCS["GCS_New_Beijing",DATUM
4768 New_Beijing_3_Degree_Gauss_Kruger_Zone_32 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_32",GEOGCS["GCS_New_Beijing",DATUM
4769 New_Beijing_3_Degree_Gauss_Kruger_Zone_33 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_33",GEOGCS["GCS_New_Beijing",DATUM
4770 New_Beijing_3_Degree_Gauss_Kruger_Zone_34 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_34",GEOGCS["GCS_New_Beijing",DATUM
4771 New_Beijing_3_Degree_Gauss_Kruger_Zone_35 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_35",GEOGCS["GCS_New_Beijing",DATUM
4772 New_Beijing_3_Degree_Gauss_Kruger_Zone_36 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_36",GEOGCS["GCS_New_Beijing",DATUM
4773 New_Beijing_3_Degree_Gauss_Kruger_Zone_37 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_37",GEOGCS["GCS_New_Beijing",DATUM
4774 New_Beijing_3_Degree_Gauss_Kruger_Zone_38 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_38",GEOGCS["GCS_New_Beijing",DATUM
4775 New_Beijing_3_Degree_Gauss_Kruger_Zone_39 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_39",GEOGCS["GCS_New_Beijing",DATUM
4776 New_Beijing_3_Degree_Gauss_Kruger_Zone_40 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_40",GEOGCS["GCS_New_Beijing",DATUM
4777 New_Beijing_3_Degree_Gauss_Kruger_Zone_41 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_41",GEOGCS["GCS_New_Beijing",DATUM
4778 New_Beijing_3_Degree_Gauss_Kruger_Zone_42 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_42",GEOGCS["GCS_New_Beijing",DATUM
4779 New_Beijing_3_Degree_Gauss_Kruger_Zone_43 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_43",GEOGCS["GCS_New_Beijing",DATUM
4780 New_Beijing_3_Degree_Gauss_Kruger_Zone_44 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_44",GEOGCS["GCS_New_Beijing",DATUM
4781 New_Beijing_3_Degree_Gauss_Kruger_Zone_45 PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_45",GEOGCS["GCS_New_Beijing",DATUM
4782 New_Beijing_3_Degree_Gauss_Kruger_CM_75E PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_75E",GEOGCS["GCS_New_Beijing",DATUM
4783 New_Beijing_3_Degree_Gauss_Kruger_CM_78E PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_78E",GEOGCS["GCS_New_Beijing",DATUM
4784 New_Beijing_3_Degree_Gauss_Kruger_CM_81E PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_81E",GEOGCS["GCS_New_Beijing",DATUM
4785 New_Beijing_3_Degree_Gauss_Kruger_CM_84E PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_84E",GEOGCS["GCS_New_Beijing",DATUM
4786 New_Beijing_3_Degree_Gauss_Kruger_CM_87E PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_87E",GEOGCS["GCS_New_Beijing",DATUM
4787 New_Beijing_3_Degree_Gauss_Kruger_CM_90E PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_90E",GEOGCS["GCS_New_Beijing",DATUM
4788 New_Beijing_3_Degree_Gauss_Kruger_CM_93E PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_93E",GEOGCS["GCS_New_Beijing",DATUM
4789 New_Beijing_3_Degree_Gauss_Kruger_CM_96E PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_96E",GEOGCS["GCS_New_Beijing",DATUM
4790 New_Beijing_3_Degree_Gauss_Kruger_CM_99E PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_99E",GEOGCS["GCS_New_Beijing",DATUM
4791 New_Beijing_3_Degree_Gauss_Kruger_CM_102E PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_102E",GEOGCS["GCS_New_Beijing",DATU
4792 New_Beijing_3_Degree_Gauss_Kruger_CM_105E PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_105E",GEOGCS["GCS_New_Beijing",DATU
4793 New_Beijing_3_Degree_Gauss_Kruger_CM_108E PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_108E",GEOGCS["GCS_New_Beijing",DATU
4794 New_Beijing_3_Degree_Gauss_Kruger_CM_111E PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_111E",GEOGCS["GCS_New_Beijing",DATU
4795 New_Beijing_3_Degree_Gauss_Kruger_CM_114E PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_114E",GEOGCS["GCS_New_Beijing",DATU
4796 New_Beijing_3_Degree_Gauss_Kruger_CM_117E PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_117E",GEOGCS["GCS_New_Beijing",DATU
4797 New_Beijing_3_Degree_Gauss_Kruger_CM_120E PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_120E",GEOGCS["GCS_New_Beijing",DATU
4798 New_Beijing_3_Degree_Gauss_Kruger_CM_123E PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_123E",GEOGCS["GCS_New_Beijing",DATU
4799 New_Beijing_3_Degree_Gauss_Kruger_CM_126E PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_126E",GEOGCS["GCS_New_Beijing",DATU
4800 New_Beijing_3_Degree_Gauss_Kruger_CM_129E PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_129E",GEOGCS["GCS_New_Beijing",DATU
4822 New_Beijing_3_Degree_Gauss_Kruger_CM_135E PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_135E",GEOGCS["GCS_New_Beijing",DATU
4826 WGS_1984_Cape_Verde_Grid PROJCS["WGS_1984_Cape_Verde_Grid",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",S
4839 ETRS_1989_LCC_Germany_N-E PROJCS["ETRS_1989_LCC_Germany_N-E",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_198
5014 PTRA08_UTM_Zone_25N PROJCS["PTRA08_UTM_Zone_25N",GEOGCS["GCS_PTRA08",DATUM["D_PTRA08",SPHEROID[
5015 PTRA08_UTM_Zone_26N PROJCS["PTRA08_UTM_Zone_26N",GEOGCS["GCS_PTRA08",DATUM["D_PTRA08",SPHEROID[

Copyright 1995-2015 Esri. All rights reserved. 360


ArcGIS Runtime SDK for .NET

5016 PTRA08_UTM_Zone_28N PROJCS["PTRA08_UTM_Zone_28N",GEOGCS["GCS_PTRA08",DATUM["D_PTRA08",SPHEROID[


5018 Lisbon_Portuguese_Grid_New PROJCS["Lisbon_Portuguese_Grid_New",GEOGCS["GCS_Lisbon",DATUM["D_Lisbon",SPHEROID
5048 ETRS_1989_TM35FIN_NE PROJCS["ETRS_1989_TM35FIN_NE",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPH
5069 NAD_1927_Contiguous_USA_Albers PROJCS["NAD_1927_Contiguous_USA_Albers",GEOGCS["GCS_North_American_1927",DATUM["
5070 NAD_1983_Contiguous_USA_Albers PROJCS["NAD_1983_Contiguous_USA_Albers",GEOGCS["GCS_North_American_1983",DATUM["
5071 NAD_1983_HARN_Contiguous_USA_Albers PROJCS["NAD_1983_HARN_Contiguous_USA_Albers",GEOGCS["GCS_North_American_1983_HA
5072 NAD_1983_NSRS2007_Contiguous_USA_Albers PROJCS["NAD_1983_NSRS2007_Contiguous_USA_Albers",GEOGCS["GCS_NAD_1983_NSRS20
5105 ETRS_1989_NTM_Zone_5 PROJCS["ETRS_1989_NTM_Zone_5",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPH
5106 ETRS_1989_NTM_Zone_6 PROJCS["ETRS_1989_NTM_Zone_6",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPH
5107 ETRS_1989_NTM_Zone_7 PROJCS["ETRS_1989_NTM_Zone_7",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPH
5108 ETRS_1989_NTM_Zone_8 PROJCS["ETRS_1989_NTM_Zone_8",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPH
5109 ETRS_1989_NTM_Zone_9 PROJCS["ETRS_1989_NTM_Zone_9",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPH
5110 ETRS_1989_NTM_Zone_10 PROJCS["ETRS_1989_NTM_Zone_10",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5111 ETRS_1989_NTM_Zone_11 PROJCS["ETRS_1989_NTM_Zone_11",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5112 ETRS_1989_NTM_Zone_12 PROJCS["ETRS_1989_NTM_Zone_12",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5113 ETRS_1989_NTM_Zone_13 PROJCS["ETRS_1989_NTM_Zone_13",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5114 ETRS_1989_NTM_Zone_14 PROJCS["ETRS_1989_NTM_Zone_14",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5115 ETRS_1989_NTM_Zone_15 PROJCS["ETRS_1989_NTM_Zone_15",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5116 ETRS_1989_NTM_Zone_16 PROJCS["ETRS_1989_NTM_Zone_16",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5117 ETRS_1989_NTM_Zone_17 PROJCS["ETRS_1989_NTM_Zone_17",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5118 ETRS_1989_NTM_Zone_18 PROJCS["ETRS_1989_NTM_Zone_18",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5119 ETRS_1989_NTM_Zone_19 PROJCS["ETRS_1989_NTM_Zone_19",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5120 ETRS_1989_NTM_Zone_20 PROJCS["ETRS_1989_NTM_Zone_20",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5121 ETRS_1989_NTM_Zone_21 PROJCS["ETRS_1989_NTM_Zone_21",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5122 ETRS_1989_NTM_Zone_22 PROJCS["ETRS_1989_NTM_Zone_22",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5123 ETRS_1989_NTM_Zone_23 PROJCS["ETRS_1989_NTM_Zone_23",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5124 ETRS_1989_NTM_Zone_24 PROJCS["ETRS_1989_NTM_Zone_24",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5125 ETRS_1989_NTM_Zone_25 PROJCS["ETRS_1989_NTM_Zone_25",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5126 ETRS_1989_NTM_Zone_26 PROJCS["ETRS_1989_NTM_Zone_26",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5127 ETRS_1989_NTM_Zone_27 PROJCS["ETRS_1989_NTM_Zone_27",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5128 ETRS_1989_NTM_Zone_28 PROJCS["ETRS_1989_NTM_Zone_28",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5129 ETRS_1989_NTM_Zone_29 PROJCS["ETRS_1989_NTM_Zone_29",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5130 ETRS_1989_NTM_Zone_30 PROJCS["ETRS_1989_NTM_Zone_30",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SP
5167 Korean_1985_Korea_East_Sea_Belt PROJCS["Korean_1985_Korea_East_Sea_Belt",GEOGCS["GCS_Korean_Datum_1985",DATUM["D
5168 Korean_1985_Korea_Central_Belt_Jeju PROJCS["Korean_1985_Korea_Central_Belt_Jeju",GEOGCS["GCS_Korean_Datum_1985",DATUM
5173 Korean_1985_Modified_Korea_West_Belt PROJCS["Korean_1985_Modified_Korea_West_Belt",GEOGCS["GCS_Korean_Datum_1985",DATU
5174 Korean_1985_Modified_Korea_Central_Belt PROJCS["Korean_1985_Modified_Korea_Central_Belt",GEOGCS["GCS_Korean_Datum_1985",DAT
5175 Korean_1985_Modified_Korea_Central_Belt_Jeju PROJCS["Korean_1985_Modified_Korea_Central_Belt_Jeju",GEOGCS["GCS_Korean_Datum_1985
5176 Korean_1985_Modified_Korea_East_Belt PROJCS["Korean_1985_Modified_Korea_East_Belt",GEOGCS["GCS_Korean_Datum_1985",DATUM
5177 Korean_1985_Modified_Korea_East_Sea_Belt PROJCS["Korean_1985_Modified_Korea_East_Sea_Belt",GEOGCS["GCS_Korean_Datum_1985",D
5178 Korean_1985_Korea_Unified_Coordinate_System PROJCS["Korean_1985_Korea_Unified_Coordinate_System",GEOGCS["GCS_Korean_Datum_1985
5179 Korea_2000_Korea_Unified_Coordinate_System PROJCS["Korea_2000_Korea_Unified_Coordinate_System",GEOGCS["GCS_Korea_2000",DATUM
5180 Korea_2000_Korea_West_Belt PROJCS["Korea_2000_Korea_West_Belt",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2000",
5181 Korea_2000_Korea_Central_Belt PROJCS["Korea_2000_Korea_Central_Belt",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2000
5182 Korea_2000_Korea_Central_Belt_Jeju PROJCS["Korea_2000_Korea_Central_Belt_Jeju",GEOGCS["GCS_Korea_2000",DATUM["D_Korea
5183 Korea_2000_Korea_East_Belt PROJCS["Korea_2000_Korea_East_Belt",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2000",S
5184 Korea_2000_Korea_East_Sea_Belt PROJCS["Korea_2000_Korea_East_Sea_Belt",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_20
5185 Korea_2000_Korea_West_Belt_2010 PROJCS["Korea_2000_Korea_West_Belt_2010",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_
5186 Korea_2000_Korea_Central_Belt_2010 PROJCS["Korea_2000_Korea_Central_Belt_2010",GEOGCS["GCS_Korea_2000",DATUM["D_Korea
5187 Korea_2000_Korea_East_Belt_2010 PROJCS["Korea_2000_Korea_East_Belt_2010",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2
5188 Korea_2000_Korea_East_Sea_Belt_2010 PROJCS["Korea_2000_Korea_East_Sea_Belt_2010",GEOGCS["GCS_Korea_2000",DATUM["D_Ko
5221 S-JTSK_Ferro_Krovak_East_North PROJCS["S-JTSK_Ferro_Krovak_East_North",GEOGCS["GCS_S_JTSK_Ferro",DATUM["D_S_JTS
5223 WGS_1984_UTM_Gabon_TM PROJCS["WGS_1984_UTM_Gabon_TM",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
5234 Kandawala_Sri_Lanka_Grid PROJCS["Kandawala_Sri_Lanka_Grid",GEOGCS["GCS_Kandawala",DATUM["D_Kandawala",SPHE

Copyright 1995-2015 Esri. All rights reserved. 361


ArcGIS Runtime SDK for .NET

5235 SLD99_Sri_Lanka_Grid_1999 PROJCS["SLD99_Sri_Lanka_Grid_1999",GEOGCS["GCS_SLD99",DATUM["D_Sri_Lanka_Datum_1


5243 ETRS_1989_LCC_Germany_E-N PROJCS["ETRS_1989_LCC_Germany_E-N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_198
5247 GDBD2009_GEORSO PROJCS["GDBD2009_GEORSO",GEOGCS["GCS_GDBD2009",DATUM["D_GDBD2009",SPHEROI
5253 TUREF_TM27 PROJCS["TUREF_TM27",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Fram
5254 TUREF_TM30 PROJCS["TUREF_TM30",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Fram
5255 TUREF_TM33 PROJCS["TUREF_TM33",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Fram
5256 TUREF_TM36 PROJCS["TUREF_TM36",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Fram
5257 TUREF_TM39 PROJCS["TUREF_TM39",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Fram
5258 TUREF_TM42 PROJCS["TUREF_TM42",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Fram
5259 TUREF_TM45 PROJCS["TUREF_TM45",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Fram
5266 DRUKREF_03_Bhutan_National_Grid PROJCS["DRUKREF_03_Bhutan_National_Grid",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhut
5269 TUREF_3_Degree_GK_Zone_9 PROJCS["TUREF_3_Degree_GK_Zone_9",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_
5270 TUREF_3_Degree_GK_Zone_10 PROJCS["TUREF_3_Degree_GK_Zone_10",GEOGCS["GCS_TUREF",DATUM["D_Turkish_Nationa
5271 TUREF_3_Degree_GK_Zone_11 PROJCS["TUREF_3_Degree_GK_Zone_11",GEOGCS["GCS_TUREF",DATUM["D_Turkish_Nationa
5272 TUREF_3_Degree_GK_Zone_12 PROJCS["TUREF_3_Degree_GK_Zone_12",GEOGCS["GCS_TUREF",DATUM["D_Turkish_Nationa
5273 TUREF_3_Degree_GK_Zone_13 PROJCS["TUREF_3_Degree_GK_Zone_13",GEOGCS["GCS_TUREF",DATUM["D_Turkish_Nationa
5274 TUREF_3_Degree_GK_Zone_14 PROJCS["TUREF_3_Degree_GK_Zone_14",GEOGCS["GCS_TUREF",DATUM["D_Turkish_Nationa
5275 TUREF_3_Degree_GK_Zone_15 PROJCS["TUREF_3_Degree_GK_Zone_15",GEOGCS["GCS_TUREF",DATUM["D_Turkish_Nationa
5292 DRUKREF_03_Bumthang_TM PROJCS["DRUKREF_03_Bumthang_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_Nat
5293 DRUKREF_03_Chhukha_TM PROJCS["DRUKREF_03_Chhukha_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_Natio
5294 DRUKREF_03_Dagana_TM PROJCS["DRUKREF_03_Dagana_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_Nation
5295 DRUKREF_03_Gasa_TM PROJCS["DRUKREF_03_Gasa_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National
5296 DRUKREF_03_Ha_TM PROJCS["DRUKREF_03_Ha_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_G
5297 DRUKREF_03_Lhuentse_TM PROJCS["DRUKREF_03_Lhuentse_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_Natio
5298 DRUKREF_03_Mongar_TM PROJCS["DRUKREF_03_Mongar_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_Nation
5299 DRUKREF_03_Paro_TM PROJCS["DRUKREF_03_Paro_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_
5300 DRUKREF_03_Pemagatshel_TM PROJCS["DRUKREF_03_Pemagatshel_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_N
5301 DRUKREF_03_Punakha_TM PROJCS["DRUKREF_03_Punakha_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_Natio
5302 DRUKREF_03_Samdrup_Jongkhar_TM PROJCS["DRUKREF_03_Samdrup_Jongkhar_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bh
5303 DRUKREF_03_Samtse_TM PROJCS["DRUKREF_03_Samtse_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_Nation
5304 DRUKREF_03_Sarpang_TM PROJCS["DRUKREF_03_Sarpang_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_Natio
5305 DRUKREF_03_Thimphu_TM PROJCS["DRUKREF_03_Thimphu_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_Natio
5306 DRUKREF_03_Trashigang_TM PROJCS["DRUKREF_03_Trashigang_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_Na
5307 DRUKREF_03_Trongsa_TM PROJCS["DRUKREF_03_Trongsa_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_Natio
5308 DRUKREF_03_Tsirang_TM PROJCS["DRUKREF_03_Tsirang_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_Nation
5309 DRUKREF_03_Wangdue_Phodrang_TM PROJCS["DRUKREF_03_Wangdue_Phodrang_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_B
5310 DRUKREF_03_Yangtse_TM PROJCS["DRUKREF_03_Yangtse_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_Natio
5311 DRUKREF_03_Zhemgang_TM PROJCS["DRUKREF_03_Zhemgang_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_Na
5316 ETRS_1989_FAROE_TM PROJCS["ETRS_1989_FAROE_TM",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHE
5320 NAD_1983_Teranet_Ontario_Lambert PROJCS["NAD_1983_Teranet_Ontario_Lambert",GEOGCS["GCS_North_American_1983",DATUM[
5321 NAD_1983_CSRS_Teranet_Ontario_Lambert PROJCS["NAD_1983_CSRS_Teranet_Ontario_Lambert",GEOGCS["GCS_North_American_1983_C
5325 ISN_2004_Lambert_2004 PROJCS["ISN_2004_Lambert_2004",GEOGCS["GCS_ISN_2004",DATUM["D_Islands_Network_200
5329 Gunung_Segara_Jakarta_NEIEZ PROJCS["Gunung_Segara_Jakarta_NEIEZ",GEOGCS["GCS_Gunung_Segara_Jakarta",DATUM["D
5330 Batavia_Jakarta_NEIEZ PROJCS["Batavia_Jakarta_NEIEZ",GEOGCS["GCS_Batavia_Jakarta",DATUM["D_Batavia",SPHER
5331 Makassar_Jakarta_NEIEZ PROJCS["Makassar_Jakarta_NEIEZ",GEOGCS["GCS_Makassar_Jakarta",DATUM["D_Makassar",S
5337 Aratu_UTM_Zone_25S PROJCS["Aratu_UTM_Zone_25S",GEOGCS["GCS_Aratu",DATUM["D_Aratu",SPHEROID["Internatio
5343 POSGAR_2007_Argentina_Zone_1 PROJCS["POSGAR_2007_Argentina_Zone_1",GEOGCS["GCS_POSGAR_2007",DATUM["D_POSG
5344 POSGAR_2007_Argentina_Zone_2 PROJCS["POSGAR_2007_Argentina_Zone_2",GEOGCS["GCS_POSGAR_2007",DATUM["D_POSG
5345 POSGAR_2007_Argentina_Zone_3 PROJCS["POSGAR_2007_Argentina_Zone_3",GEOGCS["GCS_POSGAR_2007",DATUM["D_POSG
5346 POSGAR_2007_Argentina_Zone_4 PROJCS["POSGAR_2007_Argentina_Zone_4",GEOGCS["GCS_POSGAR_2007",DATUM["D_POSG
5347 POSGAR_2007_Argentina_Zone_5 PROJCS["POSGAR_2007_Argentina_Zone_5",GEOGCS["GCS_POSGAR_2007",DATUM["D_POSG
5348 POSGAR_2007_Argentina_Zone_6 PROJCS["POSGAR_2007_Argentina_Zone_6",GEOGCS["GCS_POSGAR_2007",DATUM["D_POSG
5349 POSGAR_2007_Argentina_Zone_7 PROJCS["POSGAR_2007_Argentina_Zone_7",GEOGCS["GCS_POSGAR_2007",DATUM["D_POSG
5355 MARGEN_UTM_Zone_20S PROJCS["MARGEN_UTM_Zone_20S",GEOGCS["GCS_MARGEN",DATUM["D_Marco_Geodesico_

Copyright 1995-2015 Esri. All rights reserved. 362


ArcGIS Runtime SDK for .NET

5356 MARGEN_UTM_Zone_19S PROJCS["MARGEN_UTM_Zone_19S",GEOGCS["GCS_MARGEN",DATUM["D_Marco_Geodesico_


5357 MARGEN_UTM_Zone_21S PROJCS["MARGEN_UTM_Zone_21S",GEOGCS["GCS_MARGEN",DATUM["D_Marco_Geodesico_
5361 SIRGAS-Chile_UTM_Zone_19S PROJCS["SIRGAS-Chile_UTM_Zone_19S",GEOGCS["GCS_SIRGAS-Chile",DATUM["D_SIRGAS-C
5362 SIRGAS-Chile_UTM_Zone_18S PROJCS["SIRGAS-Chile_UTM_Zone_18S",GEOGCS["GCS_SIRGAS-Chile",DATUM["D_SIRGAS-C
5367 CRTM05 PROJCS["CRTM05",GEOGCS["GCS_CR05",DATUM["D_Costa_Rica_2005",SPHEROID["WGS_198
5382 SIRGAS-ROU98_UTM_Zone_21S PROJCS["SIRGAS-ROU98_UTM_Zone_21S",GEOGCS["GCS_SIRGAS-ROU98",DATUM["D_SIRG
5383 SIRGAS-ROU98_UTM_Zone_22S PROJCS["SIRGAS-ROU98_UTM_Zone_22S",GEOGCS["GCS_SIRGAS-ROU98",DATUM["D_SIRG
5387 Peru96_UTM_Zone_18S PROJCS["Peru96_UTM_Zone_18S",GEOGCS["GCS_Peru96",DATUM["D_Peru96",SPHEROID["GR
5389 Peru96_UTM_Zone_19S PROJCS["Peru96_UTM_Zone_19S",GEOGCS["GCS_Peru96",DATUM["D_Peru96",SPHEROID["GR
5396 SIRGAS_2000_UTM_Zone_26S PROJCS["SIRGAS_2000_UTM_Zone_26S",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
5456 Ocotepeque_1935_Costa_Rica_Norte PROJCS["Ocotepeque_1935_Costa_Rica_Norte",GEOGCS["GCS_Ocotepeque_1935",DATUM["D_O
5457 Ocotepeque_1935_Costa_Rica_Sur PROJCS["Ocotepeque_1935_Costa_Rica_Sur",GEOGCS["GCS_Ocotepeque_1935",DATUM["D_Oc
5459 Ocotepeque_1935_Guatemala_Sur PROJCS["Ocotepeque_1935_Guatemala_Sur",GEOGCS["GCS_Ocotepeque_1935",DATUM["D_Oc
5460 Ocotepeque_1935_El_Salvador_Lambert PROJCS["Ocotepeque_1935_El_Salvador_Lambert",GEOGCS["GCS_Ocotepeque_1935",DATUM["
5461 Ocotepeque_1935_Nicaragua_Norte PROJCS["Ocotepeque_1935_Nicaragua_Norte",GEOGCS["GCS_Ocotepeque_1935",DATUM["D_O
5462 Ocotepeque_1935_Nicaragua_Sur PROJCS["Ocotepeque_1935_Nicaragua_Sur",GEOGCS["GCS_Ocotepeque_1935",DATUM["D_Oco
5463 SAD_1969_UTM_Zone_17N PROJCS["SAD_1969_UTM_Zone_17N",GEOGCS["GCS_South_American_1969",DATUM["D_South
5469 Panama-Colon_1911_Panama_Lambert PROJCS["Panama-Colon_1911_Panama_Lambert",GEOGCS["GCS_Panama-Colon_1911",DATUM
5472 Panama-Colon_1911_Panama_Polyconic PROJCS["Panama-Colon_1911_Panama_Polyconic",GEOGCS["GCS_Panama-Colon_1911",DATU
5479 RSRGD2000_MSLC2000 PROJCS["RSRGD2000_MSLC2000",GEOGCS["GCS_RSRGD2000",DATUM["D_Ross_Sea_Region
5480 RSRGD2000_BCLC2000 PROJCS["RSRGD2000_BCLC2000",GEOGCS["GCS_RSRGD2000",DATUM["D_Ross_Sea_Region
5481 RSRGD2000_PCLC2000 PROJCS["RSRGD2000_PCLC2000",GEOGCS["GCS_RSRGD2000",DATUM["D_Ross_Sea_Region
5482 RSRGD2000_RSPS2000 PROJCS["RSRGD2000_RSPS2000",GEOGCS["GCS_RSRGD2000",DATUM["D_Ross_Sea_Region
5490 RGAF09_UTM_Zone_20N PROJCS["RGAF09_UTM_Zone_20N",GEOGCS["GCS_RGAF09",DATUM["Reseau_Geodesique_de
5513 S-JTSK_Krovak PROJCS["S-JTSK_Krovak",GEOGCS["GCS_S_JTSK",DATUM["D_S_JTSK",SPHEROID["Bessel_18
5514 S-JTSK_Krovak_East_North PROJCS["S-JTSK_Krovak_East_North",GEOGCS["GCS_S_JTSK",DATUM["D_S_JTSK",SPHEROID
5518 Chatham_Island_1971_Map_Grid PROJCS["Chatham_Island_1971_Map_Grid",GEOGCS["GCS_Chatham_Island_1971",DATUM["D_C
5519 Chatham_Islands_1979_Map_Grid PROJCS["Chatham_Islands_1979_Map_Grid",GEOGCS["GCS_Chatham_Islands_1979",DATUM["D
5520 DHDN_3_Degree_Gauss_Zone_1 PROJCS["DHDN_3_Degree_Gauss_Zone_1",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DAT
5523 WGS_1984_UTM_Gabon_TM_2011 PROJCS["WGS_1984_UTM_Gabon_TM_2011",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_19
5530 SAD_1969_96_Brazil_Polyconic PROJCS["SAD_1969_96_Brazil_Polyconic",GEOGCS["GCS_SAD_1969_96",DATUM["D_South_Am
5531 SAD_1969_96_UTM_Zone_21S PROJCS["SAD_1969_96_UTM_Zone_21S",GEOGCS["GCS_SAD_1969_96",DATUM["D_South_Am
5533 SAD_1969_96_UTM_Zone_23S PROJCS["SAD_1969_96_UTM_Zone_23S",GEOGCS["GCS_SAD_1969_96",DATUM["D_South_Am
5534 SAD_1969_96_UTM_Zone_24S PROJCS["SAD_1969_96_UTM_Zone_24S",GEOGCS["GCS_SAD_1969_96",DATUM["D_South_Am
5535 SAD_1969_96_UTM_Zone_25S PROJCS["SAD_1969_96_UTM_Zone_25S",GEOGCS["GCS_SAD_1969_96",DATUM["D_South_Am
5536 Corrego_Alegre_1961_UTM_Zone_21S PROJCS["Corrego_Alegre_1961_UTM_Zone_21S",GEOGCS["GCS_Corrego_Alegre_1961",DATUM
5537 Corrego_Alegre_1961_UTM_Zone_22S PROJCS["Corrego_Alegre_1961_UTM_Zone_22S",GEOGCS["GCS_Corrego_Alegre_1961",DATUM
5538 Corrego_Alegre_1961_UTM_Zone_23S PROJCS["Corrego_Alegre_1961_UTM_Zone_23S",GEOGCS["GCS_Corrego_Alegre_1961",DATUM
5539 Corrego_Alegre_1961_UTM_Zone_24S PROJCS["Corrego_Alegre_1961_UTM_Zone_24S",GEOGCS["GCS_Corrego_Alegre_1961",DATUM
5550 PNG94_PNGMG94_Zone_54 PROJCS["PNG94_PNGMG94_Zone_54",GEOGCS["GCS_PNG94",DATUM["D_Papua_New_Guinea
5551 PNG94_PNGMG94_Zone_55 PROJCS["PNG94_PNGMG94_Zone_55",GEOGCS["GCS_PNG94",DATUM["D_Papua_New_Guinea
5552 PNG94_PNGMG94_Zone_56 PROJCS["PNG94_PNGMG94_Zone_56",GEOGCS["GCS_PNG94",DATUM["D_Papua_New_Guinea
5559 Ocotepeque_1935_Guatemala_Norte PROJCS["Ocotepeque_1935_Guatemala_Norte",GEOGCS["GCS_Ocotepeque_1935",DATUM["D_O
5562 Ukraine_2000_GK_Zone_4 PROJCS["Ukraine_2000_GK_Zone_4",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",
5563 Ukraine_2000_GK_Zone_5 PROJCS["Ukraine_2000_GK_Zone_5",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",
5564 Ukraine_2000_GK_Zone_6 PROJCS["Ukraine_2000_GK_Zone_6",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",
5565 Ukraine_2000_GK_Zone_7 PROJCS["Ukraine_2000_GK_Zone_7",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",
5566 Ukraine_2000_GK_CM_21E PROJCS["Ukraine_2000_GK_CM_21E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000"
5567 Ukraine_2000_GK_CM_27E PROJCS["Ukraine_2000_GK_CM_27E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000"
5568 Ukraine_2000_GK_CM_33E PROJCS["Ukraine_2000_GK_CM_33E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000"
5569 Ukraine_2000_GK_CM_39E PROJCS["Ukraine_2000_GK_CM_39E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000"
5570 Ukraine_2000_3_Degree_GK_Zone_7 PROJCS["Ukraine_2000_3_Degree_GK_Zone_7",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukra
5571 Ukraine_2000_3_Degree_GK_Zone_8 PROJCS["Ukraine_2000_3_Degree_GK_Zone_8",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukra
5572 Ukraine_2000_3_Degree_GK_Zone_9 PROJCS["Ukraine_2000_3_Degree_GK_Zone_9",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukra

Copyright 1995-2015 Esri. All rights reserved. 363


ArcGIS Runtime SDK for .NET

5573 Ukraine_2000_3_Degree_GK_Zone_10 PROJCS["Ukraine_2000_3_Degree_GK_Zone_10",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukr


5574 Ukraine_2000_3_Degree_GK_Zone_11 PROJCS["Ukraine_2000_3_Degree_GK_Zone_11",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukr
5575 Ukraine_2000_3_Degree_GK_Zone_12 PROJCS["Ukraine_2000_3_Degree_GK_Zone_12",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukr
5576 Ukraine_2000_3_Degree_GK_Zone_13 PROJCS["Ukraine_2000_3_Degree_GK_Zone_13",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukr
5577 Ukraine_2000_3_Degree_GK_CM_21E PROJCS["Ukraine_2000_3_Degree_GK_CM_21E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukr
5578 Ukraine_2000_3_Degree_GK_CM_24E PROJCS["Ukraine_2000_3_Degree_GK_CM_24E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukr
5579 Ukraine_2000_3_Degree_GK_CM_27E PROJCS["Ukraine_2000_3_Degree_GK_CM_27E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukr
5580 Ukraine_2000_3_Degree_GK_CM_30E PROJCS["Ukraine_2000_3_Degree_GK_CM_30E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukr
5581 Ukraine_2000_3_Degree_GK_CM_33E PROJCS["Ukraine_2000_3_Degree_GK_CM_33E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukr
5582 Ukraine_2000_3_Degree_GK_CM_36E PROJCS["Ukraine_2000_3_Degree_GK_CM_36E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukr
5583 Ukraine_2000_3_Degree_GK_CM_39E PROJCS["Ukraine_2000_3_Degree_GK_CM_39E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukr
5588 NAD_1927_New_Brunswick_Stereographic PROJCS["NAD_1927_New_Brunswick_Stereographic",GEOGCS["GCS_North_American_1927",DA
5589 Sibun_Gorge_1922_Colony_Grid PROJCS["Sibun_Gorge_1922_Colony_Grid",GEOGCS["GCS_Sibun_Gorge_1922",DATUM["D_Sibu
5596 FEH2010_Fehmarnbelt_TM PROJCS["FEH2010_Fehmarnbelt_TM",GEOGCS["GCS_FEH2010",DATUM["D_Fehmarnbelt_Datum
5623 NAD_1927_StatePlane_Michigan_East_Old_FIPS_2101 PROJCS["NAD_1927_StatePlane_Michigan_East_Old_FIPS_2101",GEOGCS["GCS_North_America
5624 NAD_1927_StatePlane_Michigan_Central_Old_FIPS_2102 PROJCS["NAD_1927_StatePlane_Michigan_Central_Old_FIPS_2102",GEOGCS["GCS_North_Ame
5625 NAD_1927_StatePlane_Michigan_West_Old_FIPS_2103 PROJCS["NAD_1927_StatePlane_Michigan_West_Old_FIPS_2103",GEOGCS["GCS_North_Americ
5627 ED_1950_TM_6_NE PROJCS["ED_1950_TM_6_NE",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SP
5629 Moznet_UTM_Zone_38S PROJCS["Moznet_UTM_Zone_38S",GEOGCS["GCS_Moznet",DATUM["D_Moznet",SPHEROID["WG
5631 Pulkovo_1942_Adj_1958_GK_Zone_2_E-N PROJCS["Pulkovo_1942_Adj_1958_GK_Zone_2_E-N",GEOGCS["GCS_Pulkovo_1942_Adj_1958",D
5632 PTRA08_LCC_Europe PROJCS["PTRA08_LCC_Europe",GEOGCS["GCS_PTRA08",DATUM["D_PTRA08",SPHEROID["GR
5633 PTRA08_LAEA_Europe PROJCS["PTRA08_LAEA_Europe",GEOGCS["GCS_PTRA08",DATUM["D_PTRA08",SPHEROID["G
5634 REGCAN95_LCC_Europe PROJCS["REGCAN95_LCC_Europe",GEOGCS["GCS_REGCAN95",DATUM["D_Red_Geodesica_d
5635 REGCAN95_LAEA_Europe PROJCS["REGCAN95_LAEA_Europe",GEOGCS["GCS_REGCAN95",DATUM["D_Red_Geodesica_
5636 TUREF_LAEA_Europe PROJCS["TUREF_LAEA_Europe",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Referenc
5637 TUREF_LCC_Europe PROJCS["TUREF_LCC_Europe",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference
5638 ISN_2004_LAEA_Europe PROJCS["ISN_2004_LAEA_Europe",GEOGCS["GCS_ISN_2004",DATUM["D_Islands_Network_200
5639 ISN_2004_LCC_Europe PROJCS["ISN_2004_LCC_Europe",GEOGCS["GCS_ISN_2004",DATUM["D_Islands_Network_2004
5641 SIRGAS_2000_Brazil_Mercator PROJCS["SIRGAS_2000_Brazil_Mercator",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2
5643 ED_1950_Southern_Permian_Basin_Lambert PROJCS["ED_1950_Southern_Permian_Basin_Lambert",GEOGCS["GCS_European_1950",DATUM
5644 RGR_1992_UTM_39S PROJCS["RGR_1992_UTM_39S",GEOGCS["GCS_RGR_1992",DATUM["D_RGR_1992",SPHEROI
5646 NAD_1983_StatePlane_Vermont_FIPS_4400_Feet PROJCS["NAD_1983_StatePlane_Vermont_FIPS_4400_Feet",GEOGCS["GCS_North_American_19
5649 ETRS_1989_UTM_Zone_31N_zE-N PROJCS["ETRS_1989_UTM_Zone_31N_zE-N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1
5650 ETRS_1989_UTM_Zone_33N_zE-N PROJCS["ETRS_1989_UTM_Zone_33N_zE-N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1
5651 ETRS_1989_UTM_Zone_31N_N-zE PROJCS["ETRS_1989_UTM_Zone_31N_N-zE",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1
5652 ETRS_1989_UTM_Zone_32N_N-zE PROJCS["ETRS_1989_UTM_Zone_32N_N-zE",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1
5653 ETRS_1989_UTM_Zone_33N_N-zE PROJCS["ETRS_1989_UTM_Zone_33N_N-zE",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1
5654 NAD_1983_HARN_StatePlane_Vermont_FIPS_4400_Ft_US PROJCS["NAD_1983_HARN_StatePlane_Vermont_FIPS_4400_Ft_US",GEOGCS["GCS_North_Am
5655 NAD_1983_NSRS2007_StatePlane_Vermont_FIPS_4400_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Vermont_FIPS_4400_Ft_US",GEOGCS["GCS_NAD
5659 Monte_Mario_TM_Emilia-Romagna PROJCS["Monte_Mario_TM_Emilia-Romagna",GEOGCS["GCS_Monte_Mario",DATUM["D_Monte_M
5663 Pulkovo_1942_Adj_1958_GK_Zone_3_E-N PROJCS["Pulkovo_1942_Adj_1958_GK_Zone_3_E-N",GEOGCS["GCS_Pulkovo_1942_Adj_1958",D
5664 Pulkovo_1942_Adj_1983_GK_Zone_2_E-N PROJCS["Pulkovo_1942_Adj_1983_GK_Zone_2_E-N",GEOGCS["GCS_Pulkovo_1942_Adj_1983",D
5665 Pulkovo_1942_Adj_1983_GK_Zone_3_E-N PROJCS["Pulkovo_1942_Adj_1983_GK_Zone_3_E-N",GEOGCS["GCS_Pulkovo_1942_Adj_1983",D
5666 PD/83_3_Degree_GK_Zone_3_E-N PROJCS["PD/83_3_Degree_GK_Zone_3_E-N",GEOGCS["GCS_PD/83",DATUM["D_Potsdam_1983
5667 PD/83_3_Degree_GK_Zone_4_E-N PROJCS["PD/83_3_Degree_GK_Zone_4_E-N",GEOGCS["GCS_PD/83",DATUM["D_Potsdam_1983
5668 RD/83_3_Degree_GK_Zone_4_E-N PROJCS["RD/83_3_Degree_GK_Zone_4_E-N",GEOGCS["GCS_RD/83",DATUM["D_Rauenberg_19
5669 RD/83_3_Degree_GK_Zone_5_E-N PROJCS["RD/83_3_Degree_GK_Zone_5_E-N",GEOGCS["GCS_RD/83",DATUM["D_Rauenberg_19
5670 Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_3_E-N PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_3_E-N",GEOGCS["GCS_Pulkovo_1942_A
5671 Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_4_E-N PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_4_E-N",GEOGCS["GCS_Pulkovo_1942_A
5672 Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_5_E-N PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_5_E-N",GEOGCS["GCS_Pulkovo_1942_A
5673 Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_3_E-N PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_3_E-N",GEOGCS["GCS_Pulkovo_1942_A
5674 Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_4_E-N PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_4_E-N",GEOGCS["GCS_Pulkovo_1942_A
5675 Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_5_E-N PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_5_E-N",GEOGCS["GCS_Pulkovo_1942_A
5676 DHDN_3_Degree_GK_Zone_2_E-N PROJCS["DHDN_3_Degree_GK_Zone_2_E-N",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DA

Copyright 1995-2015 Esri. All rights reserved. 364


ArcGIS Runtime SDK for .NET

5677 DHDN_3_Degree_GK_Zone_3_E-N PROJCS["DHDN_3_Degree_GK_Zone_3_E-N",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DA


5678 DHDN_3_Degree_GK_Zone_4_E-N PROJCS["DHDN_3_Degree_GK_Zone_4_E-N",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DA
5679 DHDN_3_Degree_GK_Zone_5_E-N PROJCS["DHDN_3_Degree_GK_Zone_5_E-N",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DA
5680 DHDN_3_Degree_GK_Zone_1_E-N PROJCS["DHDN_3_Degree_GK_Zone_1_E-N",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DA
5682 DB_REF_3-Degree_GK_Zone_2_(E-N) PROJCS["DB_REF_3-Degree_GK_Zone_2_(E-N)",GEOGCS["GCS_DB_REF",DATUM["D_Deutsche
5683 DB_REF_3-Degree_GK_Zone_3_(E-N) PROJCS["DB_REF_3-Degree_GK_Zone_3_(E-N)",GEOGCS["GCS_DB_REF",DATUM["D_Deutsche
5684 DB_REF_3-Degree_GK_Zone_4_(E-N) PROJCS["DB_REF_3-Degree_GK_Zone_4_(E-N)",GEOGCS["GCS_DB_REF",DATUM["D_Deutsche
5685 DB_REF_3-Degree_GK_Zone_5_(E-N) PROJCS["DB_REF_3-Degree_GK_Zone_5_(E-N)",GEOGCS["GCS_DB_REF",DATUM["D_Deutsche
5700 NZGD_2000_UTM_Zone_1S PROJCS["NZGD_2000_UTM_Zone_1S",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",S
5825 AGD_1966_ACT_Standard_Grid PROJCS["AGD_1966_ACT_Standard_Grid",GEOGCS["GCS_Australian_1966",DATUM["D_Australia
5836 Yemen_NGN_1996_UTM_Zone_37N PROJCS["Yemen_NGN_1996_UTM_Zone_37N",GEOGCS["GCS_Yemen_NGN_1996",DATUM["D_
5837 Yemen_NGN_1996_UTM_Zone_40N PROJCS["Yemen_NGN_1996_UTM_Zone_40N",GEOGCS["GCS_Yemen_NGN_1996",DATUM["D_
5839 Peru96_UTM_Zone_17S PROJCS["Peru96_UTM_Zone_17S",GEOGCS["GCS_Peru96",DATUM["D_Peru96",SPHEROID["GR
5842 WGS_1984_TM_12_SE PROJCS["WGS_1984_TM_12_SE",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHERO
5844 RGRDC_2005_Congo_TM_Zone_30 PROJCS["RGRDC_2005_Congo_TM_Zone_30",GEOGCS["GCS_RGRDC_2005",DATUM["D_Rese
5858 SAD_1969_96_UTM_Zone_22S PROJCS["SAD_1969_96_UTM_Zone_22S",GEOGCS["GCS_SAD_1969_96",DATUM["D_South_Am
5875 SAD_1969_96_UTM_Zone_18S PROJCS["SAD_1969_96_UTM_Zone_18S",GEOGCS["GCS_SAD_1969_96",DATUM["D_South_Am
5876 SAD_1969_96_UTM_Zone_19S PROJCS["SAD_1969_96_UTM_Zone_19S",GEOGCS["GCS_SAD_1969_96",DATUM["D_South_Am
5877 SAD_1969_96_UTM_Zone_20S PROJCS["SAD_1969_96_UTM_Zone_20S",GEOGCS["GCS_SAD_1969_96",DATUM["D_South_Am
5879 Cadastre_1997_UTM_Zone_38S PROJCS["Cadastre_1997_UTM_Zone_38S",GEOGCS["GCS_Cadastre_1997",DATUM["D_Cadastre
5880 SIRGAS_2000_Brazil_Polyconic PROJCS["SIRGAS_2000_Brazil_Polyconic",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
5887 TGD2005_Tonga_Map_Grid PROJCS["TGD2005_Tonga_Map_Grid",GEOGCS["GCS_TGD2005",DATUM["D_Tonga_Geodetic_D
5890 JAXA_Snow_Depth_Polar_Stereographic_North PROJCS["JAXA_Snow_Depth_Polar_Stereographic_North",GEOGCS["GCS_Hughes_1980",DATUM
5921 WGS_1984_EPSG_Arctic_Regional_zone_A1 PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_A1",GEOGCS["GCS_WGS_1984",DATUM["D_
5922 WGS_1984_EPSG_Arctic_Regional_zone_A2 PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_A2",GEOGCS["GCS_WGS_1984",DATUM["D_
5923 WGS_1984_EPSG_Arctic_Regional_zone_A3 PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_A3",GEOGCS["GCS_WGS_1984",DATUM["D_
5924 WGS_1984_EPSG_Arctic_Regional_zone_A4 PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_A4",GEOGCS["GCS_WGS_1984",DATUM["D_
5925 WGS_1984_EPSG_Arctic_Regional_zone_A5 PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_A5",GEOGCS["GCS_WGS_1984",DATUM["D_
5926 WGS_1984_EPSG_Arctic_Regional_zone_B1 PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_B1",GEOGCS["GCS_WGS_1984",DATUM["D_
5927 WGS_1984_EPSG_Arctic_Regional_zone_B2 PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_B2",GEOGCS["GCS_WGS_1984",DATUM["D_
5928 WGS_1984_EPSG_Arctic_Regional_zone_B3 PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_B3",GEOGCS["GCS_WGS_1984",DATUM["D_
5929 WGS_1984_EPSG_Arctic_Regional_zone_B4 PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_B4",GEOGCS["GCS_WGS_1984",DATUM["D_
5930 WGS_1984_EPSG_Arctic_Regional_zone_B5 PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_B5",GEOGCS["GCS_WGS_1984",DATUM["D_
5931 WGS_1984_EPSG_Arctic_Regional_zone_C1 PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_C1",GEOGCS["GCS_WGS_1984",DATUM["D
5932 WGS_1984_EPSG_Arctic_Regional_zone_C2 PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_C2",GEOGCS["GCS_WGS_1984",DATUM["D
5933 WGS_1984_EPSG_Arctic_Regional_zone_C3 PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_C3",GEOGCS["GCS_WGS_1984",DATUM["D
5934 WGS_1984_EPSG_Arctic_Regional_zone_C4 PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_C4",GEOGCS["GCS_WGS_1984",DATUM["D
5935 WGS_1984_EPSG_Arctic_Regional_zone_C5 PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_C5",GEOGCS["GCS_WGS_1984",DATUM["D
5936 WGS_1984_EPSG_Alaska_Polar_Stereographic PROJCS["WGS_1984_EPSG_Alaska_Polar_Stereographic",GEOGCS["GCS_WGS_1984",DATUM[
5937 WGS_1984_EPSG_Canada_Polar_Stereographic PROJCS["WGS_1984_EPSG_Canada_Polar_Stereographic",GEOGCS["GCS_WGS_1984",DATUM
5938 WGS_1984_EPSG_Greenland_Polar_Stereographic PROJCS["WGS_1984_EPSG_Greenland_Polar_Stereographic",GEOGCS["GCS_WGS_1984",DATU
5939 WGS_1984_EPSG_Norway_Polar_Stereographic PROJCS["WGS_1984_EPSG_Norway_Polar_Stereographic",GEOGCS["GCS_WGS_1984",DATUM
5940 WGS_1984_EPSG_Russia_Polar_Stereographic PROJCS["WGS_1984_EPSG_Russia_Polar_Stereographic",GEOGCS["GCS_WGS_1984",DATUM[
6050 GR96_EPSG_Arctic_zone_1-25 PROJCS["GR96_EPSG_Arctic_zone_1-25",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenla
6051 GR96_EPSG_Arctic_zone_2-18 PROJCS["GR96_EPSG_Arctic_zone_2-18",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenla
6052 GR96_EPSG_Arctic_zone_2-20 PROJCS["GR96_EPSG_Arctic_zone_2-20",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenla
6053 GR96_EPSG_Arctic_zone_3-29 PROJCS["GR96_EPSG_Arctic_zone_3-29",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenla
6054 GR96_EPSG_Arctic_zone_3-31 PROJCS["GR96_EPSG_Arctic_zone_3-31",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenla
6055 GR96_EPSG_Arctic_zone_3-33 PROJCS["GR96_EPSG_Arctic_zone_3-33",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenla
6056 GR96_EPSG_Arctic_zone_4-20 PROJCS["GR96_EPSG_Arctic_zone_4-20",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenla
6057 GR96_EPSG_Arctic_zone_4-22 PROJCS["GR96_EPSG_Arctic_zone_4-22",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenla
6058 GR96_EPSG_Arctic_zone_4-24 PROJCS["GR96_EPSG_Arctic_zone_4-24",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenla
6059 GR96_EPSG_Arctic_zone_5-41 PROJCS["GR96_EPSG_Arctic_zone_5-41",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenla
6060 GR96_EPSG_Arctic_zone_5-43 PROJCS["GR96_EPSG_Arctic_zone_5-43",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenla

Copyright 1995-2015 Esri. All rights reserved. 365


ArcGIS Runtime SDK for .NET

6061 GR96_EPSG_Arctic_zone_5-45 PROJCS["GR96_EPSG_Arctic_zone_5-45",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenla


6062 GR96_EPSG_Arctic_zone_6-26 PROJCS["GR96_EPSG_Arctic_zone_6-26",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenla
6063 GR96_EPSG_Arctic_zone_6-28 PROJCS["GR96_EPSG_Arctic_zone_6-28",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenla
6064 GR96_EPSG_Arctic_zone_6-30 PROJCS["GR96_EPSG_Arctic_zone_6-30",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenla
6065 GR96_EPSG_Arctic_zone_7-11 PROJCS["GR96_EPSG_Arctic_zone_7-11",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenla
6066 GR96_EPSG_Arctic_zone_7-13 PROJCS["GR96_EPSG_Arctic_zone_7-13",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenla
6067 GR96_EPSG_Arctic_zone_8-20 PROJCS["GR96_EPSG_Arctic_zone_8-20",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenla
6068 GR96_EPSG_Arctic_zone_8-22 PROJCS["GR96_EPSG_Arctic_zone_8-22",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenla
6069 ETRS_1989_EPSG_Arctic_zone_2-22 PROJCS["ETRS_1989_EPSG_Arctic_zone_2-22",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS
6070 ETRS_1989_EPSG_Arctic_zone_3-11 PROJCS["ETRS_1989_EPSG_Arctic_zone_3-11",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS
6071 ETRS_1989_EPSG_Arctic_zone_4-26 PROJCS["ETRS_1989_EPSG_Arctic_zone_4-26",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS
6072 ETRS_1989_EPSG_Arctic_zone_4-28 PROJCS["ETRS_1989_EPSG_Arctic_zone_4-28",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS
6073 ETRS_1989_EPSG_Arctic_zone_5-11 PROJCS["ETRS_1989_EPSG_Arctic_zone_5-11",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS
6074 ETRS_1989_EPSG_Arctic_zone_5-13 PROJCS["ETRS_1989_EPSG_Arctic_zone_5-13",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS
6075 WGS_1984_EPSG_Arctic_zone_2-24 PROJCS["WGS_1984_EPSG_Arctic_zone_2-24",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6076 WGS_1984_EPSG_Arctic_zone_2-26 PROJCS["WGS_1984_EPSG_Arctic_zone_2-26",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6077 WGS_1984_EPSG_Arctic_zone_3-13 PROJCS["WGS_1984_EPSG_Arctic_zone_3-13",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6078 WGS_1984_EPSG_Arctic_zone_3-15 PROJCS["WGS_1984_EPSG_Arctic_zone_3-15",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6079 WGS_1984_EPSG_Arctic_zone_3-17 PROJCS["WGS_1984_EPSG_Arctic_zone_3-17",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6080 WGS_1984_EPSG_Arctic_zone_3-19 PROJCS["WGS_1984_EPSG_Arctic_zone_3-19",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6081 WGS_1984_EPSG_Arctic_zone_4-30 PROJCS["WGS_1984_EPSG_Arctic_zone_4-30",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6082 WGS_1984_EPSG_Arctic_zone_4-32 PROJCS["WGS_1984_EPSG_Arctic_zone_4-32",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6083 WGS_1984_EPSG_Arctic_zone_4-34 PROJCS["WGS_1984_EPSG_Arctic_zone_4-34",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6084 WGS_1984_EPSG_Arctic_zone_4-36 PROJCS["WGS_1984_EPSG_Arctic_zone_4-36",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6085 WGS_1984_EPSG_Arctic_zone_4-38 PROJCS["WGS_1984_EPSG_Arctic_zone_4-38",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6086 WGS_1984_EPSG_Arctic_zone_4-40 PROJCS["WGS_1984_EPSG_Arctic_zone_4-40",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6087 WGS_1984_EPSG_Arctic_zone_5-15 PROJCS["WGS_1984_EPSG_Arctic_zone_5-15",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6088 WGS_1984_EPSG_Arctic_zone_5-17 PROJCS["WGS_1984_EPSG_Arctic_zone_5-17",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6089 WGS_1984_EPSG_Arctic_zone_5-19 PROJCS["WGS_1984_EPSG_Arctic_zone_5-19",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6090 WGS_1984_EPSG_Arctic_zone_5-21 PROJCS["WGS_1984_EPSG_Arctic_zone_5-21",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6091 WGS_1984_EPSG_Arctic_zone_5-23 PROJCS["WGS_1984_EPSG_Arctic_zone_5-23",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6092 WGS_1984_EPSG_Arctic_zone_5-25 PROJCS["WGS_1984_EPSG_Arctic_zone_5-25",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6093 WGS_1984_EPSG_Arctic_zone_5-27 PROJCS["WGS_1984_EPSG_Arctic_zone_5-27",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6094 NAD_1983_NSRS2007_EPSG_Arctic_zone_5-29 PROJCS["NAD_1983_NSRS2007_EPSG_Arctic_zone_5-29",GEOGCS["GCS_NAD_1983_NSRS20
6095 NAD_1983_NSRS2007_EPSG_Arctic_zone_5-31 PROJCS["NAD_1983_NSRS2007_EPSG_Arctic_zone_5-31",GEOGCS["GCS_NAD_1983_NSRS20
6096 NAD_1983_NSRS2007_EPSG_Arctic_zone_6-14 PROJCS["NAD_1983_NSRS2007_EPSG_Arctic_zone_6-14",GEOGCS["GCS_NAD_1983_NSRS20
6097 NAD_1983_NSRS2007_EPSG_Arctic_zone_6-16 PROJCS["NAD_1983_NSRS2007_EPSG_Arctic_zone_6-16",GEOGCS["GCS_NAD_1983_NSRS20
6098 NAD_1983_CSRS_EPSG_Arctic_zone_1-23 PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_1-23",GEOGCS["GCS_North_American_1983_CS
6099 NAD_1983_CSRS_EPSG_Arctic_zone_2-14 PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_2-14",GEOGCS["GCS_North_American_1983_CS
6100 NAD_1983_CSRS_EPSG_Arctic_zone_2-16 PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_2-16",GEOGCS["GCS_North_American_1983_CS
6101 NAD_1983_CSRS_EPSG_Arctic_zone_3-25 PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_3-25",GEOGCS["GCS_North_American_1983_CS
6102 NAD_1983_CSRS_EPSG_Arctic_zone_3-27 PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_3-27",GEOGCS["GCS_North_American_1983_CS
6103 NAD_1983_CSRS_EPSG_Arctic_zone_3-29 PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_3-29",GEOGCS["GCS_North_American_1983_CS
6104 NAD_1983_CSRS_EPSG_Arctic_zone_4-14 PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_4-14",GEOGCS["GCS_North_American_1983_CS
6105 NAD_1983_CSRS_EPSG_Arctic_zone_4-16 PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_4-16",GEOGCS["GCS_North_American_1983_CS
6106 NAD_1983_CSRS_EPSG_Arctic_zone_4-18 PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_4-18",GEOGCS["GCS_North_American_1983_CS
6107 NAD_1983_CSRS_EPSG_Arctic_zone_5-33 PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_5-33",GEOGCS["GCS_North_American_1983_CS
6108 NAD_1983_CSRS_EPSG_Arctic_zone_5-35 PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_5-35",GEOGCS["GCS_North_American_1983_CS
6109 NAD_1983_CSRS_EPSG_Arctic_zone_5-37 PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_5-37",GEOGCS["GCS_North_American_1983_CS
6110 NAD_1983_CSRS_EPSG_Arctic_zone_5-39 PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_5-39",GEOGCS["GCS_North_American_1983_CS
6111 NAD_1983_CSRS_EPSG_Arctic_zone_6-18 PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_6-18",GEOGCS["GCS_North_American_1983_CS
6112 NAD_1983_CSRS_EPSG_Arctic_zone_6-20 PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_6-20",GEOGCS["GCS_North_American_1983_CS
6113 NAD_1983_CSRS_EPSG_Arctic_zone_6-22 PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_6-22",GEOGCS["GCS_North_American_1983_CS
6114 NAD_1983_CSRS_EPSG_Arctic_zone_6-24 PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_6-24",GEOGCS["GCS_North_American_1983_CS

Copyright 1995-2015 Esri. All rights reserved. 366


ArcGIS Runtime SDK for .NET

6115 WGS_1984_EPSG_Arctic_zone_1-27 PROJCS["WGS_1984_EPSG_Arctic_zone_1-27",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1


6116 WGS_1984_EPSG_Arctic_zone_1-29 PROJCS["WGS_1984_EPSG_Arctic_zone_1-29",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6117 WGS_1984_EPSG_Arctic_zone_1-31 PROJCS["WGS_1984_EPSG_Arctic_zone_1-31",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6118 WGS_1984_EPSG_Arctic_zone_1-21 PROJCS["WGS_1984_EPSG_Arctic_zone_1-21",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6119 WGS_1984_EPSG_Arctic_zone_2-28 PROJCS["WGS_1984_EPSG_Arctic_zone_2-28",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6120 WGS_1984_EPSG_Arctic_zone_2-10 PROJCS["WGS_1984_EPSG_Arctic_zone_2-10",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6121 WGS_1984_EPSG_Arctic_zone_2-12 PROJCS["WGS_1984_EPSG_Arctic_zone_2-12",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6122 WGS_1984_EPSG_Arctic_zone_3-21 PROJCS["WGS_1984_EPSG_Arctic_zone_3-21",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6123 WGS_1984_EPSG_Arctic_zone_3-23 PROJCS["WGS_1984_EPSG_Arctic_zone_3-23",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6124 WGS_1984_EPSG_Arctic_zone_4-12 PROJCS["WGS_1984_EPSG_Arctic_zone_4-12",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1
6125 ETRS_1989_EPSG_Arctic_zone_5-47 PROJCS["ETRS_1989_EPSG_Arctic_zone_5-47",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS
6128 Grand_Cayman_National_Grid_1959 PROJCS["Grand_Cayman_National_Grid_1959",GEOGCS["GCS_Grand_Cayman_1959",DATUM["D
6129 Sister_Islands_National_Grid_1961 PROJCS["Sister_Islands_National_Grid_1961",GEOGCS["GCS_Little_Cayman_1961",DATUM["D_L
6204 Macedonian_State_Coordinate_System PROJCS["Macedonian_State_Coordinate_System",GEOGCS["GCS_MGI_1901",DATUM["D_MGI_1
6210 SIRGAS_2000_UTM_Zone_23N PROJCS["SIRGAS_2000_UTM_Zone_23N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
6211 SIRGAS_2000_UTM_Zone_24N PROJCS["SIRGAS_2000_UTM_Zone_24N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
6244 MAGNA_Arauca_2007 PROJCS["MAGNA_Arauca_2007",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GR
6245 MAGNA_Armenia_Quindio_2006 PROJCS["MAGNA_Armenia_Quindio_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHE
6246 MAGNA_Barranquilla_Atlantico_1997 PROJCS["MAGNA_Barranquilla_Atlantico_1997",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",S
6247 MAGNA_Bogota_DC_2005 PROJCS["MAGNA_Bogota_DC_2005",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID
6248 MAGNA_Bucaramanga_Santander_2008 PROJCS["MAGNA_Bucaramanga_Santander_2008",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA
6249 MAGNA_Cali_Valle_del_Cauca_2009 PROJCS["MAGNA_Cali_Valle_del_Cauca_2009",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",S
6250 MAGNA_Cartagena_Bolivar_2005 PROJCS["MAGNA_Cartagena_Bolivar_2005",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPH
6251 MAGNA_Cucuta_Norte_de_Santander_2011 PROJCS["MAGNA_Cucuta_Norte_de_Santander_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAG
6252 MAGNA_Florencia_Caqueta_2007 PROJCS["MAGNA_Florencia_Caqueta_2007",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPH
6253 MAGNA_Ibague_Tolima_2007 PROJCS["MAGNA_Ibague_Tolima_2007",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHERO
6254 MAGNA_Inirida_Guainia_2008 PROJCS["MAGNA_Inirida_Guainia_2008",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHERO
6255 MAGNA_Leticia_Amazonas_1994 PROJCS["MAGNA_Leticia_Amazonas_1994",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPH
6256 MAGNA_Manizales_Caldas_2011 PROJCS["MAGNA_Manizales_Caldas_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPH
6257 MAGNA_Medellin_Antioquia_2010 PROJCS["MAGNA_Medellin_Antioquia_2010",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPH
6258 MAGNA_Mitu_Vaupes_2011 PROJCS["MAGNA_Mitu_Vaupes_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROI
6259 MAGNA_Mocoa_Putumayo_2011 PROJCS["MAGNA_Mocoa_Putumayo_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHE
6260 MAGNA_Monteria_Cordoba_2006 PROJCS["MAGNA_Monteria_Cordoba_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPH
6261 MAGNA_Neiva_Huila_2006 PROJCS["MAGNA_Neiva_Huila_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID
6262 MAGNA_Pasto_Narino_2008 PROJCS["MAGNA_Pasto_Narino_2008",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHERO
6263 MAGNA_Pereira_Risaralda_2007 PROJCS["MAGNA_Pereira_Risaralda_2007",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHE
6264 MAGNA_Popayan_Cauca_2006 PROJCS["MAGNA_Popayan_Cauca_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHER
6265 MAGNA_Puerto_Carreno_Vichada_2011 PROJCS["MAGNA_Puerto_Carreno_Vichada_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA
6266 MAGNA_Quibdo_Choco_2011 PROJCS["MAGNA_Quibdo_Choco_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHERO
6267 MAGNA_Riohacha_La_Guajira_2006 PROJCS["MAGNA_Riohacha_La_Guajira_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",S
6268 MAGNA_San_Andres_2007 PROJCS["MAGNA_San_Andres_2007",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID
6269 MAGNA_San_Jose_del_Guaviare_2011 PROJCS["MAGNA_San_Jose_del_Guaviare_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA
6270 MAGNA_Santa_Marta_Magdalena_2007 PROJCS["MAGNA_Santa_Marta_Magdalena_2007",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA
6271 MAGNA_Sucre_2006 PROJCS["MAGNA_Sucre_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS
6272 MAGNA_Tunja_Boyaca_1997 PROJCS["MAGNA_Tunja_Boyaca_1997",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHERO
6273 MAGNA_Valledupar_Cesar_2011 PROJCS["MAGNA_Valledupar_Cesar_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHE
6274 MAGNA_Villavicencio_Meta_2011 PROJCS["MAGNA_Villavicencio_Meta_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPH
6275 MAGNA_Yopal_Casanare_2006 PROJCS["MAGNA_Yopal_Casanare_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHER
6316 Macedonia_State_Coordinate_System_zone_7 PROJCS["Macedonia_State_Coordinate_System_zone_7",GEOGCS["GCS_MGI_1901",DATUM["D_
6328 NAD_1983_2011_UTM_Zone_59N PROJCS["NAD_1983_2011_UTM_Zone_59N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD
6329 NAD_1983_2011_UTM_Zone_60N PROJCS["NAD_1983_2011_UTM_Zone_60N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD
6330 NAD_1983_2011_UTM_Zone_1N PROJCS["NAD_1983_2011_UTM_Zone_1N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_
6331 NAD_1983_2011_UTM_Zone_2N PROJCS["NAD_1983_2011_UTM_Zone_2N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_
6332 NAD_1983_2011_UTM_Zone_3N PROJCS["NAD_1983_2011_UTM_Zone_3N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_

Copyright 1995-2015 Esri. All rights reserved. 367


ArcGIS Runtime SDK for .NET

6333 NAD_1983_2011_UTM_Zone_4N PROJCS["NAD_1983_2011_UTM_Zone_4N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_


6334 NAD_1983_2011_UTM_Zone_5N PROJCS["NAD_1983_2011_UTM_Zone_5N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_
6335 NAD_1983_2011_UTM_Zone_6N PROJCS["NAD_1983_2011_UTM_Zone_6N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_
6336 NAD_1983_2011_UTM_Zone_7N PROJCS["NAD_1983_2011_UTM_Zone_7N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_
6337 NAD_1983_2011_UTM_Zone_8N PROJCS["NAD_1983_2011_UTM_Zone_8N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_
6338 NAD_1983_2011_UTM_Zone_9N PROJCS["NAD_1983_2011_UTM_Zone_9N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_
6339 NAD_1983_2011_UTM_Zone_10N PROJCS["NAD_1983_2011_UTM_Zone_10N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD
6340 NAD_1983_2011_UTM_Zone_11N PROJCS["NAD_1983_2011_UTM_Zone_11N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD
6341 NAD_1983_2011_UTM_Zone_12N PROJCS["NAD_1983_2011_UTM_Zone_12N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD
6342 NAD_1983_2011_UTM_Zone_13N PROJCS["NAD_1983_2011_UTM_Zone_13N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD
6343 NAD_1983_2011_UTM_Zone_14N PROJCS["NAD_1983_2011_UTM_Zone_14N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD
6344 NAD_1983_2011_UTM_Zone_15N PROJCS["NAD_1983_2011_UTM_Zone_15N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD
6345 NAD_1983_2011_UTM_Zone_16N PROJCS["NAD_1983_2011_UTM_Zone_16N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD
6346 NAD_1983_2011_UTM_Zone_17N PROJCS["NAD_1983_2011_UTM_Zone_17N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD
6347 NAD_1983_2011_UTM_Zone_18N PROJCS["NAD_1983_2011_UTM_Zone_18N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD
6348 NAD_1983_2011_UTM_Zone_19N PROJCS["NAD_1983_2011_UTM_Zone_19N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD
6350 NAD_1983_2011_Contiguous_USA_Albers PROJCS["NAD_1983_2011_Contiguous_USA_Albers",GEOGCS["GCS_NAD_1983_2011",DATUM[
6351 NAD_1983_2011_EPSG_Arctic_zone_5-29 PROJCS["NAD_1983_2011_EPSG_Arctic_zone_5-29",GEOGCS["GCS_NAD_1983_2011",DATUM[
6352 NAD_1983_2011_EPSG_Arctic_zone_5-31 PROJCS["NAD_1983_2011_EPSG_Arctic_zone_5-31",GEOGCS["GCS_NAD_1983_2011",DATUM[
6353 NAD_1983_2011_EPSG_Arctic_zone_6-14 PROJCS["NAD_1983_2011_EPSG_Arctic_zone_6-14",GEOGCS["GCS_NAD_1983_2011",DATUM[
6354 NAD_1983_2011_EPSG_Arctic_zone_6-16 PROJCS["NAD_1983_2011_EPSG_Arctic_zone_6-16",GEOGCS["GCS_NAD_1983_2011",DATUM[
6355 NAD_1983_2011_StatePlane_Alabama_East_FIPS_0101 PROJCS["NAD_1983_2011_StatePlane_Alabama_East_FIPS_0101",GEOGCS["GCS_NAD_1983_2
6356 NAD_1983_2011_StatePlane_Alabama_West_FIPS_0102 PROJCS["NAD_1983_2011_StatePlane_Alabama_West_FIPS_0102",GEOGCS["GCS_NAD_1983_
6362 Mexico_ITRF92_LCC PROJCS["Mexico_ITRF92_LCC",GEOGCS["GCS_Mexican_Datum_of_1993",DATUM["D_Mexican_
6366 Mexico_ITRF2008_UTM_Zone_11N PROJCS["Mexico_ITRF2008_UTM_Zone_11N",GEOGCS["GCS_Mexico_ITRF2008",DATUM["D_Me
6367 Mexico_ITRF2008_UTM_Zone_12N PROJCS["Mexico_ITRF2008_UTM_Zone_12N",GEOGCS["GCS_Mexico_ITRF2008",DATUM["D_Me
6368 Mexico_ITRF2008_UTM_Zone_13N PROJCS["Mexico_ITRF2008_UTM_Zone_13N",GEOGCS["GCS_Mexico_ITRF2008",DATUM["D_Me
6369 Mexico_ITRF2008_UTM_Zone_14N PROJCS["Mexico_ITRF2008_UTM_Zone_14N",GEOGCS["GCS_Mexico_ITRF2008",DATUM["D_Me
6370 Mexico_ITRF2008_UTM_Zone_15N PROJCS["Mexico_ITRF2008_UTM_Zone_15N",GEOGCS["GCS_Mexico_ITRF2008",DATUM["D_Me
6371 Mexico_ITRF2008_UTM_Zone_16N PROJCS["Mexico_ITRF2008_UTM_Zone_16N",GEOGCS["GCS_Mexico_ITRF2008",DATUM["D_Me
6372 Mexico_ITRF2008_LCC PROJCS["Mexico_ITRF2008_LCC",GEOGCS["GCS_Mexico_ITRF2008",DATUM["D_Mexico_ITRF2
6381 Ukraine_2000_TM_Zone_7 PROJCS["Ukraine_2000_TM_Zone_7",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",
6382 Ukraine_2000_TM_Zone_8 PROJCS["Ukraine_2000_TM_Zone_8",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",
6383 Ukraine_2000_TM_Zone_9 PROJCS["Ukraine_2000_TM_Zone_9",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",
6384 Ukraine_2000_TM_Zone_10 PROJCS["Ukraine_2000_TM_Zone_10",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000"
6385 Ukraine_2000_TM_Zone_11 PROJCS["Ukraine_2000_TM_Zone_11",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000"
6386 Ukraine_2000_TM_Zone_12 PROJCS["Ukraine_2000_TM_Zone_12",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000"
6387 Ukraine_2000_TM_Zone_13 PROJCS["Ukraine_2000_TM_Zone_13",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000"
6391 Cayman_Islands_National_Grid_2011 PROJCS["Cayman_Islands_National_Grid_2011",GEOGCS["GCS_CIGD11",DATUM["D_Cayman_Is
6393 NAD_1983_2011_Alaska_Albers PROJCS["NAD_1983_2011_Alaska_Albers",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1
6394 NAD_1983_2011_StatePlane_Alaska_1_FIPS_5001 PROJCS["NAD_1983_2011_StatePlane_Alaska_1_FIPS_5001",GEOGCS["GCS_NAD_1983_2011"
6395 NAD_1983_2011_StatePlane_Alaska_2_FIPS_5002 PROJCS["NAD_1983_2011_StatePlane_Alaska_2_FIPS_5002",GEOGCS["GCS_NAD_1983_2011"
6396 NAD_1983_2011_StatePlane_Alaska_3_FIPS_5003 PROJCS["NAD_1983_2011_StatePlane_Alaska_3_FIPS_5003",GEOGCS["GCS_NAD_1983_2011"
6397 NAD_1983_2011_StatePlane_Alaska_4_FIPS_5004 PROJCS["NAD_1983_2011_StatePlane_Alaska_4_FIPS_5004",GEOGCS["GCS_NAD_1983_2011"
6398 NAD_1983_2011_StatePlane_Alaska_5_FIPS_5005 PROJCS["NAD_1983_2011_StatePlane_Alaska_5_FIPS_5005",GEOGCS["GCS_NAD_1983_2011"
6399 NAD_1983_2011_StatePlane_Alaska_6_FIPS_5006 PROJCS["NAD_1983_2011_StatePlane_Alaska_6_FIPS_5006",GEOGCS["GCS_NAD_1983_2011"
6400 NAD_1983_2011_StatePlane_Alaska_7_FIPS_5007 PROJCS["NAD_1983_2011_StatePlane_Alaska_7_FIPS_5007",GEOGCS["GCS_NAD_1983_2011"
6401 NAD_1983_2011_StatePlane_Alaska_8_FIPS_5008 PROJCS["NAD_1983_2011_StatePlane_Alaska_8_FIPS_5008",GEOGCS["GCS_NAD_1983_2011"
6402 NAD_1983_2011_StatePlane_Alaska_9_FIPS_5009 PROJCS["NAD_1983_2011_StatePlane_Alaska_9_FIPS_5009",GEOGCS["GCS_NAD_1983_2011"
6403 NAD_1983_2011_StatePlane_Alaska_10_FIPS_5010 PROJCS["NAD_1983_2011_StatePlane_Alaska_10_FIPS_5010",GEOGCS["GCS_NAD_1983_2011
6404 NAD_1983_2011_StatePlane_Arizona_Central_FIPS_0202 PROJCS["NAD_1983_2011_StatePlane_Arizona_Central_FIPS_0202",GEOGCS["GCS_NAD_1983
6405 NAD_1983_2011_StatePlane_Arizona_Central_FIPS_0202_Ft_Intl PROJCS["NAD_1983_2011_StatePlane_Arizona_Central_FIPS_0202_Ft_Intl",GEOGCS["GCS_NAD
6406 NAD_1983_2011_StatePlane_Arizona_East_FIPS_0201 PROJCS["NAD_1983_2011_StatePlane_Arizona_East_FIPS_0201",GEOGCS["GCS_NAD_1983_20
6407 NAD_1983_2011_StatePlane_Arizona_East_FIPS_0201_Ft_Intl PROJCS["NAD_1983_2011_StatePlane_Arizona_East_FIPS_0201_Ft_Intl",GEOGCS["GCS_NAD_1

Copyright 1995-2015 Esri. All rights reserved. 368


ArcGIS Runtime SDK for .NET

6408 NAD_1983_2011_StatePlane_Arizona_West_FIPS_0203 PROJCS["NAD_1983_2011_StatePlane_Arizona_West_FIPS_0203",GEOGCS["GCS_NAD_1983_2


6409 NAD_1983_2011_StatePlane_Arizona_West_FIPS_0203_Ft_Intl PROJCS["NAD_1983_2011_StatePlane_Arizona_West_FIPS_0203_Ft_Intl",GEOGCS["GCS_NAD_
6410 NAD_1983_2011_StatePlane_Arkansas_North_FIPS_0301 PROJCS["NAD_1983_2011_StatePlane_Arkansas_North_FIPS_0301",GEOGCS["GCS_NAD_1983
6411 NAD_1983_2011_StatePlane_Arkansas_North_FIPS_0301_Ft_US PROJCS["NAD_1983_2011_StatePlane_Arkansas_North_FIPS_0301_Ft_US",GEOGCS["GCS_NAD
6412 NAD_1983_2011_StatePlane_Arkansas_South_FIPS_0302 PROJCS["NAD_1983_2011_StatePlane_Arkansas_South_FIPS_0302",GEOGCS["GCS_NAD_1983
6413 NAD_1983_2011_StatePlane_Arkansas_South_FIPS_0302_Ft_US PROJCS["NAD_1983_2011_StatePlane_Arkansas_South_FIPS_0302_Ft_US",GEOGCS["GCS_NA
6414 NAD_1983_2011_California_Teale_Albers PROJCS["NAD_1983_2011_California_Teale_Albers",GEOGCS["GCS_NAD_1983_2011",DATUM["
6415 NAD_1983_2011_StatePlane_California_I_FIPS_0401 PROJCS["NAD_1983_2011_StatePlane_California_I_FIPS_0401",GEOGCS["GCS_NAD_1983_201
6416 NAD_1983_2011_StatePlane_California_I_FIPS_0401_Ft_US PROJCS["NAD_1983_2011_StatePlane_California_I_FIPS_0401_Ft_US",GEOGCS["GCS_NAD_19
6417 NAD_1983_2011_StatePlane_California_II_FIPS_0402 PROJCS["NAD_1983_2011_StatePlane_California_II_FIPS_0402",GEOGCS["GCS_NAD_1983_201
6418 NAD_1983_2011_StatePlane_California_II_FIPS_0402_Ft_US PROJCS["NAD_1983_2011_StatePlane_California_II_FIPS_0402_Ft_US",GEOGCS["GCS_NAD_19
6419 NAD_1983_2011_StatePlane_California_III_FIPS_0403 PROJCS["NAD_1983_2011_StatePlane_California_III_FIPS_0403",GEOGCS["GCS_NAD_1983_20
6420 NAD_1983_2011_StatePlane_California_III_FIPS_0403_Ft_US PROJCS["NAD_1983_2011_StatePlane_California_III_FIPS_0403_Ft_US",GEOGCS["GCS_NAD_1
6421 NAD_1983_2011_StatePlane_California_IV_FIPS_0404 PROJCS["NAD_1983_2011_StatePlane_California_IV_FIPS_0404",GEOGCS["GCS_NAD_1983_20
6422 NAD_1983_2011_StatePlane_California_IV_FIPS_0404_Ft_US PROJCS["NAD_1983_2011_StatePlane_California_IV_FIPS_0404_Ft_US",GEOGCS["GCS_NAD_1
6423 NAD_1983_2011_StatePlane_California_V_FIPS_0405 PROJCS["NAD_1983_2011_StatePlane_California_V_FIPS_0405",GEOGCS["GCS_NAD_1983_201
6424 NAD_1983_2011_StatePlane_California_V_FIPS_0405_Ft_US PROJCS["NAD_1983_2011_StatePlane_California_V_FIPS_0405_Ft_US",GEOGCS["GCS_NAD_1
6425 NAD_1983_2011_StatePlane_California_VI_FIPS_0406 PROJCS["NAD_1983_2011_StatePlane_California_VI_FIPS_0406",GEOGCS["GCS_NAD_1983_20
6426 NAD_1983_2011_StatePlane_California_VI_FIPS_0406_Ft_US PROJCS["NAD_1983_2011_StatePlane_California_VI_FIPS_0406_Ft_US",GEOGCS["GCS_NAD_1
6427 NAD_1983_2011_StatePlane_Colorado_Central_FIPS_0502 PROJCS["NAD_1983_2011_StatePlane_Colorado_Central_FIPS_0502",GEOGCS["GCS_NAD_198
6428 NAD_1983_2011_StatePlane_Colorado_Central_FIPS_0502_Ft_US PROJCS["NAD_1983_2011_StatePlane_Colorado_Central_FIPS_0502_Ft_US",GEOGCS["GCS_NA
6429 NAD_1983_2011_StatePlane_Colorado_North_FIPS_0501 PROJCS["NAD_1983_2011_StatePlane_Colorado_North_FIPS_0501",GEOGCS["GCS_NAD_1983_
6430 NAD_1983_2011_StatePlane_Colorado_North_FIPS_0501_Ft_US PROJCS["NAD_1983_2011_StatePlane_Colorado_North_FIPS_0501_Ft_US",GEOGCS["GCS_NAD
6431 NAD_1983_2011_StatePlane_Colorado_South_FIPS_0503 PROJCS["NAD_1983_2011_StatePlane_Colorado_South_FIPS_0503",GEOGCS["GCS_NAD_1983
6432 NAD_1983_2011_StatePlane_Colorado_South_FIPS_0503_Ft_US PROJCS["NAD_1983_2011_StatePlane_Colorado_South_FIPS_0503_Ft_US",GEOGCS["GCS_NAD
6433 NAD_1983_2011_StatePlane_Connecticut_FIPS_0600 PROJCS["NAD_1983_2011_StatePlane_Connecticut_FIPS_0600",GEOGCS["GCS_NAD_1983_201
6434 NAD_1983_2011_StatePlane_Connecticut_FIPS_0600_Ft_US PROJCS["NAD_1983_2011_StatePlane_Connecticut_FIPS_0600_Ft_US",GEOGCS["GCS_NAD_19
6435 NAD_1983_2011_StatePlane_Delaware_FIPS_0700 PROJCS["NAD_1983_2011_StatePlane_Delaware_FIPS_0700",GEOGCS["GCS_NAD_1983_2011"
6436 NAD_1983_2011_StatePlane_Delaware_FIPS_0700_Ft_US PROJCS["NAD_1983_2011_StatePlane_Delaware_FIPS_0700_Ft_US",GEOGCS["GCS_NAD_1983
6437 NAD_1983_2011_StatePlane_Florida_East_FIPS_0901 PROJCS["NAD_1983_2011_StatePlane_Florida_East_FIPS_0901",GEOGCS["GCS_NAD_1983_20
6438 NAD_1983_2011_StatePlane_Florida_East_FIPS_0901_Ft_US PROJCS["NAD_1983_2011_StatePlane_Florida_East_FIPS_0901_Ft_US",GEOGCS["GCS_NAD_1
6439 NAD_1983_2011_Florida_GDL_Albers PROJCS["NAD_1983_2011_Florida_GDL_Albers",GEOGCS["GCS_NAD_1983_2011",DATUM["D_N
6440 NAD_1983_2011_StatePlane_Florida_North_FIPS_0903 PROJCS["NAD_1983_2011_StatePlane_Florida_North_FIPS_0903",GEOGCS["GCS_NAD_1983_2
6441 NAD_1983_2011_StatePlane_Florida_North_FIPS_0903_Ft_US PROJCS["NAD_1983_2011_StatePlane_Florida_North_FIPS_0903_Ft_US",GEOGCS["GCS_NAD_
6442 NAD_1983_2011_StatePlane_Florida_West_FIPS_0902 PROJCS["NAD_1983_2011_StatePlane_Florida_West_FIPS_0902",GEOGCS["GCS_NAD_1983_20
6443 NAD_1983_2011_StatePlane_Florida_West_FIPS_0902_Ft_US PROJCS["NAD_1983_2011_StatePlane_Florida_West_FIPS_0902_Ft_US",GEOGCS["GCS_NAD_1
6444 NAD_1983_2011_StatePlane_Georgia_East_FIPS_1001 PROJCS["NAD_1983_2011_StatePlane_Georgia_East_FIPS_1001",GEOGCS["GCS_NAD_1983_2
6445 NAD_1983_2011_StatePlane_Georgia_East_FIPS_1001_Ft_US PROJCS["NAD_1983_2011_StatePlane_Georgia_East_FIPS_1001_Ft_US",GEOGCS["GCS_NAD_
6446 NAD_1983_2011_StatePlane_Georgia_West_FIPS_1002 PROJCS["NAD_1983_2011_StatePlane_Georgia_West_FIPS_1002",GEOGCS["GCS_NAD_1983_2
6447 NAD_1983_2011_StatePlane_Georgia_West_FIPS_1002_Ft_US PROJCS["NAD_1983_2011_StatePlane_Georgia_West_FIPS_1002_Ft_US",GEOGCS["GCS_NAD_
6448 NAD_1983_2011_StatePlane_Idaho_Central_FIPS_1102 PROJCS["NAD_1983_2011_StatePlane_Idaho_Central_FIPS_1102",GEOGCS["GCS_NAD_1983_2
6449 NAD_1983_2011_StatePlane_Idaho_Central_FIPS_1102_Ft_US PROJCS["NAD_1983_2011_StatePlane_Idaho_Central_FIPS_1102_Ft_US",GEOGCS["GCS_NAD_
6450 NAD_1983_2011_StatePlane_Idaho_East_FIPS_1101 PROJCS["NAD_1983_2011_StatePlane_Idaho_East_FIPS_1101",GEOGCS["GCS_NAD_1983_201
6451 NAD_1983_2011_StatePlane_Idaho_East_FIPS_1101_Ft_US PROJCS["NAD_1983_2011_StatePlane_Idaho_East_FIPS_1101_Ft_US",GEOGCS["GCS_NAD_19
6452 NAD_1983_2011_StatePlane_Idaho_West_FIPS_1103 PROJCS["NAD_1983_2011_StatePlane_Idaho_West_FIPS_1103",GEOGCS["GCS_NAD_1983_201
6453 NAD_1983_2011_StatePlane_Idaho_West_FIPS_1103_Ft_US PROJCS["NAD_1983_2011_StatePlane_Idaho_West_FIPS_1103_Ft_US",GEOGCS["GCS_NAD_19
6454 NAD_1983_2011_StatePlane_Illinois_East_FIPS_1201 PROJCS["NAD_1983_2011_StatePlane_Illinois_East_FIPS_1201",GEOGCS["GCS_NAD_1983_201
6455 NAD_1983_2011_StatePlane_Illinois_East_FIPS_1201_Ft_US PROJCS["NAD_1983_2011_StatePlane_Illinois_East_FIPS_1201_Ft_US",GEOGCS["GCS_NAD_19
6456 NAD_1983_2011_StatePlane_Illinois_West_FIPS_1202 PROJCS["NAD_1983_2011_StatePlane_Illinois_West_FIPS_1202",GEOGCS["GCS_NAD_1983_20
6457 NAD_1983_2011_StatePlane_Illinois_West_FIPS_1202_Ft_US PROJCS["NAD_1983_2011_StatePlane_Illinois_West_FIPS_1202_Ft_US",GEOGCS["GCS_NAD_1
6458 NAD_1983_2011_StatePlane_Indiana_East_FIPS_1301 PROJCS["NAD_1983_2011_StatePlane_Indiana_East_FIPS_1301",GEOGCS["GCS_NAD_1983_20
6459 NAD_1983_2011_StatePlane_Indiana_East_FIPS_1301_Ft_US PROJCS["NAD_1983_2011_StatePlane_Indiana_East_FIPS_1301_Ft_US",GEOGCS["GCS_NAD_1
6460 NAD_1983_2011_StatePlane_Indiana_West_FIPS_1302 PROJCS["NAD_1983_2011_StatePlane_Indiana_West_FIPS_1302",GEOGCS["GCS_NAD_1983_2
6461 NAD_1983_2011_StatePlane_Indiana_West_FIPS_1302_Ft_US PROJCS["NAD_1983_2011_StatePlane_Indiana_West_FIPS_1302_Ft_US",GEOGCS["GCS_NAD_

Copyright 1995-2015 Esri. All rights reserved. 369


ArcGIS Runtime SDK for .NET

6462 NAD_1983_2011_StatePlane_Iowa_North_FIPS_1401 PROJCS["NAD_1983_2011_StatePlane_Iowa_North_FIPS_1401",GEOGCS["GCS_NAD_1983_201


6463 NAD_1983_2011_StatePlane_Iowa_North_FIPS_1401_Ft_US PROJCS["NAD_1983_2011_StatePlane_Iowa_North_FIPS_1401_Ft_US",GEOGCS["GCS_NAD_19
6464 NAD_1983_2011_StatePlane_Iowa_South_FIPS_1402 PROJCS["NAD_1983_2011_StatePlane_Iowa_South_FIPS_1402",GEOGCS["GCS_NAD_1983_201
6465 NAD_1983_2011_StatePlane_Iowa_South_FIPS_1402_Ft_US PROJCS["NAD_1983_2011_StatePlane_Iowa_South_FIPS_1402_Ft_US",GEOGCS["GCS_NAD_19
6466 NAD_1983_2011_StatePlane_Kansas_North_FIPS_1501 PROJCS["NAD_1983_2011_StatePlane_Kansas_North_FIPS_1501",GEOGCS["GCS_NAD_1983_2
6467 NAD_1983_2011_StatePlane_Kansas_North_FIPS_1501_Ft_US PROJCS["NAD_1983_2011_StatePlane_Kansas_North_FIPS_1501_Ft_US",GEOGCS["GCS_NAD_
6468 NAD_1983_2011_StatePlane_Kansas_South_FIPS_1502 PROJCS["NAD_1983_2011_StatePlane_Kansas_South_FIPS_1502",GEOGCS["GCS_NAD_1983_2
6469 NAD_1983_2011_StatePlane_Kansas_South_FIPS_1502_Ft_US PROJCS["NAD_1983_2011_StatePlane_Kansas_South_FIPS_1502_Ft_US",GEOGCS["GCS_NAD_
6470 NAD_1983_2011_StatePlane_Kentucky_North_FIPS_1601 PROJCS["NAD_1983_2011_StatePlane_Kentucky_North_FIPS_1601",GEOGCS["GCS_NAD_1983_
6471 NAD_1983_2011_StatePlane_Kentucky_North_FIPS_1601_Ft_US PROJCS["NAD_1983_2011_StatePlane_Kentucky_North_FIPS_1601_Ft_US",GEOGCS["GCS_NAD
6472 NAD_1983_2011_StatePlane_Kentucky_FIPS_1600 PROJCS["NAD_1983_2011_StatePlane_Kentucky_FIPS_1600",GEOGCS["GCS_NAD_1983_2011"
6473 NAD_1983_2011_StatePlane_Kentucky_FIPS_1600_Ft_US PROJCS["NAD_1983_2011_StatePlane_Kentucky_FIPS_1600_Ft_US",GEOGCS["GCS_NAD_1983
6474 NAD_1983_2011_StatePlane_Kentucky_South_FIPS_1602 PROJCS["NAD_1983_2011_StatePlane_Kentucky_South_FIPS_1602",GEOGCS["GCS_NAD_1983
6475 NAD_1983_2011_StatePlane_Kentucky_South_FIPS_1602_Ft_US PROJCS["NAD_1983_2011_StatePlane_Kentucky_South_FIPS_1602_Ft_US",GEOGCS["GCS_NA
6476 NAD_1983_2011_StatePlane_Louisiana_North_FIPS_1701 PROJCS["NAD_1983_2011_StatePlane_Louisiana_North_FIPS_1701",GEOGCS["GCS_NAD_1983
6477 NAD_1983_2011_StatePlane_Louisiana_North_FIPS_1701_Ft_US PROJCS["NAD_1983_2011_StatePlane_Louisiana_North_FIPS_1701_Ft_US",GEOGCS["GCS_NA
6478 NAD_1983_2011_StatePlane_Louisiana_South_FIPS_1702 PROJCS["NAD_1983_2011_StatePlane_Louisiana_South_FIPS_1702",GEOGCS["GCS_NAD_1983
6479 NAD_1983_2011_StatePlane_Louisiana_South_FIPS_1702_Ft_US PROJCS["NAD_1983_2011_StatePlane_Louisiana_South_FIPS_1702_Ft_US",GEOGCS["GCS_NA
6480 NAD_1983_2011_Maine_2000_Central_Zone PROJCS["NAD_1983_2011_Maine_2000_Central_Zone",GEOGCS["GCS_NAD_1983_2011",DATU
6481 NAD_1983_2011_Maine_2000_East_Zone PROJCS["NAD_1983_2011_Maine_2000_East_Zone",GEOGCS["GCS_NAD_1983_2011",DATUM["
6482 NAD_1983_2011_Maine_2000_West_Zone PROJCS["NAD_1983_2011_Maine_2000_West_Zone",GEOGCS["GCS_NAD_1983_2011",DATUM[
6483 NAD_1983_2011_StatePlane_Maine_East_FIPS_1801 PROJCS["NAD_1983_2011_StatePlane_Maine_East_FIPS_1801",GEOGCS["GCS_NAD_1983_201
6484 NAD_1983_2011_StatePlane_Maine_East_FIPS_1801_Ft_US PROJCS["NAD_1983_2011_StatePlane_Maine_East_FIPS_1801_Ft_US",GEOGCS["GCS_NAD_19
6485 NAD_1983_2011_StatePlane_Maine_West_FIPS_1802 PROJCS["NAD_1983_2011_StatePlane_Maine_West_FIPS_1802",GEOGCS["GCS_NAD_1983_20
6486 NAD_1983_2011_StatePlane_Maine_West_FIPS_1802_Ft_US PROJCS["NAD_1983_2011_StatePlane_Maine_West_FIPS_1802_Ft_US",GEOGCS["GCS_NAD_1
6487 NAD_1983_2011_StatePlane_Maryland_FIPS_1900 PROJCS["NAD_1983_2011_StatePlane_Maryland_FIPS_1900",GEOGCS["GCS_NAD_1983_2011"
6488 NAD_1983_2011_StatePlane_Maryland_FIPS_1900_Ft_US PROJCS["NAD_1983_2011_StatePlane_Maryland_FIPS_1900_Ft_US",GEOGCS["GCS_NAD_1983
6489 NAD_1983_2011_StatePlane_Massachusetts_Island_FIPS_2002 PROJCS["NAD_1983_2011_StatePlane_Massachusetts_Island_FIPS_2002",GEOGCS["GCS_NAD_
6490 NAD_1983_2011_StatePlane_Massachusetts_Isl_FIPS_2002_FtUS PROJCS["NAD_1983_2011_StatePlane_Massachusetts_Isl_FIPS_2002_FtUS",GEOGCS["GCS_NA
6491 NAD_1983_2011_StatePlane_Massachusetts_Mainland_FIPS_2001 PROJCS["NAD_1983_2011_StatePlane_Massachusetts_Mainland_FIPS_2001",GEOGCS["GCS_NA
6492 NAD_1983_2011_StatePlane_Massachusetts_Mnld_FIPS_2001_FtUS PROJCS["NAD_1983_2011_StatePlane_Massachusetts_Mnld_FIPS_2001_FtUS",GEOGCS["GCS_
6493 NAD_1983_2011_StatePlane_Michigan_Central_FIPS_2112 PROJCS["NAD_1983_2011_StatePlane_Michigan_Central_FIPS_2112",GEOGCS["GCS_NAD_198
6494 NAD_1983_2011_StatePlane_Michigan_Central_FIPS_2112_Ft_Intl PROJCS["NAD_1983_2011_StatePlane_Michigan_Central_FIPS_2112_Ft_Intl",GEOGCS["GCS_NA
6495 NAD_1983_2011_StatePlane_Michigan_North_FIPS_2111 PROJCS["NAD_1983_2011_StatePlane_Michigan_North_FIPS_2111",GEOGCS["GCS_NAD_1983_
6496 NAD_1983_2011_StatePlane_Michigan_North_FIPS_2111_Ft_Intl PROJCS["NAD_1983_2011_StatePlane_Michigan_North_FIPS_2111_Ft_Intl",GEOGCS["GCS_NAD
6497 NAD_1983_2011_Michigan_GeoRef_Meters PROJCS["NAD_1983_2011_Michigan_GeoRef_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM
6498 NAD_1983_2011_StatePlane_Michigan_South_FIPS_2113 PROJCS["NAD_1983_2011_StatePlane_Michigan_South_FIPS_2113",GEOGCS["GCS_NAD_1983
6499 NAD_1983_2011_StatePlane_Michigan_South_FIPS_2113_Ft_Intl PROJCS["NAD_1983_2011_StatePlane_Michigan_South_FIPS_2113_Ft_Intl",GEOGCS["GCS_NAD
6500 NAD_1983_2011_StatePlane_Minnesota_Central_FIPS_2202 PROJCS["NAD_1983_2011_StatePlane_Minnesota_Central_FIPS_2202",GEOGCS["GCS_NAD_19
6501 NAD_1983_2011_StatePlane_Minnesota_Central_FIPS_2202_Ft_US PROJCS["NAD_1983_2011_StatePlane_Minnesota_Central_FIPS_2202_Ft_US",GEOGCS["GCS_N
6502 NAD_1983_2011_StatePlane_Minnesota_North_FIPS_2201 PROJCS["NAD_1983_2011_StatePlane_Minnesota_North_FIPS_2201",GEOGCS["GCS_NAD_1983
6503 NAD_1983_2011_StatePlane_Minnesota_North_FIPS_2201_Ft_US PROJCS["NAD_1983_2011_StatePlane_Minnesota_North_FIPS_2201_Ft_US",GEOGCS["GCS_NA
6504 NAD_1983_2011_StatePlane_Minnesota_South_FIPS_2203 PROJCS["NAD_1983_2011_StatePlane_Minnesota_South_FIPS_2203",GEOGCS["GCS_NAD_198
6505 NAD_1983_2011_StatePlane_Minnesota_South_FIPS_2203_Ft_US PROJCS["NAD_1983_2011_StatePlane_Minnesota_South_FIPS_2203_Ft_US",GEOGCS["GCS_NA
6506 NAD_1983_2011_StatePlane_Mississippi_East_FIPS_2301 PROJCS["NAD_1983_2011_StatePlane_Mississippi_East_FIPS_2301",GEOGCS["GCS_NAD_1983
6507 NAD_1983_2011_StatePlane_Mississippi_East_FIPS_2301_Ft_US PROJCS["NAD_1983_2011_StatePlane_Mississippi_East_FIPS_2301_Ft_US",GEOGCS["GCS_NA
6508 NAD_1983_2011_Mississippi_TM PROJCS["NAD_1983_2011_Mississippi_TM",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_
6509 NAD_1983_2011_StatePlane_Mississippi_West_FIPS_2302 PROJCS["NAD_1983_2011_StatePlane_Mississippi_West_FIPS_2302",GEOGCS["GCS_NAD_1983
6510 NAD_1983_2011_StatePlane_Mississippi_West_FIPS_2302_Ft_US PROJCS["NAD_1983_2011_StatePlane_Mississippi_West_FIPS_2302_Ft_US",GEOGCS["GCS_NA
6511 NAD_1983_2011_StatePlane_Missouri_Central_FIPS_2402 PROJCS["NAD_1983_2011_StatePlane_Missouri_Central_FIPS_2402",GEOGCS["GCS_NAD_1983
6512 NAD_1983_2011_StatePlane_Missouri_East_FIPS_2401 PROJCS["NAD_1983_2011_StatePlane_Missouri_East_FIPS_2401",GEOGCS["GCS_NAD_1983_2
6513 NAD_1983_2011_StatePlane_Missouri_West_FIPS_2403 PROJCS["NAD_1983_2011_StatePlane_Missouri_West_FIPS_2403",GEOGCS["GCS_NAD_1983_2
6514 NAD_1983_2011_StatePlane_Montana_FIPS_2500 PROJCS["NAD_1983_2011_StatePlane_Montana_FIPS_2500",GEOGCS["GCS_NAD_1983_2011",
6515 NAD_1983_2011_StatePlane_Montana_FIPS_2500_Ft_Intl PROJCS["NAD_1983_2011_StatePlane_Montana_FIPS_2500_Ft_Intl",GEOGCS["GCS_NAD_1983

Copyright 1995-2015 Esri. All rights reserved. 370


ArcGIS Runtime SDK for .NET

6516 NAD_1983_2011_StatePlane_Nebraska_FIPS_2600 PROJCS["NAD_1983_2011_StatePlane_Nebraska_FIPS_2600",GEOGCS["GCS_NAD_1983_2011"


6517 NAD_1983_2011_StatePlane_Nebraska_FIPS_2600_Ft_US PROJCS["NAD_1983_2011_StatePlane_Nebraska_FIPS_2600_Ft_US",GEOGCS["GCS_NAD_1983
6518 NAD_1983_2011_StatePlane_Nevada_Central_FIPS_2702 PROJCS["NAD_1983_2011_StatePlane_Nevada_Central_FIPS_2702",GEOGCS["GCS_NAD_1983
6519 NAD_1983_2011_StatePlane_Nevada_Central_FIPS_2702_Ft_US PROJCS["NAD_1983_2011_StatePlane_Nevada_Central_FIPS_2702_Ft_US",GEOGCS["GCS_NAD
6520 NAD_1983_2011_StatePlane_Nevada_East_FIPS_2701 PROJCS["NAD_1983_2011_StatePlane_Nevada_East_FIPS_2701",GEOGCS["GCS_NAD_1983_20
6521 NAD_1983_2011_StatePlane_Nevada_East_FIPS_2701_Ft_US PROJCS["NAD_1983_2011_StatePlane_Nevada_East_FIPS_2701_Ft_US",GEOGCS["GCS_NAD_
6522 NAD_1983_2011_StatePlane_Nevada_West_FIPS_2703 PROJCS["NAD_1983_2011_StatePlane_Nevada_West_FIPS_2703",GEOGCS["GCS_NAD_1983_2
6523 NAD_1983_2011_StatePlane_Nevada_West_FIPS_2703_Ft_US PROJCS["NAD_1983_2011_StatePlane_Nevada_West_FIPS_2703_Ft_US",GEOGCS["GCS_NAD_
6524 NAD_1983_2011_StatePlane_New_Hampshire_FIPS_2800 PROJCS["NAD_1983_2011_StatePlane_New_Hampshire_FIPS_2800",GEOGCS["GCS_NAD_1983
6525 NAD_1983_2011_StatePlane_New_Hampshire_FIPS_2800_Ft_US PROJCS["NAD_1983_2011_StatePlane_New_Hampshire_FIPS_2800_Ft_US",GEOGCS["GCS_NA
6526 NAD_1983_2011_StatePlane_New_Jersey_FIPS_2900 PROJCS["NAD_1983_2011_StatePlane_New_Jersey_FIPS_2900",GEOGCS["GCS_NAD_1983_20
6527 NAD_1983_2011_StatePlane_New_Jersey_FIPS_2900_Ft_US PROJCS["NAD_1983_2011_StatePlane_New_Jersey_FIPS_2900_Ft_US",GEOGCS["GCS_NAD_1
6528 NAD_1983_2011_StatePlane_New_Mexico_Central_FIPS_3002 PROJCS["NAD_1983_2011_StatePlane_New_Mexico_Central_FIPS_3002",GEOGCS["GCS_NAD_
6529 NAD_1983_2011_StatePlane_New_Mexico_Central_FIPS_3002_Ft_US PROJCS["NAD_1983_2011_StatePlane_New_Mexico_Central_FIPS_3002_Ft_US",GEOGCS["GCS
6530 NAD_1983_2011_StatePlane_New_Mexico_East_FIPS_3001 PROJCS["NAD_1983_2011_StatePlane_New_Mexico_East_FIPS_3001",GEOGCS["GCS_NAD_19
6531 NAD_1983_2011_StatePlane_New_Mexico_East_FIPS_3001_Ft_US PROJCS["NAD_1983_2011_StatePlane_New_Mexico_East_FIPS_3001_Ft_US",GEOGCS["GCS_N
6532 NAD_1983_2011_StatePlane_New_Mexico_West_FIPS_3003 PROJCS["NAD_1983_2011_StatePlane_New_Mexico_West_FIPS_3003",GEOGCS["GCS_NAD_19
6533 NAD_1983_2011_StatePlane_New_Mexico_West_FIPS_3003_Ft_US PROJCS["NAD_1983_2011_StatePlane_New_Mexico_West_FIPS_3003_Ft_US",GEOGCS["GCS_N
6534 NAD_1983_2011_StatePlane_New_York_Central_FIPS_3102 PROJCS["NAD_1983_2011_StatePlane_New_York_Central_FIPS_3102",GEOGCS["GCS_NAD_19
6535 NAD_1983_2011_StatePlane_New_York_Central_FIPS_3102_Ft_US PROJCS["NAD_1983_2011_StatePlane_New_York_Central_FIPS_3102_Ft_US",GEOGCS["GCS_N
6536 NAD_1983_2011_StatePlane_New_York_East_FIPS_3101 PROJCS["NAD_1983_2011_StatePlane_New_York_East_FIPS_3101",GEOGCS["GCS_NAD_1983
6537 NAD_1983_2011_StatePlane_New_York_East_FIPS_3101_Ft_US PROJCS["NAD_1983_2011_StatePlane_New_York_East_FIPS_3101_Ft_US",GEOGCS["GCS_NAD
6538 NAD_1983_2011_StatePlane_New_York_Long_Island_FIPS_3104 PROJCS["NAD_1983_2011_StatePlane_New_York_Long_Island_FIPS_3104",GEOGCS["GCS_NAD
6539 NAD_1983_2011_StatePlane_New_York_Long_Isl_FIPS_3104_Ft_US PROJCS["NAD_1983_2011_StatePlane_New_York_Long_Isl_FIPS_3104_Ft_US",GEOGCS["GCS_
6540 NAD_1983_2011_StatePlane_New_York_West_FIPS_3103 PROJCS["NAD_1983_2011_StatePlane_New_York_West_FIPS_3103",GEOGCS["GCS_NAD_1983
6541 NAD_1983_2011_StatePlane_New_York_West_FIPS_3103_Ft_US PROJCS["NAD_1983_2011_StatePlane_New_York_West_FIPS_3103_Ft_US",GEOGCS["GCS_NA
6542 NAD_1983_2011_StatePlane_North_Carolina_FIPS_3200 PROJCS["NAD_1983_2011_StatePlane_North_Carolina_FIPS_3200",GEOGCS["GCS_NAD_1983_
6543 NAD_1983_2011_StatePlane_North_Carolina_FIPS_3200_Ft_US PROJCS["NAD_1983_2011_StatePlane_North_Carolina_FIPS_3200_Ft_US",GEOGCS["GCS_NAD
6544 NAD_1983_2011_StatePlane_North_Dakota_North_FIPS_3301 PROJCS["NAD_1983_2011_StatePlane_North_Dakota_North_FIPS_3301",GEOGCS["GCS_NAD_1
6545 NAD_1983_2011_StatePlane_North_Dakota_North_FIPS_3301_FtI PROJCS["NAD_1983_2011_StatePlane_North_Dakota_North_FIPS_3301_FtI",GEOGCS["GCS_NA
6546 NAD_1983_2011_StatePlane_North_Dakota_South_FIPS_3302 PROJCS["NAD_1983_2011_StatePlane_North_Dakota_South_FIPS_3302",GEOGCS["GCS_NAD_1
6547 NAD_1983_2011_StatePlane_North_Dakota_South_FIPS_3302_FtI PROJCS["NAD_1983_2011_StatePlane_North_Dakota_South_FIPS_3302_FtI",GEOGCS["GCS_NA
6548 NAD_1983_2011_StatePlane_Ohio_North_FIPS_3401 PROJCS["NAD_1983_2011_StatePlane_Ohio_North_FIPS_3401",GEOGCS["GCS_NAD_1983_201
6549 NAD_1983_2011_StatePlane_Ohio_North_FIPS_3401_Ft_US PROJCS["NAD_1983_2011_StatePlane_Ohio_North_FIPS_3401_Ft_US",GEOGCS["GCS_NAD_19
6550 NAD_1983_2011_StatePlane_Ohio_South_FIPS_3402 PROJCS["NAD_1983_2011_StatePlane_Ohio_South_FIPS_3402",GEOGCS["GCS_NAD_1983_201
6551 NAD_1983_2011_StatePlane_Ohio_South_FIPS_3402_Ft_US PROJCS["NAD_1983_2011_StatePlane_Ohio_South_FIPS_3402_Ft_US",GEOGCS["GCS_NAD_19
6552 NAD_1983_2011_StatePlane_Oklahoma_North_FIPS_3501 PROJCS["NAD_1983_2011_StatePlane_Oklahoma_North_FIPS_3501",GEOGCS["GCS_NAD_1983
6553 NAD_1983_2011_StatePlane_Oklahoma_North_FIPS_3501_Ft_US PROJCS["NAD_1983_2011_StatePlane_Oklahoma_North_FIPS_3501_Ft_US",GEOGCS["GCS_NA
6554 NAD_1983_2011_StatePlane_Oklahoma_South_FIPS_3502 PROJCS["NAD_1983_2011_StatePlane_Oklahoma_South_FIPS_3502",GEOGCS["GCS_NAD_198
6555 NAD_1983_2011_StatePlane_Oklahoma_South_FIPS_3502_Ft_US PROJCS["NAD_1983_2011_StatePlane_Oklahoma_South_FIPS_3502_Ft_US",GEOGCS["GCS_NA
6556 NAD_1983_2011_Oregon_Statewide_Lambert PROJCS["NAD_1983_2011_Oregon_Statewide_Lambert",GEOGCS["GCS_NAD_1983_2011",DATU
6557 NAD_1983_2011_Oregon_Statewide_Lambert_Ft_Intl PROJCS["NAD_1983_2011_Oregon_Statewide_Lambert_Ft_Intl",GEOGCS["GCS_NAD_1983_2011
6558 NAD_1983_2011_StatePlane_Oregon_North_FIPS_3601 PROJCS["NAD_1983_2011_StatePlane_Oregon_North_FIPS_3601",GEOGCS["GCS_NAD_1983_2
6559 NAD_1983_2011_StatePlane_Oregon_North_FIPS_3601_Ft_Intl PROJCS["NAD_1983_2011_StatePlane_Oregon_North_FIPS_3601_Ft_Intl",GEOGCS["GCS_NAD_
6560 NAD_1983_2011_StatePlane_Oregon_South_FIPS_3602 PROJCS["NAD_1983_2011_StatePlane_Oregon_South_FIPS_3602",GEOGCS["GCS_NAD_1983_2
6561 NAD_1983_2011_StatePlane_Oregon_South_FIPS_3602_Ft_Intl PROJCS["NAD_1983_2011_StatePlane_Oregon_South_FIPS_3602_Ft_Intl",GEOGCS["GCS_NAD_
6562 NAD_1983_2011_StatePlane_Pennsylvania_North_FIPS_3701 PROJCS["NAD_1983_2011_StatePlane_Pennsylvania_North_FIPS_3701",GEOGCS["GCS_NAD_1
6563 NAD_1983_2011_StatePlane_Pennsylvania_North_FIPS_3701_Ft_US PROJCS["NAD_1983_2011_StatePlane_Pennsylvania_North_FIPS_3701_Ft_US",GEOGCS["GCS_
6564 NAD_1983_2011_StatePlane_Pennsylvania_South_FIPS_3702 PROJCS["NAD_1983_2011_StatePlane_Pennsylvania_South_FIPS_3702",GEOGCS["GCS_NAD_1
6565 NAD_1983_2011_StatePlane_Pennsylvania_South_FIPS_3702_Ft_US PROJCS["NAD_1983_2011_StatePlane_Pennsylvania_South_FIPS_3702_Ft_US",GEOGCS["GCS_
6566 NAD_1983_2011_StatePlane_Puerto_Rico_Virgin_Isls_FIPS_5200 PROJCS["NAD_1983_2011_StatePlane_Puerto_Rico_Virgin_Isls_FIPS_5200",GEOGCS["GCS_NA
6567 NAD_1983_2011_StatePlane_Rhode_Island_FIPS_3800 PROJCS["NAD_1983_2011_StatePlane_Rhode_Island_FIPS_3800",GEOGCS["GCS_NAD_1983_2
6568 NAD_1983_2011_StatePlane_Rhode_Island_FIPS_3800_Ft_US PROJCS["NAD_1983_2011_StatePlane_Rhode_Island_FIPS_3800_Ft_US",GEOGCS["GCS_NAD_
6569 NAD_1983_2011_StatePlane_South_Carolina_FIPS_3900 PROJCS["NAD_1983_2011_StatePlane_South_Carolina_FIPS_3900",GEOGCS["GCS_NAD_1983_

Copyright 1995-2015 Esri. All rights reserved. 371


ArcGIS Runtime SDK for .NET

6570 NAD_1983_2011_StatePlane_South_Carolina_FIPS_3900_Ft_Intl PROJCS["NAD_1983_2011_StatePlane_South_Carolina_FIPS_3900_Ft_Intl",GEOGCS["GCS_NAD


6571 NAD_1983_2011_StatePlane_South_Dakota_North_FIPS_4001 PROJCS["NAD_1983_2011_StatePlane_South_Dakota_North_FIPS_4001",GEOGCS["GCS_NAD_1
6572 NAD_1983_2011_StatePlane_South_Dakota_North_FIPS_4001_Ft_US PROJCS["NAD_1983_2011_StatePlane_South_Dakota_North_FIPS_4001_Ft_US",GEOGCS["GCS
6573 NAD_1983_2011_StatePlane_South_Dakota_South_FIPS_4002 PROJCS["NAD_1983_2011_StatePlane_South_Dakota_South_FIPS_4002",GEOGCS["GCS_NAD_
6574 NAD_1983_2011_StatePlane_South_Dakota_South_FIPS_4002_Ft_US PROJCS["NAD_1983_2011_StatePlane_South_Dakota_South_FIPS_4002_Ft_US",GEOGCS["GCS
6575 NAD_1983_2011_StatePlane_Tennessee_FIPS_4100 PROJCS["NAD_1983_2011_StatePlane_Tennessee_FIPS_4100",GEOGCS["GCS_NAD_1983_201
6576 NAD_1983_2011_StatePlane_Tennessee_FIPS_4100_Ft_US PROJCS["NAD_1983_2011_StatePlane_Tennessee_FIPS_4100_Ft_US",GEOGCS["GCS_NAD_19
6577 NAD_1983_2011_StatePlane_Texas_Central_FIPS_4203 PROJCS["NAD_1983_2011_StatePlane_Texas_Central_FIPS_4203",GEOGCS["GCS_NAD_1983_2
6578 NAD_1983_2011_StatePlane_Texas_Central_FIPS_4203_Ft_US PROJCS["NAD_1983_2011_StatePlane_Texas_Central_FIPS_4203_Ft_US",GEOGCS["GCS_NAD_
6579 NAD_1983_2011_Texas_Centric_Mapping_System_Albers PROJCS["NAD_1983_2011_Texas_Centric_Mapping_System_Albers",GEOGCS["GCS_NAD_1983_
6580 NAD_1983_2011_Texas_Centric_Mapping_System_Lambert PROJCS["NAD_1983_2011_Texas_Centric_Mapping_System_Lambert",GEOGCS["GCS_NAD_198
6581 NAD_1983_2011_StatePlane_Texas_North_FIPS_4201 PROJCS["NAD_1983_2011_StatePlane_Texas_North_FIPS_4201",GEOGCS["GCS_NAD_1983_20
6582 NAD_1983_2011_StatePlane_Texas_North_FIPS_4201_Ft_US PROJCS["NAD_1983_2011_StatePlane_Texas_North_FIPS_4201_Ft_US",GEOGCS["GCS_NAD_1
6583 NAD_1983_2011_StatePlane_Texas_North_Central_FIPS_4202 PROJCS["NAD_1983_2011_StatePlane_Texas_North_Central_FIPS_4202",GEOGCS["GCS_NAD_
6584 NAD_1983_2011_StatePlane_Texas_North_Central_FIPS_4202_FtUS PROJCS["NAD_1983_2011_StatePlane_Texas_North_Central_FIPS_4202_FtUS",GEOGCS["GCS_
6585 NAD_1983_2011_StatePlane_Texas_South_FIPS_4205 PROJCS["NAD_1983_2011_StatePlane_Texas_South_FIPS_4205",GEOGCS["GCS_NAD_1983_20
6586 NAD_1983_2011_StatePlane_Texas_South_FIPS_4205_Ft_US PROJCS["NAD_1983_2011_StatePlane_Texas_South_FIPS_4205_Ft_US",GEOGCS["GCS_NAD_1
6587 NAD_1983_2011_StatePlane_Texas_South_Central_FIPS_4204 PROJCS["NAD_1983_2011_StatePlane_Texas_South_Central_FIPS_4204",GEOGCS["GCS_NAD_
6588 NAD_1983_2011_StatePlane_Texas_South_Central_FIPS_4204_FtUS PROJCS["NAD_1983_2011_StatePlane_Texas_South_Central_FIPS_4204_FtUS",GEOGCS["GCS_
6589 NAD_1983_2011_StatePlane_Vermont_FIPS_4400 PROJCS["NAD_1983_2011_StatePlane_Vermont_FIPS_4400",GEOGCS["GCS_NAD_1983_2011",
6590 NAD_1983_2011_StatePlane_Vermont_FIPS_4400_Ft_US PROJCS["NAD_1983_2011_StatePlane_Vermont_FIPS_4400_Ft_US",GEOGCS["GCS_NAD_1983
6591 NAD_1983_2011_Virginia_Lambert PROJCS["NAD_1983_2011_Virginia_Lambert",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD
6592 NAD_1983_2011_StatePlane_Virginia_North_FIPS_4501 PROJCS["NAD_1983_2011_StatePlane_Virginia_North_FIPS_4501",GEOGCS["GCS_NAD_1983_2
6593 NAD_1983_2011_StatePlane_Virginia_North_FIPS_4501_Ft_US PROJCS["NAD_1983_2011_StatePlane_Virginia_North_FIPS_4501_Ft_US",GEOGCS["GCS_NAD_
6594 NAD_1983_2011_StatePlane_Virginia_South_FIPS_4502 PROJCS["NAD_1983_2011_StatePlane_Virginia_South_FIPS_4502",GEOGCS["GCS_NAD_1983_2
6595 NAD_1983_2011_StatePlane_Virginia_South_FIPS_4502_Ft_US PROJCS["NAD_1983_2011_StatePlane_Virginia_South_FIPS_4502_Ft_US",GEOGCS["GCS_NAD_
6596 NAD_1983_2011_StatePlane_Washington_North_FIPS_4601 PROJCS["NAD_1983_2011_StatePlane_Washington_North_FIPS_4601",GEOGCS["GCS_NAD_19
6597 NAD_1983_2011_StatePlane_Washington_North_FIPS_4601_Ft_US PROJCS["NAD_1983_2011_StatePlane_Washington_North_FIPS_4601_Ft_US",GEOGCS["GCS_N
6598 NAD_1983_2011_StatePlane_Washington_South_FIPS_4602 PROJCS["NAD_1983_2011_StatePlane_Washington_South_FIPS_4602",GEOGCS["GCS_NAD_19
6599 NAD_1983_2011_StatePlane_Washington_South_FIPS_4602_Ft_US PROJCS["NAD_1983_2011_StatePlane_Washington_South_FIPS_4602_Ft_US",GEOGCS["GCS_N
6600 NAD_1983_2011_StatePlane_West_Virginia_North_FIPS_4701 PROJCS["NAD_1983_2011_StatePlane_West_Virginia_North_FIPS_4701",GEOGCS["GCS_NAD_1
6601 NAD_1983_2011_StatePlane_West_Virginia_North_FIPS_4701_FtUS PROJCS["NAD_1983_2011_StatePlane_West_Virginia_North_FIPS_4701_FtUS",GEOGCS["GCS_N
6602 NAD_1983_2011_StatePlane_West_Virginia_South_FIPS_4702 PROJCS["NAD_1983_2011_StatePlane_West_Virginia_South_FIPS_4702",GEOGCS["GCS_NAD_1
6603 NAD_1983_2011_StatePlane_West_Virginia_South_FIPS_4702_FtUS PROJCS["NAD_1983_2011_StatePlane_West_Virginia_South_FIPS_4702_FtUS",GEOGCS["GCS_
6605 NAD_1983_2011_StatePlane_Wisconsin_Central_FIPS_4802_Ft_US PROJCS["NAD_1983_2011_StatePlane_Wisconsin_Central_FIPS_4802_Ft_US",GEOGCS["GCS_N
6606 NAD_1983_2011_StatePlane_Wisconsin_North_FIPS_4801 PROJCS["NAD_1983_2011_StatePlane_Wisconsin_North_FIPS_4801",GEOGCS["GCS_NAD_1983
6607 NAD_1983_2011_StatePlane_Wisconsin_North_FIPS_4801_Ft_US PROJCS["NAD_1983_2011_StatePlane_Wisconsin_North_FIPS_4801_Ft_US",GEOGCS["GCS_NA
6608 NAD_1983_2011_StatePlane_Wisconsin_South_FIPS_4803 PROJCS["NAD_1983_2011_StatePlane_Wisconsin_South_FIPS_4803",GEOGCS["GCS_NAD_198
6609 NAD_1983_2011_StatePlane_Wisconsin_South_FIPS_4803_Ft_US PROJCS["NAD_1983_2011_StatePlane_Wisconsin_South_FIPS_4803_Ft_US",GEOGCS["GCS_NA
6610 NAD_1983_2011_Wisconsin_TM PROJCS["NAD_1983_2011_Wisconsin_TM",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1
6611 NAD_1983_2011_StatePlane_Wyoming_East_FIPS_4901 PROJCS["NAD_1983_2011_StatePlane_Wyoming_East_FIPS_4901",GEOGCS["GCS_NAD_1983_
6612 NAD_1983_2011_StatePlane_Wyoming_East_FIPS_4901_Ft_US PROJCS["NAD_1983_2011_StatePlane_Wyoming_East_FIPS_4901_Ft_US",GEOGCS["GCS_NAD
6613 NAD_1983_2011_StatePlane_Wyoming_East_Central_FIPS_4902 PROJCS["NAD_1983_2011_StatePlane_Wyoming_East_Central_FIPS_4902",GEOGCS["GCS_NAD
6614 NAD_1983_2011_StatePlane_Wyoming_E_Central_FIPS_4902_Ft_US PROJCS["NAD_1983_2011_StatePlane_Wyoming_E_Central_FIPS_4902_Ft_US",GEOGCS["GCS_
6615 NAD_1983_2011_StatePlane_Wyoming_West_FIPS_4904 PROJCS["NAD_1983_2011_StatePlane_Wyoming_West_FIPS_4904",GEOGCS["GCS_NAD_1983_
6616 NAD_1983_2011_StatePlane_Wyoming_West_FIPS_4904_Ft_US PROJCS["NAD_1983_2011_StatePlane_Wyoming_West_FIPS_4904_Ft_US",GEOGCS["GCS_NAD
6617 NAD_1983_2011_StatePlane_Wyoming_West_Central_FIPS_4903 PROJCS["NAD_1983_2011_StatePlane_Wyoming_West_Central_FIPS_4903",GEOGCS["GCS_NA
6618 NAD_1983_2011_StatePlane_Wyoming_W_Central_FIPS_4903_Ft_US PROJCS["NAD_1983_2011_StatePlane_Wyoming_W_Central_FIPS_4903_Ft_US",GEOGCS["GCS
6619 NAD_1983_2011_StatePlane_Utah_Central_FIPS_4302 PROJCS["NAD_1983_2011_StatePlane_Utah_Central_FIPS_4302",GEOGCS["GCS_NAD_1983_20
6620 NAD_1983_2011_StatePlane_Utah_North_FIPS_4301 PROJCS["NAD_1983_2011_StatePlane_Utah_North_FIPS_4301",GEOGCS["GCS_NAD_1983_201
6621 NAD_1983_2011_StatePlane_Utah_South_FIPS_4303 PROJCS["NAD_1983_2011_StatePlane_Utah_South_FIPS_4303",GEOGCS["GCS_NAD_1983_201
6622 NAD_1983_CSRS_Quebec_Lambert PROJCS["NAD_1983_CSRS_Quebec_Lambert",GEOGCS["GCS_North_American_1983_CSRS",DA
6623 NAD_1983_Quebec_Albers PROJCS["NAD_1983_Quebec_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_
6624 NAD_1983_CSRS_Quebec_Albers PROJCS["NAD_1983_CSRS_Quebec_Albers",GEOGCS["GCS_North_American_1983_CSRS",DAT

Copyright 1995-2015 Esri. All rights reserved. 372


ArcGIS Runtime SDK for .NET

6625 NAD_1983_2011_StatePlane_Utah_Central_FIPS_4302_Ft_US PROJCS["NAD_1983_2011_StatePlane_Utah_Central_FIPS_4302_Ft_US",GEOGCS["GCS_NAD_1


6626 NAD_1983_2011_StatePlane_Utah_North_FIPS_4301_Ft_US PROJCS["NAD_1983_2011_StatePlane_Utah_North_FIPS_4301_Ft_US",GEOGCS["GCS_NAD_19
6627 NAD_1983_2011_StatePlane_Utah_South_FIPS_4303_Ft_US PROJCS["NAD_1983_2011_StatePlane_Utah_South_FIPS_4303_Ft_US",GEOGCS["GCS_NAD_19
6628 NAD_1983_PA11_StatePlane_Hawaii_1_FIPS_5101 PROJCS["NAD_1983_PA11_StatePlane_Hawaii_1_FIPS_5101",GEOGCS["GCS_NAD_1983_PA11
6629 NAD_1983_PA11_StatePlane_Hawaii_2_FIPS_5102 PROJCS["NAD_1983_PA11_StatePlane_Hawaii_2_FIPS_5102",GEOGCS["GCS_NAD_1983_PA11
6630 NAD_1983_PA11_StatePlane_Hawaii_3_FIPS_5103 PROJCS["NAD_1983_PA11_StatePlane_Hawaii_3_FIPS_5103",GEOGCS["GCS_NAD_1983_PA11
6631 NAD_1983_PA11_StatePlane_Hawaii_4_FIPS_5104 PROJCS["NAD_1983_PA11_StatePlane_Hawaii_4_FIPS_5104",GEOGCS["GCS_NAD_1983_PA11
6632 NAD_1983_PA11_StatePlane_Hawaii_5_FIPS_5105 PROJCS["NAD_1983_PA11_StatePlane_Hawaii_5_FIPS_5105",GEOGCS["GCS_NAD_1983_PA11
6633 NAD_1983_PA11_StatePlane_Hawaii_3_FIPS_5103_Feet PROJCS["NAD_1983_PA11_StatePlane_Hawaii_3_FIPS_5103_Feet",GEOGCS["GCS_NAD_1983_
6634 NAD_1983_PA11_UTM_Zone_4N PROJCS["NAD_1983_PA11_UTM_Zone_4N",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD
6635 NAD_1983_PA11_UTM_Zone_5N PROJCS["NAD_1983_PA11_UTM_Zone_5N",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD
6636 NAD_1983_PA11_UTM_Zone_2S PROJCS["NAD_1983_PA11_UTM_Zone_2S",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD
6637 NAD_1983_MA11_Guam_Map_Grid PROJCS["NAD_1983_MA11_Guam_Map_Grid",GEOGCS["GCS_NAD_1983_MA11",DATUM["D_NA
6646 Karbala_1979_Iraq_National_Grid PROJCS["Karbala_1979_Iraq_National_Grid",GEOGCS["GCS_Karbala_1979_Polservice",DATUM["
6669 JGD_2011_Japan_Zone_1 PROJCS["JGD_2011_Japan_Zone_1",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHER
6670 JGD_2011_Japan_Zone_2 PROJCS["JGD_2011_Japan_Zone_2",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHER
6671 JGD_2011_Japan_Zone_3 PROJCS["JGD_2011_Japan_Zone_3",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHER
6672 JGD_2011_Japan_Zone_4 PROJCS["JGD_2011_Japan_Zone_4",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHER
6673 JGD_2011_Japan_Zone_5 PROJCS["JGD_2011_Japan_Zone_5",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHER
6674 JGD_2011_Japan_Zone_6 PROJCS["JGD_2011_Japan_Zone_6",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHER
6675 JGD_2011_Japan_Zone_7 PROJCS["JGD_2011_Japan_Zone_7",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHER
6676 JGD_2011_Japan_Zone_8 PROJCS["JGD_2011_Japan_Zone_8",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHER
6677 JGD_2011_Japan_Zone_9 PROJCS["JGD_2011_Japan_Zone_9",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHER
6678 JGD_2011_Japan_Zone_10 PROJCS["JGD_2011_Japan_Zone_10",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHE
6679 JGD_2011_Japan_Zone_11 PROJCS["JGD_2011_Japan_Zone_11",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHE
6680 JGD_2011_Japan_Zone_12 PROJCS["JGD_2011_Japan_Zone_12",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHE
6681 JGD_2011_Japan_Zone_13 PROJCS["JGD_2011_Japan_Zone_13",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHE
6682 JGD_2011_Japan_Zone_14 PROJCS["JGD_2011_Japan_Zone_14",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHE
6683 JGD_2011_Japan_Zone_15 PROJCS["JGD_2011_Japan_Zone_15",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHE
6684 JGD_2011_Japan_Zone_16 PROJCS["JGD_2011_Japan_Zone_16",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHE
6685 JGD_2011_Japan_Zone_17 PROJCS["JGD_2011_Japan_Zone_17",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHE
6686 JGD_2011_Japan_Zone_18 PROJCS["JGD_2011_Japan_Zone_18",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHE
6687 JGD_2011_Japan_Zone_19 PROJCS["JGD_2011_Japan_Zone_19",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHE
6688 JGD_2011_UTM_Zone_51N PROJCS["JGD_2011_UTM_Zone_51N",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHE
6689 JGD_2011_UTM_Zone_52N PROJCS["JGD_2011_UTM_Zone_52N",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHE
6690 JGD_2011_UTM_Zone_53N PROJCS["JGD_2011_UTM_Zone_53N",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHE
6691 JGD_2011_UTM_Zone_54N PROJCS["JGD_2011_UTM_Zone_54N",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHE
6692 JGD_2011_UTM_Zone_55N PROJCS["JGD_2011_UTM_Zone_55N",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHE
6703 WGS_1984_TM_60_SW PROJCS["WGS_1984_TM_60_SW",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHER
6707 RDN2008_TM32 PROJCS["RDN2008_TM32",GEOGCS["GCS_RDN2008",DATUM["D_Rete_Dinamica_Nazionale_20
6708 RDN2008_TM33 PROJCS["RDN2008_TM33",GEOGCS["GCS_RDN2008",DATUM["D_Rete_Dinamica_Nazionale_20
6709 RDN2008_TM34 PROJCS["RDN2008_TM34",GEOGCS["GCS_RDN2008",DATUM["D_Rete_Dinamica_Nazionale_20
6720 WGS_1984_CIG92 PROJCS["WGS_1984_CIG92",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["
6721 GDA_1994_CIG94 PROJCS["GDA_1994_CIG94",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["G
6722 WGS_1984_CKIG92 PROJCS["WGS_1984_CKIG92",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID
6723 GDA_1994_CKIG94 PROJCS["GDA_1994_CKIG94",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["
6732 GDA_1994_MGA_zone_41 PROJCS["GDA_1994_MGA_zone_41",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHE
6733 GDA_1994_MGA_zone_42 PROJCS["GDA_1994_MGA_zone_42",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHE
6734 GDA_1994_MGA_zone_43 PROJCS["GDA_1994_MGA_zone_43",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHE
6735 GDA_1994_MGA_zone_44 PROJCS["GDA_1994_MGA_zone_44",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHE
6736 GDA_1994_MGA_Zone_46 PROJCS["GDA_1994_MGA_Zone_46",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHE
6737 GDA_1994_MGA_Zone_47 PROJCS["GDA_1994_MGA_Zone_47",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHE
6738 GDA_1994_MGA_Zone_59 PROJCS["GDA_1994_MGA_Zone_59",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHE
6870 ETRS_1989_Albania_2010 PROJCS["ETRS_1989_Albania_2010",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPH

Copyright 1995-2015 Esri. All rights reserved. 373


ArcGIS Runtime SDK for .NET

6875 RDN2008_Italy_zone PROJCS["RDN2008_Italy_zone",GEOGCS["GCS_RDN2008",DATUM["D_Rete_Dinamica_Nazionale


6876 RDN2008_Zone_12 PROJCS["RDN2008_Zone_12",GEOGCS["GCS_RDN2008",DATUM["D_Rete_Dinamica_Nazionale_
6879 NAD_1983_2011_StatePlane_Wisconsin_Central_FIPS_4802 PROJCS["NAD_1983_2011_StatePlane_Wisconsin_Central_FIPS_4802",GEOGCS["GCS_NAD_19
20002 Pulkovo_1995_GK_Zone_2 PROJCS["Pulkovo_1995_GK_Zone_2",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995"
20003 Pulkovo_1995_GK_Zone_3 PROJCS["Pulkovo_1995_GK_Zone_3",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995"
20004 Pulkovo_1995_GK_Zone_4 PROJCS["Pulkovo_1995_GK_Zone_4",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995"
20005 Pulkovo_1995_GK_Zone_5 PROJCS["Pulkovo_1995_GK_Zone_5",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995"
20006 Pulkovo_1995_GK_Zone_6 PROJCS["Pulkovo_1995_GK_Zone_6",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995"
20007 Pulkovo_1995_GK_Zone_7 PROJCS["Pulkovo_1995_GK_Zone_7",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995"
20008 Pulkovo_1995_GK_Zone_8 PROJCS["Pulkovo_1995_GK_Zone_8",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995"
20009 Pulkovo_1995_GK_Zone_9 PROJCS["Pulkovo_1995_GK_Zone_9",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995"
20010 Pulkovo_1995_GK_Zone_10 PROJCS["Pulkovo_1995_GK_Zone_10",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20011 Pulkovo_1995_GK_Zone_11 PROJCS["Pulkovo_1995_GK_Zone_11",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20012 Pulkovo_1995_GK_Zone_12 PROJCS["Pulkovo_1995_GK_Zone_12",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20013 Pulkovo_1995_GK_Zone_13 PROJCS["Pulkovo_1995_GK_Zone_13",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20014 Pulkovo_1995_GK_Zone_14 PROJCS["Pulkovo_1995_GK_Zone_14",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20015 Pulkovo_1995_GK_Zone_15 PROJCS["Pulkovo_1995_GK_Zone_15",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20016 Pulkovo_1995_GK_Zone_16 PROJCS["Pulkovo_1995_GK_Zone_16",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20017 Pulkovo_1995_GK_Zone_17 PROJCS["Pulkovo_1995_GK_Zone_17",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20018 Pulkovo_1995_GK_Zone_18 PROJCS["Pulkovo_1995_GK_Zone_18",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20019 Pulkovo_1995_GK_Zone_19 PROJCS["Pulkovo_1995_GK_Zone_19",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20020 Pulkovo_1995_GK_Zone_20 PROJCS["Pulkovo_1995_GK_Zone_20",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20021 Pulkovo_1995_GK_Zone_21 PROJCS["Pulkovo_1995_GK_Zone_21",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20022 Pulkovo_1995_GK_Zone_22 PROJCS["Pulkovo_1995_GK_Zone_22",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20023 Pulkovo_1995_GK_Zone_23 PROJCS["Pulkovo_1995_GK_Zone_23",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20024 Pulkovo_1995_GK_Zone_24 PROJCS["Pulkovo_1995_GK_Zone_24",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20025 Pulkovo_1995_GK_Zone_25 PROJCS["Pulkovo_1995_GK_Zone_25",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20026 Pulkovo_1995_GK_Zone_26 PROJCS["Pulkovo_1995_GK_Zone_26",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20027 Pulkovo_1995_GK_Zone_27 PROJCS["Pulkovo_1995_GK_Zone_27",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20028 Pulkovo_1995_GK_Zone_28 PROJCS["Pulkovo_1995_GK_Zone_28",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20029 Pulkovo_1995_GK_Zone_29 PROJCS["Pulkovo_1995_GK_Zone_29",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20030 Pulkovo_1995_GK_Zone_30 PROJCS["Pulkovo_1995_GK_Zone_30",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20031 Pulkovo_1995_GK_Zone_31 PROJCS["Pulkovo_1995_GK_Zone_31",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20032 Pulkovo_1995_GK_Zone_32 PROJCS["Pulkovo_1995_GK_Zone_32",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20062 Pulkovo_1995_GK_Zone_2N PROJCS["Pulkovo_1995_GK_Zone_2N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20063 Pulkovo_1995_GK_Zone_3N PROJCS["Pulkovo_1995_GK_Zone_3N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20064 Pulkovo_1995_GK_Zone_4N PROJCS["Pulkovo_1995_GK_Zone_4N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20065 Pulkovo_1995_GK_Zone_5N PROJCS["Pulkovo_1995_GK_Zone_5N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20066 Pulkovo_1995_GK_Zone_6N PROJCS["Pulkovo_1995_GK_Zone_6N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20067 Pulkovo_1995_GK_Zone_7N PROJCS["Pulkovo_1995_GK_Zone_7N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20068 Pulkovo_1995_GK_Zone_8N PROJCS["Pulkovo_1995_GK_Zone_8N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20069 Pulkovo_1995_GK_Zone_9N PROJCS["Pulkovo_1995_GK_Zone_9N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995
20070 Pulkovo_1995_GK_Zone_10N PROJCS["Pulkovo_1995_GK_Zone_10N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20071 Pulkovo_1995_GK_Zone_11N PROJCS["Pulkovo_1995_GK_Zone_11N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20072 Pulkovo_1995_GK_Zone_12N PROJCS["Pulkovo_1995_GK_Zone_12N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20073 Pulkovo_1995_GK_Zone_13N PROJCS["Pulkovo_1995_GK_Zone_13N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20074 Pulkovo_1995_GK_Zone_14N PROJCS["Pulkovo_1995_GK_Zone_14N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20075 Pulkovo_1995_GK_Zone_15N PROJCS["Pulkovo_1995_GK_Zone_15N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20076 Pulkovo_1995_GK_Zone_16N PROJCS["Pulkovo_1995_GK_Zone_16N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20077 Pulkovo_1995_GK_Zone_17N PROJCS["Pulkovo_1995_GK_Zone_17N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20078 Pulkovo_1995_GK_Zone_18N PROJCS["Pulkovo_1995_GK_Zone_18N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20079 Pulkovo_1995_GK_Zone_19N PROJCS["Pulkovo_1995_GK_Zone_19N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20080 Pulkovo_1995_GK_Zone_20N PROJCS["Pulkovo_1995_GK_Zone_20N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20081 Pulkovo_1995_GK_Zone_21N PROJCS["Pulkovo_1995_GK_Zone_21N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199

Copyright 1995-2015 Esri. All rights reserved. 374


ArcGIS Runtime SDK for .NET

20082 Pulkovo_1995_GK_Zone_22N PROJCS["Pulkovo_1995_GK_Zone_22N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199


20083 Pulkovo_1995_GK_Zone_23N PROJCS["Pulkovo_1995_GK_Zone_23N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20084 Pulkovo_1995_GK_Zone_24N PROJCS["Pulkovo_1995_GK_Zone_24N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20085 Pulkovo_1995_GK_Zone_25N PROJCS["Pulkovo_1995_GK_Zone_25N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20086 Pulkovo_1995_GK_Zone_26N PROJCS["Pulkovo_1995_GK_Zone_26N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20087 Pulkovo_1995_GK_Zone_27N PROJCS["Pulkovo_1995_GK_Zone_27N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20088 Pulkovo_1995_GK_Zone_28N PROJCS["Pulkovo_1995_GK_Zone_28N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20089 Pulkovo_1995_GK_Zone_29N PROJCS["Pulkovo_1995_GK_Zone_29N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20090 Pulkovo_1995_GK_Zone_30N PROJCS["Pulkovo_1995_GK_Zone_30N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20091 Pulkovo_1995_GK_Zone_31N PROJCS["Pulkovo_1995_GK_Zone_31N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20092 Pulkovo_1995_GK_Zone_32N PROJCS["Pulkovo_1995_GK_Zone_32N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_199
20135 Adindan_UTM_Zone_35N PROJCS["Adindan_UTM_Zone_35N",GEOGCS["GCS_Adindan",DATUM["D_Adindan",SPHEROID["
20136 Adindan_UTM_Zone_36N PROJCS["Adindan_UTM_Zone_36N",GEOGCS["GCS_Adindan",DATUM["D_Adindan",SPHEROID["
20137 Adindan_UTM_Zone_37N PROJCS["Adindan_UTM_Zone_37N",GEOGCS["GCS_Adindan",DATUM["D_Adindan",SPHEROID["
20138 Adindan_UTM_Zone_38N PROJCS["Adindan_UTM_Zone_38N",GEOGCS["GCS_Adindan",DATUM["D_Adindan",SPHEROID["
20248 AGD_1966_AMG_Zone_48 PROJCS["AGD_1966_AMG_Zone_48",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_19
20249 AGD_1966_AMG_Zone_49 PROJCS["AGD_1966_AMG_Zone_49",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_19
20250 AGD_1966_AMG_Zone_50 PROJCS["AGD_1966_AMG_Zone_50",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_19
20251 AGD_1966_AMG_Zone_51 PROJCS["AGD_1966_AMG_Zone_51",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_19
20252 AGD_1966_AMG_Zone_52 PROJCS["AGD_1966_AMG_Zone_52",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_19
20253 AGD_1966_AMG_Zone_53 PROJCS["AGD_1966_AMG_Zone_53",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_19
20254 AGD_1966_AMG_Zone_54 PROJCS["AGD_1966_AMG_Zone_54",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_19
20255 AGD_1966_AMG_Zone_55 PROJCS["AGD_1966_AMG_Zone_55",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_19
20256 AGD_1966_AMG_Zone_56 PROJCS["AGD_1966_AMG_Zone_56",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_19
20257 AGD_1966_AMG_Zone_57 PROJCS["AGD_1966_AMG_Zone_57",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_19
20258 AGD_1966_AMG_Zone_58 PROJCS["AGD_1966_AMG_Zone_58",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_19
20348 AGD_1984_AMG_Zone_48 PROJCS["AGD_1984_AMG_Zone_48",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_19
20349 AGD_1984_AMG_Zone_49 PROJCS["AGD_1984_AMG_Zone_49",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_19
20350 AGD_1984_AMG_Zone_50 PROJCS["AGD_1984_AMG_Zone_50",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_19
20351 AGD_1984_AMG_Zone_51 PROJCS["AGD_1984_AMG_Zone_51",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_19
20352 AGD_1984_AMG_Zone_52 PROJCS["AGD_1984_AMG_Zone_52",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_19
20353 AGD_1984_AMG_Zone_53 PROJCS["AGD_1984_AMG_Zone_53",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_19
20354 AGD_1984_AMG_Zone_54 PROJCS["AGD_1984_AMG_Zone_54",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_19
20355 AGD_1984_AMG_Zone_55 PROJCS["AGD_1984_AMG_Zone_55",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_19
20356 AGD_1984_AMG_Zone_56 PROJCS["AGD_1984_AMG_Zone_56",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_19
20357 AGD_1984_AMG_Zone_57 PROJCS["AGD_1984_AMG_Zone_57",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_19
20358 AGD_1984_AMG_Zone_58 PROJCS["AGD_1984_AMG_Zone_58",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_19
20436 Ain_el_Abd_UTM_Zone_36N PROJCS["Ain_el_Abd_UTM_Zone_36N",GEOGCS["GCS_Ain_el_Abd_1970",DATUM["D_Ain_el_Ab
20437 Ain_el_Abd_UTM_Zone_37N PROJCS["Ain_el_Abd_UTM_Zone_37N",GEOGCS["GCS_Ain_el_Abd_1970",DATUM["D_Ain_el_Ab
20438 Ain_el_Abd_UTM_Zone_38N PROJCS["Ain_el_Abd_UTM_Zone_38N",GEOGCS["GCS_Ain_el_Abd_1970",DATUM["D_Ain_el_Ab
20439 Ain_el_Abd_UTM_Zone_39N PROJCS["Ain_el_Abd_UTM_Zone_39N",GEOGCS["GCS_Ain_el_Abd_1970",DATUM["D_Ain_el_Ab
20440 Ain_el_Abd_UTM_Zone_40N PROJCS["Ain_el_Abd_UTM_Zone_40N",GEOGCS["GCS_Ain_el_Abd_1970",DATUM["D_Ain_el_Ab
20499 Bahrain_State_Grid PROJCS["Bahrain_State_Grid",GEOGCS["GCS_Ain_el_Abd_1970",DATUM["D_Ain_el_Abd_1970",
20538 Afgooye_UTM_Zone_38N PROJCS["Afgooye_UTM_Zone_38N",GEOGCS["GCS_Afgooye",DATUM["D_Afgooye",SPHEROID["
20539 Afgooye_UTM_Zone_39N PROJCS["Afgooye_UTM_Zone_39N",GEOGCS["GCS_Afgooye",DATUM["D_Afgooye",SPHEROID["
20790 Portuguese_National_Grid PROJCS["Portuguese_National_Grid",GEOGCS["GCS_Lisbon_Lisbon",DATUM["D_Lisbon",SPHER
20791 Lisbon_Lisbon_Portuguese_Grid PROJCS["Lisbon_Lisbon_Portuguese_Grid",GEOGCS["GCS_Lisbon_Lisbon",DATUM["D_Lisbon",S
20822 Aratu_UTM_Zone_22S PROJCS["Aratu_UTM_Zone_22S",GEOGCS["GCS_Aratu",DATUM["D_Aratu",SPHEROID["Internatio
20823 Aratu_UTM_Zone_23S PROJCS["Aratu_UTM_Zone_23S",GEOGCS["GCS_Aratu",DATUM["D_Aratu",SPHEROID["Internatio
20824 Aratu_UTM_Zone_24S PROJCS["Aratu_UTM_Zone_24S",GEOGCS["GCS_Aratu",DATUM["D_Aratu",SPHEROID["Internatio
20934 Arc_1950_UTM_Zone_34S PROJCS["Arc_1950_UTM_Zone_34S",GEOGCS["GCS_Arc_1950",DATUM["D_Arc_1950",SPHERO
20935 Arc_1950_UTM_Zone_35S PROJCS["Arc_1950_UTM_Zone_35S",GEOGCS["GCS_Arc_1950",DATUM["D_Arc_1950",SPHERO
20936 Arc_1950_UTM_Zone_36S PROJCS["Arc_1950_UTM_Zone_36S",GEOGCS["GCS_Arc_1950",DATUM["D_Arc_1950",SPHERO
21035 Arc_1960_UTM_Zone_35S PROJCS["Arc_1960_UTM_Zone_35S",GEOGCS["GCS_Arc_1960",DATUM["D_Arc_1960",SPHERO

Copyright 1995-2015 Esri. All rights reserved. 375


ArcGIS Runtime SDK for .NET

21036 Arc_1960_UTM_Zone_36S PROJCS["Arc_1960_UTM_Zone_36S",GEOGCS["GCS_Arc_1960",DATUM["D_Arc_1960",SPHERO


21037 Arc_1960_UTM_Zone_37S PROJCS["Arc_1960_UTM_Zone_37S",GEOGCS["GCS_Arc_1960",DATUM["D_Arc_1960",SPHERO
21095 Arc_1960_UTM_Zone_35N PROJCS["Arc_1960_UTM_Zone_35N",GEOGCS["GCS_Arc_1960",DATUM["D_Arc_1960",SPHERO
21096 Arc_1960_UTM_Zone_36N PROJCS["Arc_1960_UTM_Zone_36N",GEOGCS["GCS_Arc_1960",DATUM["D_Arc_1960",SPHERO
21097 Arc_1960_UTM_Zone_37N PROJCS["Arc_1960_UTM_Zone_37N",GEOGCS["GCS_Arc_1960",DATUM["D_Arc_1960",SPHERO
21148 Batavia_UTM_Zone_48S PROJCS["Batavia_UTM_Zone_48S",GEOGCS["GCS_Batavia",DATUM["D_Batavia",SPHEROID["Be
21149 Batavia_UTM_Zone_49S PROJCS["Batavia_UTM_Zone_49S",GEOGCS["GCS_Batavia",DATUM["D_Batavia",SPHEROID["Be
21150 Batavia_UTM_Zone_50S PROJCS["Batavia_UTM_Zone_50S",GEOGCS["GCS_Batavia",DATUM["D_Batavia",SPHEROID["Be
21291 Barbados_1938_British_West_Indies_Grid PROJCS["Barbados_1938_British_West_Indies_Grid",GEOGCS["GCS_Barbados_1938",DATUM["D
21292 Barbados_1938_Barbados_Grid PROJCS["Barbados_1938_Barbados_Grid",GEOGCS["GCS_Barbados_1938",DATUM["D_Barbados
21413 Beijing_1954_GK_Zone_13 PROJCS["Beijing_1954_GK_Zone_13",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SP
21414 Beijing_1954_GK_Zone_14 PROJCS["Beijing_1954_GK_Zone_14",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SP
21415 Beijing_1954_GK_Zone_15 PROJCS["Beijing_1954_GK_Zone_15",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SP
21416 Beijing_1954_GK_Zone_16 PROJCS["Beijing_1954_GK_Zone_16",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SP
21417 Beijing_1954_GK_Zone_17 PROJCS["Beijing_1954_GK_Zone_17",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SP
21418 Beijing_1954_GK_Zone_18 PROJCS["Beijing_1954_GK_Zone_18",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SP
21419 Beijing_1954_GK_Zone_19 PROJCS["Beijing_1954_GK_Zone_19",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SP
21420 Beijing_1954_GK_Zone_20 PROJCS["Beijing_1954_GK_Zone_20",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SP
21421 Beijing_1954_GK_Zone_21 PROJCS["Beijing_1954_GK_Zone_21",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SP
21422 Beijing_1954_GK_Zone_22 PROJCS["Beijing_1954_GK_Zone_22",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SP
21423 Beijing_1954_GK_Zone_23 PROJCS["Beijing_1954_GK_Zone_23",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SP
21473 Beijing_1954_GK_Zone_13N PROJCS["Beijing_1954_GK_Zone_13N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",
21474 Beijing_1954_GK_Zone_14N PROJCS["Beijing_1954_GK_Zone_14N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",
21475 Beijing_1954_GK_Zone_15N PROJCS["Beijing_1954_GK_Zone_15N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",
21476 Beijing_1954_GK_Zone_16N PROJCS["Beijing_1954_GK_Zone_16N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",
21477 Beijing_1954_GK_Zone_17N PROJCS["Beijing_1954_GK_Zone_17N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",
21478 Beijing_1954_GK_Zone_18N PROJCS["Beijing_1954_GK_Zone_18N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",
21479 Beijing_1954_GK_Zone_19N PROJCS["Beijing_1954_GK_Zone_19N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",
21480 Beijing_1954_GK_Zone_20N PROJCS["Beijing_1954_GK_Zone_20N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",
21481 Beijing_1954_GK_Zone_21N PROJCS["Beijing_1954_GK_Zone_21N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",
21482 Beijing_1954_GK_Zone_22N PROJCS["Beijing_1954_GK_Zone_22N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",
21483 Beijing_1954_GK_Zone_23N PROJCS["Beijing_1954_GK_Zone_23N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",
21500 Belge_Lambert_1950 PROJCS["Belge_Lambert_1950",GEOGCS["GCS_Belge_1950_Brussels",DATUM["D_Belge_1950",
21780 Bern_1898_Bern_LV03C PROJCS["Bern_1898_Bern_LV03C",GEOGCS["GCS_Bern_1898_Bern",DATUM["D_Bern_1898",SP
21781 CH1903_LV03 PROJCS["CH1903_LV03",GEOGCS["GCS_CH1903",DATUM["D_CH1903",SPHEROID["Bessel_184
21782 CH1903_LV03C-G PROJCS["CH1903_LV03C-G",GEOGCS["GCS_CH1903",DATUM["D_CH1903",SPHEROID["Bessel
21817 Bogota_UTM_Zone_17N PROJCS["Bogota_UTM_Zone_17N",GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID["Inte
21818 Bogota_UTM_Zone_18N PROJCS["Bogota_UTM_Zone_18N",GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID["Inte
21896 Colombia_West_Zone PROJCS["Colombia_West_Zone",GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID["Intern
21897 Colombia_Bogota_Zone PROJCS["Colombia_Bogota_Zone",GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID["Inte
21898 Colombia_East_Central_Zone PROJCS["Colombia_East_Central_Zone",GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID
21899 Colombia_East_Zone PROJCS["Colombia_East_Zone",GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID["Interna
22032 Camacupa_UTM_Zone_32S PROJCS["Camacupa_UTM_Zone_32S",GEOGCS["GCS_Camacupa",DATUM["D_Camacupa",SPHE
22033 Camacupa_UTM_Zone_33S PROJCS["Camacupa_UTM_Zone_33S",GEOGCS["GCS_Camacupa",DATUM["D_Camacupa",SPHE
22091 Camacupa_TM_11_30_SE PROJCS["Camacupa_TM_11_30_SE",GEOGCS["GCS_Camacupa",DATUM["D_Camacupa",SPHER
22092 Camacupa_TM_12_SE PROJCS["Camacupa_TM_12_SE",GEOGCS["GCS_Camacupa",DATUM["D_Camacupa",SPHEROI
22171 POSGAR_1998_Argentina_Zone_1 PROJCS["POSGAR_1998_Argentina_Zone_1",GEOGCS["GCS_POSGAR_1998",DATUM["D_POSG
22172 POSGAR_1998_Argentina_Zone_2 PROJCS["POSGAR_1998_Argentina_Zone_2",GEOGCS["GCS_POSGAR_1998",DATUM["D_POSG
22173 POSGAR_1998_Argentina_Zone_3 PROJCS["POSGAR_1998_Argentina_Zone_3",GEOGCS["GCS_POSGAR_1998",DATUM["D_POSG
22174 POSGAR_1998_Argentina_Zone_4 PROJCS["POSGAR_1998_Argentina_Zone_4",GEOGCS["GCS_POSGAR_1998",DATUM["D_POSG
22175 POSGAR_1998_Argentina_Zone_5 PROJCS["POSGAR_1998_Argentina_Zone_5",GEOGCS["GCS_POSGAR_1998",DATUM["D_POSG
22176 POSGAR_1998_Argentina_Zone_6 PROJCS["POSGAR_1998_Argentina_Zone_6",GEOGCS["GCS_POSGAR_1998",DATUM["D_POSG
22177 POSGAR_1998_Argentina_Zone_7 PROJCS["POSGAR_1998_Argentina_Zone_7",GEOGCS["GCS_POSGAR_1998",DATUM["D_POSG
22181 POSGAR_1994_Argentina_Zone_1 PROJCS["POSGAR_1994_Argentina_Zone_1",GEOGCS["GCS_POSGAR_1994",DATUM["D_POSG

Copyright 1995-2015 Esri. All rights reserved. 376


ArcGIS Runtime SDK for .NET

22182 POSGAR_1994_Argentina_Zone_2 PROJCS["POSGAR_1994_Argentina_Zone_2",GEOGCS["GCS_POSGAR_1994",DATUM["D_POSG


22183 POSGAR_1994_Argentina_Zone_3 PROJCS["POSGAR_1994_Argentina_Zone_3",GEOGCS["GCS_POSGAR_1994",DATUM["D_POSG
22184 POSGAR_1994_Argentina_Zone_4 PROJCS["POSGAR_1994_Argentina_Zone_4",GEOGCS["GCS_POSGAR_1994",DATUM["D_POSG
22185 POSGAR_1994_Argentina_Zone_5 PROJCS["POSGAR_1994_Argentina_Zone_5",GEOGCS["GCS_POSGAR_1994",DATUM["D_POSG
22186 POSGAR_1994_Argentina_Zone_6 PROJCS["POSGAR_1994_Argentina_Zone_6",GEOGCS["GCS_POSGAR_1994",DATUM["D_POSG
22187 POSGAR_1994_Argentina_Zone_7 PROJCS["POSGAR_1994_Argentina_Zone_7",GEOGCS["GCS_POSGAR_1994",DATUM["D_POSG
22191 Argentina_Zone_1 PROJCS["Argentina_Zone_1",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe"
22192 Argentina_Zone_2 PROJCS["Argentina_Zone_2",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe"
22193 Argentina_Zone_3 PROJCS["Argentina_Zone_3",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe"
22194 Argentina_Zone_4 PROJCS["Argentina_Zone_4",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe"
22195 Argentina_Zone_5 PROJCS["Argentina_Zone_5",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe"
22196 Argentina_Zone_6 PROJCS["Argentina_Zone_6",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe"
22197 Argentina_Zone_7 PROJCS["Argentina_Zone_7",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe"
22234 Cape_UTM_Zone_34S PROJCS["Cape_UTM_Zone_34S",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1
22235 Cape_UTM_Zone_35S PROJCS["Cape_UTM_Zone_35S",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1
22236 Cape_UTM_Zone_36S PROJCS["Cape_UTM_Zone_36S",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1
22332 Carthage_UTM_Zone_32N PROJCS["Carthage_UTM_Zone_32N",GEOGCS["GCS_Carthage",DATUM["D_Carthage",SPHEROI
22391 Nord_Tunisie PROJCS["Nord_Tunisie",GEOGCS["GCS_Carthage",DATUM["D_Carthage",SPHEROID["Clarke_18
22392 Sud_Tunisie PROJCS["Sud_Tunisie",GEOGCS["GCS_Carthage",DATUM["D_Carthage",SPHEROID["Clarke_188
22521 Corrego_Alegre_UTM_Zone_21S PROJCS["Corrego_Alegre_UTM_Zone_21S",GEOGCS["GCS_Corrego_Alegre",DATUM["D_Corrego
22522 Corrego_Alegre_UTM_Zone_22S PROJCS["Corrego_Alegre_UTM_Zone_22S",GEOGCS["GCS_Corrego_Alegre",DATUM["D_Corrego
22523 Corrego_Alegre_UTM_Zone_23S PROJCS["Corrego_Alegre_UTM_Zone_23S",GEOGCS["GCS_Corrego_Alegre",DATUM["D_Corrego
22524 Corrego_Alegre_UTM_Zone_24S PROJCS["Corrego_Alegre_UTM_Zone_24S",GEOGCS["GCS_Corrego_Alegre",DATUM["D_Corrego
22525 Corrego_Alegre_UTM_Zone_25S PROJCS["Corrego_Alegre_UTM_Zone_25S",GEOGCS["GCS_Corrego_Alegre",DATUM["D_Corrego
22700 Deir_ez_Zor_Levant_Zone PROJCS["Deir_ez_Zor_Levant_Zone",GEOGCS["GCS_Deir_ez_Zor",DATUM["D_Deir_ez_Zor",SPH
22770 Deir_ez_Zor_Syria_Lambert PROJCS["Deir_ez_Zor_Syria_Lambert",GEOGCS["GCS_Deir_ez_Zor",DATUM["D_Deir_ez_Zor",SP
22780 Deir_ez_Zor_Levant_Stereographic PROJCS["Deir_ez_Zor_Levant_Stereographic",GEOGCS["GCS_Deir_ez_Zor",DATUM["D_Deir_ez_
22832 Douala_UTM_Zone_32N PROJCS["Douala_UTM_Zone_32N",GEOGCS["GCS_Douala",DATUM["D_Douala",SPHEROID["Cla
22991 Egypt_Blue_Belt PROJCS["Egypt_Blue_Belt",GEOGCS["GCS_Egypt_1907",DATUM["D_Egypt_1907",SPHEROID["H
22992 Egypt_Red_Belt PROJCS["Egypt_Red_Belt",GEOGCS["GCS_Egypt_1907",DATUM["D_Egypt_1907",SPHEROID["He
22993 Egypt_Purple_Belt PROJCS["Egypt_Purple_Belt",GEOGCS["GCS_Egypt_1907",DATUM["D_Egypt_1907",SPHEROID["
22994 Egypt_Extended_Purple_Belt PROJCS["Egypt_Extended_Purple_Belt",GEOGCS["GCS_Egypt_1907",DATUM["D_Egypt_1907",SP
23028 ED_1950_UTM_Zone_28N PROJCS["ED_1950_UTM_Zone_28N",GEOGCS["GCS_European_1950",DATUM["D_European_19
23029 ED_1950_UTM_Zone_29N PROJCS["ED_1950_UTM_Zone_29N",GEOGCS["GCS_European_1950",DATUM["D_European_19
23030 ED_1950_UTM_Zone_30N PROJCS["ED_1950_UTM_Zone_30N",GEOGCS["GCS_European_1950",DATUM["D_European_19
23031 ED_1950_UTM_Zone_31N PROJCS["ED_1950_UTM_Zone_31N",GEOGCS["GCS_European_1950",DATUM["D_European_19
23032 ED_1950_UTM_Zone_32N PROJCS["ED_1950_UTM_Zone_32N",GEOGCS["GCS_European_1950",DATUM["D_European_19
23033 ED_1950_UTM_Zone_33N PROJCS["ED_1950_UTM_Zone_33N",GEOGCS["GCS_European_1950",DATUM["D_European_19
23034 ED_1950_UTM_Zone_34N PROJCS["ED_1950_UTM_Zone_34N",GEOGCS["GCS_European_1950",DATUM["D_European_19
23035 ED_1950_UTM_Zone_35N PROJCS["ED_1950_UTM_Zone_35N",GEOGCS["GCS_European_1950",DATUM["D_European_19
23036 ED_1950_UTM_Zone_36N PROJCS["ED_1950_UTM_Zone_36N",GEOGCS["GCS_European_1950",DATUM["D_European_19
23037 ED_1950_UTM_Zone_37N PROJCS["ED_1950_UTM_Zone_37N",GEOGCS["GCS_European_1950",DATUM["D_European_19
23038 ED_1950_UTM_Zone_38N PROJCS["ED_1950_UTM_Zone_38N",GEOGCS["GCS_European_1950",DATUM["D_European_19
23090 ED_1950_TM_0_N PROJCS["ED_1950_TM_0_N",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPH
23095 ED_1950_TM_5_NE PROJCS["ED_1950_TM_5_NE",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SP
23239 Fahud_UTM_Zone_39N PROJCS["Fahud_UTM_Zone_39N",GEOGCS["GCS_Fahud",DATUM["D_Fahud",SPHEROID["Clark
23240 Fahud_UTM_Zone_40N PROJCS["Fahud_UTM_Zone_40N",GEOGCS["GCS_Fahud",DATUM["D_Fahud",SPHEROID["Clark
23700 Hungarian_1972_Egyseges_Orszagos_Vetuleti PROJCS["Hungarian_1972_Egyseges_Orszagos_Vetuleti",GEOGCS["GCS_Hungarian_1972",DATU
23830 DGN_1995_Indonesia_TM-3_Zone_46.2 PROJCS["DGN_1995_Indonesia_TM-3_Zone_46.2",GEOGCS["GCS_DGN_1995",DATUM["D_Datu
23831 DGN_1995_Indonesia_TM-3_Zone_47.1 PROJCS["DGN_1995_Indonesia_TM-3_Zone_47.1",GEOGCS["GCS_DGN_1995",DATUM["D_Datu
23832 DGN_1995_Indonesia_TM-3_Zone_47.2 PROJCS["DGN_1995_Indonesia_TM-3_Zone_47.2",GEOGCS["GCS_DGN_1995",DATUM["D_Datu
23833 DGN_1995_Indonesia_TM-3_Zone_48.1 PROJCS["DGN_1995_Indonesia_TM-3_Zone_48.1",GEOGCS["GCS_DGN_1995",DATUM["D_Datu
23834 DGN_1995_Indonesia_TM-3_Zone_48.2 PROJCS["DGN_1995_Indonesia_TM-3_Zone_48.2",GEOGCS["GCS_DGN_1995",DATUM["D_Datu
23835 DGN_1995_Indonesia_TM-3_Zone_49.1 PROJCS["DGN_1995_Indonesia_TM-3_Zone_49.1",GEOGCS["GCS_DGN_1995",DATUM["D_Datu

Copyright 1995-2015 Esri. All rights reserved. 377


ArcGIS Runtime SDK for .NET

23836 DGN_1995_Indonesia_TM-3_Zone_49.2 PROJCS["DGN_1995_Indonesia_TM-3_Zone_49.2",GEOGCS["GCS_DGN_1995",DATUM["D_Datu


23837 DGN_1995_Indonesia_TM-3_Zone_50.1 PROJCS["DGN_1995_Indonesia_TM-3_Zone_50.1",GEOGCS["GCS_DGN_1995",DATUM["D_Datu
23838 DGN_1995_Indonesia_TM-3_Zone_50.2 PROJCS["DGN_1995_Indonesia_TM-3_Zone_50.2",GEOGCS["GCS_DGN_1995",DATUM["D_Datu
23839 DGN_1995_Indonesia_TM-3_Zone_51.1 PROJCS["DGN_1995_Indonesia_TM-3_Zone_51.1",GEOGCS["GCS_DGN_1995",DATUM["D_Datu
23840 DGN_1995_Indonesia_TM-3_Zone_51.2 PROJCS["DGN_1995_Indonesia_TM-3_Zone_51.2",GEOGCS["GCS_DGN_1995",DATUM["D_Datu
23841 DGN_1995_Indonesia_TM-3_Zone_52.1 PROJCS["DGN_1995_Indonesia_TM-3_Zone_52.1",GEOGCS["GCS_DGN_1995",DATUM["D_Datu
23842 DGN_1995_Indonesia_TM-3_Zone_52.2 PROJCS["DGN_1995_Indonesia_TM-3_Zone_52.2",GEOGCS["GCS_DGN_1995",DATUM["D_Datu
23843 DGN_1995_Indonesia_TM-3_Zone_53.1 PROJCS["DGN_1995_Indonesia_TM-3_Zone_53.1",GEOGCS["GCS_DGN_1995",DATUM["D_Datu
23844 DGN_1995_Indonesia_TM-3_Zone_53.2 PROJCS["DGN_1995_Indonesia_TM-3_Zone_53.2",GEOGCS["GCS_DGN_1995",DATUM["D_Datu
23845 DGN_1995_Indonesia_TM-3_Zone_54.1 PROJCS["DGN_1995_Indonesia_TM-3_Zone_54.1",GEOGCS["GCS_DGN_1995",DATUM["D_Datu
23846 Indonesian_1974_UTM_Zone_46N PROJCS["Indonesian_1974_UTM_Zone_46N",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indo
23847 Indonesian_1974_UTM_Zone_47N PROJCS["Indonesian_1974_UTM_Zone_47N",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indo
23848 Indonesian_1974_UTM_Zone_48N PROJCS["Indonesian_1974_UTM_Zone_48N",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indo
23849 Indonesian_1974_UTM_Zone_49N PROJCS["Indonesian_1974_UTM_Zone_49N",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indo
23850 Indonesian_1974_UTM_Zone_50N PROJCS["Indonesian_1974_UTM_Zone_50N",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indo
23851 Indonesian_1974_UTM_Zone_51N PROJCS["Indonesian_1974_UTM_Zone_51N",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indo
23852 Indonesian_1974_UTM_Zone_52N PROJCS["Indonesian_1974_UTM_Zone_52N",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indo
23853 Indonesian_1974_UTM_Zone_53N PROJCS["Indonesian_1974_UTM_Zone_53N",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indo
23866 DGN_1995_UTM_Zone_46N PROJCS["DGN_1995_UTM_Zone_46N",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_
23867 DGN_1995_UTM_Zone_47N PROJCS["DGN_1995_UTM_Zone_47N",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_
23868 DGN_1995_UTM_Zone_48N PROJCS["DGN_1995_UTM_Zone_48N",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_
23869 DGN_1995_UTM_Zone_49N PROJCS["DGN_1995_UTM_Zone_49N",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_
23870 DGN_1995_UTM_Zone_50N PROJCS["DGN_1995_UTM_Zone_50N",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_
23871 DGN_1995_UTM_Zone_51N PROJCS["DGN_1995_UTM_Zone_51N",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_
23872 DGN_1995_UTM_Zone_52N PROJCS["DGN_1995_UTM_Zone_52N",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_
23877 DGN_1995_UTM_Zone_47S PROJCS["DGN_1995_UTM_Zone_47S",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_
23878 DGN_1995_UTM_Zone_48S PROJCS["DGN_1995_UTM_Zone_48S",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_
23879 DGN_1995_UTM_Zone_49S PROJCS["DGN_1995_UTM_Zone_49S",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_
23880 DGN_1995_UTM_Zone_50S PROJCS["DGN_1995_UTM_Zone_50S",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_
23881 DGN_1995_UTM_Zone_51S PROJCS["DGN_1995_UTM_Zone_51S",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_
23882 DGN_1995_UTM_Zone_52S PROJCS["DGN_1995_UTM_Zone_52S",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_
23883 DGN_1995_UTM_Zone_53S PROJCS["DGN_1995_UTM_Zone_53S",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_
23884 DGN_1995_UTM_Zone_54S PROJCS["DGN_1995_UTM_Zone_54S",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_
23886 Indonesian_1974_UTM_Zone_46S PROJCS["Indonesian_1974_UTM_Zone_46S",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indon
23887 Indonesian_1974_UTM_Zone_47S PROJCS["Indonesian_1974_UTM_Zone_47S",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indon
23888 Indonesian_1974_UTM_Zone_48S PROJCS["Indonesian_1974_UTM_Zone_48S",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indon
23889 Indonesian_1974_UTM_Zone_49S PROJCS["Indonesian_1974_UTM_Zone_49S",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indon
23890 Indonesian_1974_UTM_Zone_50S PROJCS["Indonesian_1974_UTM_Zone_50S",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indon
23891 Indonesian_1974_UTM_Zone_51S PROJCS["Indonesian_1974_UTM_Zone_51S",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indon
23892 Indonesian_1974_UTM_Zone_52S PROJCS["Indonesian_1974_UTM_Zone_52S",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indon
23893 Indonesian_1974_UTM_Zone_53S PROJCS["Indonesian_1974_UTM_Zone_53S",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indon
23894 Indonesian_1974_UTM_Zone_54S PROJCS["Indonesian_1974_UTM_Zone_54S",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indon
23946 Indian_1954_UTM_Zone_46N PROJCS["Indian_1954_UTM_Zone_46N",GEOGCS["GCS_Indian_1954",DATUM["D_Indian_1954",S
23947 Indian_1954_UTM_Zone_47N PROJCS["Indian_1954_UTM_Zone_47N",GEOGCS["GCS_Indian_1954",DATUM["D_Indian_1954",S
23948 Indian_1954_UTM_Zone_48N PROJCS["Indian_1954_UTM_Zone_48N",GEOGCS["GCS_Indian_1954",DATUM["D_Indian_1954",S
24047 Indian_1975_UTM_Zone_47N PROJCS["Indian_1975_UTM_Zone_47N",GEOGCS["GCS_Indian_1975",DATUM["D_Indian_1975",S
24048 Indian_1975_UTM_Zone_48N PROJCS["Indian_1975_UTM_Zone_48N",GEOGCS["GCS_Indian_1975",DATUM["D_Indian_1975",S
24100 Jamaica_1875_Old_Grid PROJCS["Jamaica_1875_Old_Grid",GEOGCS["GCS_Jamaica_1875",DATUM["D_Jamaica_1875",S
24200 Jamaica_Grid PROJCS["Jamaica_Grid",GEOGCS["GCS_Jamaica_1969",DATUM["D_Jamaica_1969",SPHEROID[
24305 Kalianpur_1937_UTM_Zone_45N PROJCS["Kalianpur_1937_UTM_Zone_45N",GEOGCS["GCS_Kalianpur_1937",DATUM["D_Kalianp
24306 Kalianpur_1937_UTM_Zone_46N PROJCS["Kalianpur_1937_UTM_Zone_46N",GEOGCS["GCS_Kalianpur_1937",DATUM["D_Kalianp
24311 Kalianpur_1962_UTM_Zone_41N PROJCS["Kalianpur_1962_UTM_Zone_41N",GEOGCS["GCS_Kalianpur_1962",DATUM["D_Kalianp
24312 Kalianpur_1962_UTM_Zone_42N PROJCS["Kalianpur_1962_UTM_Zone_42N",GEOGCS["GCS_Kalianpur_1962",DATUM["D_Kalianp
24313 Kalianpur_1962_UTM_Zone_43N PROJCS["Kalianpur_1962_UTM_Zone_43N",GEOGCS["GCS_Kalianpur_1962",DATUM["D_Kalianp

Copyright 1995-2015 Esri. All rights reserved. 378


ArcGIS Runtime SDK for .NET

24342 Kalianpur_1975_UTM_Zone_42N PROJCS["Kalianpur_1975_UTM_Zone_42N",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianp


24343 Kalianpur_1975_UTM_Zone_43N PROJCS["Kalianpur_1975_UTM_Zone_43N",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianp
24344 Kalianpur_1975_UTM_Zone_44N PROJCS["Kalianpur_1975_UTM_Zone_44N",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianp
24345 Kalianpur_1975_UTM_Zone_45N PROJCS["Kalianpur_1975_UTM_Zone_45N",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianp
24346 Kalianpur_1975_UTM_Zone_46N PROJCS["Kalianpur_1975_UTM_Zone_46N",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianp
24347 Kalianpur_1975_UTM_Zone_47N PROJCS["Kalianpur_1975_UTM_Zone_47N",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianp
24370 Kalianpur_1880_India_Zone_0 PROJCS["Kalianpur_1880_India_Zone_0",GEOGCS["GCS_Kalianpur_1880",DATUM["D_Kalianpur_
24371 Kalianpur_1880_India_Zone_I PROJCS["Kalianpur_1880_India_Zone_I",GEOGCS["GCS_Kalianpur_1880",DATUM["D_Kalianpur_1
24372 Kalianpur_1880_India_Zone_IIa PROJCS["Kalianpur_1880_India_Zone_IIa",GEOGCS["GCS_Kalianpur_1880",DATUM["D_Kalianpur
24373 Kalianpur_1880_India_Zone_III PROJCS["Kalianpur_1880_India_Zone_III",GEOGCS["GCS_Kalianpur_1880",DATUM["D_Kalianpur_
24374 Kalianpur_1880_India_Zone_IV PROJCS["Kalianpur_1880_India_Zone_IV",GEOGCS["GCS_Kalianpur_1880",DATUM["D_Kalianpur
24375 Kalianpur_1937_India_Zone_IIb PROJCS["Kalianpur_1937_India_Zone_IIb",GEOGCS["GCS_Kalianpur_1937",DATUM["D_Kalianpur
24376 Kalianpur_1962_India_Zone_I PROJCS["Kalianpur_1962_India_Zone_I",GEOGCS["GCS_Kalianpur_1962",DATUM["D_Kalianpur_1
24377 Kalianpur_1962_India_Zone_IIa PROJCS["Kalianpur_1962_India_Zone_IIa",GEOGCS["GCS_Kalianpur_1962",DATUM["D_Kalianpur
24378 Kalianpur_1975_India_Zone_I PROJCS["Kalianpur_1975_India_Zone_I",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianpur_1
24379 Kalianpur_1975_India_Zone_IIa PROJCS["Kalianpur_1975_India_Zone_IIa",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianpur
24380 Kalianpur_1975_India_Zone_IIb PROJCS["Kalianpur_1975_India_Zone_IIb",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianpur
24381 Kalianpur_1975_India_Zone_III PROJCS["Kalianpur_1975_India_Zone_III",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianpur_
24382 Kalianpur_1880_India_Zone_IIb PROJCS["Kalianpur_1880_India_Zone_IIb",GEOGCS["GCS_Kalianpur_1880",DATUM["D_Kalianpur
24383 Kalianpur_1975_India_Zone_IV PROJCS["Kalianpur_1975_India_Zone_IV",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianpur
24500 Kertau_Singapore_Grid PROJCS["Kertau_Singapore_Grid",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Evere
24547 Kertau_UTM_Zone_47N PROJCS["Kertau_UTM_Zone_47N",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Ever
24548 Kertau_UTM_Zone_48N PROJCS["Kertau_UTM_Zone_48N",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Ever
24571 Kertau_RSO_Malaya_Chains PROJCS["Kertau_RSO_Malaya_Chains",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["
24600 KOC_Lambert PROJCS["KOC_Lambert",GEOGCS["GCS_Kuwait_Oil_Company",DATUM["D_Kuwait_Oil_Company
24718 La_Canoa_UTM_Zone_18N PROJCS["La_Canoa_UTM_Zone_18N",GEOGCS["GCS_La_Canoa",DATUM["D_La_Canoa",SPHER
24719 La_Canoa_UTM_Zone_19N PROJCS["La_Canoa_UTM_Zone_19N",GEOGCS["GCS_La_Canoa",DATUM["D_La_Canoa",SPHER
24720 La_Canoa_UTM_Zone_20N PROJCS["La_Canoa_UTM_Zone_20N",GEOGCS["GCS_La_Canoa",DATUM["D_La_Canoa",SPHER
24721 La_Canoa_UTM_Zone_21N PROJCS["La_Canoa_UTM_Zone_21N",GEOGCS["GCS_La_Canoa",DATUM["D_La_Canoa",SPHER
24817 PSAD_1956_UTM_Zone_17N PROJCS["PSAD_1956_UTM_Zone_17N",GEOGCS["GCS_Provisional_S_American_1956",DATUM
24818 PSAD_1956_UTM_Zone_18N PROJCS["PSAD_1956_UTM_Zone_18N",GEOGCS["GCS_Provisional_S_American_1956",DATUM
24819 PSAD_1956_UTM_Zone_19N PROJCS["PSAD_1956_UTM_Zone_19N",GEOGCS["GCS_Provisional_S_American_1956",DATUM
24820 PSAD_1956_UTM_Zone_20N PROJCS["PSAD_1956_UTM_Zone_20N",GEOGCS["GCS_Provisional_S_American_1956",DATUM
24821 PSAD_1956_UTM_Zone_21N PROJCS["PSAD_1956_UTM_Zone_21N",GEOGCS["GCS_Provisional_S_American_1956",DATUM
24877 PSAD_1956_UTM_Zone_17S PROJCS["PSAD_1956_UTM_Zone_17S",GEOGCS["GCS_Provisional_S_American_1956",DATUM[
24878 PSAD_1956_UTM_Zone_18S PROJCS["PSAD_1956_UTM_Zone_18S",GEOGCS["GCS_Provisional_S_American_1956",DATUM[
24879 PSAD_1956_UTM_Zone_19S PROJCS["PSAD_1956_UTM_Zone_19S",GEOGCS["GCS_Provisional_S_American_1956",DATUM[
24880 PSAD_1956_UTM_Zone_20S PROJCS["PSAD_1956_UTM_Zone_20S",GEOGCS["GCS_Provisional_S_American_1956",DATUM[
24881 PSAD_1956_UTM_Zone_21S PROJCS["PSAD_1956_UTM_Zone_21S",GEOGCS["GCS_Provisional_S_American_1956",DATUM[
24882 PSAD_1956_UTM_Zone_22S PROJCS["PSAD_1956_UTM_Zone_22S",GEOGCS["GCS_Provisional_S_American_1956",DATUM[
24891 Peru_West_Zone PROJCS["Peru_West_Zone",GEOGCS["GCS_Provisional_S_American_1956",DATUM["D_Provision
24892 Peru_Central_Zone PROJCS["Peru_Central_Zone",GEOGCS["GCS_Provisional_S_American_1956",DATUM["D_Provisi
24893 Peru_East_Zone PROJCS["Peru_East_Zone",GEOGCS["GCS_Provisional_S_American_1956",DATUM["D_Provision
25000 Ghana_Metre_Grid PROJCS["Ghana_Metre_Grid",GEOGCS["GCS_Leigon",DATUM["D_Leigon",SPHEROID["Clarke_18
25231 Lome_UTM_Zone_31N PROJCS["Lome_UTM_Zone_31N",GEOGCS["GCS_Lome",DATUM["D_Lome",SPHEROID["Clarke_
25391 Philippines_Zone_I PROJCS["Philippines_Zone_I",GEOGCS["GCS_Luzon_1911",DATUM["D_Luzon_1911",SPHEROID
25392 Philippines_Zone_II PROJCS["Philippines_Zone_II",GEOGCS["GCS_Luzon_1911",DATUM["D_Luzon_1911",SPHEROID
25393 Philippines_Zone_III PROJCS["Philippines_Zone_III",GEOGCS["GCS_Luzon_1911",DATUM["D_Luzon_1911",SPHEROI
25394 Philippines_Zone_IV PROJCS["Philippines_Zone_IV",GEOGCS["GCS_Luzon_1911",DATUM["D_Luzon_1911",SPHEROI
25395 Philippines_Zone_V PROJCS["Philippines_Zone_V",GEOGCS["GCS_Luzon_1911",DATUM["D_Luzon_1911",SPHEROID
25828 ETRS_1989_UTM_Zone_28N PROJCS["ETRS_1989_UTM_Zone_28N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
25829 ETRS_1989_UTM_Zone_29N PROJCS["ETRS_1989_UTM_Zone_29N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
25830 ETRS_1989_UTM_Zone_30N PROJCS["ETRS_1989_UTM_Zone_30N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
25831 ETRS_1989_UTM_Zone_31N PROJCS["ETRS_1989_UTM_Zone_31N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S

Copyright 1995-2015 Esri. All rights reserved. 379


ArcGIS Runtime SDK for .NET

25832 ETRS_1989_UTM_Zone_32N PROJCS["ETRS_1989_UTM_Zone_32N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S


25833 ETRS_1989_UTM_Zone_33N PROJCS["ETRS_1989_UTM_Zone_33N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
25834 ETRS_1989_UTM_Zone_34N PROJCS["ETRS_1989_UTM_Zone_34N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
25835 ETRS_1989_UTM_Zone_35N PROJCS["ETRS_1989_UTM_Zone_35N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
25836 ETRS_1989_UTM_Zone_36N PROJCS["ETRS_1989_UTM_Zone_36N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
25837 ETRS_1989_UTM_Zone_37N PROJCS["ETRS_1989_UTM_Zone_37N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
25838 ETRS_1989_UTM_Zone_38N PROJCS["ETRS_1989_UTM_Zone_38N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
25884 ETRS_1989_TM_Baltic_1993 PROJCS["ETRS_1989_TM_Baltic_1993",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
25932 Malongo_1987_UTM_Zone_32S PROJCS["Malongo_1987_UTM_Zone_32S",GEOGCS["GCS_Malongo_1987",DATUM["D_Malongo_
26191 Nord_Maroc PROJCS["Nord_Maroc",GEOGCS["GCS_Merchich",DATUM["D_Merchich",SPHEROID["Clarke_188
26192 Sud_Maroc PROJCS["Sud_Maroc",GEOGCS["GCS_Merchich",DATUM["D_Merchich",SPHEROID["Clarke_1880
26193 Sahara PROJCS["Sahara",GEOGCS["GCS_Merchich",DATUM["D_Merchich",SPHEROID["Clarke_1880_IGN
26194 Merchich_Sahara_Nord PROJCS["Merchich_Sahara_Nord",GEOGCS["GCS_Merchich",DATUM["D_Merchich",SPHEROID["C
26195 Merchich_Sahara_Sud PROJCS["Merchich_Sahara_Sud",GEOGCS["GCS_Merchich",DATUM["D_Merchich",SPHEROID["C
26237 Massawa_UTM_Zone_37N PROJCS["Massawa_UTM_Zone_37N",GEOGCS["GCS_Massawa",DATUM["D_Massawa",SPHERO
26331 Minna_UTM_Zone_31N PROJCS["Minna_UTM_Zone_31N",GEOGCS["GCS_Minna",DATUM["D_Minna",SPHEROID["Clarke
26332 Minna_UTM_Zone_32N PROJCS["Minna_UTM_Zone_32N",GEOGCS["GCS_Minna",DATUM["D_Minna",SPHEROID["Clarke
26391 Nigeria_West_Belt PROJCS["Nigeria_West_Belt",GEOGCS["GCS_Minna",DATUM["D_Minna",SPHEROID["Clarke_188
26392 Nigeria_Mid_Belt PROJCS["Nigeria_Mid_Belt",GEOGCS["GCS_Minna",DATUM["D_Minna",SPHEROID["Clarke_1880
26393 Nigeria_East_Belt PROJCS["Nigeria_East_Belt",GEOGCS["GCS_Minna",DATUM["D_Minna",SPHEROID["Clarke_1880
26591 Monte_Mario_Rome_Italy_1 PROJCS["Monte_Mario_Rome_Italy_1",GEOGCS["GCS_Monte_Mario_Rome",DATUM["D_Monte_M
26592 Monte_Mario_Rome_Italy_2 PROJCS["Monte_Mario_Rome_Italy_2",GEOGCS["GCS_Monte_Mario_Rome",DATUM["D_Monte_M
26632 Mporaloko_UTM_Zone_32N PROJCS["Mporaloko_UTM_Zone_32N",GEOGCS["GCS_Mporaloko",DATUM["D_Mporaloko",SPHE
26692 Mporaloko_UTM_Zone_32S PROJCS["Mporaloko_UTM_Zone_32S",GEOGCS["GCS_Mporaloko",DATUM["D_Mporaloko",SPHE
26701 NAD_1927_UTM_Zone_1N PROJCS["NAD_1927_UTM_Zone_1N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
26702 NAD_1927_UTM_Zone_2N PROJCS["NAD_1927_UTM_Zone_2N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
26703 NAD_1927_UTM_Zone_3N PROJCS["NAD_1927_UTM_Zone_3N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
26704 NAD_1927_UTM_Zone_4N PROJCS["NAD_1927_UTM_Zone_4N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
26705 NAD_1927_UTM_Zone_5N PROJCS["NAD_1927_UTM_Zone_5N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
26706 NAD_1927_UTM_Zone_6N PROJCS["NAD_1927_UTM_Zone_6N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
26707 NAD_1927_UTM_Zone_7N PROJCS["NAD_1927_UTM_Zone_7N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
26708 NAD_1927_UTM_Zone_8N PROJCS["NAD_1927_UTM_Zone_8N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
26709 NAD_1927_UTM_Zone_9N PROJCS["NAD_1927_UTM_Zone_9N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
26710 NAD_1927_UTM_Zone_10N PROJCS["NAD_1927_UTM_Zone_10N",GEOGCS["GCS_North_American_1927",DATUM["D_North
26711 NAD_1927_UTM_Zone_11N PROJCS["NAD_1927_UTM_Zone_11N",GEOGCS["GCS_North_American_1927",DATUM["D_North
26712 NAD_1927_UTM_Zone_12N PROJCS["NAD_1927_UTM_Zone_12N",GEOGCS["GCS_North_American_1927",DATUM["D_North
26713 NAD_1927_UTM_Zone_13N PROJCS["NAD_1927_UTM_Zone_13N",GEOGCS["GCS_North_American_1927",DATUM["D_North
26714 NAD_1927_UTM_Zone_14N PROJCS["NAD_1927_UTM_Zone_14N",GEOGCS["GCS_North_American_1927",DATUM["D_North
26715 NAD_1927_UTM_Zone_15N PROJCS["NAD_1927_UTM_Zone_15N",GEOGCS["GCS_North_American_1927",DATUM["D_North
26716 NAD_1927_UTM_Zone_16N PROJCS["NAD_1927_UTM_Zone_16N",GEOGCS["GCS_North_American_1927",DATUM["D_North
26717 NAD_1927_UTM_Zone_17N PROJCS["NAD_1927_UTM_Zone_17N",GEOGCS["GCS_North_American_1927",DATUM["D_North
26718 NAD_1927_UTM_Zone_18N PROJCS["NAD_1927_UTM_Zone_18N",GEOGCS["GCS_North_American_1927",DATUM["D_North
26719 NAD_1927_UTM_Zone_19N PROJCS["NAD_1927_UTM_Zone_19N",GEOGCS["GCS_North_American_1927",DATUM["D_North
26720 NAD_1927_UTM_Zone_20N PROJCS["NAD_1927_UTM_Zone_20N",GEOGCS["GCS_North_American_1927",DATUM["D_North
26721 NAD_1927_UTM_Zone_21N PROJCS["NAD_1927_UTM_Zone_21N",GEOGCS["GCS_North_American_1927",DATUM["D_North
26722 NAD_1927_UTM_Zone_22N PROJCS["NAD_1927_UTM_Zone_22N",GEOGCS["GCS_North_American_1927",DATUM["D_North
26729 NAD_1927_StatePlane_Alabama_East_FIPS_0101 PROJCS["NAD_1927_StatePlane_Alabama_East_FIPS_0101",GEOGCS["GCS_North_American_1
26730 NAD_1927_StatePlane_Alabama_West_FIPS_0102 PROJCS["NAD_1927_StatePlane_Alabama_West_FIPS_0102",GEOGCS["GCS_North_American_1
26731 NAD_1927_StatePlane_Alaska_1_FIPS_5001 PROJCS["NAD_1927_StatePlane_Alaska_1_FIPS_5001",GEOGCS["GCS_North_American_1927",D
26732 NAD_1927_StatePlane_Alaska_2_FIPS_5002 PROJCS["NAD_1927_StatePlane_Alaska_2_FIPS_5002",GEOGCS["GCS_North_American_1927",D
26733 NAD_1927_StatePlane_Alaska_3_FIPS_5003 PROJCS["NAD_1927_StatePlane_Alaska_3_FIPS_5003",GEOGCS["GCS_North_American_1927",D
26734 NAD_1927_StatePlane_Alaska_4_FIPS_5004 PROJCS["NAD_1927_StatePlane_Alaska_4_FIPS_5004",GEOGCS["GCS_North_American_1927",D
26735 NAD_1927_StatePlane_Alaska_5_FIPS_5005 PROJCS["NAD_1927_StatePlane_Alaska_5_FIPS_5005",GEOGCS["GCS_North_American_1927",D
26736 NAD_1927_StatePlane_Alaska_6_FIPS_5006 PROJCS["NAD_1927_StatePlane_Alaska_6_FIPS_5006",GEOGCS["GCS_North_American_1927",D

Copyright 1995-2015 Esri. All rights reserved. 380


ArcGIS Runtime SDK for .NET

26737 NAD_1927_StatePlane_Alaska_7_FIPS_5007 PROJCS["NAD_1927_StatePlane_Alaska_7_FIPS_5007",GEOGCS["GCS_North_American_1927",D


26738 NAD_1927_StatePlane_Alaska_8_FIPS_5008 PROJCS["NAD_1927_StatePlane_Alaska_8_FIPS_5008",GEOGCS["GCS_North_American_1927",D
26739 NAD_1927_StatePlane_Alaska_9_FIPS_5009 PROJCS["NAD_1927_StatePlane_Alaska_9_FIPS_5009",GEOGCS["GCS_North_American_1927",D
26740 NAD_1927_StatePlane_Alaska_10_FIPS_5010 PROJCS["NAD_1927_StatePlane_Alaska_10_FIPS_5010",GEOGCS["GCS_North_American_1927"
26741 NAD_1927_StatePlane_California_I_FIPS_0401 PROJCS["NAD_1927_StatePlane_California_I_FIPS_0401",GEOGCS["GCS_North_American_1927
26742 NAD_1927_StatePlane_California_II_FIPS_0402 PROJCS["NAD_1927_StatePlane_California_II_FIPS_0402",GEOGCS["GCS_North_American_1927
26743 NAD_1927_StatePlane_California_III_FIPS_0403 PROJCS["NAD_1927_StatePlane_California_III_FIPS_0403",GEOGCS["GCS_North_American_192
26744 NAD_1927_StatePlane_California_IV_FIPS_0404 PROJCS["NAD_1927_StatePlane_California_IV_FIPS_0404",GEOGCS["GCS_North_American_192
26745 NAD_1927_StatePlane_California_V_FIPS_0405 PROJCS["NAD_1927_StatePlane_California_V_FIPS_0405",GEOGCS["GCS_North_American_192
26746 NAD_1927_StatePlane_California_VI_FIPS_0406 PROJCS["NAD_1927_StatePlane_California_VI_FIPS_0406",GEOGCS["GCS_North_American_192
26748 NAD_1927_StatePlane_Arizona_East_FIPS_0201 PROJCS["NAD_1927_StatePlane_Arizona_East_FIPS_0201",GEOGCS["GCS_North_American_19
26749 NAD_1927_StatePlane_Arizona_Central_FIPS_0202 PROJCS["NAD_1927_StatePlane_Arizona_Central_FIPS_0202",GEOGCS["GCS_North_American_
26750 NAD_1927_StatePlane_Arizona_West_FIPS_0203 PROJCS["NAD_1927_StatePlane_Arizona_West_FIPS_0203",GEOGCS["GCS_North_American_19
26751 NAD_1927_StatePlane_Arkansas_North_FIPS_0301 PROJCS["NAD_1927_StatePlane_Arkansas_North_FIPS_0301",GEOGCS["GCS_North_American_
26752 NAD_1927_StatePlane_Arkansas_South_FIPS_0302 PROJCS["NAD_1927_StatePlane_Arkansas_South_FIPS_0302",GEOGCS["GCS_North_American_
26753 NAD_1927_StatePlane_Colorado_North_FIPS_0501 PROJCS["NAD_1927_StatePlane_Colorado_North_FIPS_0501",GEOGCS["GCS_North_American_
26754 NAD_1927_StatePlane_Colorado_Central_FIPS_0502 PROJCS["NAD_1927_StatePlane_Colorado_Central_FIPS_0502",GEOGCS["GCS_North_American
26755 NAD_1927_StatePlane_Colorado_South_FIPS_0503 PROJCS["NAD_1927_StatePlane_Colorado_South_FIPS_0503",GEOGCS["GCS_North_American_
26756 NAD_1927_StatePlane_Connecticut_FIPS_0600 PROJCS["NAD_1927_StatePlane_Connecticut_FIPS_0600",GEOGCS["GCS_North_American_1927
26757 NAD_1927_StatePlane_Delaware_FIPS_0700 PROJCS["NAD_1927_StatePlane_Delaware_FIPS_0700",GEOGCS["GCS_North_American_1927",
26758 NAD_1927_StatePlane_Florida_East_FIPS_0901 PROJCS["NAD_1927_StatePlane_Florida_East_FIPS_0901",GEOGCS["GCS_North_American_192
26759 NAD_1927_StatePlane_Florida_West_FIPS_0902 PROJCS["NAD_1927_StatePlane_Florida_West_FIPS_0902",GEOGCS["GCS_North_American_192
26760 NAD_1927_StatePlane_Florida_North_FIPS_0903 PROJCS["NAD_1927_StatePlane_Florida_North_FIPS_0903",GEOGCS["GCS_North_American_19
26766 NAD_1927_StatePlane_Georgia_East_FIPS_1001 PROJCS["NAD_1927_StatePlane_Georgia_East_FIPS_1001",GEOGCS["GCS_North_American_19
26767 NAD_1927_StatePlane_Georgia_West_FIPS_1002 PROJCS["NAD_1927_StatePlane_Georgia_West_FIPS_1002",GEOGCS["GCS_North_American_19
26768 NAD_1927_StatePlane_Idaho_East_FIPS_1101 PROJCS["NAD_1927_StatePlane_Idaho_East_FIPS_1101",GEOGCS["GCS_North_American_1927
26769 NAD_1927_StatePlane_Idaho_Central_FIPS_1102 PROJCS["NAD_1927_StatePlane_Idaho_Central_FIPS_1102",GEOGCS["GCS_North_American_19
26770 NAD_1927_StatePlane_Idaho_West_FIPS_1103 PROJCS["NAD_1927_StatePlane_Idaho_West_FIPS_1103",GEOGCS["GCS_North_American_1927
26771 NAD_1927_StatePlane_Illinois_East_FIPS_1201 PROJCS["NAD_1927_StatePlane_Illinois_East_FIPS_1201",GEOGCS["GCS_North_American_1927
26772 NAD_1927_StatePlane_Illinois_West_FIPS_1202 PROJCS["NAD_1927_StatePlane_Illinois_West_FIPS_1202",GEOGCS["GCS_North_American_192
26773 NAD_1927_StatePlane_Indiana_East_FIPS_1301 PROJCS["NAD_1927_StatePlane_Indiana_East_FIPS_1301",GEOGCS["GCS_North_American_192
26774 NAD_1927_StatePlane_Indiana_West_FIPS_1302 PROJCS["NAD_1927_StatePlane_Indiana_West_FIPS_1302",GEOGCS["GCS_North_American_19
26775 NAD_1927_StatePlane_Iowa_North_FIPS_1401 PROJCS["NAD_1927_StatePlane_Iowa_North_FIPS_1401",GEOGCS["GCS_North_American_1927
26776 NAD_1927_StatePlane_Iowa_South_FIPS_1402 PROJCS["NAD_1927_StatePlane_Iowa_South_FIPS_1402",GEOGCS["GCS_North_American_1927
26777 NAD_1927_StatePlane_Kansas_North_FIPS_1501 PROJCS["NAD_1927_StatePlane_Kansas_North_FIPS_1501",GEOGCS["GCS_North_American_19
26778 NAD_1927_StatePlane_Kansas_South_FIPS_1502 PROJCS["NAD_1927_StatePlane_Kansas_South_FIPS_1502",GEOGCS["GCS_North_American_1
26779 NAD_1927_StatePlane_Kentucky_North_FIPS_1601 PROJCS["NAD_1927_StatePlane_Kentucky_North_FIPS_1601",GEOGCS["GCS_North_American_
26780 NAD_1927_StatePlane_Kentucky_South_FIPS_1602 PROJCS["NAD_1927_StatePlane_Kentucky_South_FIPS_1602",GEOGCS["GCS_North_American_
26781 NAD_1927_StatePlane_Louisiana_North_FIPS_1701 PROJCS["NAD_1927_StatePlane_Louisiana_North_FIPS_1701",GEOGCS["GCS_North_American_
26782 NAD_1927_StatePlane_Louisiana_South_FIPS_1702 PROJCS["NAD_1927_StatePlane_Louisiana_South_FIPS_1702",GEOGCS["GCS_North_American_
26783 NAD_1927_StatePlane_Maine_East_FIPS_1801 PROJCS["NAD_1927_StatePlane_Maine_East_FIPS_1801",GEOGCS["GCS_North_American_1927
26784 NAD_1927_StatePlane_Maine_West_FIPS_1802 PROJCS["NAD_1927_StatePlane_Maine_West_FIPS_1802",GEOGCS["GCS_North_American_192
26785 NAD_1927_StatePlane_Maryland_FIPS_1900 PROJCS["NAD_1927_StatePlane_Maryland_FIPS_1900",GEOGCS["GCS_North_American_1927",D
26786 NAD_1927_StatePlane_Massachusetts_Mainland_FIPS_2001 PROJCS["NAD_1927_StatePlane_Massachusetts_Mainland_FIPS_2001",GEOGCS["GCS_North_A
26787 NAD_1927_StatePlane_Massachusetts_Island_FIPS_2002 PROJCS["NAD_1927_StatePlane_Massachusetts_Island_FIPS_2002",GEOGCS["GCS_North_Ame
26788 NAD_1927_StatePlane_Michigan_North_FIPS_2111 PROJCS["NAD_1927_StatePlane_Michigan_North_FIPS_2111",GEOGCS["GCS_North_American_1
26789 NAD_1927_StatePlane_Michigan_Central_FIPS_2112 PROJCS["NAD_1927_StatePlane_Michigan_Central_FIPS_2112",GEOGCS["GCS_North_American
26790 NAD_1927_StatePlane_Michigan_South_FIPS_2113 PROJCS["NAD_1927_StatePlane_Michigan_South_FIPS_2113",GEOGCS["GCS_North_American_
26791 NAD_1927_StatePlane_Minnesota_North_FIPS_2201 PROJCS["NAD_1927_StatePlane_Minnesota_North_FIPS_2201",GEOGCS["GCS_North_American
26792 NAD_1927_StatePlane_Minnesota_Central_FIPS_2202 PROJCS["NAD_1927_StatePlane_Minnesota_Central_FIPS_2202",GEOGCS["GCS_North_America
26793 NAD_1927_StatePlane_Minnesota_South_FIPS_2203 PROJCS["NAD_1927_StatePlane_Minnesota_South_FIPS_2203",GEOGCS["GCS_North_American
26794 NAD_1927_StatePlane_Mississippi_East_FIPS_2301 PROJCS["NAD_1927_StatePlane_Mississippi_East_FIPS_2301",GEOGCS["GCS_North_American_
26795 NAD_1927_StatePlane_Mississippi_West_FIPS_2302 PROJCS["NAD_1927_StatePlane_Mississippi_West_FIPS_2302",GEOGCS["GCS_North_American
26796 NAD_1927_StatePlane_Missouri_East_FIPS_2401 PROJCS["NAD_1927_StatePlane_Missouri_East_FIPS_2401",GEOGCS["GCS_North_American_19

Copyright 1995-2015 Esri. All rights reserved. 381


ArcGIS Runtime SDK for .NET

26797 NAD_1927_StatePlane_Missouri_Central_FIPS_2402 PROJCS["NAD_1927_StatePlane_Missouri_Central_FIPS_2402",GEOGCS["GCS_North_American_


26798 NAD_1927_StatePlane_Missouri_West_FIPS_2403 PROJCS["NAD_1927_StatePlane_Missouri_West_FIPS_2403",GEOGCS["GCS_North_American_1
26799 NAD_1927_StatePlane_California_VII_FIPS_0407 PROJCS["NAD_1927_StatePlane_California_VII_FIPS_0407",GEOGCS["GCS_North_American_19
26847 NAD_1983_StatePlane_Maine_East_FIPS_1801_Feet PROJCS["NAD_1983_StatePlane_Maine_East_FIPS_1801_Feet",GEOGCS["GCS_North_American
26848 NAD_1983_StatePlane_Maine_West_FIPS_1802_Feet PROJCS["NAD_1983_StatePlane_Maine_West_FIPS_1802_Feet",GEOGCS["GCS_North_American
26849 NAD_1983_StatePlane_Minnesota_North_FIPS_2201_Feet PROJCS["NAD_1983_StatePlane_Minnesota_North_FIPS_2201_Feet",GEOGCS["GCS_North_Ame
26850 NAD_1983_StatePlane_Minnesota_Central_FIPS_2202_Feet PROJCS["NAD_1983_StatePlane_Minnesota_Central_FIPS_2202_Feet",GEOGCS["GCS_North_Am
26851 NAD_1983_StatePlane_Minnesota_South_FIPS_2203_Feet PROJCS["NAD_1983_StatePlane_Minnesota_South_FIPS_2203_Feet",GEOGCS["GCS_North_Am
26852 NAD_1983_StatePlane_Nebraska_FIPS_2600_Feet PROJCS["NAD_1983_StatePlane_Nebraska_FIPS_2600_Feet",GEOGCS["GCS_North_American_1
26853 NAD_1983_StatePlane_West_Virginia_North_FIPS_4701_Feet PROJCS["NAD_1983_StatePlane_West_Virginia_North_FIPS_4701_Feet",GEOGCS["GCS_North_A
26854 NAD_1983_StatePlane_West_Virginia_South_FIPS_4702_Feet PROJCS["NAD_1983_StatePlane_West_Virginia_South_FIPS_4702_Feet",GEOGCS["GCS_North_
26855 NAD_1983_HARN_StatePlane_Maine_East_FIPS_1801_Feet PROJCS["NAD_1983_HARN_StatePlane_Maine_East_FIPS_1801_Feet",GEOGCS["GCS_North_A
26856 NAD_1983_HARN_StatePlane_Maine_West_FIPS_1802_Feet PROJCS["NAD_1983_HARN_StatePlane_Maine_West_FIPS_1802_Feet",GEOGCS["GCS_North_A
26857 NAD_1983_HARN_StatePlane_Minnesota_North_FIPS_2201_Feet PROJCS["NAD_1983_HARN_StatePlane_Minnesota_North_FIPS_2201_Feet",GEOGCS["GCS_No
26858 NAD_1983_HARN_StatePlane_Minnesota_Central_FIPS_2202_Feet PROJCS["NAD_1983_HARN_StatePlane_Minnesota_Central_FIPS_2202_Feet",GEOGCS["GCS_N
26859 NAD_1983_HARN_StatePlane_Minnesota_South_FIPS_2203_Feet PROJCS["NAD_1983_HARN_StatePlane_Minnesota_South_FIPS_2203_Feet",GEOGCS["GCS_No
26860 NAD_1983_HARN_StatePlane_Nebraska_FIPS_2600_Feet PROJCS["NAD_1983_HARN_StatePlane_Nebraska_FIPS_2600_Feet",GEOGCS["GCS_North_Ame
26861 NAD_1983_HARN_StatePlane_West_Virginia_North_FIPS_4701_Feet PROJCS["NAD_1983_HARN_StatePlane_West_Virginia_North_FIPS_4701_Feet",GEOGCS["GCS_
26862 NAD_1983_HARN_StatePlane_West_Virginia_South_FIPS_4702_Feet PROJCS["NAD_1983_HARN_StatePlane_West_Virginia_South_FIPS_4702_Feet",GEOGCS["GCS_
26863 NAD_1983_NSRS2007_StatePlane_Maine_East_FIPS_1801_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Maine_East_FIPS_1801_Ft_US",GEOGCS["GCS_N
26864 NAD_1983_NSRS2007_StatePlane_Maine_West_FIPS_1802_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Maine_West_FIPS_1802_Ft_US",GEOGCS["GCS_N
26865 NAD_1983_NSRS2007_StatePlane_Minnesota_North_FIPS_2201_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Minnesota_North_FIPS_2201_Ft_US",GEOGCS["GC
26866 NAD_1983_NSRS2007_StatePlane_Minnesota_Central_FIPS_2202_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Minnesota_Central_FIPS_2202_Ft_US",GEOGCS["G
26867 NAD_1983_NSRS2007_StatePlane_Minnesota_South_FIPS_2203_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Minnesota_South_FIPS_2203_Ft_US",GEOGCS["GC
26868 NAD_1983_NSRS2007_StatePlane_Nebraska_FIPS_2600_Ft_US PROJCS["NAD_1983_NSRS2007_StatePlane_Nebraska_FIPS_2600_Ft_US",GEOGCS["GCS_NAD
26869 NAD_1983_NSRS2007_StatePlane_West_Virginia_North_FIPS_4701_FtUS PROJCS["NAD_1983_NSRS2007_StatePlane_West_Virginia_North_FIPS_4701_FtUS",GEOGCS["
26870 NAD_1983_NSRS2007_StatePlane_West_Virginia_South_FIPS_4702_FtUS PROJCS["NAD_1983_NSRS2007_StatePlane_West_Virginia_South_FIPS_4702_FtUS",GEOGCS["
26891 NAD_1983_CSRS_MTM_11 PROJCS["NAD_1983_CSRS_MTM_11",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D
26892 NAD_1983_CSRS_MTM_12 PROJCS["NAD_1983_CSRS_MTM_12",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D
26893 NAD_1983_CSRS_MTM_13 PROJCS["NAD_1983_CSRS_MTM_13",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D
26894 NAD_1983_CSRS_MTM_14 PROJCS["NAD_1983_CSRS_MTM_14",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D
26895 NAD_1983_CSRS_MTM_15 PROJCS["NAD_1983_CSRS_MTM_15",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D
26896 NAD_1983_CSRS_MTM_16 PROJCS["NAD_1983_CSRS_MTM_16",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D
26897 NAD_1983_CSRS_MTM_17 PROJCS["NAD_1983_CSRS_MTM_17",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D
26898 NAD_1983_CSRS_MTM_1 PROJCS["NAD_1983_CSRS_MTM_1",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_
26899 NAD_1983_CSRS_MTM_2 PROJCS["NAD_1983_CSRS_MTM_2",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_
26901 NAD_1983_UTM_Zone_1N PROJCS["NAD_1983_UTM_Zone_1N",GEOGCS["GCS_North_American_1983",DATUM["D_North_
26902 NAD_1983_UTM_Zone_2N PROJCS["NAD_1983_UTM_Zone_2N",GEOGCS["GCS_North_American_1983",DATUM["D_North_
26903 NAD_1983_UTM_Zone_3N PROJCS["NAD_1983_UTM_Zone_3N",GEOGCS["GCS_North_American_1983",DATUM["D_North_
26904 NAD_1983_UTM_Zone_4N PROJCS["NAD_1983_UTM_Zone_4N",GEOGCS["GCS_North_American_1983",DATUM["D_North_
26905 NAD_1983_UTM_Zone_5N PROJCS["NAD_1983_UTM_Zone_5N",GEOGCS["GCS_North_American_1983",DATUM["D_North_
26906 NAD_1983_UTM_Zone_6N PROJCS["NAD_1983_UTM_Zone_6N",GEOGCS["GCS_North_American_1983",DATUM["D_North_
26907 NAD_1983_UTM_Zone_7N PROJCS["NAD_1983_UTM_Zone_7N",GEOGCS["GCS_North_American_1983",DATUM["D_North_
26908 NAD_1983_UTM_Zone_8N PROJCS["NAD_1983_UTM_Zone_8N",GEOGCS["GCS_North_American_1983",DATUM["D_North_
26909 NAD_1983_UTM_Zone_9N PROJCS["NAD_1983_UTM_Zone_9N",GEOGCS["GCS_North_American_1983",DATUM["D_North_
26910 NAD_1983_UTM_Zone_10N PROJCS["NAD_1983_UTM_Zone_10N",GEOGCS["GCS_North_American_1983",DATUM["D_North
26911 NAD_1983_UTM_Zone_11N PROJCS["NAD_1983_UTM_Zone_11N",GEOGCS["GCS_North_American_1983",DATUM["D_North
26912 NAD_1983_UTM_Zone_12N PROJCS["NAD_1983_UTM_Zone_12N",GEOGCS["GCS_North_American_1983",DATUM["D_North
26913 NAD_1983_UTM_Zone_13N PROJCS["NAD_1983_UTM_Zone_13N",GEOGCS["GCS_North_American_1983",DATUM["D_North
26914 NAD_1983_UTM_Zone_14N PROJCS["NAD_1983_UTM_Zone_14N",GEOGCS["GCS_North_American_1983",DATUM["D_North
26915 NAD_1983_UTM_Zone_15N PROJCS["NAD_1983_UTM_Zone_15N",GEOGCS["GCS_North_American_1983",DATUM["D_North
26916 NAD_1983_UTM_Zone_16N PROJCS["NAD_1983_UTM_Zone_16N",GEOGCS["GCS_North_American_1983",DATUM["D_North
26917 NAD_1983_UTM_Zone_17N PROJCS["NAD_1983_UTM_Zone_17N",GEOGCS["GCS_North_American_1983",DATUM["D_North
26918 NAD_1983_UTM_Zone_18N PROJCS["NAD_1983_UTM_Zone_18N",GEOGCS["GCS_North_American_1983",DATUM["D_North

Copyright 1995-2015 Esri. All rights reserved. 382


ArcGIS Runtime SDK for .NET

26919 NAD_1983_UTM_Zone_19N PROJCS["NAD_1983_UTM_Zone_19N",GEOGCS["GCS_North_American_1983",DATUM["D_North


26920 NAD_1983_UTM_Zone_20N PROJCS["NAD_1983_UTM_Zone_20N",GEOGCS["GCS_North_American_1983",DATUM["D_North
26921 NAD_1983_UTM_Zone_21N PROJCS["NAD_1983_UTM_Zone_21N",GEOGCS["GCS_North_American_1983",DATUM["D_North
26922 NAD_1983_UTM_Zone_22N PROJCS["NAD_1983_UTM_Zone_22N",GEOGCS["GCS_North_American_1983",DATUM["D_North
26923 NAD_1983_UTM_Zone_23N PROJCS["NAD_1983_UTM_Zone_23N",GEOGCS["GCS_North_American_1983",DATUM["D_North
26929 NAD_1983_StatePlane_Alabama_East_FIPS_0101 PROJCS["NAD_1983_StatePlane_Alabama_East_FIPS_0101",GEOGCS["GCS_North_American_1
26930 NAD_1983_StatePlane_Alabama_West_FIPS_0102 PROJCS["NAD_1983_StatePlane_Alabama_West_FIPS_0102",GEOGCS["GCS_North_American_1
26931 NAD_1983_StatePlane_Alaska_1_FIPS_5001 PROJCS["NAD_1983_StatePlane_Alaska_1_FIPS_5001",GEOGCS["GCS_North_American_1983",D
26932 NAD_1983_StatePlane_Alaska_2_FIPS_5002 PROJCS["NAD_1983_StatePlane_Alaska_2_FIPS_5002",GEOGCS["GCS_North_American_1983",D
26933 NAD_1983_StatePlane_Alaska_3_FIPS_5003 PROJCS["NAD_1983_StatePlane_Alaska_3_FIPS_5003",GEOGCS["GCS_North_American_1983",D
26934 NAD_1983_StatePlane_Alaska_4_FIPS_5004 PROJCS["NAD_1983_StatePlane_Alaska_4_FIPS_5004",GEOGCS["GCS_North_American_1983",D
26935 NAD_1983_StatePlane_Alaska_5_FIPS_5005 PROJCS["NAD_1983_StatePlane_Alaska_5_FIPS_5005",GEOGCS["GCS_North_American_1983",D
26936 NAD_1983_StatePlane_Alaska_6_FIPS_5006 PROJCS["NAD_1983_StatePlane_Alaska_6_FIPS_5006",GEOGCS["GCS_North_American_1983",D
26937 NAD_1983_StatePlane_Alaska_7_FIPS_5007 PROJCS["NAD_1983_StatePlane_Alaska_7_FIPS_5007",GEOGCS["GCS_North_American_1983",D
26938 NAD_1983_StatePlane_Alaska_8_FIPS_5008 PROJCS["NAD_1983_StatePlane_Alaska_8_FIPS_5008",GEOGCS["GCS_North_American_1983",D
26939 NAD_1983_StatePlane_Alaska_9_FIPS_5009 PROJCS["NAD_1983_StatePlane_Alaska_9_FIPS_5009",GEOGCS["GCS_North_American_1983",D
26940 NAD_1983_StatePlane_Alaska_10_FIPS_5010 PROJCS["NAD_1983_StatePlane_Alaska_10_FIPS_5010",GEOGCS["GCS_North_American_1983"
26941 NAD_1983_StatePlane_California_I_FIPS_0401 PROJCS["NAD_1983_StatePlane_California_I_FIPS_0401",GEOGCS["GCS_North_American_1983
26942 NAD_1983_StatePlane_California_II_FIPS_0402 PROJCS["NAD_1983_StatePlane_California_II_FIPS_0402",GEOGCS["GCS_North_American_1983
26943 NAD_1983_StatePlane_California_III_FIPS_0403 PROJCS["NAD_1983_StatePlane_California_III_FIPS_0403",GEOGCS["GCS_North_American_198
26944 NAD_1983_StatePlane_California_IV_FIPS_0404 PROJCS["NAD_1983_StatePlane_California_IV_FIPS_0404",GEOGCS["GCS_North_American_198
26945 NAD_1983_StatePlane_California_V_FIPS_0405 PROJCS["NAD_1983_StatePlane_California_V_FIPS_0405",GEOGCS["GCS_North_American_198
26946 NAD_1983_StatePlane_California_VI_FIPS_0406 PROJCS["NAD_1983_StatePlane_California_VI_FIPS_0406",GEOGCS["GCS_North_American_198
26948 NAD_1983_StatePlane_Arizona_East_FIPS_0201 PROJCS["NAD_1983_StatePlane_Arizona_East_FIPS_0201",GEOGCS["GCS_North_American_19
26949 NAD_1983_StatePlane_Arizona_Central_FIPS_0202 PROJCS["NAD_1983_StatePlane_Arizona_Central_FIPS_0202",GEOGCS["GCS_North_American_
26950 NAD_1983_StatePlane_Arizona_West_FIPS_0203 PROJCS["NAD_1983_StatePlane_Arizona_West_FIPS_0203",GEOGCS["GCS_North_American_19
26951 NAD_1983_StatePlane_Arkansas_North_FIPS_0301 PROJCS["NAD_1983_StatePlane_Arkansas_North_FIPS_0301",GEOGCS["GCS_North_American_
26952 NAD_1983_StatePlane_Arkansas_South_FIPS_0302 PROJCS["NAD_1983_StatePlane_Arkansas_South_FIPS_0302",GEOGCS["GCS_North_American_
26953 NAD_1983_StatePlane_Colorado_North_FIPS_0501 PROJCS["NAD_1983_StatePlane_Colorado_North_FIPS_0501",GEOGCS["GCS_North_American_
26954 NAD_1983_StatePlane_Colorado_Central_FIPS_0502 PROJCS["NAD_1983_StatePlane_Colorado_Central_FIPS_0502",GEOGCS["GCS_North_American
26955 NAD_1983_StatePlane_Colorado_South_FIPS_0503 PROJCS["NAD_1983_StatePlane_Colorado_South_FIPS_0503",GEOGCS["GCS_North_American_
26956 NAD_1983_StatePlane_Connecticut_FIPS_0600 PROJCS["NAD_1983_StatePlane_Connecticut_FIPS_0600",GEOGCS["GCS_North_American_1983
26957 NAD_1983_StatePlane_Delaware_FIPS_0700 PROJCS["NAD_1983_StatePlane_Delaware_FIPS_0700",GEOGCS["GCS_North_American_1983",
26958 NAD_1983_StatePlane_Florida_East_FIPS_0901 PROJCS["NAD_1983_StatePlane_Florida_East_FIPS_0901",GEOGCS["GCS_North_American_198
26959 NAD_1983_StatePlane_Florida_West_FIPS_0902 PROJCS["NAD_1983_StatePlane_Florida_West_FIPS_0902",GEOGCS["GCS_North_American_198
26960 NAD_1983_StatePlane_Florida_North_FIPS_0903 PROJCS["NAD_1983_StatePlane_Florida_North_FIPS_0903",GEOGCS["GCS_North_American_19
26961 NAD_1983_StatePlane_Hawaii_1_FIPS_5101 PROJCS["NAD_1983_StatePlane_Hawaii_1_FIPS_5101",GEOGCS["GCS_North_American_1983",D
26962 NAD_1983_StatePlane_Hawaii_2_FIPS_5102 PROJCS["NAD_1983_StatePlane_Hawaii_2_FIPS_5102",GEOGCS["GCS_North_American_1983",D
26963 NAD_1983_StatePlane_Hawaii_3_FIPS_5103 PROJCS["NAD_1983_StatePlane_Hawaii_3_FIPS_5103",GEOGCS["GCS_North_American_1983",D
26964 NAD_1983_StatePlane_Hawaii_4_FIPS_5104 PROJCS["NAD_1983_StatePlane_Hawaii_4_FIPS_5104",GEOGCS["GCS_North_American_1983",D
26965 NAD_1983_StatePlane_Hawaii_5_FIPS_5105 PROJCS["NAD_1983_StatePlane_Hawaii_5_FIPS_5105",GEOGCS["GCS_North_American_1983",D
26966 NAD_1983_StatePlane_Georgia_East_FIPS_1001 PROJCS["NAD_1983_StatePlane_Georgia_East_FIPS_1001",GEOGCS["GCS_North_American_19
26967 NAD_1983_StatePlane_Georgia_West_FIPS_1002 PROJCS["NAD_1983_StatePlane_Georgia_West_FIPS_1002",GEOGCS["GCS_North_American_19
26968 NAD_1983_StatePlane_Idaho_East_FIPS_1101 PROJCS["NAD_1983_StatePlane_Idaho_East_FIPS_1101",GEOGCS["GCS_North_American_1983
26969 NAD_1983_StatePlane_Idaho_Central_FIPS_1102 PROJCS["NAD_1983_StatePlane_Idaho_Central_FIPS_1102",GEOGCS["GCS_North_American_19
26970 NAD_1983_StatePlane_Idaho_West_FIPS_1103 PROJCS["NAD_1983_StatePlane_Idaho_West_FIPS_1103",GEOGCS["GCS_North_American_1983
26971 NAD_1983_StatePlane_Illinois_East_FIPS_1201 PROJCS["NAD_1983_StatePlane_Illinois_East_FIPS_1201",GEOGCS["GCS_North_American_1983
26972 NAD_1983_StatePlane_Illinois_West_FIPS_1202 PROJCS["NAD_1983_StatePlane_Illinois_West_FIPS_1202",GEOGCS["GCS_North_American_198
26973 NAD_1983_StatePlane_Indiana_East_FIPS_1301 PROJCS["NAD_1983_StatePlane_Indiana_East_FIPS_1301",GEOGCS["GCS_North_American_198
26974 NAD_1983_StatePlane_Indiana_West_FIPS_1302 PROJCS["NAD_1983_StatePlane_Indiana_West_FIPS_1302",GEOGCS["GCS_North_American_19
26975 NAD_1983_StatePlane_Iowa_North_FIPS_1401 PROJCS["NAD_1983_StatePlane_Iowa_North_FIPS_1401",GEOGCS["GCS_North_American_1983
26976 NAD_1983_StatePlane_Iowa_South_FIPS_1402 PROJCS["NAD_1983_StatePlane_Iowa_South_FIPS_1402",GEOGCS["GCS_North_American_1983
26977 NAD_1983_StatePlane_Kansas_North_FIPS_1501 PROJCS["NAD_1983_StatePlane_Kansas_North_FIPS_1501",GEOGCS["GCS_North_American_19
26978 NAD_1983_StatePlane_Kansas_South_FIPS_1502 PROJCS["NAD_1983_StatePlane_Kansas_South_FIPS_1502",GEOGCS["GCS_North_American_1

Copyright 1995-2015 Esri. All rights reserved. 383


ArcGIS Runtime SDK for .NET

26980 NAD_1983_StatePlane_Kentucky_South_FIPS_1602 PROJCS["NAD_1983_StatePlane_Kentucky_South_FIPS_1602",GEOGCS["GCS_North_American_


26981 NAD_1983_StatePlane_Louisiana_North_FIPS_1701 PROJCS["NAD_1983_StatePlane_Louisiana_North_FIPS_1701",GEOGCS["GCS_North_American_
26982 NAD_1983_StatePlane_Louisiana_South_FIPS_1702 PROJCS["NAD_1983_StatePlane_Louisiana_South_FIPS_1702",GEOGCS["GCS_North_American_
26983 NAD_1983_StatePlane_Maine_East_FIPS_1801 PROJCS["NAD_1983_StatePlane_Maine_East_FIPS_1801",GEOGCS["GCS_North_American_1983
26984 NAD_1983_StatePlane_Maine_West_FIPS_1802 PROJCS["NAD_1983_StatePlane_Maine_West_FIPS_1802",GEOGCS["GCS_North_American_198
26985 NAD_1983_StatePlane_Maryland_FIPS_1900 PROJCS["NAD_1983_StatePlane_Maryland_FIPS_1900",GEOGCS["GCS_North_American_1983",D
26986 NAD_1983_StatePlane_Massachusetts_Mainland_FIPS_2001 PROJCS["NAD_1983_StatePlane_Massachusetts_Mainland_FIPS_2001",GEOGCS["GCS_North_A
26987 NAD_1983_StatePlane_Massachusetts_Island_FIPS_2002 PROJCS["NAD_1983_StatePlane_Massachusetts_Island_FIPS_2002",GEOGCS["GCS_North_Ame
26988 NAD_1983_StatePlane_Michigan_North_FIPS_2111 PROJCS["NAD_1983_StatePlane_Michigan_North_FIPS_2111",GEOGCS["GCS_North_American_1
26989 NAD_1983_StatePlane_Michigan_Central_FIPS_2112 PROJCS["NAD_1983_StatePlane_Michigan_Central_FIPS_2112",GEOGCS["GCS_North_American
26990 NAD_1983_StatePlane_Michigan_South_FIPS_2113 PROJCS["NAD_1983_StatePlane_Michigan_South_FIPS_2113",GEOGCS["GCS_North_American_
26991 NAD_1983_StatePlane_Minnesota_North_FIPS_2201 PROJCS["NAD_1983_StatePlane_Minnesota_North_FIPS_2201",GEOGCS["GCS_North_American
26992 NAD_1983_StatePlane_Minnesota_Central_FIPS_2202 PROJCS["NAD_1983_StatePlane_Minnesota_Central_FIPS_2202",GEOGCS["GCS_North_America
26993 NAD_1983_StatePlane_Minnesota_South_FIPS_2203 PROJCS["NAD_1983_StatePlane_Minnesota_South_FIPS_2203",GEOGCS["GCS_North_American
26994 NAD_1983_StatePlane_Mississippi_East_FIPS_2301 PROJCS["NAD_1983_StatePlane_Mississippi_East_FIPS_2301",GEOGCS["GCS_North_American_
26995 NAD_1983_StatePlane_Mississippi_West_FIPS_2302 PROJCS["NAD_1983_StatePlane_Mississippi_West_FIPS_2302",GEOGCS["GCS_North_American
26996 NAD_1983_StatePlane_Missouri_East_FIPS_2401 PROJCS["NAD_1983_StatePlane_Missouri_East_FIPS_2401",GEOGCS["GCS_North_American_19
26997 NAD_1983_StatePlane_Missouri_Central_FIPS_2402 PROJCS["NAD_1983_StatePlane_Missouri_Central_FIPS_2402",GEOGCS["GCS_North_American_
26998 NAD_1983_StatePlane_Missouri_West_FIPS_2403 PROJCS["NAD_1983_StatePlane_Missouri_West_FIPS_2403",GEOGCS["GCS_North_American_1
27037 Nahrwan_1967_UTM_Zone_37N PROJCS["Nahrwan_1967_UTM_Zone_37N",GEOGCS["GCS_Nahrwan_1967",DATUM["D_Nahrwan
27038 Nahrwan_1967_UTM_Zone_38N PROJCS["Nahrwan_1967_UTM_Zone_38N",GEOGCS["GCS_Nahrwan_1967",DATUM["D_Nahrwan
27039 Nahrwan_1967_UTM_Zone_39N PROJCS["Nahrwan_1967_UTM_Zone_39N",GEOGCS["GCS_Nahrwan_1967",DATUM["D_Nahrwan
27040 Nahrwan_1967_UTM_Zone_40N PROJCS["Nahrwan_1967_UTM_Zone_40N",GEOGCS["GCS_Nahrwan_1967",DATUM["D_Nahrwan
27120 Naparima_1972_UTM_Zone_20N PROJCS["Naparima_1972_UTM_Zone_20N",GEOGCS["GCS_Naparima_1972",DATUM["D_Naparim
27200 GD_1949_New_Zealand_Map_Grid PROJCS["GD_1949_New_Zealand_Map_Grid",GEOGCS["GCS_New_Zealand_1949",DATUM["D_N
27205 NZGD_1949_Mount_Eden_Circuit PROJCS["NZGD_1949_Mount_Eden_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_Ne
27206 NZGD_1949_Bay_of_Plenty_Circuit PROJCS["NZGD_1949_Bay_of_Plenty_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_N
27207 NZGD_1949_Poverty_Bay_Circuit PROJCS["NZGD_1949_Poverty_Bay_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_Ne
27208 NZGD_1949_Hawkes_Bay_Circuit PROJCS["NZGD_1949_Hawkes_Bay_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_Ne
27209 NZGD_1949_Taranaki_Circuit PROJCS["NZGD_1949_Taranaki_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Z
27210 NZGD_1949_Tuhirangi_Circuit PROJCS["NZGD_1949_Tuhirangi_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_
27211 NZGD_1949_Wanganui_Circuit PROJCS["NZGD_1949_Wanganui_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_
27212 NZGD_1949_Wairarapa_Circuit PROJCS["NZGD_1949_Wairarapa_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_
27213 NZGD_1949_Wellington_Circuit PROJCS["NZGD_1949_Wellington_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_
27214 NZGD_1949_Collingwood_Circuit PROJCS["NZGD_1949_Collingwood_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_Ne
27215 NZGD_1949_Nelson_Circuit PROJCS["NZGD_1949_Nelson_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Ze
27216 NZGD_1949_Karamea_Circuit PROJCS["NZGD_1949_Karamea_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Z
27217 NZGD_1949_Buller_Circuit PROJCS["NZGD_1949_Buller_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zea
27218 NZGD_1949_Grey_Circuit PROJCS["NZGD_1949_Grey_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zeala
27219 NZGD_1949_Amuri_Circuit PROJCS["NZGD_1949_Amuri_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zea
27220 NZGD_1949_Marlborough_Circuit PROJCS["NZGD_1949_Marlborough_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_Ne
27221 NZGD_1949_Hokitika_Circuit PROJCS["NZGD_1949_Hokitika_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Z
27222 NZGD_1949_Okarito_Circuit PROJCS["NZGD_1949_Okarito_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Ze
27223 NZGD_1949_Jacksons_Bay_Circuit PROJCS["NZGD_1949_Jacksons_Bay_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_N
27224 NZGD_1949_Mount_Pleasant_Circuit PROJCS["NZGD_1949_Mount_Pleasant_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_
27225 NZGD_1949_Gawler_Circuit PROJCS["NZGD_1949_Gawler_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Ze
27226 NZGD_1949_Timaru_Circuit PROJCS["NZGD_1949_Timaru_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Ze
27227 NZGD_1949_Lindis_Peak_Circuit PROJCS["NZGD_1949_Lindis_Peak_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_Ne
27228 NZGD_1949_Mount_Nicholas_Circuit PROJCS["NZGD_1949_Mount_Nicholas_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_
27229 NZGD_1949_Mount_York_Circuit PROJCS["NZGD_1949_Mount_York_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New
27230 NZGD_1949_Observation_Point_Circuit PROJCS["NZGD_1949_Observation_Point_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["
27231 NZGD_1949_North_Taieri_Circuit PROJCS["NZGD_1949_North_Taieri_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_Ne
27232 NZGD_1949_Bluff_Circuit PROJCS["NZGD_1949_Bluff_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zeala
27258 NZGD_1949_UTM_Zone_58S PROJCS["NZGD_1949_UTM_Zone_58S",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Z

Copyright 1995-2015 Esri. All rights reserved. 384


ArcGIS Runtime SDK for .NET

27259 NZGD_1949_UTM_Zone_59S PROJCS["NZGD_1949_UTM_Zone_59S",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Z


27260 NZGD_1949_UTM_Zone_60S PROJCS["NZGD_1949_UTM_Zone_60S",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Z
27291 New_Zealand_North_Island PROJCS["New_Zealand_North_Island",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zea
27292 New_Zealand_South_Island PROJCS["New_Zealand_South_Island",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Ze
27391 NGO_1948_Oslo_Norway_Zone_1 PROJCS["NGO_1948_Oslo_Norway_Zone_1",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO
27392 NGO_1948_Oslo_Norway_Zone_2 PROJCS["NGO_1948_Oslo_Norway_Zone_2",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO
27393 NGO_1948_Oslo_Norway_Zone_3 PROJCS["NGO_1948_Oslo_Norway_Zone_3",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO
27394 NGO_1948_Oslo_Norway_Zone_4 PROJCS["NGO_1948_Oslo_Norway_Zone_4",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO
27395 NGO_1948_Oslo_Norway_Zone_5 PROJCS["NGO_1948_Oslo_Norway_Zone_5",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO
27396 NGO_1948_Oslo_Norway_Zone_6 PROJCS["NGO_1948_Oslo_Norway_Zone_6",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO
27397 NGO_1948_Oslo_Norway_Zone_7 PROJCS["NGO_1948_Oslo_Norway_Zone_7",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO
27398 NGO_1948_Oslo_Norway_Zone_8 PROJCS["NGO_1948_Oslo_Norway_Zone_8",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO
27429 Datum_73_UTM_Zone_29N PROJCS["Datum_73_UTM_Zone_29N",GEOGCS["GCS_Datum_73",DATUM["D_Datum_73",SPHER
27493 Datum_73_Modified_Portuguese_Grid PROJCS["Datum_73_Modified_Portuguese_Grid",GEOGCS["GCS_Datum_73",DATUM["D_Datum_7
27500 Nord_de_Guerre PROJCS["Nord_de_Guerre",GEOGCS["GCS_ATF_Paris",DATUM["D_ATF",SPHEROID["Plessis_18
27561 NTF_Paris_Lambert_Nord_France PROJCS["NTF_Paris_Lambert_Nord_France",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHE
27562 NTF_Paris_Lambert_Centre_France PROJCS["NTF_Paris_Lambert_Centre_France",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPH
27563 NTF_Paris_Lambert_Sud_France PROJCS["NTF_Paris_Lambert_Sud_France",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHER
27564 NTF_Paris_Lambert_Corse PROJCS["NTF_Paris_Lambert_Corse",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["
27571 NTF_Paris_Lambert_Zone_I PROJCS["NTF_Paris_Lambert_Zone_I",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID
27572 NTF_Paris_Lambert_Zone_II PROJCS["NTF_Paris_Lambert_Zone_II",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID
27573 NTF_Paris_Lambert_Zone_III PROJCS["NTF_Paris_Lambert_Zone_III",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID
27574 NTF_Paris_Lambert_Zone_IV PROJCS["NTF_Paris_Lambert_Zone_IV",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROI
27581 NTF_Paris_France_I PROJCS["NTF_Paris_France_I",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke
27582 NTF_Paris_France_II PROJCS["NTF_Paris_France_II",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke
27583 NTF_Paris_France_III PROJCS["NTF_Paris_France_III",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clark
27584 NTF_Paris_France_IV PROJCS["NTF_Paris_France_IV",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clark
27591 NTF_Paris_Nord_France PROJCS["NTF_Paris_Nord_France",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Cl
27592 NTF_Paris_Centre_France PROJCS["NTF_Paris_Centre_France",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["
27593 NTF_Paris_Sud_France PROJCS["NTF_Paris_Sud_France",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Cla
27594 NTF_Paris_Corse PROJCS["NTF_Paris_Corse",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke_1
27700 British_National_Grid PROJCS["British_National_Grid",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHERO
28191 Palestine_1923_Palestine_Grid PROJCS["Palestine_1923_Palestine_Grid",GEOGCS["GCS_Palestine_1923",DATUM["D_Palestine_
28192 Palestine_1923_Palestine_Belt PROJCS["Palestine_1923_Palestine_Belt",GEOGCS["GCS_Palestine_1923",DATUM["D_Palestine_
28193 Palestine_1923_Israel_CS_Grid PROJCS["Palestine_1923_Israel_CS_Grid",GEOGCS["GCS_Palestine_1923",DATUM["D_Palestine
28232 Pointe_Noire_UTM_Zone_32S PROJCS["Pointe_Noire_UTM_Zone_32S",GEOGCS["GCS_Pointe_Noire",DATUM["D_Pointe_Noire
28348 GDA_1994_MGA_Zone_48 PROJCS["GDA_1994_MGA_Zone_48",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHE
28349 GDA_1994_MGA_Zone_49 PROJCS["GDA_1994_MGA_Zone_49",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHE
28350 GDA_1994_MGA_Zone_50 PROJCS["GDA_1994_MGA_Zone_50",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHE
28351 GDA_1994_MGA_Zone_51 PROJCS["GDA_1994_MGA_Zone_51",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHE
28352 GDA_1994_MGA_Zone_52 PROJCS["GDA_1994_MGA_Zone_52",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHE
28353 GDA_1994_MGA_Zone_53 PROJCS["GDA_1994_MGA_Zone_53",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHE
28354 GDA_1994_MGA_Zone_54 PROJCS["GDA_1994_MGA_Zone_54",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHE
28355 GDA_1994_MGA_Zone_55 PROJCS["GDA_1994_MGA_Zone_55",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHE
28356 GDA_1994_MGA_Zone_56 PROJCS["GDA_1994_MGA_Zone_56",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHE
28357 GDA_1994_MGA_Zone_57 PROJCS["GDA_1994_MGA_Zone_57",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHE
28358 GDA_1994_MGA_Zone_58 PROJCS["GDA_1994_MGA_Zone_58",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHE
28402 Pulkovo_1942_GK_Zone_2 PROJCS["Pulkovo_1942_GK_Zone_2",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942"
28403 Pulkovo_1942_GK_Zone_3 PROJCS["Pulkovo_1942_GK_Zone_3",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942"
28404 Pulkovo_1942_GK_Zone_4 PROJCS["Pulkovo_1942_GK_Zone_4",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942"
28405 Pulkovo_1942_GK_Zone_5 PROJCS["Pulkovo_1942_GK_Zone_5",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942"
28406 Pulkovo_1942_GK_Zone_6 PROJCS["Pulkovo_1942_GK_Zone_6",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942"
28407 Pulkovo_1942_GK_Zone_7 PROJCS["Pulkovo_1942_GK_Zone_7",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942"
28408 Pulkovo_1942_GK_Zone_8 PROJCS["Pulkovo_1942_GK_Zone_8",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942"

Copyright 1995-2015 Esri. All rights reserved. 385


ArcGIS Runtime SDK for .NET

28409 Pulkovo_1942_GK_Zone_9 PROJCS["Pulkovo_1942_GK_Zone_9",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942"


28410 Pulkovo_1942_GK_Zone_10 PROJCS["Pulkovo_1942_GK_Zone_10",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28411 Pulkovo_1942_GK_Zone_11 PROJCS["Pulkovo_1942_GK_Zone_11",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28412 Pulkovo_1942_GK_Zone_12 PROJCS["Pulkovo_1942_GK_Zone_12",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28413 Pulkovo_1942_GK_Zone_13 PROJCS["Pulkovo_1942_GK_Zone_13",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28414 Pulkovo_1942_GK_Zone_14 PROJCS["Pulkovo_1942_GK_Zone_14",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28415 Pulkovo_1942_GK_Zone_15 PROJCS["Pulkovo_1942_GK_Zone_15",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28416 Pulkovo_1942_GK_Zone_16 PROJCS["Pulkovo_1942_GK_Zone_16",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28417 Pulkovo_1942_GK_Zone_17 PROJCS["Pulkovo_1942_GK_Zone_17",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28418 Pulkovo_1942_GK_Zone_18 PROJCS["Pulkovo_1942_GK_Zone_18",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28419 Pulkovo_1942_GK_Zone_19 PROJCS["Pulkovo_1942_GK_Zone_19",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28420 Pulkovo_1942_GK_Zone_20 PROJCS["Pulkovo_1942_GK_Zone_20",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28421 Pulkovo_1942_GK_Zone_21 PROJCS["Pulkovo_1942_GK_Zone_21",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28422 Pulkovo_1942_GK_Zone_22 PROJCS["Pulkovo_1942_GK_Zone_22",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28423 Pulkovo_1942_GK_Zone_23 PROJCS["Pulkovo_1942_GK_Zone_23",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28424 Pulkovo_1942_GK_Zone_24 PROJCS["Pulkovo_1942_GK_Zone_24",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28425 Pulkovo_1942_GK_Zone_25 PROJCS["Pulkovo_1942_GK_Zone_25",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28426 Pulkovo_1942_GK_Zone_26 PROJCS["Pulkovo_1942_GK_Zone_26",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28427 Pulkovo_1942_GK_Zone_27 PROJCS["Pulkovo_1942_GK_Zone_27",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28428 Pulkovo_1942_GK_Zone_28 PROJCS["Pulkovo_1942_GK_Zone_28",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28429 Pulkovo_1942_GK_Zone_29 PROJCS["Pulkovo_1942_GK_Zone_29",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28430 Pulkovo_1942_GK_Zone_30 PROJCS["Pulkovo_1942_GK_Zone_30",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28431 Pulkovo_1942_GK_Zone_31 PROJCS["Pulkovo_1942_GK_Zone_31",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28432 Pulkovo_1942_GK_Zone_32 PROJCS["Pulkovo_1942_GK_Zone_32",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28462 Pulkovo_1942_GK_Zone_2N PROJCS["Pulkovo_1942_GK_Zone_2N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28463 Pulkovo_1942_GK_Zone_3N PROJCS["Pulkovo_1942_GK_Zone_3N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28464 Pulkovo_1942_GK_Zone_4N PROJCS["Pulkovo_1942_GK_Zone_4N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28465 Pulkovo_1942_GK_Zone_5N PROJCS["Pulkovo_1942_GK_Zone_5N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28466 Pulkovo_1942_GK_Zone_6N PROJCS["Pulkovo_1942_GK_Zone_6N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28467 Pulkovo_1942_GK_Zone_7N PROJCS["Pulkovo_1942_GK_Zone_7N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28468 Pulkovo_1942_GK_Zone_8N PROJCS["Pulkovo_1942_GK_Zone_8N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28469 Pulkovo_1942_GK_Zone_9N PROJCS["Pulkovo_1942_GK_Zone_9N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942
28470 Pulkovo_1942_GK_Zone_10N PROJCS["Pulkovo_1942_GK_Zone_10N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28471 Pulkovo_1942_GK_Zone_11N PROJCS["Pulkovo_1942_GK_Zone_11N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28472 Pulkovo_1942_GK_Zone_12N PROJCS["Pulkovo_1942_GK_Zone_12N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28473 Pulkovo_1942_GK_Zone_13N PROJCS["Pulkovo_1942_GK_Zone_13N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28474 Pulkovo_1942_GK_Zone_14N PROJCS["Pulkovo_1942_GK_Zone_14N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28475 Pulkovo_1942_GK_Zone_15N PROJCS["Pulkovo_1942_GK_Zone_15N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28476 Pulkovo_1942_GK_Zone_16N PROJCS["Pulkovo_1942_GK_Zone_16N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28477 Pulkovo_1942_GK_Zone_17N PROJCS["Pulkovo_1942_GK_Zone_17N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28478 Pulkovo_1942_GK_Zone_18N PROJCS["Pulkovo_1942_GK_Zone_18N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28479 Pulkovo_1942_GK_Zone_19N PROJCS["Pulkovo_1942_GK_Zone_19N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28480 Pulkovo_1942_GK_Zone_20N PROJCS["Pulkovo_1942_GK_Zone_20N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28481 Pulkovo_1942_GK_Zone_21N PROJCS["Pulkovo_1942_GK_Zone_21N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28482 Pulkovo_1942_GK_Zone_22N PROJCS["Pulkovo_1942_GK_Zone_22N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28483 Pulkovo_1942_GK_Zone_23N PROJCS["Pulkovo_1942_GK_Zone_23N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28484 Pulkovo_1942_GK_Zone_24N PROJCS["Pulkovo_1942_GK_Zone_24N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28485 Pulkovo_1942_GK_Zone_25N PROJCS["Pulkovo_1942_GK_Zone_25N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28486 Pulkovo_1942_GK_Zone_26N PROJCS["Pulkovo_1942_GK_Zone_26N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28487 Pulkovo_1942_GK_Zone_27N PROJCS["Pulkovo_1942_GK_Zone_27N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28488 Pulkovo_1942_GK_Zone_28N PROJCS["Pulkovo_1942_GK_Zone_28N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28489 Pulkovo_1942_GK_Zone_29N PROJCS["Pulkovo_1942_GK_Zone_29N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28490 Pulkovo_1942_GK_Zone_30N PROJCS["Pulkovo_1942_GK_Zone_30N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194
28491 Pulkovo_1942_GK_Zone_31N PROJCS["Pulkovo_1942_GK_Zone_31N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194

Copyright 1995-2015 Esri. All rights reserved. 386


ArcGIS Runtime SDK for .NET

28492 Pulkovo_1942_GK_Zone_32N PROJCS["Pulkovo_1942_GK_Zone_32N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_194


28600 Qatar_National_Grid PROJCS["Qatar_National_Grid",GEOGCS["GCS_Qatar_1974",DATUM["D_Qatar",SPHEROID["Inter
28991 RD_Old PROJCS["RD_Old",GEOGCS["GCS_Amersfoort",DATUM["D_Amersfoort",SPHEROID["Bessel_1841
28992 RD_New PROJCS["RD_New",GEOGCS["GCS_Amersfoort",DATUM["D_Amersfoort",SPHEROID["Bessel_184
29101 SAD_1969_Brazil_Polyconic PROJCS["SAD_1969_Brazil_Polyconic",GEOGCS["GCS_South_American_1969",DATUM["D_South
29168 SAD_1969_UTM_Zone_18N PROJCS["SAD_1969_UTM_Zone_18N",GEOGCS["GCS_South_American_1969",DATUM["D_South
29169 SAD_1969_UTM_Zone_19N PROJCS["SAD_1969_UTM_Zone_19N",GEOGCS["GCS_South_American_1969",DATUM["D_South
29170 SAD_1969_UTM_Zone_20N PROJCS["SAD_1969_UTM_Zone_20N",GEOGCS["GCS_South_American_1969",DATUM["D_South
29171 SAD_1969_UTM_Zone_21N PROJCS["SAD_1969_UTM_Zone_21N",GEOGCS["GCS_South_American_1969",DATUM["D_South
29172 SAD_1969_UTM_Zone_22N PROJCS["SAD_1969_UTM_Zone_22N",GEOGCS["GCS_South_American_1969",DATUM["D_South
29187 SAD_1969_UTM_Zone_17S PROJCS["SAD_1969_UTM_Zone_17S",GEOGCS["GCS_South_American_1969",DATUM["D_South
29188 SAD_1969_UTM_Zone_18S PROJCS["SAD_1969_UTM_Zone_18S",GEOGCS["GCS_South_American_1969",DATUM["D_South
29189 SAD_1969_UTM_Zone_19S PROJCS["SAD_1969_UTM_Zone_19S",GEOGCS["GCS_South_American_1969",DATUM["D_South
29190 SAD_1969_UTM_Zone_20S PROJCS["SAD_1969_UTM_Zone_20S",GEOGCS["GCS_South_American_1969",DATUM["D_South
29191 SAD_1969_UTM_Zone_21S PROJCS["SAD_1969_UTM_Zone_21S",GEOGCS["GCS_South_American_1969",DATUM["D_South
29192 SAD_1969_UTM_Zone_22S PROJCS["SAD_1969_UTM_Zone_22S",GEOGCS["GCS_South_American_1969",DATUM["D_South
29193 SAD_1969_UTM_Zone_23S PROJCS["SAD_1969_UTM_Zone_23S",GEOGCS["GCS_South_American_1969",DATUM["D_South
29194 SAD_1969_UTM_Zone_24S PROJCS["SAD_1969_UTM_Zone_24S",GEOGCS["GCS_South_American_1969",DATUM["D_South
29195 SAD_1969_UTM_Zone_25S PROJCS["SAD_1969_UTM_Zone_25S",GEOGCS["GCS_South_American_1969",DATUM["D_South
29220 Sapper_Hill_1943_UTM_Zone_20S PROJCS["Sapper_Hill_1943_UTM_Zone_20S",GEOGCS["GCS_Sapper_Hill_1943",DATUM["D_Sap
29221 Sapper_Hill_1943_UTM_Zone_21S PROJCS["Sapper_Hill_1943_UTM_Zone_21S",GEOGCS["GCS_Sapper_Hill_1943",DATUM["D_Sap
29333 Schwarzeck_UTM_Zone_33S PROJCS["Schwarzeck_UTM_Zone_33S",GEOGCS["GCS_Schwarzeck",DATUM["D_Schwarzeck",S
29635 Sudan_UTM_Zone_35N PROJCS["Sudan_UTM_Zone_35N",GEOGCS["GCS_Sudan",DATUM["D_Sudan",SPHEROID["Clark
29636 Sudan_UTM_Zone_36N PROJCS["Sudan_UTM_Zone_36N",GEOGCS["GCS_Sudan",DATUM["D_Sudan",SPHEROID["Clark
29701 Tananarive_1925_Paris_Laborde_Grid PROJCS["Tananarive_1925_Paris_Laborde_Grid",GEOGCS["GCS_Tananarive_1925_Paris",DATUM
29738 Tananarive_1925_UTM_Zone_38S PROJCS["Tananarive_1925_UTM_Zone_38S",GEOGCS["GCS_Tananarive_1925",DATUM["D_Tana
29739 Tananarive_1925_UTM_Zone_39S PROJCS["Tananarive_1925_UTM_Zone_39S",GEOGCS["GCS_Tananarive_1925",DATUM["D_Tana
29849 Timbalai_1948_UTM_Zone_49N PROJCS["Timbalai_1948_UTM_Zone_49N",GEOGCS["GCS_Timbalai_1948",DATUM["D_Timbalai_
29850 Timbalai_1948_UTM_Zone_50N PROJCS["Timbalai_1948_UTM_Zone_50N",GEOGCS["GCS_Timbalai_1948",DATUM["D_Timbalai_
29871 Timbalai_1948_RSO_Borneo_Chains PROJCS["Timbalai_1948_RSO_Borneo_Chains",GEOGCS["GCS_Timbalai_1948",DATUM["D_Timb
29872 Timbalai_1948_RSO_Borneo_Feet PROJCS["Timbalai_1948_RSO_Borneo_Feet",GEOGCS["GCS_Timbalai_1948",DATUM["D_Timbala
29873 Timbalai_1948_RSO_Borneo_Meters PROJCS["Timbalai_1948_RSO_Borneo_Meters",GEOGCS["GCS_Timbalai_1948",DATUM["D_Timb
29901 OSNI_1952_Irish_National_Grid PROJCS["OSNI_1952_Irish_National_Grid",GEOGCS["GCS_OSNI_1952",DATUM["D_OSNI_1952",
29902 TM65_Irish_Grid PROJCS["TM65_Irish_Grid",GEOGCS["GCS_TM65",DATUM["D_TM65",SPHEROID["Airy_Modified"
29903 TM75_Irish_Grid PROJCS["TM75_Irish_Grid",GEOGCS["GCS_TM75",DATUM["D_TM75",SPHEROID["Airy_Modified"
30161 Japan_Zone_1 PROJCS["Japan_Zone_1",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6
30162 Japan_Zone_2 PROJCS["Japan_Zone_2",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6
30163 Japan_Zone_3 PROJCS["Japan_Zone_3",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6
30164 Japan_Zone_4 PROJCS["Japan_Zone_4",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6
30165 Japan_Zone_5 PROJCS["Japan_Zone_5",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6
30166 Japan_Zone_6 PROJCS["Japan_Zone_6",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6
30167 Japan_Zone_7 PROJCS["Japan_Zone_7",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6
30168 Japan_Zone_8 PROJCS["Japan_Zone_8",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6
30169 Japan_Zone_9 PROJCS["Japan_Zone_9",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6
30170 Japan_Zone_10 PROJCS["Japan_Zone_10",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841"
30171 Japan_Zone_11 PROJCS["Japan_Zone_11",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841"
30172 Japan_Zone_12 PROJCS["Japan_Zone_12",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841"
30173 Japan_Zone_13 PROJCS["Japan_Zone_13",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841"
30174 Japan_Zone_14 PROJCS["Japan_Zone_14",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841"
30175 Japan_Zone_15 PROJCS["Japan_Zone_15",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841"
30176 Japan_Zone_16 PROJCS["Japan_Zone_16",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841"
30177 Japan_Zone_17 PROJCS["Japan_Zone_17",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841"
30178 Japan_Zone_18 PROJCS["Japan_Zone_18",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841"
30179 Japan_Zone_19 PROJCS["Japan_Zone_19",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841"

Copyright 1995-2015 Esri. All rights reserved. 387


ArcGIS Runtime SDK for .NET

30200 Trinidad_1903_Trinidad_Grid PROJCS["Trinidad_1903_Trinidad_Grid",GEOGCS["GCS_Trinidad_1903",DATUM["D_Trinidad_190


30339 TC_1948_UTM_Zone_39N PROJCS["TC_1948_UTM_Zone_39N",GEOGCS["GCS_Trucial_Coast_1948",DATUM["D_Trucial_C
30340 TC_1948_UTM_Zone_40N PROJCS["TC_1948_UTM_Zone_40N",GEOGCS["GCS_Trucial_Coast_1948",DATUM["D_Trucial_C
30491 Nord_Algerie_Ancienne PROJCS["Nord_Algerie_Ancienne",GEOGCS["GCS_Voirol_1875",DATUM["D_Voirol_1875",SPHER
30492 Sud_Algerie_Ancienne PROJCS["Sud_Algerie_Ancienne",GEOGCS["GCS_Voirol_1875",DATUM["D_Voirol_1875",SPHERO
30493 Voirol_1879_Nord_Algerie_Ancienne PROJCS["Voirol_1879_Nord_Algerie_Ancienne",GEOGCS["GCS_Voirol_1879",DATUM["D_Voirol_1
30494 Voirol_1879_Sud_Algerie_Ancienne PROJCS["Voirol_1879_Sud_Algerie_Ancienne",GEOGCS["GCS_Voirol_1879",DATUM["D_Voirol_18
30591 Nord_Algerie PROJCS["Nord_Algerie",GEOGCS["GCS_Voirol_Unifie_1960",DATUM["D_Voirol_Unifie_1960",SPH
30592 Sud_Algerie PROJCS["Sud_Algerie",GEOGCS["GCS_Voirol_Unifie_1960",DATUM["D_Voirol_Unifie_1960",SPHE
30729 Nord_Sahara_1959_UTM_Zone_29N PROJCS["Nord_Sahara_1959_UTM_Zone_29N",GEOGCS["GCS_Nord_Sahara_1959",DATUM["D_
30730 Nord_Sahara_1959_UTM_Zone_30N PROJCS["Nord_Sahara_1959_UTM_Zone_30N",GEOGCS["GCS_Nord_Sahara_1959",DATUM["D_
30731 Nord_Sahara_1959_UTM_Zone_31N PROJCS["Nord_Sahara_1959_UTM_Zone_31N",GEOGCS["GCS_Nord_Sahara_1959",DATUM["D_
30732 Nord_Sahara_1959_UTM_Zone_32N PROJCS["Nord_Sahara_1959_UTM_Zone_32N",GEOGCS["GCS_Nord_Sahara_1959",DATUM["D_
30791 Nord_Sahara_1959_Voirol_Unifie_Nord PROJCS["Nord_Sahara_1959_Voirol_Unifie_Nord",GEOGCS["GCS_Nord_Sahara_1959",DATUM["D
30792 Nord_Sahara_1959_Voirol_Unifie_Sud PROJCS["Nord_Sahara_1959_Voirol_Unifie_Sud",GEOGCS["GCS_Nord_Sahara_1959",DATUM["D
31028 Yoff_1972_UTM_Zone_28N PROJCS["Yoff_1972_UTM_Zone_28N",GEOGCS["GCS_Yoff",DATUM["D_Yoff",SPHEROID["Clarke
31121 Zanderij_1972_UTM_Zone_21N PROJCS["Zanderij_1972_UTM_Zone_21N",GEOGCS["GCS_Zanderij",DATUM["D_Zanderij",SPHER
31154 Zanderij_TM_54_NW PROJCS["Zanderij_TM_54_NW",GEOGCS["GCS_Zanderij",DATUM["D_Zanderij",SPHEROID["Inter
31170 Zanderij_Suriname_Old_TM PROJCS["Zanderij_Suriname_Old_TM",GEOGCS["GCS_Zanderij",DATUM["D_Zanderij",SPHEROID
31171 Zanderij_Suriname_TM PROJCS["Zanderij_Suriname_TM",GEOGCS["GCS_Zanderij",DATUM["D_Zanderij",SPHEROID["Int
31251 MGI_Ferro_Austria_GK_West PROJCS["MGI_Ferro_Austria_GK_West",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROI
31252 MGI_Ferro_Austria_GK_Central PROJCS["MGI_Ferro_Austria_GK_Central",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHERO
31253 MGI_Ferro_Austria_GK_East PROJCS["MGI_Ferro_Austria_GK_East",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID
31254 MGI_Austria_GK_West PROJCS["MGI_Austria_GK_West",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_18
31255 MGI_Austria_GK_Central PROJCS["MGI_Austria_GK_Central",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1
31256 MGI_Austria_GK_East PROJCS["MGI_Austria_GK_East",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_184
31257 MGI_Austria_GK_M28 PROJCS["MGI_Austria_GK_M28",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_184
31258 MGI_Austria_GK_M31 PROJCS["MGI_Austria_GK_M31",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_184
31259 MGI_Austria_GK_M34 PROJCS["MGI_Austria_GK_M34",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_184
31265 MGI_3_Degree_Gauss_Zone_5 PROJCS["MGI_3_Degree_Gauss_Zone_5",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Be
31266 MGI_3_Degree_Gauss_Zone_6 PROJCS["MGI_3_Degree_Gauss_Zone_6",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Be
31267 MGI_3_Degree_Gauss_Zone_7 PROJCS["MGI_3_Degree_Gauss_Zone_7",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Be
31268 MGI_3_Degree_Gauss_Zone_8 PROJCS["MGI_3_Degree_Gauss_Zone_8",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Be
31275 MGI_Balkans_5 PROJCS["MGI_Balkans_5",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",637
31276 MGI_Balkans_6 PROJCS["MGI_Balkans_6",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",637
31277 MGI_Balkans_7 PROJCS["MGI_Balkans_7",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",637
31279 MGI_Balkans_8 PROJCS["MGI_Balkans_8",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",637
31281 Austria_West_Zone PROJCS["Austria_West_Zone",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Bessel_
31282 Austria_Central_Zone PROJCS["Austria_Central_Zone",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Besse
31283 Austria_East_Zone PROJCS["Austria_East_Zone",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Bessel_
31284 MGI_M28 PROJCS["MGI_M28",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.
31285 MGI_M31 PROJCS["MGI_M31",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.
31286 MGI_M34 PROJCS["MGI_M34",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.
31287 MGI_Austria_Lambert PROJCS["MGI_Austria_Lambert",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_184
31288 MGI_Ferro_M28 PROJCS["MGI_Ferro_M28",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Bessel_18
31289 MGI_Ferro_M31 PROJCS["MGI_Ferro_M31",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Bessel_18
31290 MGI_Ferro_M34 PROJCS["MGI_Ferro_M34",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Bessel_18
31370 Belge_Lambert_1972 PROJCS["Belge_Lambert_1972",GEOGCS["GCS_Belge_1972",DATUM["D_Belge_1972",SPHEROI
31466 DHDN_3_Degree_Gauss_Zone_2 PROJCS["DHDN_3_Degree_Gauss_Zone_2",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DAT
31467 DHDN_3_Degree_Gauss_Zone_3 PROJCS["DHDN_3_Degree_Gauss_Zone_3",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DAT
31468 DHDN_3_Degree_Gauss_Zone_4 PROJCS["DHDN_3_Degree_Gauss_Zone_4",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DAT
31469 DHDN_3_Degree_Gauss_Zone_5 PROJCS["DHDN_3_Degree_Gauss_Zone_5",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DAT
31491 Germany_Zone_1 PROJCS["Germany_Zone_1",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsch
31492 Germany_Zone_2 PROJCS["Germany_Zone_2",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsch

Copyright 1995-2015 Esri. All rights reserved. 388


ArcGIS Runtime SDK for .NET

31493 Germany_Zone_3 PROJCS["Germany_Zone_3",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsch


31494 Germany_Zone_4 PROJCS["Germany_Zone_4",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsch
31495 Germany_Zone_5 PROJCS["Germany_Zone_5",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsch
31528 Conakry_1905_UTM_Zone_28N PROJCS["Conakry_1905_UTM_Zone_28N",GEOGCS["GCS_Conakry_1905",DATUM["D_Conakry_
31529 Conakry_1905_UTM_Zone_29N PROJCS["Conakry_1905_UTM_Zone_29N",GEOGCS["GCS_Conakry_1905",DATUM["D_Conakry_
31600 Stereo_33 PROJCS["Stereo_33",GEOGCS["GCS_Dealul_Piscului_1933",DATUM["D_Dealul_Piscului_1933",SP
31700 Stereo_70 PROJCS["Stereo_70",GEOGCS["GCS_Dealul_Piscului_1970",DATUM["D_Dealul_Piscului_1970",SP
31838 NGN_UTM_Zone_38N PROJCS["NGN_UTM_Zone_38N",GEOGCS["GCS_NGN",DATUM["D_NGN",SPHEROID["WGS_198
31839 NGN_UTM_Zone_39N PROJCS["NGN_UTM_Zone_39N",GEOGCS["GCS_NGN",DATUM["D_NGN",SPHEROID["WGS_198
31901 KUDAMS_KTM PROJCS["KUDAMS_KTM",GEOGCS["GCS_KUDAMS",DATUM["D_Kuwait_Utility",SPHEROID["GR
31965 SIRGAS_2000_UTM_Zone_11N PROJCS["SIRGAS_2000_UTM_Zone_11N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31966 SIRGAS_2000_UTM_Zone_12N PROJCS["SIRGAS_2000_UTM_Zone_12N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31967 SIRGAS_2000_UTM_Zone_13N PROJCS["SIRGAS_2000_UTM_Zone_13N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31968 SIRGAS_2000_UTM_Zone_14N PROJCS["SIRGAS_2000_UTM_Zone_14N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31969 SIRGAS_2000_UTM_Zone_15N PROJCS["SIRGAS_2000_UTM_Zone_15N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31970 SIRGAS_2000_UTM_Zone_16N PROJCS["SIRGAS_2000_UTM_Zone_16N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31971 SIRGAS_2000_UTM_Zone_17N PROJCS["SIRGAS_2000_UTM_Zone_17N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31972 SIRGAS_2000_UTM_Zone_18N PROJCS["SIRGAS_2000_UTM_Zone_18N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31973 SIRGAS_2000_UTM_Zone_19N PROJCS["SIRGAS_2000_UTM_Zone_19N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31974 SIRGAS_2000_UTM_Zone_20N PROJCS["SIRGAS_2000_UTM_Zone_20N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31975 SIRGAS_2000_UTM_Zone_21N PROJCS["SIRGAS_2000_UTM_Zone_21N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31976 SIRGAS_2000_UTM_Zone_22N PROJCS["SIRGAS_2000_UTM_Zone_22N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31977 SIRGAS_2000_UTM_Zone_17S PROJCS["SIRGAS_2000_UTM_Zone_17S",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31978 SIRGAS_2000_UTM_Zone_18S PROJCS["SIRGAS_2000_UTM_Zone_18S",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31979 SIRGAS_2000_UTM_Zone_19S PROJCS["SIRGAS_2000_UTM_Zone_19S",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31980 SIRGAS_2000_UTM_Zone_20S PROJCS["SIRGAS_2000_UTM_Zone_20S",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31981 SIRGAS_2000_UTM_Zone_21S PROJCS["SIRGAS_2000_UTM_Zone_21S",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31982 SIRGAS_2000_UTM_Zone_22S PROJCS["SIRGAS_2000_UTM_Zone_22S",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31983 SIRGAS_2000_UTM_Zone_23S PROJCS["SIRGAS_2000_UTM_Zone_23S",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31984 SIRGAS_2000_UTM_Zone_24S PROJCS["SIRGAS_2000_UTM_Zone_24S",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31985 SIRGAS_2000_UTM_Zone_25S PROJCS["SIRGAS_2000_UTM_Zone_25S",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_
31986 SIRGAS_UTM_Zone_17N PROJCS["SIRGAS_UTM_Zone_17N",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID[
31987 SIRGAS_UTM_Zone_18N PROJCS["SIRGAS_UTM_Zone_18N",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID[
31988 SIRGAS_UTM_Zone_19N PROJCS["SIRGAS_UTM_Zone_19N",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID[
31989 SIRGAS_UTM_Zone_20N PROJCS["SIRGAS_UTM_Zone_20N",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID[
31990 SIRGAS_UTM_Zone_21N PROJCS["SIRGAS_UTM_Zone_21N",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID[
31991 SIRGAS_UTM_Zone_22N PROJCS["SIRGAS_UTM_Zone_22N",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID[
31992 SIRGAS_UTM_Zone_17S PROJCS["SIRGAS_UTM_Zone_17S",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID[
31993 SIRGAS_UTM_Zone_18S PROJCS["SIRGAS_UTM_Zone_18S",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID[
31994 SIRGAS_UTM_Zone_19S PROJCS["SIRGAS_UTM_Zone_19S",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID[
31995 SIRGAS_UTM_Zone_20S PROJCS["SIRGAS_UTM_Zone_20S",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID[
31996 SIRGAS_UTM_Zone_21S PROJCS["SIRGAS_UTM_Zone_21S",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID[
31997 SIRGAS_UTM_Zone_22S PROJCS["SIRGAS_UTM_Zone_22S",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID[
31998 SIRGAS_UTM_Zone_23S PROJCS["SIRGAS_UTM_Zone_23S",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID[
31999 SIRGAS_UTM_Zone_24S PROJCS["SIRGAS_UTM_Zone_24S",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID[
32000 SIRGAS_UTM_Zone_25S PROJCS["SIRGAS_UTM_Zone_25S",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID[
32001 NAD_1927_StatePlane_Montana_North_FIPS_2501 PROJCS["NAD_1927_StatePlane_Montana_North_FIPS_2501",GEOGCS["GCS_North_American_1
32002 NAD_1927_StatePlane_Montana_Central_FIPS_2502 PROJCS["NAD_1927_StatePlane_Montana_Central_FIPS_2502",GEOGCS["GCS_North_American
32003 NAD_1927_StatePlane_Montana_South_FIPS_2503 PROJCS["NAD_1927_StatePlane_Montana_South_FIPS_2503",GEOGCS["GCS_North_American_
32005 NAD_1927_StatePlane_Nebraska_North_FIPS_2601 PROJCS["NAD_1927_StatePlane_Nebraska_North_FIPS_2601",GEOGCS["GCS_North_American_
32006 NAD_1927_StatePlane_Nebraska_South_FIPS_2602 PROJCS["NAD_1927_StatePlane_Nebraska_South_FIPS_2602",GEOGCS["GCS_North_American_
32007 NAD_1927_StatePlane_Nevada_East_FIPS_2701 PROJCS["NAD_1927_StatePlane_Nevada_East_FIPS_2701",GEOGCS["GCS_North_American_19
32008 NAD_1927_StatePlane_Nevada_Central_FIPS_2702 PROJCS["NAD_1927_StatePlane_Nevada_Central_FIPS_2702",GEOGCS["GCS_North_American_
32009 NAD_1927_StatePlane_Nevada_West_FIPS_2703 PROJCS["NAD_1927_StatePlane_Nevada_West_FIPS_2703",GEOGCS["GCS_North_American_19

Copyright 1995-2015 Esri. All rights reserved. 389


ArcGIS Runtime SDK for .NET

32010 NAD_1927_StatePlane_New_Hampshire_FIPS_2800 PROJCS["NAD_1927_StatePlane_New_Hampshire_FIPS_2800",GEOGCS["GCS_North_American_


32011 NAD_1927_StatePlane_New_Jersey_FIPS_2900 PROJCS["NAD_1927_StatePlane_New_Jersey_FIPS_2900",GEOGCS["GCS_North_American_192
32012 NAD_1927_StatePlane_New_Mexico_East_FIPS_3001 PROJCS["NAD_1927_StatePlane_New_Mexico_East_FIPS_3001",GEOGCS["GCS_North_America
32013 NAD_1927_StatePlane_New_Mexico_Central_FIPS_3002 PROJCS["NAD_1927_StatePlane_New_Mexico_Central_FIPS_3002",GEOGCS["GCS_North_Amer
32014 NAD_1927_StatePlane_New_Mexico_West_FIPS_3003 PROJCS["NAD_1927_StatePlane_New_Mexico_West_FIPS_3003",GEOGCS["GCS_North_America
32015 NAD_1927_StatePlane_New_York_East_FIPS_3101 PROJCS["NAD_1927_StatePlane_New_York_East_FIPS_3101",GEOGCS["GCS_North_American_
32016 NAD_1927_StatePlane_New_York_Central_FIPS_3102 PROJCS["NAD_1927_StatePlane_New_York_Central_FIPS_3102",GEOGCS["GCS_North_America
32017 NAD_1927_StatePlane_New_York_West_FIPS_3103 PROJCS["NAD_1927_StatePlane_New_York_West_FIPS_3103",GEOGCS["GCS_North_American_
32019 NAD_1927_StatePlane_North_Carolina_FIPS_3200 PROJCS["NAD_1927_StatePlane_North_Carolina_FIPS_3200",GEOGCS["GCS_North_American_1
32020 NAD_1927_StatePlane_North_Dakota_North_FIPS_3301 PROJCS["NAD_1927_StatePlane_North_Dakota_North_FIPS_3301",GEOGCS["GCS_North_Americ
32021 NAD_1927_StatePlane_North_Dakota_South_FIPS_3302 PROJCS["NAD_1927_StatePlane_North_Dakota_South_FIPS_3302",GEOGCS["GCS_North_Ameri
32022 NAD_1927_StatePlane_Ohio_North_FIPS_3401 PROJCS["NAD_1927_StatePlane_Ohio_North_FIPS_3401",GEOGCS["GCS_North_American_1927
32023 NAD_1927_StatePlane_Ohio_South_FIPS_3402 PROJCS["NAD_1927_StatePlane_Ohio_South_FIPS_3402",GEOGCS["GCS_North_American_1927
32024 NAD_1927_StatePlane_Oklahoma_North_FIPS_3501 PROJCS["NAD_1927_StatePlane_Oklahoma_North_FIPS_3501",GEOGCS["GCS_North_American_
32025 NAD_1927_StatePlane_Oklahoma_South_FIPS_3502 PROJCS["NAD_1927_StatePlane_Oklahoma_South_FIPS_3502",GEOGCS["GCS_North_American
32026 NAD_1927_StatePlane_Oregon_North_FIPS_3601 PROJCS["NAD_1927_StatePlane_Oregon_North_FIPS_3601",GEOGCS["GCS_North_American_19
32027 NAD_1927_StatePlane_Oregon_South_FIPS_3602 PROJCS["NAD_1927_StatePlane_Oregon_South_FIPS_3602",GEOGCS["GCS_North_American_1
32028 NAD_1927_StatePlane_Pennsylvania_North_FIPS_3701 PROJCS["NAD_1927_StatePlane_Pennsylvania_North_FIPS_3701",GEOGCS["GCS_North_Americ
32030 NAD_1927_StatePlane_Rhode_Island_FIPS_3800 PROJCS["NAD_1927_StatePlane_Rhode_Island_FIPS_3800",GEOGCS["GCS_North_American_19
32031 NAD_1927_StatePlane_South_Carolina_North_FIPS_3901 PROJCS["NAD_1927_StatePlane_South_Carolina_North_FIPS_3901",GEOGCS["GCS_North_Ame
32033 NAD_1927_StatePlane_South_Carolina_South_FIPS_3902 PROJCS["NAD_1927_StatePlane_South_Carolina_South_FIPS_3902",GEOGCS["GCS_North_Ame
32034 NAD_1927_StatePlane_South_Dakota_North_FIPS_4001 PROJCS["NAD_1927_StatePlane_South_Dakota_North_FIPS_4001",GEOGCS["GCS_North_Ameri
32035 NAD_1927_StatePlane_South_Dakota_South_FIPS_4002 PROJCS["NAD_1927_StatePlane_South_Dakota_South_FIPS_4002",GEOGCS["GCS_North_Amer
32037 NAD_1927_StatePlane_Texas_North_FIPS_4201 PROJCS["NAD_1927_StatePlane_Texas_North_FIPS_4201",GEOGCS["GCS_North_American_192
32038 NAD_1927_StatePlane_Texas_North_Central_FIPS_4202 PROJCS["NAD_1927_StatePlane_Texas_North_Central_FIPS_4202",GEOGCS["GCS_North_Amer
32039 NAD_1927_StatePlane_Texas_Central_FIPS_4203 PROJCS["NAD_1927_StatePlane_Texas_Central_FIPS_4203",GEOGCS["GCS_North_American_1
32040 NAD_1927_StatePlane_Texas_South_Central_FIPS_4204 PROJCS["NAD_1927_StatePlane_Texas_South_Central_FIPS_4204",GEOGCS["GCS_North_Amer
32041 NAD_1927_StatePlane_Texas_South_FIPS_4205 PROJCS["NAD_1927_StatePlane_Texas_South_FIPS_4205",GEOGCS["GCS_North_American_192
32042 NAD_1927_StatePlane_Utah_North_FIPS_4301 PROJCS["NAD_1927_StatePlane_Utah_North_FIPS_4301",GEOGCS["GCS_North_American_1927
32043 NAD_1927_StatePlane_Utah_Central_FIPS_4302 PROJCS["NAD_1927_StatePlane_Utah_Central_FIPS_4302",GEOGCS["GCS_North_American_192
32044 NAD_1927_StatePlane_Utah_South_FIPS_4303 PROJCS["NAD_1927_StatePlane_Utah_South_FIPS_4303",GEOGCS["GCS_North_American_1927
32045 NAD_1927_StatePlane_Vermont_FIPS_4400 PROJCS["NAD_1927_StatePlane_Vermont_FIPS_4400",GEOGCS["GCS_North_American_1927",D
32046 NAD_1927_StatePlane_Virginia_North_FIPS_4501 PROJCS["NAD_1927_StatePlane_Virginia_North_FIPS_4501",GEOGCS["GCS_North_American_19
32047 NAD_1927_StatePlane_Virginia_South_FIPS_4502 PROJCS["NAD_1927_StatePlane_Virginia_South_FIPS_4502",GEOGCS["GCS_North_American_1
32048 NAD_1927_StatePlane_Washington_North_FIPS_4601 PROJCS["NAD_1927_StatePlane_Washington_North_FIPS_4601",GEOGCS["GCS_North_America
32049 NAD_1927_StatePlane_Washington_South_FIPS_4602 PROJCS["NAD_1927_StatePlane_Washington_South_FIPS_4602",GEOGCS["GCS_North_America
32050 NAD_1927_StatePlane_West_Virginia_North_FIPS_4701 PROJCS["NAD_1927_StatePlane_West_Virginia_North_FIPS_4701",GEOGCS["GCS_North_Americ
32051 NAD_1927_StatePlane_West_Virginia_South_FIPS_4702 PROJCS["NAD_1927_StatePlane_West_Virginia_South_FIPS_4702",GEOGCS["GCS_North_Ameri
32052 NAD_1927_StatePlane_Wisconsin_North_FIPS_4801 PROJCS["NAD_1927_StatePlane_Wisconsin_North_FIPS_4801",GEOGCS["GCS_North_American_
32053 NAD_1927_StatePlane_Wisconsin_Central_FIPS_4802 PROJCS["NAD_1927_StatePlane_Wisconsin_Central_FIPS_4802",GEOGCS["GCS_North_America
32054 NAD_1927_StatePlane_Wisconsin_South_FIPS_4803 PROJCS["NAD_1927_StatePlane_Wisconsin_South_FIPS_4803",GEOGCS["GCS_North_American
32055 NAD_1927_StatePlane_Wyoming_East_FIPS_4901 PROJCS["NAD_1927_StatePlane_Wyoming_East_FIPS_4901",GEOGCS["GCS_North_American_1
32056 NAD_1927_StatePlane_Wyoming_East_Central_FIPS_4902 PROJCS["NAD_1927_StatePlane_Wyoming_East_Central_FIPS_4902",GEOGCS["GCS_North_Am
32057 NAD_1927_StatePlane_Wyoming_West_Central_FIPS_4903 PROJCS["NAD_1927_StatePlane_Wyoming_West_Central_FIPS_4903",GEOGCS["GCS_North_Am
32058 NAD_1927_StatePlane_Wyoming_West_FIPS_4904 PROJCS["NAD_1927_StatePlane_Wyoming_West_FIPS_4904",GEOGCS["GCS_North_American_1
32059 NAD_1927_StatePlane_Puerto_Rico_FIPS_5201 PROJCS["NAD_1927_StatePlane_Puerto_Rico_FIPS_5201",GEOGCS["GCS_North_American_192
32060 NAD_1927_StatePlane_Virgin_Islands_St_Croix_FIPS_5202 PROJCS["NAD_1927_StatePlane_Virgin_Islands_St_Croix_FIPS_5202",GEOGCS["GCS_North_Am
32061 NAD_1927_Guatemala_Norte PROJCS["NAD_1927_Guatemala_Norte",GEOGCS["GCS_North_American_1927",DATUM["D_Nort
32062 NAD_1927_Guatemala_Sur PROJCS["NAD_1927_Guatemala_Sur",GEOGCS["GCS_North_American_1927",DATUM["D_North_
32064 NAD_1927_BLM_Zone_14N PROJCS["NAD_1927_BLM_Zone_14N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
32065 NAD_1927_BLM_Zone_15N PROJCS["NAD_1927_BLM_Zone_15N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
32066 NAD_1927_BLM_Zone_16N PROJCS["NAD_1927_BLM_Zone_16N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
32067 NAD_1927_BLM_Zone_17N PROJCS["NAD_1927_BLM_Zone_17N",GEOGCS["GCS_North_American_1927",DATUM["D_North_
32081 NAD_1927_MTM_1 PROJCS["NAD_1927_MTM_1",GEOGCS["GCS_North_American_1927",DATUM["D_North_America

Copyright 1995-2015 Esri. All rights reserved. 390


ArcGIS Runtime SDK for .NET

32082 NAD_1927_MTM_2 PROJCS["NAD_1927_MTM_2",GEOGCS["GCS_North_American_1927",DATUM["D_North_America


32083 NAD_1927_MTM_3 PROJCS["NAD_1927_MTM_3",GEOGCS["GCS_North_American_1927",DATUM["D_North_America
32084 NAD_1927_MTM_4 PROJCS["NAD_1927_MTM_4",GEOGCS["GCS_North_American_1927",DATUM["D_North_America
32085 NAD_1927_MTM_5 PROJCS["NAD_1927_MTM_5",GEOGCS["GCS_North_American_1927",DATUM["D_North_America
32086 NAD_1927_MTM_6 PROJCS["NAD_1927_MTM_6",GEOGCS["GCS_North_American_1927",DATUM["D_North_America
32098 NAD_1927_Quebec_Lambert PROJCS["NAD_1927_Quebec_Lambert",GEOGCS["GCS_North_American_1927",DATUM["D_North
32099 NAD_1927_StatePlane_Louisiana_Offshore_FIPS_1703 PROJCS["NAD_1927_StatePlane_Louisiana_Offshore_FIPS_1703",GEOGCS["GCS_North_America
32100 NAD_1983_StatePlane_Montana_FIPS_2500 PROJCS["NAD_1983_StatePlane_Montana_FIPS_2500",GEOGCS["GCS_North_American_1983",D
32104 NAD_1983_StatePlane_Nebraska_FIPS_2600 PROJCS["NAD_1983_StatePlane_Nebraska_FIPS_2600",GEOGCS["GCS_North_American_1983",
32107 NAD_1983_StatePlane_Nevada_East_FIPS_2701 PROJCS["NAD_1983_StatePlane_Nevada_East_FIPS_2701",GEOGCS["GCS_North_American_19
32108 NAD_1983_StatePlane_Nevada_Central_FIPS_2702 PROJCS["NAD_1983_StatePlane_Nevada_Central_FIPS_2702",GEOGCS["GCS_North_American_
32109 NAD_1983_StatePlane_Nevada_West_FIPS_2703 PROJCS["NAD_1983_StatePlane_Nevada_West_FIPS_2703",GEOGCS["GCS_North_American_19
32110 NAD_1983_StatePlane_New_Hampshire_FIPS_2800 PROJCS["NAD_1983_StatePlane_New_Hampshire_FIPS_2800",GEOGCS["GCS_North_American_
32111 NAD_1983_StatePlane_New_Jersey_FIPS_2900 PROJCS["NAD_1983_StatePlane_New_Jersey_FIPS_2900",GEOGCS["GCS_North_American_198
32112 NAD_1983_StatePlane_New_Mexico_East_FIPS_3001 PROJCS["NAD_1983_StatePlane_New_Mexico_East_FIPS_3001",GEOGCS["GCS_North_America
32113 NAD_1983_StatePlane_New_Mexico_Central_FIPS_3002 PROJCS["NAD_1983_StatePlane_New_Mexico_Central_FIPS_3002",GEOGCS["GCS_North_Amer
32114 NAD_1983_StatePlane_New_Mexico_West_FIPS_3003 PROJCS["NAD_1983_StatePlane_New_Mexico_West_FIPS_3003",GEOGCS["GCS_North_America
32115 NAD_1983_StatePlane_New_York_East_FIPS_3101 PROJCS["NAD_1983_StatePlane_New_York_East_FIPS_3101",GEOGCS["GCS_North_American_
32116 NAD_1983_StatePlane_New_York_Central_FIPS_3102 PROJCS["NAD_1983_StatePlane_New_York_Central_FIPS_3102",GEOGCS["GCS_North_America
32117 NAD_1983_StatePlane_New_York_West_FIPS_3103 PROJCS["NAD_1983_StatePlane_New_York_West_FIPS_3103",GEOGCS["GCS_North_American_
32118 NAD_1983_StatePlane_New_York_Long_Island_FIPS_3104 PROJCS["NAD_1983_StatePlane_New_York_Long_Island_FIPS_3104",GEOGCS["GCS_North_Am
32119 NAD_1983_StatePlane_North_Carolina_FIPS_3200 PROJCS["NAD_1983_StatePlane_North_Carolina_FIPS_3200",GEOGCS["GCS_North_American_1
32120 NAD_1983_StatePlane_North_Dakota_North_FIPS_3301 PROJCS["NAD_1983_StatePlane_North_Dakota_North_FIPS_3301",GEOGCS["GCS_North_Americ
32121 NAD_1983_StatePlane_North_Dakota_South_FIPS_3302 PROJCS["NAD_1983_StatePlane_North_Dakota_South_FIPS_3302",GEOGCS["GCS_North_Ameri
32122 NAD_1983_StatePlane_Ohio_North_FIPS_3401 PROJCS["NAD_1983_StatePlane_Ohio_North_FIPS_3401",GEOGCS["GCS_North_American_1983
32123 NAD_1983_StatePlane_Ohio_South_FIPS_3402 PROJCS["NAD_1983_StatePlane_Ohio_South_FIPS_3402",GEOGCS["GCS_North_American_1983
32124 NAD_1983_StatePlane_Oklahoma_North_FIPS_3501 PROJCS["NAD_1983_StatePlane_Oklahoma_North_FIPS_3501",GEOGCS["GCS_North_American_
32125 NAD_1983_StatePlane_Oklahoma_South_FIPS_3502 PROJCS["NAD_1983_StatePlane_Oklahoma_South_FIPS_3502",GEOGCS["GCS_North_American
32126 NAD_1983_StatePlane_Oregon_North_FIPS_3601 PROJCS["NAD_1983_StatePlane_Oregon_North_FIPS_3601",GEOGCS["GCS_North_American_19
32127 NAD_1983_StatePlane_Oregon_South_FIPS_3602 PROJCS["NAD_1983_StatePlane_Oregon_South_FIPS_3602",GEOGCS["GCS_North_American_1
32128 NAD_1983_StatePlane_Pennsylvania_North_FIPS_3701 PROJCS["NAD_1983_StatePlane_Pennsylvania_North_FIPS_3701",GEOGCS["GCS_North_Americ
32129 NAD_1983_StatePlane_Pennsylvania_South_FIPS_3702 PROJCS["NAD_1983_StatePlane_Pennsylvania_South_FIPS_3702",GEOGCS["GCS_North_Americ
32130 NAD_1983_StatePlane_Rhode_Island_FIPS_3800 PROJCS["NAD_1983_StatePlane_Rhode_Island_FIPS_3800",GEOGCS["GCS_North_American_19
32133 NAD_1983_StatePlane_South_Carolina_FIPS_3900 PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900",GEOGCS["GCS_North_American_1
32134 NAD_1983_StatePlane_South_Dakota_North_FIPS_4001 PROJCS["NAD_1983_StatePlane_South_Dakota_North_FIPS_4001",GEOGCS["GCS_North_Ameri
32135 NAD_1983_StatePlane_South_Dakota_South_FIPS_4002 PROJCS["NAD_1983_StatePlane_South_Dakota_South_FIPS_4002",GEOGCS["GCS_North_Amer
32136 NAD_1983_StatePlane_Tennessee_FIPS_4100 PROJCS["NAD_1983_StatePlane_Tennessee_FIPS_4100",GEOGCS["GCS_North_American_1983
32137 NAD_1983_StatePlane_Texas_North_FIPS_4201 PROJCS["NAD_1983_StatePlane_Texas_North_FIPS_4201",GEOGCS["GCS_North_American_198
32138 NAD_1983_StatePlane_Texas_North_Central_FIPS_4202 PROJCS["NAD_1983_StatePlane_Texas_North_Central_FIPS_4202",GEOGCS["GCS_North_Amer
32139 NAD_1983_StatePlane_Texas_Central_FIPS_4203 PROJCS["NAD_1983_StatePlane_Texas_Central_FIPS_4203",GEOGCS["GCS_North_American_1
32140 NAD_1983_StatePlane_Texas_South_Central_FIPS_4204 PROJCS["NAD_1983_StatePlane_Texas_South_Central_FIPS_4204",GEOGCS["GCS_North_Amer
32141 NAD_1983_StatePlane_Texas_South_FIPS_4205 PROJCS["NAD_1983_StatePlane_Texas_South_FIPS_4205",GEOGCS["GCS_North_American_198
32142 NAD_1983_StatePlane_Utah_North_FIPS_4301 PROJCS["NAD_1983_StatePlane_Utah_North_FIPS_4301",GEOGCS["GCS_North_American_1983
32143 NAD_1983_StatePlane_Utah_Central_FIPS_4302 PROJCS["NAD_1983_StatePlane_Utah_Central_FIPS_4302",GEOGCS["GCS_North_American_198
32144 NAD_1983_StatePlane_Utah_South_FIPS_4303 PROJCS["NAD_1983_StatePlane_Utah_South_FIPS_4303",GEOGCS["GCS_North_American_1983
32145 NAD_1983_StatePlane_Vermont_FIPS_4400 PROJCS["NAD_1983_StatePlane_Vermont_FIPS_4400",GEOGCS["GCS_North_American_1983",D
32146 NAD_1983_StatePlane_Virginia_North_FIPS_4501 PROJCS["NAD_1983_StatePlane_Virginia_North_FIPS_4501",GEOGCS["GCS_North_American_19
32147 NAD_1983_StatePlane_Virginia_South_FIPS_4502 PROJCS["NAD_1983_StatePlane_Virginia_South_FIPS_4502",GEOGCS["GCS_North_American_1
32148 NAD_1983_StatePlane_Washington_North_FIPS_4601 PROJCS["NAD_1983_StatePlane_Washington_North_FIPS_4601",GEOGCS["GCS_North_America
32149 NAD_1983_StatePlane_Washington_South_FIPS_4602 PROJCS["NAD_1983_StatePlane_Washington_South_FIPS_4602",GEOGCS["GCS_North_America
32150 NAD_1983_StatePlane_West_Virginia_North_FIPS_4701 PROJCS["NAD_1983_StatePlane_West_Virginia_North_FIPS_4701",GEOGCS["GCS_North_Americ
32151 NAD_1983_StatePlane_West_Virginia_South_FIPS_4702 PROJCS["NAD_1983_StatePlane_West_Virginia_South_FIPS_4702",GEOGCS["GCS_North_Ameri
32152 NAD_1983_StatePlane_Wisconsin_North_FIPS_4801 PROJCS["NAD_1983_StatePlane_Wisconsin_North_FIPS_4801",GEOGCS["GCS_North_American_
32153 NAD_1983_StatePlane_Wisconsin_Central_FIPS_4802 PROJCS["NAD_1983_StatePlane_Wisconsin_Central_FIPS_4802",GEOGCS["GCS_North_America

Copyright 1995-2015 Esri. All rights reserved. 391


ArcGIS Runtime SDK for .NET

32154 NAD_1983_StatePlane_Wisconsin_South_FIPS_4803 PROJCS["NAD_1983_StatePlane_Wisconsin_South_FIPS_4803",GEOGCS["GCS_North_American


32155 NAD_1983_StatePlane_Wyoming_East_FIPS_4901 PROJCS["NAD_1983_StatePlane_Wyoming_East_FIPS_4901",GEOGCS["GCS_North_American_1
32156 NAD_1983_StatePlane_Wyoming_East_Central_FIPS_4902 PROJCS["NAD_1983_StatePlane_Wyoming_East_Central_FIPS_4902",GEOGCS["GCS_North_Am
32157 NAD_1983_StatePlane_Wyoming_West_Central_FIPS_4903 PROJCS["NAD_1983_StatePlane_Wyoming_West_Central_FIPS_4903",GEOGCS["GCS_North_Am
32158 NAD_1983_StatePlane_Wyoming_West_FIPS_4904 PROJCS["NAD_1983_StatePlane_Wyoming_West_FIPS_4904",GEOGCS["GCS_North_American_1
32161 NAD_1983_StatePlane_Puerto_Rico_Virgin_Islands_FIPS_5200 PROJCS["NAD_1983_StatePlane_Puerto_Rico_Virgin_Islands_FIPS_5200",GEOGCS["GCS_North_
32164 NAD_1983_BLM_Zone_14N_ftUS PROJCS["NAD_1983_BLM_Zone_14N_ftUS",GEOGCS["GCS_North_American_1983",DATUM["D_
32165 NAD_1983_BLM_Zone_15N_ftUS PROJCS["NAD_1983_BLM_Zone_15N_ftUS",GEOGCS["GCS_North_American_1983",DATUM["D_
32166 NAD_1983_BLM_Zone_16N_ftUS PROJCS["NAD_1983_BLM_Zone_16N_ftUS",GEOGCS["GCS_North_American_1983",DATUM["D_
32167 NAD_1983_BLM_Zone_17N_ftUS PROJCS["NAD_1983_BLM_Zone_17N_ftUS",GEOGCS["GCS_North_American_1983",DATUM["D_
32180 NAD_1983_MTM_2_SCoPQ PROJCS["NAD_1983_MTM_2_SCoPQ",GEOGCS["GCS_North_American_1983",DATUM["D_North
32181 NAD_1983_MTM_1 PROJCS["NAD_1983_MTM_1",GEOGCS["GCS_North_American_1983",DATUM["D_North_America
32182 NAD_1983_MTM_2 PROJCS["NAD_1983_MTM_2",GEOGCS["GCS_North_American_1983",DATUM["D_North_America
32183 NAD_1983_MTM_3 PROJCS["NAD_1983_MTM_3",GEOGCS["GCS_North_American_1983",DATUM["D_North_America
32184 NAD_1983_MTM_4 PROJCS["NAD_1983_MTM_4",GEOGCS["GCS_North_American_1983",DATUM["D_North_America
32185 NAD_1983_MTM_5 PROJCS["NAD_1983_MTM_5",GEOGCS["GCS_North_American_1983",DATUM["D_North_America
32186 NAD_1983_MTM_6 PROJCS["NAD_1983_MTM_6",GEOGCS["GCS_North_American_1983",DATUM["D_North_America
32187 NAD_1983_MTM_7 PROJCS["NAD_1983_MTM_7",GEOGCS["GCS_North_American_1983",DATUM["D_North_America
32188 NAD_1983_MTM_8 PROJCS["NAD_1983_MTM_8",GEOGCS["GCS_North_American_1983",DATUM["D_North_America
32189 NAD_1983_MTM_9 PROJCS["NAD_1983_MTM_9",GEOGCS["GCS_North_American_1983",DATUM["D_North_America
32190 NAD_1983_MTM_10 PROJCS["NAD_1983_MTM_10",GEOGCS["GCS_North_American_1983",DATUM["D_North_Americ
32191 NAD_1983_MTM_11 PROJCS["NAD_1983_MTM_11",GEOGCS["GCS_North_American_1983",DATUM["D_North_Americ
32192 NAD_1983_MTM_12 PROJCS["NAD_1983_MTM_12",GEOGCS["GCS_North_American_1983",DATUM["D_North_Americ
32193 NAD_1983_MTM_13 PROJCS["NAD_1983_MTM_13",GEOGCS["GCS_North_American_1983",DATUM["D_North_Americ
32194 NAD_1983_MTM_14 PROJCS["NAD_1983_MTM_14",GEOGCS["GCS_North_American_1983",DATUM["D_North_Americ
32195 NAD_1983_MTM_15 PROJCS["NAD_1983_MTM_15",GEOGCS["GCS_North_American_1983",DATUM["D_North_Americ
32196 NAD_1983_MTM_16 PROJCS["NAD_1983_MTM_16",GEOGCS["GCS_North_American_1983",DATUM["D_North_Americ
32197 NAD_1983_MTM_17 PROJCS["NAD_1983_MTM_17",GEOGCS["GCS_North_American_1983",DATUM["D_North_Americ
32198 NAD_1983_Quebec_Lambert PROJCS["NAD_1983_Quebec_Lambert",GEOGCS["GCS_North_American_1983",DATUM["D_North
32199 NAD_1983_StatePlane_Louisiana_Offshore_FIPS_1703 PROJCS["NAD_1983_StatePlane_Louisiana_Offshore_FIPS_1703",GEOGCS["GCS_North_America
32201 WGS_1972_UTM_Zone_1N PROJCS["WGS_1972_UTM_Zone_1N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPH
32202 WGS_1972_UTM_Zone_2N PROJCS["WGS_1972_UTM_Zone_2N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPH
32203 WGS_1972_UTM_Zone_3N PROJCS["WGS_1972_UTM_Zone_3N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPH
32204 WGS_1972_UTM_Zone_4N PROJCS["WGS_1972_UTM_Zone_4N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPH
32205 WGS_1972_UTM_Zone_5N PROJCS["WGS_1972_UTM_Zone_5N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPH
32206 WGS_1972_UTM_Zone_6N PROJCS["WGS_1972_UTM_Zone_6N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPH
32207 WGS_1972_UTM_Zone_7N PROJCS["WGS_1972_UTM_Zone_7N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPH
32208 WGS_1972_UTM_Zone_8N PROJCS["WGS_1972_UTM_Zone_8N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPH
32209 WGS_1972_UTM_Zone_9N PROJCS["WGS_1972_UTM_Zone_9N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPH
32210 WGS_1972_UTM_Zone_10N PROJCS["WGS_1972_UTM_Zone_10N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32211 WGS_1972_UTM_Zone_11N PROJCS["WGS_1972_UTM_Zone_11N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32212 WGS_1972_UTM_Zone_12N PROJCS["WGS_1972_UTM_Zone_12N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32213 WGS_1972_UTM_Zone_13N PROJCS["WGS_1972_UTM_Zone_13N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32214 WGS_1972_UTM_Zone_14N PROJCS["WGS_1972_UTM_Zone_14N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32215 WGS_1972_UTM_Zone_15N PROJCS["WGS_1972_UTM_Zone_15N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32216 WGS_1972_UTM_Zone_16N PROJCS["WGS_1972_UTM_Zone_16N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32217 WGS_1972_UTM_Zone_17N PROJCS["WGS_1972_UTM_Zone_17N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32218 WGS_1972_UTM_Zone_18N PROJCS["WGS_1972_UTM_Zone_18N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32219 WGS_1972_UTM_Zone_19N PROJCS["WGS_1972_UTM_Zone_19N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32220 WGS_1972_UTM_Zone_20N PROJCS["WGS_1972_UTM_Zone_20N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32221 WGS_1972_UTM_Zone_21N PROJCS["WGS_1972_UTM_Zone_21N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32222 WGS_1972_UTM_Zone_22N PROJCS["WGS_1972_UTM_Zone_22N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32223 WGS_1972_UTM_Zone_23N PROJCS["WGS_1972_UTM_Zone_23N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32224 WGS_1972_UTM_Zone_24N PROJCS["WGS_1972_UTM_Zone_24N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP

Copyright 1995-2015 Esri. All rights reserved. 392


ArcGIS Runtime SDK for .NET

32225 WGS_1972_UTM_Zone_25N PROJCS["WGS_1972_UTM_Zone_25N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP


32226 WGS_1972_UTM_Zone_26N PROJCS["WGS_1972_UTM_Zone_26N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32227 WGS_1972_UTM_Zone_27N PROJCS["WGS_1972_UTM_Zone_27N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32228 WGS_1972_UTM_Zone_28N PROJCS["WGS_1972_UTM_Zone_28N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32229 WGS_1972_UTM_Zone_29N PROJCS["WGS_1972_UTM_Zone_29N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32230 WGS_1972_UTM_Zone_30N PROJCS["WGS_1972_UTM_Zone_30N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32231 WGS_1972_UTM_Zone_31N PROJCS["WGS_1972_UTM_Zone_31N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32232 WGS_1972_UTM_Zone_32N PROJCS["WGS_1972_UTM_Zone_32N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32233 WGS_1972_UTM_Zone_33N PROJCS["WGS_1972_UTM_Zone_33N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32234 WGS_1972_UTM_Zone_34N PROJCS["WGS_1972_UTM_Zone_34N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32235 WGS_1972_UTM_Zone_35N PROJCS["WGS_1972_UTM_Zone_35N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32236 WGS_1972_UTM_Zone_36N PROJCS["WGS_1972_UTM_Zone_36N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32237 WGS_1972_UTM_Zone_37N PROJCS["WGS_1972_UTM_Zone_37N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32238 WGS_1972_UTM_Zone_38N PROJCS["WGS_1972_UTM_Zone_38N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32239 WGS_1972_UTM_Zone_39N PROJCS["WGS_1972_UTM_Zone_39N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32240 WGS_1972_UTM_Zone_40N PROJCS["WGS_1972_UTM_Zone_40N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32241 WGS_1972_UTM_Zone_41N PROJCS["WGS_1972_UTM_Zone_41N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32242 WGS_1972_UTM_Zone_42N PROJCS["WGS_1972_UTM_Zone_42N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32243 WGS_1972_UTM_Zone_43N PROJCS["WGS_1972_UTM_Zone_43N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32244 WGS_1972_UTM_Zone_44N PROJCS["WGS_1972_UTM_Zone_44N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32245 WGS_1972_UTM_Zone_45N PROJCS["WGS_1972_UTM_Zone_45N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32246 WGS_1972_UTM_Zone_46N PROJCS["WGS_1972_UTM_Zone_46N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32247 WGS_1972_UTM_Zone_47N PROJCS["WGS_1972_UTM_Zone_47N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32248 WGS_1972_UTM_Zone_48N PROJCS["WGS_1972_UTM_Zone_48N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32249 WGS_1972_UTM_Zone_49N PROJCS["WGS_1972_UTM_Zone_49N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32250 WGS_1972_UTM_Zone_50N PROJCS["WGS_1972_UTM_Zone_50N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32251 WGS_1972_UTM_Zone_51N PROJCS["WGS_1972_UTM_Zone_51N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32252 WGS_1972_UTM_Zone_52N PROJCS["WGS_1972_UTM_Zone_52N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32253 WGS_1972_UTM_Zone_53N PROJCS["WGS_1972_UTM_Zone_53N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32254 WGS_1972_UTM_Zone_54N PROJCS["WGS_1972_UTM_Zone_54N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32255 WGS_1972_UTM_Zone_55N PROJCS["WGS_1972_UTM_Zone_55N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32256 WGS_1972_UTM_Zone_56N PROJCS["WGS_1972_UTM_Zone_56N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32257 WGS_1972_UTM_Zone_57N PROJCS["WGS_1972_UTM_Zone_57N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32258 WGS_1972_UTM_Zone_58N PROJCS["WGS_1972_UTM_Zone_58N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32259 WGS_1972_UTM_Zone_59N PROJCS["WGS_1972_UTM_Zone_59N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32260 WGS_1972_UTM_Zone_60N PROJCS["WGS_1972_UTM_Zone_60N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32301 WGS_1972_UTM_Zone_1S PROJCS["WGS_1972_UTM_Zone_1S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPH
32302 WGS_1972_UTM_Zone_2S PROJCS["WGS_1972_UTM_Zone_2S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPH
32303 WGS_1972_UTM_Zone_3S PROJCS["WGS_1972_UTM_Zone_3S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPH
32304 WGS_1972_UTM_Zone_4S PROJCS["WGS_1972_UTM_Zone_4S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPH
32305 WGS_1972_UTM_Zone_5S PROJCS["WGS_1972_UTM_Zone_5S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPH
32306 WGS_1972_UTM_Zone_6S PROJCS["WGS_1972_UTM_Zone_6S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPH
32307 WGS_1972_UTM_Zone_7S PROJCS["WGS_1972_UTM_Zone_7S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPH
32308 WGS_1972_UTM_Zone_8S PROJCS["WGS_1972_UTM_Zone_8S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPH
32309 WGS_1972_UTM_Zone_9S PROJCS["WGS_1972_UTM_Zone_9S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPH
32310 WGS_1972_UTM_Zone_10S PROJCS["WGS_1972_UTM_Zone_10S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32311 WGS_1972_UTM_Zone_11S PROJCS["WGS_1972_UTM_Zone_11S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32312 WGS_1972_UTM_Zone_12S PROJCS["WGS_1972_UTM_Zone_12S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32313 WGS_1972_UTM_Zone_13S PROJCS["WGS_1972_UTM_Zone_13S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32314 WGS_1972_UTM_Zone_14S PROJCS["WGS_1972_UTM_Zone_14S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32315 WGS_1972_UTM_Zone_15S PROJCS["WGS_1972_UTM_Zone_15S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32316 WGS_1972_UTM_Zone_16S PROJCS["WGS_1972_UTM_Zone_16S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32317 WGS_1972_UTM_Zone_17S PROJCS["WGS_1972_UTM_Zone_17S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32318 WGS_1972_UTM_Zone_18S PROJCS["WGS_1972_UTM_Zone_18S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP

Copyright 1995-2015 Esri. All rights reserved. 393


ArcGIS Runtime SDK for .NET

32319 WGS_1972_UTM_Zone_19S PROJCS["WGS_1972_UTM_Zone_19S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP


32320 WGS_1972_UTM_Zone_20S PROJCS["WGS_1972_UTM_Zone_20S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32321 WGS_1972_UTM_Zone_21S PROJCS["WGS_1972_UTM_Zone_21S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32322 WGS_1972_UTM_Zone_22S PROJCS["WGS_1972_UTM_Zone_22S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32323 WGS_1972_UTM_Zone_23S PROJCS["WGS_1972_UTM_Zone_23S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32324 WGS_1972_UTM_Zone_24S PROJCS["WGS_1972_UTM_Zone_24S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32325 WGS_1972_UTM_Zone_25S PROJCS["WGS_1972_UTM_Zone_25S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32326 WGS_1972_UTM_Zone_26S PROJCS["WGS_1972_UTM_Zone_26S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32327 WGS_1972_UTM_Zone_27S PROJCS["WGS_1972_UTM_Zone_27S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32328 WGS_1972_UTM_Zone_28S PROJCS["WGS_1972_UTM_Zone_28S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32329 WGS_1972_UTM_Zone_29S PROJCS["WGS_1972_UTM_Zone_29S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32330 WGS_1972_UTM_Zone_30S PROJCS["WGS_1972_UTM_Zone_30S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32331 WGS_1972_UTM_Zone_31S PROJCS["WGS_1972_UTM_Zone_31S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32332 WGS_1972_UTM_Zone_32S PROJCS["WGS_1972_UTM_Zone_32S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32333 WGS_1972_UTM_Zone_33S PROJCS["WGS_1972_UTM_Zone_33S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32334 WGS_1972_UTM_Zone_34S PROJCS["WGS_1972_UTM_Zone_34S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32335 WGS_1972_UTM_Zone_35S PROJCS["WGS_1972_UTM_Zone_35S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32336 WGS_1972_UTM_Zone_36S PROJCS["WGS_1972_UTM_Zone_36S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32337 WGS_1972_UTM_Zone_37S PROJCS["WGS_1972_UTM_Zone_37S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32338 WGS_1972_UTM_Zone_38S PROJCS["WGS_1972_UTM_Zone_38S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32339 WGS_1972_UTM_Zone_39S PROJCS["WGS_1972_UTM_Zone_39S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32340 WGS_1972_UTM_Zone_40S PROJCS["WGS_1972_UTM_Zone_40S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32341 WGS_1972_UTM_Zone_41S PROJCS["WGS_1972_UTM_Zone_41S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32342 WGS_1972_UTM_Zone_42S PROJCS["WGS_1972_UTM_Zone_42S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32343 WGS_1972_UTM_Zone_43S PROJCS["WGS_1972_UTM_Zone_43S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32344 WGS_1972_UTM_Zone_44S PROJCS["WGS_1972_UTM_Zone_44S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32345 WGS_1972_UTM_Zone_45S PROJCS["WGS_1972_UTM_Zone_45S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32346 WGS_1972_UTM_Zone_46S PROJCS["WGS_1972_UTM_Zone_46S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32347 WGS_1972_UTM_Zone_47S PROJCS["WGS_1972_UTM_Zone_47S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32348 WGS_1972_UTM_Zone_48S PROJCS["WGS_1972_UTM_Zone_48S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32349 WGS_1972_UTM_Zone_49S PROJCS["WGS_1972_UTM_Zone_49S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32350 WGS_1972_UTM_Zone_50S PROJCS["WGS_1972_UTM_Zone_50S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32351 WGS_1972_UTM_Zone_51S PROJCS["WGS_1972_UTM_Zone_51S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32352 WGS_1972_UTM_Zone_52S PROJCS["WGS_1972_UTM_Zone_52S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32353 WGS_1972_UTM_Zone_53S PROJCS["WGS_1972_UTM_Zone_53S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32354 WGS_1972_UTM_Zone_54S PROJCS["WGS_1972_UTM_Zone_54S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32355 WGS_1972_UTM_Zone_55S PROJCS["WGS_1972_UTM_Zone_55S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32356 WGS_1972_UTM_Zone_56S PROJCS["WGS_1972_UTM_Zone_56S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32357 WGS_1972_UTM_Zone_57S PROJCS["WGS_1972_UTM_Zone_57S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32358 WGS_1972_UTM_Zone_58S PROJCS["WGS_1972_UTM_Zone_58S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32359 WGS_1972_UTM_Zone_59S PROJCS["WGS_1972_UTM_Zone_59S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32360 WGS_1972_UTM_Zone_60S PROJCS["WGS_1972_UTM_Zone_60S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SP
32601 WGS_1984_UTM_Zone_1N PROJCS["WGS_1984_UTM_Zone_1N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
32602 WGS_1984_UTM_Zone_2N PROJCS["WGS_1984_UTM_Zone_2N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
32603 WGS_1984_UTM_Zone_3N PROJCS["WGS_1984_UTM_Zone_3N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
32604 WGS_1984_UTM_Zone_4N PROJCS["WGS_1984_UTM_Zone_4N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
32605 WGS_1984_UTM_Zone_5N PROJCS["WGS_1984_UTM_Zone_5N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
32606 WGS_1984_UTM_Zone_6N PROJCS["WGS_1984_UTM_Zone_6N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
32607 WGS_1984_UTM_Zone_7N PROJCS["WGS_1984_UTM_Zone_7N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
32608 WGS_1984_UTM_Zone_8N PROJCS["WGS_1984_UTM_Zone_8N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
32609 WGS_1984_UTM_Zone_9N PROJCS["WGS_1984_UTM_Zone_9N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
32610 WGS_1984_UTM_Zone_10N PROJCS["WGS_1984_UTM_Zone_10N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32611 WGS_1984_UTM_Zone_11N PROJCS["WGS_1984_UTM_Zone_11N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32612 WGS_1984_UTM_Zone_12N PROJCS["WGS_1984_UTM_Zone_12N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP

Copyright 1995-2015 Esri. All rights reserved. 394


ArcGIS Runtime SDK for .NET

32613 WGS_1984_UTM_Zone_13N PROJCS["WGS_1984_UTM_Zone_13N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP


32614 WGS_1984_UTM_Zone_14N PROJCS["WGS_1984_UTM_Zone_14N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32615 WGS_1984_UTM_Zone_15N PROJCS["WGS_1984_UTM_Zone_15N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32616 WGS_1984_UTM_Zone_16N PROJCS["WGS_1984_UTM_Zone_16N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32617 WGS_1984_UTM_Zone_17N PROJCS["WGS_1984_UTM_Zone_17N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32618 WGS_1984_UTM_Zone_18N PROJCS["WGS_1984_UTM_Zone_18N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32619 WGS_1984_UTM_Zone_19N PROJCS["WGS_1984_UTM_Zone_19N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32620 WGS_1984_UTM_Zone_20N PROJCS["WGS_1984_UTM_Zone_20N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32621 WGS_1984_UTM_Zone_21N PROJCS["WGS_1984_UTM_Zone_21N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32622 WGS_1984_UTM_Zone_22N PROJCS["WGS_1984_UTM_Zone_22N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32623 WGS_1984_UTM_Zone_23N PROJCS["WGS_1984_UTM_Zone_23N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32624 WGS_1984_UTM_Zone_24N PROJCS["WGS_1984_UTM_Zone_24N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32625 WGS_1984_UTM_Zone_25N PROJCS["WGS_1984_UTM_Zone_25N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32626 WGS_1984_UTM_Zone_26N PROJCS["WGS_1984_UTM_Zone_26N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32627 WGS_1984_UTM_Zone_27N PROJCS["WGS_1984_UTM_Zone_27N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32628 WGS_1984_UTM_Zone_28N PROJCS["WGS_1984_UTM_Zone_28N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32629 WGS_1984_UTM_Zone_29N PROJCS["WGS_1984_UTM_Zone_29N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32630 WGS_1984_UTM_Zone_30N PROJCS["WGS_1984_UTM_Zone_30N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32631 WGS_1984_UTM_Zone_31N PROJCS["WGS_1984_UTM_Zone_31N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32632 WGS_1984_UTM_Zone_32N PROJCS["WGS_1984_UTM_Zone_32N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32633 WGS_1984_UTM_Zone_33N PROJCS["WGS_1984_UTM_Zone_33N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32634 WGS_1984_UTM_Zone_34N PROJCS["WGS_1984_UTM_Zone_34N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32635 WGS_1984_UTM_Zone_35N PROJCS["WGS_1984_UTM_Zone_35N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32636 WGS_1984_UTM_Zone_36N PROJCS["WGS_1984_UTM_Zone_36N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32637 WGS_1984_UTM_Zone_37N PROJCS["WGS_1984_UTM_Zone_37N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32638 WGS_1984_UTM_Zone_38N PROJCS["WGS_1984_UTM_Zone_38N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32639 WGS_1984_UTM_Zone_39N PROJCS["WGS_1984_UTM_Zone_39N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32640 WGS_1984_UTM_Zone_40N PROJCS["WGS_1984_UTM_Zone_40N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32641 WGS_1984_UTM_Zone_41N PROJCS["WGS_1984_UTM_Zone_41N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32642 WGS_1984_UTM_Zone_42N PROJCS["WGS_1984_UTM_Zone_42N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32643 WGS_1984_UTM_Zone_43N PROJCS["WGS_1984_UTM_Zone_43N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32644 WGS_1984_UTM_Zone_44N PROJCS["WGS_1984_UTM_Zone_44N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32645 WGS_1984_UTM_Zone_45N PROJCS["WGS_1984_UTM_Zone_45N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32646 WGS_1984_UTM_Zone_46N PROJCS["WGS_1984_UTM_Zone_46N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32647 WGS_1984_UTM_Zone_47N PROJCS["WGS_1984_UTM_Zone_47N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32648 WGS_1984_UTM_Zone_48N PROJCS["WGS_1984_UTM_Zone_48N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32649 WGS_1984_UTM_Zone_49N PROJCS["WGS_1984_UTM_Zone_49N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32650 WGS_1984_UTM_Zone_50N PROJCS["WGS_1984_UTM_Zone_50N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32651 WGS_1984_UTM_Zone_51N PROJCS["WGS_1984_UTM_Zone_51N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32652 WGS_1984_UTM_Zone_52N PROJCS["WGS_1984_UTM_Zone_52N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32653 WGS_1984_UTM_Zone_53N PROJCS["WGS_1984_UTM_Zone_53N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32654 WGS_1984_UTM_Zone_54N PROJCS["WGS_1984_UTM_Zone_54N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32655 WGS_1984_UTM_Zone_55N PROJCS["WGS_1984_UTM_Zone_55N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32656 WGS_1984_UTM_Zone_56N PROJCS["WGS_1984_UTM_Zone_56N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32657 WGS_1984_UTM_Zone_57N PROJCS["WGS_1984_UTM_Zone_57N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32658 WGS_1984_UTM_Zone_58N PROJCS["WGS_1984_UTM_Zone_58N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32659 WGS_1984_UTM_Zone_59N PROJCS["WGS_1984_UTM_Zone_59N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32660 WGS_1984_UTM_Zone_60N PROJCS["WGS_1984_UTM_Zone_60N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32661 UPS_North PROJCS["UPS_North",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1
32662 WGS_1984_Plate_Carree PROJCS["WGS_1984_Plate_Carree",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHE
32664 WGS_1984_BLM_Zone_14N_ftUS PROJCS["WGS_1984_BLM_Zone_14N_ftUS",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_198
32665 WGS_1984_BLM_Zone_15N_ftUS PROJCS["WGS_1984_BLM_Zone_15N_ftUS",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_198
32666 WGS_1984_BLM_Zone_16N_ftUS PROJCS["WGS_1984_BLM_Zone_16N_ftUS",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_198
32667 WGS_1984_BLM_Zone_17N_ftUS PROJCS["WGS_1984_BLM_Zone_17N_ftUS",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_198

Copyright 1995-2015 Esri. All rights reserved. 395


ArcGIS Runtime SDK for .NET

32701 WGS_1984_UTM_Zone_1S PROJCS["WGS_1984_UTM_Zone_1S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH


32702 WGS_1984_UTM_Zone_2S PROJCS["WGS_1984_UTM_Zone_2S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
32703 WGS_1984_UTM_Zone_3S PROJCS["WGS_1984_UTM_Zone_3S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
32704 WGS_1984_UTM_Zone_4S PROJCS["WGS_1984_UTM_Zone_4S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
32705 WGS_1984_UTM_Zone_5S PROJCS["WGS_1984_UTM_Zone_5S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
32706 WGS_1984_UTM_Zone_6S PROJCS["WGS_1984_UTM_Zone_6S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
32707 WGS_1984_UTM_Zone_7S PROJCS["WGS_1984_UTM_Zone_7S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
32708 WGS_1984_UTM_Zone_8S PROJCS["WGS_1984_UTM_Zone_8S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
32709 WGS_1984_UTM_Zone_9S PROJCS["WGS_1984_UTM_Zone_9S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
32710 WGS_1984_UTM_Zone_10S PROJCS["WGS_1984_UTM_Zone_10S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32711 WGS_1984_UTM_Zone_11S PROJCS["WGS_1984_UTM_Zone_11S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32712 WGS_1984_UTM_Zone_12S PROJCS["WGS_1984_UTM_Zone_12S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32713 WGS_1984_UTM_Zone_13S PROJCS["WGS_1984_UTM_Zone_13S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32714 WGS_1984_UTM_Zone_14S PROJCS["WGS_1984_UTM_Zone_14S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32715 WGS_1984_UTM_Zone_15S PROJCS["WGS_1984_UTM_Zone_15S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32716 WGS_1984_UTM_Zone_16S PROJCS["WGS_1984_UTM_Zone_16S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32717 WGS_1984_UTM_Zone_17S PROJCS["WGS_1984_UTM_Zone_17S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32718 WGS_1984_UTM_Zone_18S PROJCS["WGS_1984_UTM_Zone_18S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32719 WGS_1984_UTM_Zone_19S PROJCS["WGS_1984_UTM_Zone_19S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32720 WGS_1984_UTM_Zone_20S PROJCS["WGS_1984_UTM_Zone_20S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32721 WGS_1984_UTM_Zone_21S PROJCS["WGS_1984_UTM_Zone_21S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32722 WGS_1984_UTM_Zone_22S PROJCS["WGS_1984_UTM_Zone_22S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32723 WGS_1984_UTM_Zone_23S PROJCS["WGS_1984_UTM_Zone_23S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32724 WGS_1984_UTM_Zone_24S PROJCS["WGS_1984_UTM_Zone_24S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32725 WGS_1984_UTM_Zone_25S PROJCS["WGS_1984_UTM_Zone_25S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32726 WGS_1984_UTM_Zone_26S PROJCS["WGS_1984_UTM_Zone_26S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32727 WGS_1984_UTM_Zone_27S PROJCS["WGS_1984_UTM_Zone_27S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32728 WGS_1984_UTM_Zone_28S PROJCS["WGS_1984_UTM_Zone_28S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32729 WGS_1984_UTM_Zone_29S PROJCS["WGS_1984_UTM_Zone_29S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32730 WGS_1984_UTM_Zone_30S PROJCS["WGS_1984_UTM_Zone_30S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32731 WGS_1984_UTM_Zone_31S PROJCS["WGS_1984_UTM_Zone_31S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32732 WGS_1984_UTM_Zone_32S PROJCS["WGS_1984_UTM_Zone_32S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32733 WGS_1984_UTM_Zone_33S PROJCS["WGS_1984_UTM_Zone_33S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32734 WGS_1984_UTM_Zone_34S PROJCS["WGS_1984_UTM_Zone_34S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32735 WGS_1984_UTM_Zone_35S PROJCS["WGS_1984_UTM_Zone_35S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32736 WGS_1984_UTM_Zone_36S PROJCS["WGS_1984_UTM_Zone_36S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32737 WGS_1984_UTM_Zone_37S PROJCS["WGS_1984_UTM_Zone_37S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32738 WGS_1984_UTM_Zone_38S PROJCS["WGS_1984_UTM_Zone_38S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32739 WGS_1984_UTM_Zone_39S PROJCS["WGS_1984_UTM_Zone_39S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32740 WGS_1984_UTM_Zone_40S PROJCS["WGS_1984_UTM_Zone_40S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32741 WGS_1984_UTM_Zone_41S PROJCS["WGS_1984_UTM_Zone_41S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32742 WGS_1984_UTM_Zone_42S PROJCS["WGS_1984_UTM_Zone_42S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32743 WGS_1984_UTM_Zone_43S PROJCS["WGS_1984_UTM_Zone_43S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32744 WGS_1984_UTM_Zone_44S PROJCS["WGS_1984_UTM_Zone_44S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32745 WGS_1984_UTM_Zone_45S PROJCS["WGS_1984_UTM_Zone_45S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32746 WGS_1984_UTM_Zone_46S PROJCS["WGS_1984_UTM_Zone_46S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32747 WGS_1984_UTM_Zone_47S PROJCS["WGS_1984_UTM_Zone_47S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32748 WGS_1984_UTM_Zone_48S PROJCS["WGS_1984_UTM_Zone_48S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32749 WGS_1984_UTM_Zone_49S PROJCS["WGS_1984_UTM_Zone_49S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32750 WGS_1984_UTM_Zone_50S PROJCS["WGS_1984_UTM_Zone_50S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32751 WGS_1984_UTM_Zone_51S PROJCS["WGS_1984_UTM_Zone_51S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32752 WGS_1984_UTM_Zone_52S PROJCS["WGS_1984_UTM_Zone_52S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32753 WGS_1984_UTM_Zone_53S PROJCS["WGS_1984_UTM_Zone_53S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32754 WGS_1984_UTM_Zone_54S PROJCS["WGS_1984_UTM_Zone_54S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP

Copyright 1995-2015 Esri. All rights reserved. 396


ArcGIS Runtime SDK for .NET

32755 WGS_1984_UTM_Zone_55S PROJCS["WGS_1984_UTM_Zone_55S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP


32756 WGS_1984_UTM_Zone_56S PROJCS["WGS_1984_UTM_Zone_56S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32757 WGS_1984_UTM_Zone_57S PROJCS["WGS_1984_UTM_Zone_57S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32758 WGS_1984_UTM_Zone_58S PROJCS["WGS_1984_UTM_Zone_58S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32759 WGS_1984_UTM_Zone_59S PROJCS["WGS_1984_UTM_Zone_59S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32760 WGS_1984_UTM_Zone_60S PROJCS["WGS_1984_UTM_Zone_60S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
32761 UPS_South PROJCS["UPS_South",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1
32766 WGS_1984_TM_36_SE PROJCS["WGS_1984_TM_36_SE",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHERO
53001 Sphere_Plate_Carree PROJCS["Sphere_Plate_Carree",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Spher
53002 Sphere_Equidistant_Cylindrical PROJCS["Sphere_Equidistant_Cylindrical",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHERO
53003 Sphere_Miller_Cylindrical PROJCS["Sphere_Miller_Cylindrical",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sp
53004 Sphere_Mercator PROJCS["Sphere_Mercator",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",63
53008 Sphere_Sinusoidal PROJCS["Sphere_Sinusoidal",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",
53009 Sphere_Mollweide PROJCS["Sphere_Mollweide",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6
53010 Sphere_Eckert_VI PROJCS["Sphere_Eckert_VI",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6
53011 Sphere_Eckert_V PROJCS["Sphere_Eckert_V",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6
53012 Sphere_Eckert_IV PROJCS["Sphere_Eckert_IV",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6
53013 Sphere_Eckert_III PROJCS["Sphere_Eckert_III",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6
53014 Sphere_Eckert_II PROJCS["Sphere_Eckert_II",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",63
53015 Sphere_Eckert_I PROJCS["Sphere_Eckert_I",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",63
53016 Sphere_Gall_Stereographic PROJCS["Sphere_Gall_Stereographic",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["
53017 Sphere_Behrmann PROJCS["Sphere_Behrmann",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",
53018 Sphere_Winkel_I PROJCS["Sphere_Winkel_I",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",63
53019 Sphere_Winkel_II PROJCS["Sphere_Winkel_II",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6
53021 Sphere_Polyconic PROJCS["Sphere_Polyconic",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6
53022 Sphere_Quartic_Authalic PROJCS["Sphere_Quartic_Authalic",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sp
53023 Sphere_Loximuthal PROJCS["Sphere_Loximuthal",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",
53024 Sphere_Bonne PROJCS["Sphere_Bonne",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371
53025 Sphere_Hotine PROJCS["Sphere_Hotine",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371
53026 Sphere_Stereographic PROJCS["Sphere_Stereographic",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphe
53027 Sphere_Equidistant_Conic PROJCS["Sphere_Equidistant_Conic",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["S
53028 Sphere_Cassini PROJCS["Sphere_Cassini",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",637
53029 Sphere_Van_der_Grinten_I PROJCS["Sphere_Van_der_Grinten_I",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["S
53030 Sphere_Robinson PROJCS["Sphere_Robinson",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6
53031 Sphere_Two_Point_Equidistant PROJCS["Sphere_Two_Point_Equidistant",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHERO
53032 Sphere_Azimuthal_Equidistant PROJCS["Sphere_Azimuthal_Equidistant",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROI
53034 Sphere_Cylindrical_Equal_Area PROJCS["Sphere_Cylindrical_Equal_Area",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHERO
53042 Sphere_Winkel_Tripel_NGS PROJCS["Sphere_Winkel_Tripel_NGS",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["
53043 Sphere_Aitoff PROJCS["Sphere_Aitoff",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",63710
53044 Sphere_Hammer_Aitoff PROJCS["Sphere_Hammer_Aitoff",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphe
53045 Sphere_Flat_Polar_Quartic PROJCS["Sphere_Flat_Polar_Quartic",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["S
53046 Sphere_Craster_Parabolic PROJCS["Sphere_Craster_Parabolic",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["S
53048 Sphere_Times PROJCS["Sphere_Times",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371
53049 Sphere_Vertical_Perspective PROJCS["Sphere_Vertical_Perspective",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
54001 World_Plate_Carree PROJCS["World_Plate_Carree",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID
54002 World_Equidistant_Cylindrical PROJCS["World_Equidistant_Cylindrical",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
54003 World_Miller_Cylindrical PROJCS["World_Miller_Cylindrical",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHERO
54004 World_Mercator PROJCS["World_Mercator",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WG
54008 World_Sinusoidal PROJCS["World_Sinusoidal",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["W
54009 World_Mollweide PROJCS["World_Mollweide",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["W
54010 World_Eckert_VI PROJCS["World_Eckert_VI",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["W
54011 World_Eckert_V PROJCS["World_Eckert_V",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WG
54012 World_Eckert_IV PROJCS["World_Eckert_IV",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["W
54013 World_Eckert_III PROJCS["World_Eckert_III",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WG

Copyright 1995-2015 Esri. All rights reserved. 397


ArcGIS Runtime SDK for .NET

54014 World_Eckert_II PROJCS["World_Eckert_II",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WG


54015 World_Eckert_I PROJCS["World_Eckert_I",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WG
54016 World_Gall_Stereographic PROJCS["World_Gall_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHE
54017 World_Behrmann PROJCS["World_Behrmann",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["W
54018 World_Winkel_I PROJCS["World_Winkel_I",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WG
54019 World_Winkel_II PROJCS["World_Winkel_II",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WG
54021 World_Polyconic PROJCS["World_Polyconic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["W
54022 World_Quartic_Authalic PROJCS["World_Quartic_Authalic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHERO
54023 World_Loximuthal PROJCS["World_Loximuthal",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["W
54024 World_Bonne PROJCS["World_Bonne",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS
54025 World_Hotine PROJCS["World_Hotine",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS
54026 World_Stereographic PROJCS["World_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID
54027 World_Equidistant_Conic PROJCS["World_Equidistant_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHER
54028 World_Cassini PROJCS["World_Cassini",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS
54029 World_Van_der_Grinten_I PROJCS["World_Van_der_Grinten_I",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHE
54030 World_Robinson PROJCS["World_Robinson",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WG
54031 World_Two_Point_Equidistant PROJCS["World_Two_Point_Equidistant",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
54032 World_Azimuthal_Equidistant PROJCS["World_Azimuthal_Equidistant",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SP
54034 World_Cylindrical_Equal_Area PROJCS["World_Cylindrical_Equal_Area",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",S
54042 World_Winkel_Tripel_NGS PROJCS["World_Winkel_Tripel_NGS",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHE
54043 World_Aitoff PROJCS["World_Aitoff",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_
54044 World_Hammer_Aitoff PROJCS["World_Hammer_Aitoff",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROI
54045 World_Flat_Polar_Quartic PROJCS["World_Flat_Polar_Quartic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHE
54046 World_Craster_Parabolic PROJCS["World_Craster_Parabolic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHER
54048 World_Times PROJCS["World_Times",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_
54049 World_Vertical_Perspective PROJCS["World_Vertical_Perspective",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPH
54050 World_Fuller PROJCS["World_Fuller",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_
54051 World_Cube PROJCS["World_Cube",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_
54052 World_Goode_Homolosine_Land PROJCS["World_Goode_Homolosine_Land",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984"
54053 World_Goode_Homolosine_Ocean PROJCS["World_Goode_Homolosine_Ocean",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_198
65061 NAD_1927_StatePlane_Guam_FIPS_5400 PROJCS["NAD_1927_StatePlane_Guam_FIPS_5400",GEOGCS["GCS_North_American_1927",DAT
65062 American_Samoa_1962_StatePlane_American_Samoa_FIPS_5300 PROJCS["American_Samoa_1962_StatePlane_American_Samoa_FIPS_5300",GEOGCS["GCS_Am
65161 NAD_1983_StatePlane_Guam_FIPS_5400 PROJCS["NAD_1983_StatePlane_Guam_FIPS_5400",GEOGCS["GCS_North_American_1983",DAT
102001 Canada_Albers_Equal_Area_Conic PROJCS["Canada_Albers_Equal_Area_Conic",GEOGCS["GCS_North_American_1983",DATUM["D
102002 Canada_Lambert_Conformal_Conic PROJCS["Canada_Lambert_Conformal_Conic",GEOGCS["GCS_North_American_1983",DATUM["D
102003 USA_Contiguous_Albers_Equal_Area_Conic PROJCS["USA_Contiguous_Albers_Equal_Area_Conic",GEOGCS["GCS_North_American_1983",D
102004 USA_Contiguous_Lambert_Conformal_Conic PROJCS["USA_Contiguous_Lambert_Conformal_Conic",GEOGCS["GCS_North_American_1983",D
102005 USA_Contiguous_Equidistant_Conic PROJCS["USA_Contiguous_Equidistant_Conic",GEOGCS["GCS_North_American_1983",DATUM["D
102007 Hawaii_Albers_Equal_Area_Conic PROJCS["Hawaii_Albers_Equal_Area_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_
102008 North_America_Albers_Equal_Area_Conic PROJCS["North_America_Albers_Equal_Area_Conic",GEOGCS["GCS_North_American_1983",DAT
102009 North_America_Lambert_Conformal_Conic PROJCS["North_America_Lambert_Conformal_Conic",GEOGCS["GCS_North_American_1983",DAT
102010 North_America_Equidistant_Conic PROJCS["North_America_Equidistant_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_
102011 Africa_Sinusoidal PROJCS["Africa_Sinusoidal",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["W
102012 Asia_Lambert_Conformal_Conic PROJCS["Asia_Lambert_Conformal_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",
102013 Europe_Albers_Equal_Area_Conic PROJCS["Europe_Albers_Equal_Area_Conic",GEOGCS["GCS_European_1950",DATUM["D_Europ
102014 Europe_Lambert_Conformal_Conic PROJCS["Europe_Lambert_Conformal_Conic",GEOGCS["GCS_European_1950",DATUM["D_Europ
102015 South_America_Lambert_Conformal_Conic PROJCS["South_America_Lambert_Conformal_Conic",GEOGCS["GCS_South_American_1969",DA
102016 North_Pole_Azimuthal_Equidistant PROJCS["North_Pole_Azimuthal_Equidistant",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_198
102017 North_Pole_Lambert_Azimuthal_Equal_Area PROJCS["North_Pole_Lambert_Azimuthal_Equal_Area",GEOGCS["GCS_WGS_1984",DATUM["D_W
102018 North_Pole_Stereographic PROJCS["North_Pole_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHE
102019 South_Pole_Azimuthal_Equidistant PROJCS["South_Pole_Azimuthal_Equidistant",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_198
102020 South_Pole_Lambert_Azimuthal_Equal_Area PROJCS["South_Pole_Lambert_Azimuthal_Equal_Area",GEOGCS["GCS_WGS_1984",DATUM["D_
102021 South_Pole_Stereographic PROJCS["South_Pole_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHE
102022 Africa_Albers_Equal_Area_Conic PROJCS["Africa_Albers_Equal_Area_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984"

Copyright 1995-2015 Esri. All rights reserved. 398


ArcGIS Runtime SDK for .NET

102023 Africa_Equidistant_Conic PROJCS["Africa_Equidistant_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHER


102024 Africa_Lambert_Conformal_Conic PROJCS["Africa_Lambert_Conformal_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984
102025 Asia_North_Albers_Equal_Area_Conic PROJCS["Asia_North_Albers_Equal_Area_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_
102026 Asia_North_Equidistant_Conic PROJCS["Asia_North_Equidistant_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",S
102027 Asia_North_Lambert_Conformal_Conic PROJCS["Asia_North_Lambert_Conformal_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_
102028 Asia_South_Albers_Equal_Area_Conic PROJCS["Asia_South_Albers_Equal_Area_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_
102029 Asia_South_Equidistant_Conic PROJCS["Asia_South_Equidistant_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",S
102030 Asia_South_Lambert_Conformal_Conic PROJCS["Asia_South_Lambert_Conformal_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_
102031 Europe_Equidistant_Conic PROJCS["Europe_Equidistant_Conic",GEOGCS["GCS_European_1950",DATUM["D_European_195
102032 South_America_Equidistant_Conic PROJCS["South_America_Equidistant_Conic",GEOGCS["GCS_South_American_1969",DATUM["D_
102033 South_America_Albers_Equal_Area_Conic PROJCS["South_America_Albers_Equal_Area_Conic",GEOGCS["GCS_South_American_1969",DA
102034 North_Pole_Gnomonic PROJCS["North_Pole_Gnomonic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHERO
102035 North_Pole_Orthographic PROJCS["North_Pole_Orthographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHER
102036 South_Pole_Gnomonic PROJCS["South_Pole_Gnomonic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHERO
102037 South_Pole_Orthographic PROJCS["South_Pole_Orthographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHE
102038 The_World_From_Space PROJCS["The_World_From_Space",GEOGCS["GCS_Sphere_ARC_INFO",DATUM["D_Sphere_ARC
102039 USA_Contiguous_Albers_Equal_Area_Conic_USGS_version PROJCS["USA_Contiguous_Albers_Equal_Area_Conic_USGS_version",GEOGCS["GCS_North_Am
102041 COB_NAD83_2007 PROJCS["COB_NAD83_2007",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_A
102042 NAD_1983_USFS_R9_Albers PROJCS["NAD_1983_USFS_R9_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_Nort
102043 NAD_1983_CORS96_UTM_Zone_20N PROJCS["NAD_1983_CORS96_UTM_Zone_20N",GEOGCS["GCS_NAD_1983_CORS96",DATUM[
102044 NAD_1983_NSRS2007_UTM_Zone_20N PROJCS["NAD_1983_NSRS2007_UTM_Zone_20N",GEOGCS["GCS_NAD_1983_NSRS2007",DAT
102045 NAD_1983_2011_UTM_Zone_20N PROJCS["NAD_1983_2011_UTM_Zone_20N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD
102060 D48_Slovenia_TM PROJCS["D48_Slovenia_TM",GEOGCS["GCS_D48",DATUM["D_D48",SPHEROID["Bessel_1841",6
102061 Everest_Modified_1969_RSO_Malaya_Meters PROJCS["Everest_Modified_1969_RSO_Malaya_Meters",GEOGCS["GCS_Everest_Modified_1969"
102062 Kertau_RSO_Malaya_Meters PROJCS["Kertau_RSO_Malaya_Meters",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["
102063 Kandawala_Ceylon_Belt_Meters PROJCS["Kandawala_Ceylon_Belt_Meters",GEOGCS["GCS_Kandawala",DATUM["D_Kandawala",S
102064 Kandawala_Ceylon_Belt_Indian_Yards_1937 PROJCS["Kandawala_Ceylon_Belt_Indian_Yards_1937",GEOGCS["GCS_Kandawala",DATUM["D_K
102068 EMEP_50_Kilometer_Grid PROJCS["EMEP_50_Kilometer_Grid",GEOGCS["GCS_Sphere_EMEP",DATUM["D_Sphere_EMEP"
102069 EMEP_150_Kilometer_Grid PROJCS["EMEP_150_Kilometer_Grid",GEOGCS["GCS_Sphere_EMEP",DATUM["D_Sphere_EMEP
102070 Guernsey_Grid PROJCS["Guernsey_Grid",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WG
102071 AGD_1966_ACT_Grid_AGC_Zone PROJCS["AGD_1966_ACT_Grid_AGC_Zone",GEOGCS["GCS_Australian_1966",DATUM["D_Austra
102072 AGD_1966_ISG_54_2 PROJCS["AGD_1966_ISG_54_2",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",S
102073 AGD_1966_ISG_54_3 PROJCS["AGD_1966_ISG_54_3",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",S
102074 AGD_1966_ISG_55_1 PROJCS["AGD_1966_ISG_55_1",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",S
102075 AGD_1966_ISG_55_2 PROJCS["AGD_1966_ISG_55_2",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",S
102076 AGD_1966_ISG_55_3 PROJCS["AGD_1966_ISG_55_3",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",S
102077 AGD_1966_ISG_56_1 PROJCS["AGD_1966_ISG_56_1",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",S
102078 AGD_1966_ISG_56_2 PROJCS["AGD_1966_ISG_56_2",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",S
102079 AGD_1966_ISG_56_3 PROJCS["AGD_1966_ISG_56_3",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",S
102093 Roma_1940_Gauss_Boaga_Est PROJCS["Roma_1940_Gauss_Boaga_Est",GEOGCS["GCS_Roma_1940",DATUM["D_Roma_1940
102094 Roma_1940_Gauss_Boaga_Ovest PROJCS["Roma_1940_Gauss_Boaga_Ovest",GEOGCS["GCS_Roma_1940",DATUM["D_Roma_19
102096 Bab_South_Palau_Azimuthal_Equidistant PROJCS["Bab_South_Palau_Azimuthal_Equidistant",GEOGCS["GCS_Bab_South",DATUM["D_Bab
102097 ETRS_1989_UTM_Zone_26N PROJCS["ETRS_1989_UTM_Zone_26N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
102098 ETRS_1989_UTM_Zone_27N PROJCS["ETRS_1989_UTM_Zone_27N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
102099 ETRS_1989_UTM_Zone_39N PROJCS["ETRS_1989_UTM_Zone_39N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",S
102101 NGO_1948_Norway_Zone_1 PROJCS["NGO_1948_Norway_Zone_1",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPH
102102 NGO_1948_Norway_Zone_2 PROJCS["NGO_1948_Norway_Zone_2",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPH
102103 NGO_1948_Norway_Zone_3 PROJCS["NGO_1948_Norway_Zone_3",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPH
102104 NGO_1948_Norway_Zone_4 PROJCS["NGO_1948_Norway_Zone_4",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPH
102105 NGO_1948_Norway_Zone_5 PROJCS["NGO_1948_Norway_Zone_5",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPH
102106 NGO_1948_Norway_Zone_6 PROJCS["NGO_1948_Norway_Zone_6",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPH
102107 NGO_1948_Norway_Zone_7 PROJCS["NGO_1948_Norway_Zone_7",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPH
102108 NGO_1948_Norway_Zone_8 PROJCS["NGO_1948_Norway_Zone_8",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPH
102109 ETRS_1989_Slovenia_TM PROJCS["ETRS_1989_Slovenia_TM",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPH

Copyright 1995-2015 Esri. All rights reserved. 399


ArcGIS Runtime SDK for .NET

102114 Old_Hawaiian_UTM_Zone_4N PROJCS["Old_Hawaiian_UTM_Zone_4N",GEOGCS["GCS_Old_Hawaiian",DATUM["D_Old_Hawaiia


102115 Old_Hawaiian_UTM_Zone_5N PROJCS["Old_Hawaiian_UTM_Zone_5N",GEOGCS["GCS_Old_Hawaiian",DATUM["D_Old_Hawaiia
102116 American_Samoa_1962_UTM_Zone_2S PROJCS["American_Samoa_1962_UTM_Zone_2S",GEOGCS["GCS_American_Samoa_1962",DAT
102117 NAD_1927_Alaska_Albers_Meters PROJCS["NAD_1927_Alaska_Albers_Meters",GEOGCS["GCS_North_American_1927",DATUM["D_
102118 NAD_1927_Georgia_Statewide_Albers PROJCS["NAD_1927_Georgia_Statewide_Albers",GEOGCS["GCS_North_American_1927",DATUM
102120 NAD_1927_Michigan_GeoRef_Feet_US PROJCS["NAD_1927_Michigan_GeoRef_Feet_US",GEOGCS["GCS_North_American_1927",DATU
102121 NAD_1983_Michigan_GeoRef_Feet_US PROJCS["NAD_1983_Michigan_GeoRef_Feet_US",GEOGCS["GCS_North_American_1983",DATU
102122 NAD_1927_Michigan_GeoRef_Meters PROJCS["NAD_1927_Michigan_GeoRef_Meters",GEOGCS["GCS_North_American_1927",DATUM[
102132 NGO_1948_UTM_Zone_32N PROJCS["NGO_1948_UTM_Zone_32N",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPH
102133 NGO_1948_UTM_Zone_33N PROJCS["NGO_1948_UTM_Zone_33N",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPH
102134 NGO_1948_UTM_Zone_34N PROJCS["NGO_1948_UTM_Zone_34N",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPH
102135 NGO_1948_UTM_Zone_35N PROJCS["NGO_1948_UTM_Zone_35N",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPH
102136 NGO_1948_Baerum_Kommune PROJCS["NGO_1948_Baerum_Kommune",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",S
102137 NGO_1948_Bergenhalvoen PROJCS["NGO_1948_Bergenhalvoen",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPHE
102138 NGO_1948_Oslo_Kommune PROJCS["NGO_1948_Oslo_Kommune",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPH
102141 Hong_Kong_1980_UTM_Zone_49N PROJCS["Hong_Kong_1980_UTM_Zone_49N",GEOGCS["GCS_Hong_Kong_1980",DATUM["D_Ho
102142 Hong_Kong_1980_UTM_Zone_50N PROJCS["Hong_Kong_1980_UTM_Zone_50N",GEOGCS["GCS_Hong_Kong_1980",DATUM["D_Ho
102143 QND_1995_UTM_39N PROJCS["QND_1995_UTM_39N",GEOGCS["GCS_QND_1995",DATUM["D_QND_1995",SPHEROI
102144 Merchich_Degree_UTM_Zone_28N PROJCS["Merchich_Degree_UTM_Zone_28N",GEOGCS["GCS_Merchich_Degree",DATUM["D_Mer
102150 JGD_2000_UTM_Zone_56N PROJCS["JGD_2000_UTM_Zone_56N",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHE
102156 Tokyo_UTM_Zone_56N PROJCS["Tokyo_UTM_Zone_56N",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Besse
102157 ETRS_1989_Kosovo_Grid PROJCS["ETRS_1989_Kosovo_Grid",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPH
102158 Jordan_JTM PROJCS["Jordan_JTM",GEOGCS["GCS_Jordan",DATUM["D_Jordan",SPHEROID["International_19
102159 Observatorio_Meteorologico_1965_Macau_Grid PROJCS["Observatorio_Meteorologico_1965_Macau_Grid",GEOGCS["GCS_Observatorio_Meteoro
102160 Datum_73_Hayford_Gauss_IGeoE PROJCS["Datum_73_Hayford_Gauss_IGeoE",GEOGCS["GCS_Datum_73",DATUM["D_Datum_73",
102161 Datum_73_Hayford_Gauss_IPCC PROJCS["Datum_73_Hayford_Gauss_IPCC",GEOGCS["GCS_Datum_73",DATUM["D_Datum_73",S
102162 Graciosa_Base_SW_1948_UTM_Zone_26N PROJCS["Graciosa_Base_SW_1948_UTM_Zone_26N",GEOGCS["GCS_Graciosa_Base_SW_1948
102163 Lisboa_Bessel_Bonne PROJCS["Lisboa_Bessel_Bonne",GEOGCS["GCS_Datum_Lisboa_Bessel",DATUM["D_Datum_Lisb
102164 Lisboa_Hayford_Gauss_IGeoE PROJCS["Lisboa_Hayford_Gauss_IGeoE",GEOGCS["GCS_Datum_Lisboa_Hayford",DATUM["D_Da
102165 Lisboa_Hayford_Gauss_IPCC PROJCS["Lisboa_Hayford_Gauss_IPCC",GEOGCS["GCS_Datum_Lisboa_Hayford",DATUM["D_Dat
102166 Observatorio_Meteorologico_1939_UTM_Zone_25N PROJCS["Observatorio_Meteorologico_1939_UTM_Zone_25N",GEOGCS["GCS_Observatorio_Mete
102168 Sao_Braz_UTM_Zone_26N PROJCS["Sao_Braz_UTM_Zone_26N",GEOGCS["GCS_Sao_Braz",DATUM["D_Sao_Braz",SPHER
102173 ETRS_1989_UWPP_1992 PROJCS["ETRS_1989_UWPP_1992",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPH
102174 ETRS_1989_UWPP_2000_PAS_5 PROJCS["ETRS_1989_UWPP_2000_PAS_5",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_19
102175 ETRS_1989_UWPP_2000_PAS_6 PROJCS["ETRS_1989_UWPP_2000_PAS_6",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_19
102176 ETRS_1989_UWPP_2000_PAS_7 PROJCS["ETRS_1989_UWPP_2000_PAS_7",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_19
102177 ETRS_1989_UWPP_2000_PAS_8 PROJCS["ETRS_1989_UWPP_2000_PAS_8",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_19
102178 NAD_1927_10TM_AEP_Forest PROJCS["NAD_1927_10TM_AEP_Forest",GEOGCS["GCS_North_American_1927",DATUM["D_No
102179 NAD_1927_10TM_AEP_Resource PROJCS["NAD_1927_10TM_AEP_Resource",GEOGCS["GCS_North_American_1927",DATUM["D_
102191 Nord_Maroc_Degree PROJCS["Nord_Maroc_Degree",GEOGCS["GCS_Merchich_Degree",DATUM["D_Merchich",SPHER
102192 Sud_Maroc_Degree PROJCS["Sud_Maroc_Degree",GEOGCS["GCS_Merchich_Degree",DATUM["D_Merchich",SPHERO
102193 Sahara_Degree PROJCS["Sahara_Degree",GEOGCS["GCS_Merchich_Degree",DATUM["D_Merchich",SPHEROID["
102194 UWPP_1992 PROJCS["UWPP_1992",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROID["WGS
102195 UWPP_2000_PAS_5 PROJCS["UWPP_2000_PAS_5",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROI
102196 UWPP_2000_PAS_6 PROJCS["UWPP_2000_PAS_6",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROI
102197 UWPP_2000_PAS_7 PROJCS["UWPP_2000_PAS_7",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROI
102198 UWPP_2000_PAS_8 PROJCS["UWPP_2000_PAS_8",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROI
102204 Ain_el_Abd_1970_Aramco_Lambert_2 PROJCS["Ain_el_Abd_1970_Aramco_Lambert_2",GEOGCS["GCS_Ain_el_Abd_1970",DATUM["D_A
102212 NAD_1983_WyLAM PROJCS["NAD_1983_WyLAM",GEOGCS["GCS_North_American_1983",DATUM["D_North_America
102213 NAD_1983_UTM_Zone_58N PROJCS["NAD_1983_UTM_Zone_58N",GEOGCS["GCS_North_American_1983",DATUM["D_North
102215 WGS_1984_Canada_Atlas_LCC PROJCS["WGS_1984_Canada_Atlas_LCC",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984"
102216 GDA_1994_Perth_Coastal_Grid_1994 PROJCS["GDA_1994_Perth_Coastal_Grid_1994",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1
102217 NAD_1983_NSRS2007_Wisconsin_TM_US_Ft PROJCS["NAD_1983_NSRS2007_Wisconsin_TM_US_Ft",GEOGCS["GCS_NAD_1983_NSRS2007
102218 NAD_1983_USFS_R6_Albers PROJCS["NAD_1983_USFS_R6_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_Nort

Copyright 1995-2015 Esri. All rights reserved. 400


ArcGIS Runtime SDK for .NET

102219 NAD_1983_Wisconsin_TM_US_Ft PROJCS["NAD_1983_Wisconsin_TM_US_Ft",GEOGCS["GCS_North_American_1983",DATUM["D_


102220 NAD_1983_HARN_Wisconsin_TM_US_Ft PROJCS["NAD_1983_HARN_Wisconsin_TM_US_Ft",GEOGCS["GCS_North_American_1983_HAR
102221 Ocotepeque_1935_Costa_Rica_Lambert_Norte PROJCS["Ocotepeque_1935_Costa_Rica_Lambert_Norte",GEOGCS["GCS_Ocotepeque_1935",DA
102222 Ocotepeque_1935_Costa_Rica_Lambert_Sur PROJCS["Ocotepeque_1935_Costa_Rica_Lambert_Sur",GEOGCS["GCS_Ocotepeque_1935",DATU
102223 WGS_1984_Costa_Rica_TM_90 PROJCS["WGS_1984_Costa_Rica_TM_90",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984"
102224 MONREF_1997_UTM_Zone_46N PROJCS["MONREF_1997_UTM_Zone_46N",GEOGCS["GCS_MONREF_1997",DATUM["D_ITRF_2
102225 MONREF_1997_UTM_Zone_47N PROJCS["MONREF_1997_UTM_Zone_47N",GEOGCS["GCS_MONREF_1997",DATUM["D_ITRF_2
102226 MONREF_1997_UTM_Zone_48N PROJCS["MONREF_1997_UTM_Zone_48N",GEOGCS["GCS_MONREF_1997",DATUM["D_ITRF_2
102227 MONREF_1997_UTM_Zone_49N PROJCS["MONREF_1997_UTM_Zone_49N",GEOGCS["GCS_MONREF_1997",DATUM["D_ITRF_2
102228 MONREF_1997_UTM_Zone_50N PROJCS["MONREF_1997_UTM_Zone_50N",GEOGCS["GCS_MONREF_1997",DATUM["D_ITRF_2
102231 Colombia_West_West_Zone PROJCS["Colombia_West_West_Zone",GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID[
102232 Bogota_Ciudad_Bogota PROJCS["Bogota_Ciudad_Bogota",GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID["Inter
102233 MAGNA_Ciudad_Bogota PROJCS["MAGNA_Ciudad_Bogota",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["G
102237 Pohnpei_Az_Eq_1971 PROJCS["Pohnpei_Az_Eq_1971",GEOGCS["GCS_Pohnpei",DATUM["D_Pohnpei",SPHEROID["Cla
102238 Saipan_Az_Eq_1969 PROJCS["Saipan_Az_Eq_1969",GEOGCS["GCS_Guam_1963",DATUM["D_Guam_1963",SPHERO
102239 Guam_Geodetic_Triangulation_Network_1963 PROJCS["Guam_Geodetic_Triangulation_Network_1963",GEOGCS["GCS_Guam_1963",DATUM["D
102240 Guam_Geodetic_Network_1993 PROJCS["Guam_Geodetic_Network_1993",GEOGCS["GCS_North_American_1983_HARN",DATUM
102247 NAD_1983_CORS96_Alaska_Albers PROJCS["NAD_1983_CORS96_Alaska_Albers",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D
102299 Berghaus_Star_AAG PROJCS["Berghaus_Star_AAG",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID
102306 Nepal_Nagarkot_TM PROJCS["Nepal_Nagarkot_TM",GEOGCS["GCS_Nepal_Nagarkot",DATUM["D_Nepal_Nagarkot",SP
102319 CGRS_1993_LTM PROJCS["CGRS_1993_LTM",GEOGCS["GCS_CGRS_1993",DATUM["D_Cyprus_Geodetic_Referen
102328 ETRS_1989_UTM_Zone_32N_7stellen PROJCS["ETRS_1989_UTM_Zone_32N_7stellen",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS
102329 ETRS_1989_UTM_Zone_32N_8stellen PROJCS["ETRS_1989_UTM_Zone_32N_8stellen",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS
102359 ETRS_1989_UTM_Zone_33N_7stellen PROJCS["ETRS_1989_UTM_Zone_33N_7stellen",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS
102360 ETRS_1989_UTM_Zone_33N_8stellen PROJCS["ETRS_1989_UTM_Zone_33N_8stellen",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS
102364 NAD_1983_CORS96_UTM_Zone_59N PROJCS["NAD_1983_CORS96_UTM_Zone_59N",GEOGCS["GCS_NAD_1983_CORS96",DATUM[
102365 NAD_1983_CORS96_UTM_Zone_60N PROJCS["NAD_1983_CORS96_UTM_Zone_60N",GEOGCS["GCS_NAD_1983_CORS96",DATUM[
102366 NAD_1983_CORS96_StatePlane_Alaska_1_FIPS_5001 PROJCS["NAD_1983_CORS96_StatePlane_Alaska_1_FIPS_5001",GEOGCS["GCS_NAD_1983_C
102367 NAD_1983_CORS96_StatePlane_Alaska_2_FIPS_5002 PROJCS["NAD_1983_CORS96_StatePlane_Alaska_2_FIPS_5002",GEOGCS["GCS_NAD_1983_C
102368 NAD_1983_CORS96_StatePlane_Alaska_3_FIPS_5003 PROJCS["NAD_1983_CORS96_StatePlane_Alaska_3_FIPS_5003",GEOGCS["GCS_NAD_1983_C
102369 NAD_1983_CORS96_StatePlane_Alaska_4_FIPS_5004 PROJCS["NAD_1983_CORS96_StatePlane_Alaska_4_FIPS_5004",GEOGCS["GCS_NAD_1983_C
102370 NAD_1983_CORS96_StatePlane_Alaska_5_FIPS_5005 PROJCS["NAD_1983_CORS96_StatePlane_Alaska_5_FIPS_5005",GEOGCS["GCS_NAD_1983_C
102371 NAD_1983_CORS96_StatePlane_Alaska_6_FIPS_5006 PROJCS["NAD_1983_CORS96_StatePlane_Alaska_6_FIPS_5006",GEOGCS["GCS_NAD_1983_C
102372 NAD_1983_CORS96_StatePlane_Alaska_7_FIPS_5007 PROJCS["NAD_1983_CORS96_StatePlane_Alaska_7_FIPS_5007",GEOGCS["GCS_NAD_1983_C
102373 NAD_1983_CORS96_StatePlane_Alaska_8_FIPS_5008 PROJCS["NAD_1983_CORS96_StatePlane_Alaska_8_FIPS_5008",GEOGCS["GCS_NAD_1983_C
102374 NAD_1983_CORS96_StatePlane_Alaska_9_FIPS_5009 PROJCS["NAD_1983_CORS96_StatePlane_Alaska_9_FIPS_5009",GEOGCS["GCS_NAD_1983_C
102375 NAD_1983_CORS96_StatePlane_Alaska_10_FIPS_5010 PROJCS["NAD_1983_CORS96_StatePlane_Alaska_10_FIPS_5010",GEOGCS["GCS_NAD_1983_C
102376 NAD_1983_CORS96_StatePlane_Oregon_North_FIPS_3601 PROJCS["NAD_1983_CORS96_StatePlane_Oregon_North_FIPS_3601",GEOGCS["GCS_NAD_198
102377 NAD_1983_CORS96_StatePlane_Oregon_South_FIPS_3602 PROJCS["NAD_1983_CORS96_StatePlane_Oregon_South_FIPS_3602",GEOGCS["GCS_NAD_19
102378 NAD_1983_CORS96_StatePlane_Oregon_North_FIPS_3601_Ft_Intl PROJCS["NAD_1983_CORS96_StatePlane_Oregon_North_FIPS_3601_Ft_Intl",GEOGCS["GCS_N
102379 NAD_1983_CORS96_StatePlane_Oregon_South_FIPS_3602_Ft_Intl PROJCS["NAD_1983_CORS96_StatePlane_Oregon_South_FIPS_3602_Ft_Intl",GEOGCS["GCS_N
102380 NAD_1983_CORS96_Oregon_Statewide_Lambert PROJCS["NAD_1983_CORS96_Oregon_Statewide_Lambert",GEOGCS["GCS_NAD_1983_CORS9
102381 NAD_1983_CORS96_Oregon_Statewide_Lambert_Ft_Intl PROJCS["NAD_1983_CORS96_Oregon_Statewide_Lambert_Ft_Intl",GEOGCS["GCS_NAD_1983_
102389 NAD_1983_Fargo_Ground_Coordinate_System PROJCS["NAD_1983_Fargo_Ground_Coordinate_System",GEOGCS["GCS_North_American_1983
102390 NAD_1983_HARN_Fargo_Ground_Coordinate_System PROJCS["NAD_1983_HARN_Fargo_Ground_Coordinate_System",GEOGCS["GCS_North_America
102391 NAD_1983_2011_Fargo_Ground_Coordinate_System PROJCS["NAD_1983_2011_Fargo_Ground_Coordinate_System",GEOGCS["GCS_NAD_1983_2011
102392 NAD_1983_2011_StatePlane_Alaska_4_FIPS_5004_Feet PROJCS["NAD_1983_2011_StatePlane_Alaska_4_FIPS_5004_Feet",GEOGCS["GCS_NAD_1983_
102393 NAD_1983_2011_StatePlane_Alaska_5_FIPS_5005_Feet PROJCS["NAD_1983_2011_StatePlane_Alaska_5_FIPS_5005_Feet",GEOGCS["GCS_NAD_1983_
102394 NAD_1983_2011_StatePlane_Alaska_6_FIPS_5006_Feet PROJCS["NAD_1983_2011_StatePlane_Alaska_6_FIPS_5006_Feet",GEOGCS["GCS_NAD_1983_
102395 NAD_1983_2011_StatePlane_Alaska_7_FIPS_5007_Feet PROJCS["NAD_1983_2011_StatePlane_Alaska_7_FIPS_5007_Feet",GEOGCS["GCS_NAD_1983_
102396 NAD_1983_2011_StatePlane_Alaska_8_FIPS_5008_Feet PROJCS["NAD_1983_2011_StatePlane_Alaska_8_FIPS_5008_Feet",GEOGCS["GCS_NAD_1983_
102397 NAD_1983_2011_StatePlane_Alaska_9_FIPS_5009_Feet PROJCS["NAD_1983_2011_StatePlane_Alaska_9_FIPS_5009_Feet",GEOGCS["GCS_NAD_1983_
102398 NAD_1983_2011_StatePlane_Alaska_10_FIPS_5010_Feet PROJCS["NAD_1983_2011_StatePlane_Alaska_10_FIPS_5010_Feet",GEOGCS["GCS_NAD_1983
102401 NAD_1983_CORS96_UTM_Zone_1N PROJCS["NAD_1983_CORS96_UTM_Zone_1N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D

Copyright 1995-2015 Esri. All rights reserved. 401


ArcGIS Runtime SDK for .NET

102402 NAD_1983_CORS96_UTM_Zone_2N PROJCS["NAD_1983_CORS96_UTM_Zone_2N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D


102403 NAD_1983_CORS96_UTM_Zone_3N PROJCS["NAD_1983_CORS96_UTM_Zone_3N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D
102404 NAD_1983_CORS96_UTM_Zone_4N PROJCS["NAD_1983_CORS96_UTM_Zone_4N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D
102405 NAD_1983_CORS96_UTM_Zone_5N PROJCS["NAD_1983_CORS96_UTM_Zone_5N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D
102406 NAD_1983_CORS96_UTM_Zone_6N PROJCS["NAD_1983_CORS96_UTM_Zone_6N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D
102407 NAD_1983_CORS96_UTM_Zone_7N PROJCS["NAD_1983_CORS96_UTM_Zone_7N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D
102408 NAD_1983_CORS96_UTM_Zone_8N PROJCS["NAD_1983_CORS96_UTM_Zone_8N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D
102409 NAD_1983_CORS96_UTM_Zone_9N PROJCS["NAD_1983_CORS96_UTM_Zone_9N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D
102410 NAD_1983_CORS96_UTM_Zone_10N PROJCS["NAD_1983_CORS96_UTM_Zone_10N",GEOGCS["GCS_NAD_1983_CORS96",DATUM[
102411 NAD_1983_CORS96_UTM_Zone_11N PROJCS["NAD_1983_CORS96_UTM_Zone_11N",GEOGCS["GCS_NAD_1983_CORS96",DATUM[
102412 NAD_1983_CORS96_UTM_Zone_12N PROJCS["NAD_1983_CORS96_UTM_Zone_12N",GEOGCS["GCS_NAD_1983_CORS96",DATUM[
102413 NAD_1983_CORS96_UTM_Zone_13N PROJCS["NAD_1983_CORS96_UTM_Zone_13N",GEOGCS["GCS_NAD_1983_CORS96",DATUM[
102414 NAD_1983_CORS96_UTM_Zone_14N PROJCS["NAD_1983_CORS96_UTM_Zone_14N",GEOGCS["GCS_NAD_1983_CORS96",DATUM[
102415 NAD_1983_CORS96_UTM_Zone_15N PROJCS["NAD_1983_CORS96_UTM_Zone_15N",GEOGCS["GCS_NAD_1983_CORS96",DATUM[
102416 NAD_1983_CORS96_UTM_Zone_16N PROJCS["NAD_1983_CORS96_UTM_Zone_16N",GEOGCS["GCS_NAD_1983_CORS96",DATUM[
102417 NAD_1983_CORS96_UTM_Zone_17N PROJCS["NAD_1983_CORS96_UTM_Zone_17N",GEOGCS["GCS_NAD_1983_CORS96",DATUM[
102418 NAD_1983_CORS96_UTM_Zone_18N PROJCS["NAD_1983_CORS96_UTM_Zone_18N",GEOGCS["GCS_NAD_1983_CORS96",DATUM[
102419 NAD_1983_CORS96_UTM_Zone_19N PROJCS["NAD_1983_CORS96_UTM_Zone_19N",GEOGCS["GCS_NAD_1983_CORS96",DATUM[
102421 WGS_1984_ARC_System_Zone_01 PROJCS["WGS_1984_ARC_System_Zone_01",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_19
102422 WGS_1984_ARC_System_Zone_02 PROJCS["WGS_1984_ARC_System_Zone_02",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_19
102423 WGS_1984_ARC_System_Zone_03 PROJCS["WGS_1984_ARC_System_Zone_03",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_19
102424 WGS_1984_ARC_System_Zone_04 PROJCS["WGS_1984_ARC_System_Zone_04",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_19
102425 WGS_1984_ARC_System_Zone_05 PROJCS["WGS_1984_ARC_System_Zone_05",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_19
102426 WGS_1984_ARC_System_Zone_06 PROJCS["WGS_1984_ARC_System_Zone_06",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_19
102427 WGS_1984_ARC_System_Zone_07 PROJCS["WGS_1984_ARC_System_Zone_07",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_19
102428 WGS_1984_ARC_System_Zone_08 PROJCS["WGS_1984_ARC_System_Zone_08",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_19
102429 WGS_1984_ARC_System_Zone_09 PROJCS["WGS_1984_ARC_System_Zone_09",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_19
102430 WGS_1984_ARC_System_Zone_10 PROJCS["WGS_1984_ARC_System_Zone_10",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_19
102431 WGS_1984_ARC_System_Zone_11 PROJCS["WGS_1984_ARC_System_Zone_11",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_19
102432 WGS_1984_ARC_System_Zone_12 PROJCS["WGS_1984_ARC_System_Zone_12",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_19
102433 WGS_1984_ARC_System_Zone_13 PROJCS["WGS_1984_ARC_System_Zone_13",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_19
102434 WGS_1984_ARC_System_Zone_14 PROJCS["WGS_1984_ARC_System_Zone_14",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_19
102435 WGS_1984_ARC_System_Zone_15 PROJCS["WGS_1984_ARC_System_Zone_15",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_19
102436 WGS_1984_ARC_System_Zone_16 PROJCS["WGS_1984_ARC_System_Zone_16",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_19
102437 WGS_1984_ARC_System_Zone_17 PROJCS["WGS_1984_ARC_System_Zone_17",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_19
102438 WGS_1984_ARC_System_Zone_18 PROJCS["WGS_1984_ARC_System_Zone_18",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_19
102440 LKS_1992_Latvia_TM_0 PROJCS["LKS_1992_Latvia_TM_0",GEOGCS["GCS_LKS_1992",DATUM["D_Latvia_1992",SPHER
102445 NAD_1983_2011_StatePlane_Alaska_1_FIPS_5001_Feet PROJCS["NAD_1983_2011_StatePlane_Alaska_1_FIPS_5001_Feet",GEOGCS["GCS_NAD_1983_
102446 NAD_1983_2011_StatePlane_Alaska_2_FIPS_5002_Feet PROJCS["NAD_1983_2011_StatePlane_Alaska_2_FIPS_5002_Feet",GEOGCS["GCS_NAD_1983_
102447 NAD_1983_2011_StatePlane_Alaska_3_FIPS_5003_Feet PROJCS["NAD_1983_2011_StatePlane_Alaska_3_FIPS_5003_Feet",GEOGCS["GCS_NAD_1983_
102448 Macao_2008_Macau_Grid PROJCS["Macao_2008_Macau_Grid",GEOGCS["GCS_MACAO_2008",DATUM["D_MACAO_2008",
102450 NGO_1948_Oslo_Baerum_Kommune PROJCS["NGO_1948_Oslo_Baerum_Kommune",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_N
102451 NGO_1948_Oslo_Bergenhalvoen PROJCS["NGO_1948_Oslo_Bergenhalvoen",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO_
102452 NGO_1948_Oslo_Oslo_Kommune PROJCS["NGO_1948_Oslo_Oslo_Kommune",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO
102461 NAD_1983_HARN_StatePlane_Hawaii_1_FIPS_5101_Feet PROJCS["NAD_1983_HARN_StatePlane_Hawaii_1_FIPS_5101_Feet",GEOGCS["GCS_North_Ame
102462 NAD_1983_HARN_StatePlane_Hawaii_2_FIPS_5102_Feet PROJCS["NAD_1983_HARN_StatePlane_Hawaii_2_FIPS_5102_Feet",GEOGCS["GCS_North_Ame
102464 NAD_1983_HARN_StatePlane_Hawaii_4_FIPS_5104_Feet PROJCS["NAD_1983_HARN_StatePlane_Hawaii_4_FIPS_5104_Feet",GEOGCS["GCS_North_Ame
102465 NAD_1983_HARN_StatePlane_Hawaii_5_FIPS_5105_Feet PROJCS["NAD_1983_HARN_StatePlane_Hawaii_5_FIPS_5105_Feet",GEOGCS["GCS_North_Ame
102470 Cape_Lo15 PROJCS["Cape_Lo15",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6
102471 Cape_Lo17 PROJCS["Cape_Lo17",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6
102472 Cape_Lo19 PROJCS["Cape_Lo19",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6
102473 Cape_Lo21 PROJCS["Cape_Lo21",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6
102474 Cape_Lo23 PROJCS["Cape_Lo23",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6
102475 Cape_Lo25 PROJCS["Cape_Lo25",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6

Copyright 1995-2015 Esri. All rights reserved. 402


ArcGIS Runtime SDK for .NET

102476 Cape_Lo27 PROJCS["Cape_Lo27",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6


102477 Cape_Lo29 PROJCS["Cape_Lo29",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6
102478 Cape_Lo31 PROJCS["Cape_Lo31",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6
102479 Cape_Lo33 PROJCS["Cape_Lo33",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6
102480 Hartebeesthoek94_Lo15 PROJCS["Hartebeesthoek94_Lo15",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebees
102481 Hartebeesthoek94_Lo17 PROJCS["Hartebeesthoek94_Lo17",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebees
102482 Hartebeesthoek94_Lo19 PROJCS["Hartebeesthoek94_Lo19",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebees
102483 Hartebeesthoek94_Lo21 PROJCS["Hartebeesthoek94_Lo21",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebees
102484 Hartebeesthoek94_Lo23 PROJCS["Hartebeesthoek94_Lo23",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebees
102485 Hartebeesthoek94_Lo25 PROJCS["Hartebeesthoek94_Lo25",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebees
102486 Hartebeesthoek94_Lo27 PROJCS["Hartebeesthoek94_Lo27",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebees
102487 Hartebeesthoek94_Lo29 PROJCS["Hartebeesthoek94_Lo29",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebees
102488 Hartebeesthoek94_Lo31 PROJCS["Hartebeesthoek94_Lo31",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebees
102489 Hartebeesthoek94_Lo33 PROJCS["Hartebeesthoek94_Lo33",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebees
102491 Nord_Algerie_Ancienne_Degree PROJCS["Nord_Algerie_Ancienne_Degree",GEOGCS["GCS_Voirol_1875",DATUM["D_Voirol_1875"
102492 Sud_Algerie_Ancienne_Degree PROJCS["Sud_Algerie_Ancienne_Degree",GEOGCS["GCS_Voirol_1875",DATUM["D_Voirol_1875",
102500 OCRS_Baker_NAD_1983_CORS96_TM_Feet_Intl PROJCS["OCRS_Baker_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS9
102501 OCRS_Bend-Burns_NAD_1983_CORS96_LCC_Feet_Intl PROJCS["OCRS_Bend-Burns_NAD_1983_CORS96_LCC_Feet_Intl",GEOGCS["GCS_NAD_1983_C
102502 OCRS_Bend-Klamath_Falls_NAD_1983_CORS96_TM_Feet_Intl PROJCS["OCRS_Bend-Klamath_Falls_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_
102503 OCRS_Bend-Redmond-Prineville_NAD_1983_CORS96_LCC_Feet_Intl PROJCS["OCRS_Bend-Redmond-Prineville_NAD_1983_CORS96_LCC_Feet_Intl",GEOGCS["GCS
102504 OCRS_Canyonville-Grants_Pass_NAD_1983_CORS96_TM_Feet_Intl PROJCS["OCRS_Canyonville-Grants_Pass_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_N
102505 OCRS_Columbia_River_East_NAD_1983_CORS96_LCC_Feet_Intl PROJCS["OCRS_Columbia_River_East_NAD_1983_CORS96_LCC_Feet_Intl",GEOGCS["GCS_NA
102506 OCRS_Columbia_River_West_NAD_1983_CORS96_OM_Feet_Intl PROJCS["OCRS_Columbia_River_West_NAD_1983_CORS96_OM_Feet_Intl",GEOGCS["GCS_NA
102507 OCRS_Cottage_Grove-Canyonville_NAD_1983_CORS96_TM_Feet_Intl PROJCS["OCRS_Cottage_Grove-Canyonville_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS
102508 OCRS_Dufur-Madras_NAD_1983_CORS96_TM_Feet_Intl PROJCS["OCRS_Dufur-Madras_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_
102509 OCRS_Eugene_NAD_1983_CORS96_TM_Feet_Intl PROJCS["OCRS_Eugene_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS
102510 OCRS_Grants_Pass-Ashland_NAD_1983_CORS96_TM_Feet_Intl PROJCS["OCRS_Grants_Pass-Ashland_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD
102511 OCRS_Gresham-Warm_Springs_NAD_1983_CORS96_TM_Feet_Intl PROJCS["OCRS_Gresham-Warm_Springs_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_N
102512 OCRS_La_Grande_NAD_1983_CORS96_TM_Feet_Intl PROJCS["OCRS_La_Grande_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CO
102513 OCRS_Ontario_NAD_1983_CORS96_TM_Feet_Intl PROJCS["OCRS_Ontario_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS
102514 OCRS_Oregon_Coast_NAD_1983_CORS96_OM_Feet_Intl PROJCS["OCRS_Oregon_Coast_NAD_1983_CORS96_OM_Feet_Intl",GEOGCS["GCS_NAD_1983
102515 OCRS_Pendleton-La_Grande_NAD_1983_CORS96_TM_Feet_Intl PROJCS["OCRS_Pendleton-La_Grande_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD
102516 OCRS_Pendleton_NAD_1983_CORS96_TM_Feet_Intl PROJCS["OCRS_Pendleton_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CO
102517 OCRS_Portland_NAD_1983_CORS96_LCC_Feet_Intl PROJCS["OCRS_Portland_NAD_1983_CORS96_LCC_Feet_Intl",GEOGCS["GCS_NAD_1983_COR
102518 OCRS_Salem_NAD_1983_CORS96_TM_Feet_Intl PROJCS["OCRS_Salem_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS9
102519 OCRS_Santiam_Pass_NAD_1983_CORS96_TM_Feet_Intl PROJCS["OCRS_Santiam_Pass_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_
102525 NAD_1983_PA11_StatePlane_Hawaii_1_FIPS_5101_Feet PROJCS["NAD_1983_PA11_StatePlane_Hawaii_1_FIPS_5101_Feet",GEOGCS["GCS_NAD_1983_
102526 NAD_1983_PA11_StatePlane_Hawaii_2_FIPS_5102_Feet PROJCS["NAD_1983_PA11_StatePlane_Hawaii_2_FIPS_5102_Feet",GEOGCS["GCS_NAD_1983_
102528 NAD_1983_PA11_StatePlane_Hawaii_4_FIPS_5104_Feet PROJCS["NAD_1983_PA11_StatePlane_Hawaii_4_FIPS_5104_Feet",GEOGCS["GCS_NAD_1983_
102529 NAD_1983_PA11_StatePlane_Hawaii_5_FIPS_5105_Feet PROJCS["NAD_1983_PA11_StatePlane_Hawaii_5_FIPS_5105_Feet",GEOGCS["GCS_NAD_1983_
102530 OCRS_Baker_NAD_1983_CORS96_TM_Meters PROJCS["OCRS_Baker_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96"
102531 OCRS_Bend-Burns_NAD_1983_CORS96_LCC_Meters PROJCS["OCRS_Bend-Burns_NAD_1983_CORS96_LCC_Meters",GEOGCS["GCS_NAD_1983_CO
102532 OCRS_Bend-Klamath_Falls_NAD_1983_CORS96_TM_Meters PROJCS["OCRS_Bend-Klamath_Falls_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1
102533 OCRS_Bend-Redmond-Prineville_NAD_1983_CORS96_LCC_Meters PROJCS["OCRS_Bend-Redmond-Prineville_NAD_1983_CORS96_LCC_Meters",GEOGCS["GCS_N
102534 OCRS_Canyonville-Grants_Pass_NAD_1983_CORS96_TM_Meters PROJCS["OCRS_Canyonville-Grants_Pass_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NA
102535 OCRS_Columbia_River_East_NAD_1983_CORS96_LCC_Meters PROJCS["OCRS_Columbia_River_East_NAD_1983_CORS96_LCC_Meters",GEOGCS["GCS_NAD
102536 OCRS_Columbia_River_West_NAD_1983_CORS96_OM_Meters PROJCS["OCRS_Columbia_River_West_NAD_1983_CORS96_OM_Meters",GEOGCS["GCS_NAD
102537 OCRS_Cottage_Grove-Canyonville_NAD_1983_CORS96_TM_Meters PROJCS["OCRS_Cottage_Grove-Canyonville_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_
102538 OCRS_Dufur-Madras_NAD_1983_CORS96_TM_Meters PROJCS["OCRS_Dufur-Madras_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_C
102539 OCRS_Eugene_NAD_1983_CORS96_TM_Meters PROJCS["OCRS_Eugene_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS9
102540 OCRS_Grants_Pass-Ashland_NAD_1983_CORS96_TM_Meters PROJCS["OCRS_Grants_Pass-Ashland_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_
102541 OCRS_Gresham-Warm_Springs_NAD_1983_CORS96_TM_Meters PROJCS["OCRS_Gresham-Warm_Springs_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NA
102542 OCRS_La_Grande_NAD_1983_CORS96_TM_Meters PROJCS["OCRS_La_Grande_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_COR
102543 OCRS_Ontario_NAD_1983_CORS96_TM_Meters PROJCS["OCRS_Ontario_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96

Copyright 1995-2015 Esri. All rights reserved. 403


ArcGIS Runtime SDK for .NET

102544 OCRS_Oregon_Coast_NAD_1983_CORS96_OM_Meters PROJCS["OCRS_Oregon_Coast_NAD_1983_CORS96_OM_Meters",GEOGCS["GCS_NAD_1983_C


102545 OCRS_Pendleton-La_Grande_NAD_1983_CORS96_TM_Meters PROJCS["OCRS_Pendleton-La_Grande_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_
102546 OCRS_Pendleton_NAD_1983_CORS96_TM_Meters PROJCS["OCRS_Pendleton_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS
102547 OCRS_Portland_NAD_1983_CORS96_LCC_Meters PROJCS["OCRS_Portland_NAD_1983_CORS96_LCC_Meters",GEOGCS["GCS_NAD_1983_CORS
102548 OCRS_Salem_NAD_1983_CORS96_TM_Meters PROJCS["OCRS_Salem_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96
102549 OCRS_Santiam_Pass_NAD_1983_CORS96_TM_Meters PROJCS["OCRS_Santiam_Pass_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_C
102550 ED_1950_Turkey_9 PROJCS["ED_1950_Turkey_9",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPH
102551 ED_1950_Turkey_10 PROJCS["ED_1950_Turkey_10",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SP
102552 ED_1950_Turkey_11 PROJCS["ED_1950_Turkey_11",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SP
102553 ED_1950_Turkey_12 PROJCS["ED_1950_Turkey_12",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SP
102554 ED_1950_Turkey_13 PROJCS["ED_1950_Turkey_13",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SP
102555 ED_1950_Turkey_14 PROJCS["ED_1950_Turkey_14",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SP
102556 ED_1950_Turkey_15 PROJCS["ED_1950_Turkey_15",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SP
102570 WGS_1984_Complex_UTM_Zone_20N PROJCS["WGS_1984_Complex_UTM_Zone_20N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_
102571 WGS_1984_Complex_UTM_Zone_21N PROJCS["WGS_1984_Complex_UTM_Zone_21N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_
102572 WGS_1984_Complex_UTM_Zone_22N PROJCS["WGS_1984_Complex_UTM_Zone_22N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_
102573 WGS_1984_Complex_UTM_Zone_23N PROJCS["WGS_1984_Complex_UTM_Zone_23N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_
102574 WGS_1984_Complex_UTM_Zone_24N PROJCS["WGS_1984_Complex_UTM_Zone_24N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_
102575 WGS_1984_Complex_UTM_Zone_25N PROJCS["WGS_1984_Complex_UTM_Zone_25N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_
102576 WGS_1984_Complex_UTM_Zone_26N PROJCS["WGS_1984_Complex_UTM_Zone_26N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_
102577 WGS_1984_Complex_UTM_Zone_27N PROJCS["WGS_1984_Complex_UTM_Zone_27N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_
102578 WGS_1984_Complex_UTM_Zone_28N PROJCS["WGS_1984_Complex_UTM_Zone_28N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_
102579 WGS_1984_Complex_UTM_Zone_29N PROJCS["WGS_1984_Complex_UTM_Zone_29N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_
102580 WGS_1984_Complex_UTM_Zone_30N PROJCS["WGS_1984_Complex_UTM_Zone_30N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_
102581 NTF_France_I_degrees PROJCS["NTF_France_I_degrees",GEOGCS["GCS_NTF",DATUM["D_NTF",SPHEROID["Clarke_18
102582 NTF_France_II_degrees PROJCS["NTF_France_II_degrees",GEOGCS["GCS_NTF",DATUM["D_NTF",SPHEROID["Clarke_1
102583 NTF_France_III_degrees PROJCS["NTF_France_III_degrees",GEOGCS["GCS_NTF",DATUM["D_NTF",SPHEROID["Clarke_1
102584 NTF_France_IV_degrees PROJCS["NTF_France_IV_degrees",GEOGCS["GCS_NTF",DATUM["D_NTF",SPHEROID["Clarke_1
102585 NTF_Lambert_Zone_I PROJCS["NTF_Lambert_Zone_I",GEOGCS["GCS_NTF",DATUM["D_NTF",SPHEROID["Clarke_188
102586 NTF_Lambert_Zone_II PROJCS["NTF_Lambert_Zone_II",GEOGCS["GCS_NTF",DATUM["D_NTF",SPHEROID["Clarke_188
102587 NTF_Lambert_Zone_III PROJCS["NTF_Lambert_Zone_III",GEOGCS["GCS_NTF",DATUM["D_NTF",SPHEROID["Clarke_18
102588 NTF_Lambert_Zone_IV PROJCS["NTF_Lambert_Zone_IV",GEOGCS["GCS_NTF",DATUM["D_NTF",SPHEROID["Clarke_18
102589 Panhandle_Energy_Albers PROJCS["Panhandle_Energy_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_A
102590 Tananarive_1925_Laborde_Grid PROJCS["Tananarive_1925_Laborde_Grid",GEOGCS["GCS_Tananarive_1925",DATUM["D_Tanana
102591 Nord_Algerie_Degree PROJCS["Nord_Algerie_Degree",GEOGCS["GCS_Voirol_Unifie_1960_Degree",DATUM["D_Voirol_U
102592 Sud_Algerie_Degree PROJCS["Sud_Algerie_Degree",GEOGCS["GCS_Voirol_Unifie_1960_Degree",DATUM["D_Voirol_U
102598 JGD_2011_UTM_Zone_56N PROJCS["JGD_2011_UTM_Zone_56N",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHE
102599 WGS_1984_California_Teale_Albers_FtUS PROJCS["WGS_1984_California_Teale_Albers_FtUS",GEOGCS["GCS_WGS_1984",DATUM["D_W
102600 NAD_1983_California_Teale_Albers_FtUS PROJCS["NAD_1983_California_Teale_Albers_FtUS",GEOGCS["GCS_North_American_1983",DAT
102604 NAD_1983_Georgia_Statewide_Lambert PROJCS["NAD_1983_Georgia_Statewide_Lambert",GEOGCS["GCS_North_American_1983",DATU
102605 NAD_1983_Idaho_TM PROJCS["NAD_1983_Idaho_TM",GEOGCS["GCS_North_American_1983",DATUM["D_North_Amer
102629 NAD_1983_StatePlane_Alabama_East_FIPS_0101_Feet PROJCS["NAD_1983_StatePlane_Alabama_East_FIPS_0101_Feet",GEOGCS["GCS_North_Americ
102630 NAD_1983_StatePlane_Alabama_West_FIPS_0102_Feet PROJCS["NAD_1983_StatePlane_Alabama_West_FIPS_0102_Feet",GEOGCS["GCS_North_Ameri
102631 NAD_1983_StatePlane_Alaska_1_FIPS_5001_Feet PROJCS["NAD_1983_StatePlane_Alaska_1_FIPS_5001_Feet",GEOGCS["GCS_North_American_1
102632 NAD_1983_StatePlane_Alaska_2_FIPS_5002_Feet PROJCS["NAD_1983_StatePlane_Alaska_2_FIPS_5002_Feet",GEOGCS["GCS_North_American_1
102633 NAD_1983_StatePlane_Alaska_3_FIPS_5003_Feet PROJCS["NAD_1983_StatePlane_Alaska_3_FIPS_5003_Feet",GEOGCS["GCS_North_American_1
102634 NAD_1983_StatePlane_Alaska_4_FIPS_5004_Feet PROJCS["NAD_1983_StatePlane_Alaska_4_FIPS_5004_Feet",GEOGCS["GCS_North_American_1
102635 NAD_1983_StatePlane_Alaska_5_FIPS_5005_Feet PROJCS["NAD_1983_StatePlane_Alaska_5_FIPS_5005_Feet",GEOGCS["GCS_North_American_1
102636 NAD_1983_StatePlane_Alaska_6_FIPS_5006_Feet PROJCS["NAD_1983_StatePlane_Alaska_6_FIPS_5006_Feet",GEOGCS["GCS_North_American_1
102637 NAD_1983_StatePlane_Alaska_7_FIPS_5007_Feet PROJCS["NAD_1983_StatePlane_Alaska_7_FIPS_5007_Feet",GEOGCS["GCS_North_American_1
102638 NAD_1983_StatePlane_Alaska_8_FIPS_5008_Feet PROJCS["NAD_1983_StatePlane_Alaska_8_FIPS_5008_Feet",GEOGCS["GCS_North_American_1
102639 NAD_1983_StatePlane_Alaska_9_FIPS_5009_Feet PROJCS["NAD_1983_StatePlane_Alaska_9_FIPS_5009_Feet",GEOGCS["GCS_North_American_1
102640 NAD_1983_StatePlane_Alaska_10_FIPS_5010_Feet PROJCS["NAD_1983_StatePlane_Alaska_10_FIPS_5010_Feet",GEOGCS["GCS_North_American_
102648 NAD_1983_StatePlane_Arizona_East_FIPS_0201_Feet PROJCS["NAD_1983_StatePlane_Arizona_East_FIPS_0201_Feet",GEOGCS["GCS_North_America

Copyright 1995-2015 Esri. All rights reserved. 404


ArcGIS Runtime SDK for .NET

102649 NAD_1983_StatePlane_Arizona_Central_FIPS_0202_Feet PROJCS["NAD_1983_StatePlane_Arizona_Central_FIPS_0202_Feet",GEOGCS["GCS_North_Amer


102650 NAD_1983_StatePlane_Arizona_West_FIPS_0203_Feet PROJCS["NAD_1983_StatePlane_Arizona_West_FIPS_0203_Feet",GEOGCS["GCS_North_Americ
102661 NAD_1983_StatePlane_Hawaii_1_FIPS_5101_Feet PROJCS["NAD_1983_StatePlane_Hawaii_1_FIPS_5101_Feet",GEOGCS["GCS_North_American_1
102662 NAD_1983_StatePlane_Hawaii_2_FIPS_5102_Feet PROJCS["NAD_1983_StatePlane_Hawaii_2_FIPS_5102_Feet",GEOGCS["GCS_North_American_1
102664 NAD_1983_StatePlane_Hawaii_4_FIPS_5104_Feet PROJCS["NAD_1983_StatePlane_Hawaii_4_FIPS_5104_Feet",GEOGCS["GCS_North_American_1
102665 NAD_1983_StatePlane_Hawaii_5_FIPS_5105_Feet PROJCS["NAD_1983_StatePlane_Hawaii_5_FIPS_5105_Feet",GEOGCS["GCS_North_American_1
102688 NAD_1983_StatePlane_Michigan_North_FIPS_2111_Feet PROJCS["NAD_1983_StatePlane_Michigan_North_FIPS_2111_Feet",GEOGCS["GCS_North_Amer
102689 NAD_1983_StatePlane_Michigan_Central_FIPS_2112_Feet PROJCS["NAD_1983_StatePlane_Michigan_Central_FIPS_2112_Feet",GEOGCS["GCS_North_Am
102690 NAD_1983_StatePlane_Michigan_South_FIPS_2113_Feet PROJCS["NAD_1983_StatePlane_Michigan_South_FIPS_2113_Feet",GEOGCS["GCS_North_Amer
102696 NAD_1983_StatePlane_Missouri_East_FIPS_2401_Feet PROJCS["NAD_1983_StatePlane_Missouri_East_FIPS_2401_Feet",GEOGCS["GCS_North_Americ
102697 NAD_1983_StatePlane_Missouri_Central_FIPS_2402_Feet PROJCS["NAD_1983_StatePlane_Missouri_Central_FIPS_2402_Feet",GEOGCS["GCS_North_Ame
102698 NAD_1983_StatePlane_Missouri_West_FIPS_2403_Feet PROJCS["NAD_1983_StatePlane_Missouri_West_FIPS_2403_Feet",GEOGCS["GCS_North_Americ
102699 NAD_1927_StatePlane_California_V_Ventura PROJCS["NAD_1927_StatePlane_California_V_Ventura",GEOGCS["GCS_North_American_1927",D
102700 NAD_1983_StatePlane_Montana_FIPS_2500_Feet PROJCS["NAD_1983_StatePlane_Montana_FIPS_2500_Feet",GEOGCS["GCS_North_American_19
102701 NAD_1983_PACP00_UTM_Zone_4N PROJCS["NAD_1983_PACP00_UTM_Zone_4N",GEOGCS["GCS_NAD_1983_PACP00",DATUM["D
102702 NAD_1983_PACP00_UTM_Zone_5N PROJCS["NAD_1983_PACP00_UTM_Zone_5N",GEOGCS["GCS_NAD_1983_PACP00",DATUM["D
102703 NAD_1983_PACP00_UTM_Zone_2S PROJCS["NAD_1983_PACP00_UTM_Zone_2S",GEOGCS["GCS_NAD_1983_PACP00",DATUM["D
102705 NAD_1983_Nebraska_Lancaster_County_FtUS PROJCS["NAD_1983_Nebraska_Lancaster_County_FtUS",GEOGCS["GCS_North_American_1983"
102720 NAD_1983_StatePlane_North_Dakota_North_FIPS_3301_Feet PROJCS["NAD_1983_StatePlane_North_Dakota_North_FIPS_3301_Feet",GEOGCS["GCS_North_A
102721 NAD_1983_StatePlane_North_Dakota_South_FIPS_3302_Feet PROJCS["NAD_1983_StatePlane_North_Dakota_South_FIPS_3302_Feet",GEOGCS["GCS_North_
102726 NAD_1983_StatePlane_Oregon_North_FIPS_3601_Feet PROJCS["NAD_1983_StatePlane_Oregon_North_FIPS_3601_Feet",GEOGCS["GCS_North_Americ
102727 NAD_1983_StatePlane_Oregon_South_FIPS_3602_Feet PROJCS["NAD_1983_StatePlane_Oregon_South_FIPS_3602_Feet",GEOGCS["GCS_North_Americ
102733 NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet",GEOGCS["GCS_North_Amer
102761 NAD_1983_StatePlane_Puerto_Rico_Virgin_Islands_FIPS_5200_Feet PROJCS["NAD_1983_StatePlane_Puerto_Rico_Virgin_Islands_FIPS_5200_Feet",GEOGCS["GCS_
102766 NAD_1983_StatePlane_Guam_FIPS_5400_Feet PROJCS["NAD_1983_StatePlane_Guam_FIPS_5400_Feet",GEOGCS["GCS_North_American_1983
102974 NAD_1983_2011_Wisconsin_TM_US_Ft PROJCS["NAD_1983_2011_Wisconsin_TM_US_Ft",GEOGCS["GCS_NAD_1983_2011",DATUM["D
103166 NAD_1983_2011_StatePlane_Utah_North_FIPS_4301_Ft_Intl PROJCS["NAD_1983_2011_StatePlane_Utah_North_FIPS_4301_Ft_Intl",GEOGCS["GCS_NAD_19
103167 NAD_1983_2011_StatePlane_Utah_Central_FIPS_4302_Ft_Intl PROJCS["NAD_1983_2011_StatePlane_Utah_Central_FIPS_4302_Ft_Intl",GEOGCS["GCS_NAD_1
103168 NAD_1983_2011_StatePlane_Utah_South_FIPS_4303_Ft_Intl PROJCS["NAD_1983_2011_StatePlane_Utah_South_FIPS_4303_Ft_Intl",GEOGCS["GCS_NAD_19
103220 NAD_1983_CORS96_StatePlane_Alabama_East_FIPS_0101 PROJCS["NAD_1983_CORS96_StatePlane_Alabama_East_FIPS_0101",GEOGCS["GCS_NAD_19
103221 NAD_1983_CORS96_StatePlane_Alabama_West_FIPS_0102 PROJCS["NAD_1983_CORS96_StatePlane_Alabama_West_FIPS_0102",GEOGCS["GCS_NAD_19
103222 NAD_1983_CORS96_StatePlane_Arizona_East_FIPS_0201 PROJCS["NAD_1983_CORS96_StatePlane_Arizona_East_FIPS_0201",GEOGCS["GCS_NAD_198
103223 NAD_1983_CORS96_StatePlane_Arizona_Central_FIPS_0202 PROJCS["NAD_1983_CORS96_StatePlane_Arizona_Central_FIPS_0202",GEOGCS["GCS_NAD_1
103224 NAD_1983_CORS96_StatePlane_Arizona_West_FIPS_0203 PROJCS["NAD_1983_CORS96_StatePlane_Arizona_West_FIPS_0203",GEOGCS["GCS_NAD_198
103225 NAD_1983_CORS96_StatePlane_Arizona_East_FIPS_0201_Ft_Intl PROJCS["NAD_1983_CORS96_StatePlane_Arizona_East_FIPS_0201_Ft_Intl",GEOGCS["GCS_NA
103226 NAD_1983_CORS96_StatePlane_Arizona_Central_FIPS_0202_Ft_Intl PROJCS["NAD_1983_CORS96_StatePlane_Arizona_Central_FIPS_0202_Ft_Intl",GEOGCS["GCS_
103227 NAD_1983_CORS96_StatePlane_Arizona_West_FIPS_0203_Ft_Intl PROJCS["NAD_1983_CORS96_StatePlane_Arizona_West_FIPS_0203_Ft_Intl",GEOGCS["GCS_N
103228 NAD_1983_CORS96_StatePlane_Arkansas_North_FIPS_0301 PROJCS["NAD_1983_CORS96_StatePlane_Arkansas_North_FIPS_0301",GEOGCS["GCS_NAD_1
103229 NAD_1983_CORS96_StatePlane_Arkansas_South_FIPS_0302 PROJCS["NAD_1983_CORS96_StatePlane_Arkansas_South_FIPS_0302",GEOGCS["GCS_NAD_1
103230 NAD_1983_CORS96_StatePlane_Arkansas_North_FIPS_0301_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Arkansas_North_FIPS_0301_Ft_US",GEOGCS["GCS_
103231 NAD_1983_CORS96_StatePlane_Arkansas_South_FIPS_0302_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Arkansas_South_FIPS_0302_Ft_US",GEOGCS["GCS_
103232 NAD_1983_CORS96_StatePlane_California_I_FIPS_0401 PROJCS["NAD_1983_CORS96_StatePlane_California_I_FIPS_0401",GEOGCS["GCS_NAD_1983_
103233 NAD_1983_CORS96_StatePlane_California_II_FIPS_0402 PROJCS["NAD_1983_CORS96_StatePlane_California_II_FIPS_0402",GEOGCS["GCS_NAD_1983_
103234 NAD_1983_CORS96_StatePlane_California_III_FIPS_0403 PROJCS["NAD_1983_CORS96_StatePlane_California_III_FIPS_0403",GEOGCS["GCS_NAD_1983
103235 NAD_1983_CORS96_StatePlane_California_IV_FIPS_0404 PROJCS["NAD_1983_CORS96_StatePlane_California_IV_FIPS_0404",GEOGCS["GCS_NAD_1983
103236 NAD_1983_CORS96_StatePlane_California_V_FIPS_0405 PROJCS["NAD_1983_CORS96_StatePlane_California_V_FIPS_0405",GEOGCS["GCS_NAD_1983
103237 NAD_1983_CORS96_StatePlane_California_VI_FIPS_0406 PROJCS["NAD_1983_CORS96_StatePlane_California_VI_FIPS_0406",GEOGCS["GCS_NAD_1983
103238 NAD_1983_CORS96_StatePlane_California_I_FIPS_0401_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_California_I_FIPS_0401_Ft_US",GEOGCS["GCS_NAD
103239 NAD_1983_CORS96_StatePlane_California_II_FIPS_0402_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_California_II_FIPS_0402_Ft_US",GEOGCS["GCS_NAD
103240 NAD_1983_CORS96_StatePlane_California_III_FIPS_0403_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_California_III_FIPS_0403_Ft_US",GEOGCS["GCS_NA
103241 NAD_1983_CORS96_StatePlane_California_IV_FIPS_0404_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_California_IV_FIPS_0404_Ft_US",GEOGCS["GCS_NA
103242 NAD_1983_CORS96_StatePlane_California_V_FIPS_0405_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_California_V_FIPS_0405_Ft_US",GEOGCS["GCS_NAD
103243 NAD_1983_CORS96_StatePlane_California_VI_FIPS_0406_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_California_VI_FIPS_0406_Ft_US",GEOGCS["GCS_NA
103244 NAD_1983_CORS96_StatePlane_Colorado_North_FIPS_0501 PROJCS["NAD_1983_CORS96_StatePlane_Colorado_North_FIPS_0501",GEOGCS["GCS_NAD_1

Copyright 1995-2015 Esri. All rights reserved. 405


ArcGIS Runtime SDK for .NET

103245 NAD_1983_CORS96_StatePlane_Colorado_Central_FIPS_0502 PROJCS["NAD_1983_CORS96_StatePlane_Colorado_Central_FIPS_0502",GEOGCS["GCS_NAD_


103246 NAD_1983_CORS96_StatePlane_Colorado_South_FIPS_0503 PROJCS["NAD_1983_CORS96_StatePlane_Colorado_South_FIPS_0503",GEOGCS["GCS_NAD_1
103247 NAD_1983_CORS96_StatePlane_Colorado_North_FIPS_0501_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Colorado_North_FIPS_0501_Ft_US",GEOGCS["GCS_
103248 NAD_1983_CORS96_StatePlane_Colorado_Central_FIPS_0502_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Colorado_Central_FIPS_0502_Ft_US",GEOGCS["GCS
103249 NAD_1983_CORS96_StatePlane_Colorado_South_FIPS_0503_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Colorado_South_FIPS_0503_Ft_US",GEOGCS["GCS_
103250 NAD_1983_CORS96_StatePlane_Connecticut_FIPS_0600 PROJCS["NAD_1983_CORS96_StatePlane_Connecticut_FIPS_0600",GEOGCS["GCS_NAD_1983_
103251 NAD_1983_CORS96_StatePlane_Connecticut_FIPS_0600_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Connecticut_FIPS_0600_Ft_US",GEOGCS["GCS_NAD
103252 NAD_1983_CORS96_StatePlane_Delaware_FIPS_0700 PROJCS["NAD_1983_CORS96_StatePlane_Delaware_FIPS_0700",GEOGCS["GCS_NAD_1983_C
103253 NAD_1983_CORS96_StatePlane_Delaware_FIPS_0700_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Delaware_FIPS_0700_Ft_US",GEOGCS["GCS_NAD_
103254 NAD_1983_CORS96_StatePlane_Florida_East_FIPS_0901 PROJCS["NAD_1983_CORS96_StatePlane_Florida_East_FIPS_0901",GEOGCS["GCS_NAD_1983
103255 NAD_1983_CORS96_StatePlane_Florida_West_FIPS_0902 PROJCS["NAD_1983_CORS96_StatePlane_Florida_West_FIPS_0902",GEOGCS["GCS_NAD_1983
103256 NAD_1983_CORS96_StatePlane_Florida_North_FIPS_0903 PROJCS["NAD_1983_CORS96_StatePlane_Florida_North_FIPS_0903",GEOGCS["GCS_NAD_198
103257 NAD_1983_CORS96_StatePlane_Florida_East_FIPS_0901_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Florida_East_FIPS_0901_Ft_US",GEOGCS["GCS_NA
103258 NAD_1983_CORS96_StatePlane_Florida_West_FIPS_0902_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Florida_West_FIPS_0902_Ft_US",GEOGCS["GCS_NA
103259 NAD_1983_CORS96_StatePlane_Florida_North_FIPS_0903_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Florida_North_FIPS_0903_Ft_US",GEOGCS["GCS_NA
103260 NAD_1983_CORS96_StatePlane_Georgia_East_FIPS_1001 PROJCS["NAD_1983_CORS96_StatePlane_Georgia_East_FIPS_1001",GEOGCS["GCS_NAD_198
103261 NAD_1983_CORS96_StatePlane_Georgia_West_FIPS_1002 PROJCS["NAD_1983_CORS96_StatePlane_Georgia_West_FIPS_1002",GEOGCS["GCS_NAD_198
103262 NAD_1983_CORS96_StatePlane_Georgia_East_FIPS_1001_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Georgia_East_FIPS_1001_Ft_US",GEOGCS["GCS_NA
103263 NAD_1983_CORS96_StatePlane_Georgia_West_FIPS_1002_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Georgia_West_FIPS_1002_Ft_US",GEOGCS["GCS_N
103264 NAD_1983_CORS96_StatePlane_Idaho_East_FIPS_1101 PROJCS["NAD_1983_CORS96_StatePlane_Idaho_East_FIPS_1101",GEOGCS["GCS_NAD_1983_
103265 NAD_1983_CORS96_StatePlane_Idaho_Central_FIPS_1102 PROJCS["NAD_1983_CORS96_StatePlane_Idaho_Central_FIPS_1102",GEOGCS["GCS_NAD_198
103266 NAD_1983_CORS96_StatePlane_Idaho_West_FIPS_1103 PROJCS["NAD_1983_CORS96_StatePlane_Idaho_West_FIPS_1103",GEOGCS["GCS_NAD_1983_
103267 NAD_1983_CORS96_StatePlane_Idaho_East_FIPS_1101_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Idaho_East_FIPS_1101_Ft_US",GEOGCS["GCS_NAD
103268 NAD_1983_CORS96_StatePlane_Idaho_Central_FIPS_1102_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Idaho_Central_FIPS_1102_Ft_US",GEOGCS["GCS_N
103269 NAD_1983_CORS96_StatePlane_Idaho_West_FIPS_1103_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Idaho_West_FIPS_1103_Ft_US",GEOGCS["GCS_NAD
103270 NAD_1983_CORS96_StatePlane_Illinois_East_FIPS_1201 PROJCS["NAD_1983_CORS96_StatePlane_Illinois_East_FIPS_1201",GEOGCS["GCS_NAD_1983_
103271 NAD_1983_CORS96_StatePlane_Illinois_West_FIPS_1202 PROJCS["NAD_1983_CORS96_StatePlane_Illinois_West_FIPS_1202",GEOGCS["GCS_NAD_1983
103272 NAD_1983_CORS96_StatePlane_Illinois_East_FIPS_1201_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Illinois_East_FIPS_1201_Ft_US",GEOGCS["GCS_NAD
103273 NAD_1983_CORS96_StatePlane_Illinois_West_FIPS_1202_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Illinois_West_FIPS_1202_Ft_US",GEOGCS["GCS_NA
103274 NAD_1983_CORS96_StatePlane_Indiana_East_FIPS_1301 PROJCS["NAD_1983_CORS96_StatePlane_Indiana_East_FIPS_1301",GEOGCS["GCS_NAD_1983
103275 NAD_1983_CORS96_StatePlane_Indiana_West_FIPS_1302 PROJCS["NAD_1983_CORS96_StatePlane_Indiana_West_FIPS_1302",GEOGCS["GCS_NAD_198
103276 NAD_1983_CORS96_StatePlane_Indiana_East_FIPS_1301_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Indiana_East_FIPS_1301_Ft_US",GEOGCS["GCS_NA
103277 NAD_1983_CORS96_StatePlane_Indiana_West_FIPS_1302_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Indiana_West_FIPS_1302_Ft_US",GEOGCS["GCS_NA
103278 NAD_1983_CORS96_StatePlane_Iowa_North_FIPS_1401 PROJCS["NAD_1983_CORS96_StatePlane_Iowa_North_FIPS_1401",GEOGCS["GCS_NAD_1983_
103279 NAD_1983_CORS96_StatePlane_Iowa_South_FIPS_1402 PROJCS["NAD_1983_CORS96_StatePlane_Iowa_South_FIPS_1402",GEOGCS["GCS_NAD_1983_
103280 NAD_1983_CORS96_StatePlane_Iowa_North_FIPS_1401_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Iowa_North_FIPS_1401_Ft_US",GEOGCS["GCS_NAD
103281 NAD_1983_CORS96_StatePlane_Iowa_South_FIPS_1402_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Iowa_South_FIPS_1402_Ft_US",GEOGCS["GCS_NAD
103282 NAD_1983_CORS96_StatePlane_Kansas_North_FIPS_1501 PROJCS["NAD_1983_CORS96_StatePlane_Kansas_North_FIPS_1501",GEOGCS["GCS_NAD_198
103283 NAD_1983_CORS96_StatePlane_Kansas_South_FIPS_1502 PROJCS["NAD_1983_CORS96_StatePlane_Kansas_South_FIPS_1502",GEOGCS["GCS_NAD_19
103284 NAD_1983_CORS96_StatePlane_Kansas_North_FIPS_1501_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Kansas_North_FIPS_1501_Ft_US",GEOGCS["GCS_N
103285 NAD_1983_CORS96_StatePlane_Kansas_South_FIPS_1502_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Kansas_South_FIPS_1502_Ft_US",GEOGCS["GCS_N
103286 NAD_1983_CORS96_StatePlane_Kentucky_North_FIPS_1601 PROJCS["NAD_1983_CORS96_StatePlane_Kentucky_North_FIPS_1601",GEOGCS["GCS_NAD_1
103287 NAD_1983_CORS96_StatePlane_Kentucky_North_FIPS_1601_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Kentucky_North_FIPS_1601_Ft_US",GEOGCS["GCS_
103288 NAD_1983_CORS96_StatePlane_Kentucky_FIPS_1600 PROJCS["NAD_1983_CORS96_StatePlane_Kentucky_FIPS_1600",GEOGCS["GCS_NAD_1983_C
103289 NAD_1983_CORS96_StatePlane_Kentucky_FIPS_1600_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Kentucky_FIPS_1600_Ft_US",GEOGCS["GCS_NAD_1
103290 NAD_1983_CORS96_StatePlane_Kentucky_South_FIPS_1602 PROJCS["NAD_1983_CORS96_StatePlane_Kentucky_South_FIPS_1602",GEOGCS["GCS_NAD_1
103291 NAD_1983_CORS96_StatePlane_Kentucky_South_FIPS_1602_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Kentucky_South_FIPS_1602_Ft_US",GEOGCS["GCS_
103292 NAD_1983_CORS96_StatePlane_Louisiana_North_FIPS_1701 PROJCS["NAD_1983_CORS96_StatePlane_Louisiana_North_FIPS_1701",GEOGCS["GCS_NAD_1
103293 NAD_1983_CORS96_StatePlane_Louisiana_South_FIPS_1702 PROJCS["NAD_1983_CORS96_StatePlane_Louisiana_South_FIPS_1702",GEOGCS["GCS_NAD_1
103294 NAD_1983_CORS96_StatePlane_Louisiana_North_FIPS_1701_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Louisiana_North_FIPS_1701_Ft_US",GEOGCS["GCS_
103295 NAD_1983_CORS96_StatePlane_Louisiana_South_FIPS_1702_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Louisiana_South_FIPS_1702_Ft_US",GEOGCS["GCS
103296 NAD_1983_CORS96_StatePlane_Maine_East_FIPS_1801 PROJCS["NAD_1983_CORS96_StatePlane_Maine_East_FIPS_1801",GEOGCS["GCS_NAD_1983_
103297 NAD_1983_CORS96_StatePlane_Maine_West_FIPS_1802 PROJCS["NAD_1983_CORS96_StatePlane_Maine_West_FIPS_1802",GEOGCS["GCS_NAD_1983
103298 NAD_1983_CORS96_StatePlane_Maine_East_FIPS_1801_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Maine_East_FIPS_1801_Ft_US",GEOGCS["GCS_NAD

Copyright 1995-2015 Esri. All rights reserved. 406


ArcGIS Runtime SDK for .NET

103299 NAD_1983_CORS96_StatePlane_Maine_West_FIPS_1802_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Maine_West_FIPS_1802_Ft_US",GEOGCS["GCS_NA


103300 NAD_1983_HARN_WISCRS_Adams_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Adams_County_Meters",GEOGCS["GCS_North_American_
103301 NAD_1983_HARN_WISCRS_Ashland_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Ashland_County_Meters",GEOGCS["GCS_North_American
103302 NAD_1983_HARN_WISCRS_Barron_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Barron_County_Meters",GEOGCS["GCS_North_American_
103303 NAD_1983_HARN_WISCRS_Bayfield_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Bayfield_County_Meters",GEOGCS["GCS_North_American
103304 NAD_1983_HARN_WISCRS_Brown_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Brown_County_Meters",GEOGCS["GCS_North_American_
103305 NAD_1983_HARN_WISCRS_Buffalo_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Buffalo_County_Meters",GEOGCS["GCS_North_American_
103306 NAD_1983_HARN_WISCRS_Burnett_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Burnett_County_Meters",GEOGCS["GCS_North_American_
103307 NAD_1983_HARN_WISCRS_Calumet_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Calumet_County_Meters",GEOGCS["GCS_North_American
103308 NAD_1983_HARN_WISCRS_Chippewa_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Chippewa_County_Meters",GEOGCS["GCS_North_Americ
103309 NAD_1983_HARN_WISCRS_Clark_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Clark_County_Meters",GEOGCS["GCS_North_American_1
103310 NAD_1983_HARN_WISCRS_Columbia_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Columbia_County_Meters",GEOGCS["GCS_North_America
103311 NAD_1983_HARN_WISCRS_Crawford_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Crawford_County_Meters",GEOGCS["GCS_North_America
103312 NAD_1983_HARN_WISCRS_Dane_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Dane_County_Meters",GEOGCS["GCS_North_American_1
103313 NAD_1983_HARN_WISCRS_Dodge_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Dodge_County_Meters",GEOGCS["GCS_North_American_
103314 NAD_1983_HARN_WISCRS_Door_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Door_County_Meters",GEOGCS["GCS_North_American_19
103315 NAD_1983_HARN_WISCRS_Douglas_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Douglas_County_Meters",GEOGCS["GCS_North_American
103316 NAD_1983_HARN_WISCRS_Dunn_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Dunn_County_Meters",GEOGCS["GCS_North_American_1
103317 NAD_1983_HARN_WISCRS_EauClaire_County_Meters PROJCS["NAD_1983_HARN_WISCRS_EauClaire_County_Meters",GEOGCS["GCS_North_America
103318 NAD_1983_HARN_WISCRS_Florence_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Florence_County_Meters",GEOGCS["GCS_North_America
103319 NAD_1983_HARN_WISCRS_Fond_du_Lac_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Fond_du_Lac_County_Meters",GEOGCS["GCS_North_Am
103320 NAD_1983_HARN_WISCRS_Forest_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Forest_County_Meters",GEOGCS["GCS_North_American_
103321 NAD_1983_HARN_WISCRS_Grant_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Grant_County_Meters",GEOGCS["GCS_North_American_1
103322 NAD_1983_HARN_WISCRS_Green_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Green_County_Meters",GEOGCS["GCS_North_American_
103323 NAD_1983_HARN_WISCRS_GreenLake_County_Meters PROJCS["NAD_1983_HARN_WISCRS_GreenLake_County_Meters",GEOGCS["GCS_North_Ameri
103324 NAD_1983_HARN_WISCRS_Iowa_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Iowa_County_Meters",GEOGCS["GCS_North_American_19
103325 NAD_1983_HARN_WISCRS_Iron_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Iron_County_Meters",GEOGCS["GCS_North_American_19
103326 NAD_1983_HARN_WISCRS_Jackson_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Jackson_County_Meters",GEOGCS["GCS_North_American
103327 NAD_1983_HARN_WISCRS_Jefferson_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Jefferson_County_Meters",GEOGCS["GCS_North_America
103328 NAD_1983_HARN_WISCRS_Juneau_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Juneau_County_Meters",GEOGCS["GCS_North_American_
103329 NAD_1983_HARN_WISCRS_Kenosha_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Kenosha_County_Meters",GEOGCS["GCS_North_America
103330 NAD_1983_HARN_WISCRS_Kewaunee_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Kewaunee_County_Meters",GEOGCS["GCS_North_Americ
103331 NAD_1983_HARN_WISCRS_LaCrosse_County_Meters PROJCS["NAD_1983_HARN_WISCRS_LaCrosse_County_Meters",GEOGCS["GCS_North_America
103332 NAD_1983_HARN_WISCRS_Lafayette_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Lafayette_County_Meters",GEOGCS["GCS_North_America
103333 NAD_1983_HARN_WISCRS_Langlade_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Langlade_County_Meters",GEOGCS["GCS_North_America
103334 NAD_1983_HARN_WISCRS_Lincoln_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Lincoln_County_Meters",GEOGCS["GCS_North_American_
103335 NAD_1983_HARN_WISCRS_Manitowoc_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Manitowoc_County_Meters",GEOGCS["GCS_North_Americ
103336 NAD_1983_HARN_WISCRS_Marathon_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Marathon_County_Meters",GEOGCS["GCS_North_America
103337 NAD_1983_HARN_WISCRS_Marinette_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Marinette_County_Meters",GEOGCS["GCS_North_America
103338 NAD_1983_HARN_WISCRS_Marquette_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Marquette_County_Meters",GEOGCS["GCS_North_Americ
103339 NAD_1983_HARN_WISCRS_Menominee_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Menominee_County_Meters",GEOGCS["GCS_North_Amer
103340 NAD_1983_HARN_WISCRS_Milwaukee_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Milwaukee_County_Meters",GEOGCS["GCS_North_Americ
103341 NAD_1983_HARN_WISCRS_Monroe_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Monroe_County_Meters",GEOGCS["GCS_North_American
103342 NAD_1983_HARN_WISCRS_Oconto_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Oconto_County_Meters",GEOGCS["GCS_North_American_
103343 NAD_1983_HARN_WISCRS_Oneida_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Oneida_County_Meters",GEOGCS["GCS_North_American_
103344 NAD_1983_HARN_WISCRS_Outagamie_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Outagamie_County_Meters",GEOGCS["GCS_North_Americ
103345 NAD_1983_HARN_WISCRS_Ozaukee_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Ozaukee_County_Meters",GEOGCS["GCS_North_America
103346 NAD_1983_HARN_WISCRS_Pepin_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Pepin_County_Meters",GEOGCS["GCS_North_American_1
103347 NAD_1983_HARN_WISCRS_Pierce_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Pierce_County_Meters",GEOGCS["GCS_North_American_
103348 NAD_1983_HARN_WISCRS_Polk_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Polk_County_Meters",GEOGCS["GCS_North_American_19
103349 NAD_1983_HARN_WISCRS_Portage_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Portage_County_Meters",GEOGCS["GCS_North_American
103350 NAD_1983_HARN_WISCRS_Price_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Price_County_Meters",GEOGCS["GCS_North_American_1
103351 NAD_1983_HARN_WISCRS_Racine_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Racine_County_Meters",GEOGCS["GCS_North_American_
103352 NAD_1983_HARN_WISCRS_Richland_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Richland_County_Meters",GEOGCS["GCS_North_America

Copyright 1995-2015 Esri. All rights reserved. 407


ArcGIS Runtime SDK for .NET

103353 NAD_1983_HARN_WISCRS_Rock_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Rock_County_Meters",GEOGCS["GCS_North_American_1


103354 NAD_1983_HARN_WISCRS_Rusk_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Rusk_County_Meters",GEOGCS["GCS_North_American_1
103355 NAD_1983_HARN_WISCRS_Sauk_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Sauk_County_Meters",GEOGCS["GCS_North_American_1
103356 NAD_1983_HARN_WISCRS_Sawyer_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Sawyer_County_Meters",GEOGCS["GCS_North_American
103357 NAD_1983_HARN_WISCRS_Shawano_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Shawano_County_Meters",GEOGCS["GCS_North_America
103358 NAD_1983_HARN_WISCRS_Sheboygan_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Sheboygan_County_Meters",GEOGCS["GCS_North_Ameri
103359 NAD_1983_HARN_WISCRS_St_Croix_County_Meters PROJCS["NAD_1983_HARN_WISCRS_St_Croix_County_Meters",GEOGCS["GCS_North_American
103360 NAD_1983_HARN_WISCRS_Taylor_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Taylor_County_Meters",GEOGCS["GCS_North_American_
103361 NAD_1983_HARN_WISCRS_Trempealeau_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Trempealeau_County_Meters",GEOGCS["GCS_North_Ame
103362 NAD_1983_HARN_WISCRS_Vernon_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Vernon_County_Meters",GEOGCS["GCS_North_American_
103363 NAD_1983_HARN_WISCRS_Vilas_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Vilas_County_Meters",GEOGCS["GCS_North_American_19
103364 NAD_1983_HARN_WISCRS_Walworth_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Walworth_County_Meters",GEOGCS["GCS_North_America
103365 NAD_1983_HARN_WISCRS_Washburn_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Washburn_County_Meters",GEOGCS["GCS_North_Americ
103366 NAD_1983_HARN_WISCRS_Washington_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Washington_County_Meters",GEOGCS["GCS_North_Amer
103367 NAD_1983_HARN_WISCRS_Waukesha_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Waukesha_County_Meters",GEOGCS["GCS_North_Americ
103368 NAD_1983_HARN_WISCRS_Waupaca_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Waupaca_County_Meters",GEOGCS["GCS_North_America
103369 NAD_1983_HARN_WISCRS_Waushara_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Waushara_County_Meters",GEOGCS["GCS_North_Americ
103370 NAD_1983_HARN_WISCRS_Winnebago_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Winnebago_County_Meters",GEOGCS["GCS_North_Ameri
103371 NAD_1983_HARN_WISCRS_Wood_County_Meters PROJCS["NAD_1983_HARN_WISCRS_Wood_County_Meters",GEOGCS["GCS_North_American_1
103372 NAD_1983_CORS96_Maine_2000_East_Zone PROJCS["NAD_1983_CORS96_Maine_2000_East_Zone",GEOGCS["GCS_NAD_1983_CORS96",D
103373 NAD_1983_CORS96_Maine_2000_Central_Zone PROJCS["NAD_1983_CORS96_Maine_2000_Central_Zone",GEOGCS["GCS_NAD_1983_CORS96
103374 NAD_1983_CORS96_Maine_2000_West_Zone PROJCS["NAD_1983_CORS96_Maine_2000_West_Zone",GEOGCS["GCS_NAD_1983_CORS96",D
103375 NAD_1983_CORS96_StatePlane_Maryland_FIPS_1900 PROJCS["NAD_1983_CORS96_StatePlane_Maryland_FIPS_1900",GEOGCS["GCS_NAD_1983_C
103376 NAD_1983_CORS96_StatePlane_Maryland_FIPS_1900_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Maryland_FIPS_1900_Ft_US",GEOGCS["GCS_NAD_1
103377 NAD_1983_CORS96_StatePlane_Massachusetts_Mainland_FIPS_2001 PROJCS["NAD_1983_CORS96_StatePlane_Massachusetts_Mainland_FIPS_2001",GEOGCS["GCS
103378 NAD_1983_CORS96_StatePlane_Massachusetts_Island_FIPS_2002 PROJCS["NAD_1983_CORS96_StatePlane_Massachusetts_Island_FIPS_2002",GEOGCS["GCS_N
103379 NAD_1983_CORS96_StatePlane_Massachusetts_Mnld_FIPS_2001_FtUS PROJCS["NAD_1983_CORS96_StatePlane_Massachusetts_Mnld_FIPS_2001_FtUS",GEOGCS["G
103380 NAD_1983_CORS96_StatePlane_Massachusetts_Isl_FIPS_2002_FtUS PROJCS["NAD_1983_CORS96_StatePlane_Massachusetts_Isl_FIPS_2002_FtUS",GEOGCS["GCS
103381 NAD_1983_CORS96_StatePlane_Michigan_North_FIPS_2111 PROJCS["NAD_1983_CORS96_StatePlane_Michigan_North_FIPS_2111",GEOGCS["GCS_NAD_19
103382 NAD_1983_CORS96_StatePlane_Michigan_Central_FIPS_2112 PROJCS["NAD_1983_CORS96_StatePlane_Michigan_Central_FIPS_2112",GEOGCS["GCS_NAD_
103383 NAD_1983_CORS96_StatePlane_Michigan_South_FIPS_2113 PROJCS["NAD_1983_CORS96_StatePlane_Michigan_South_FIPS_2113",GEOGCS["GCS_NAD_1
103384 NAD_1983_CORS96_StatePlane_Michigan_North_FIPS_2111_Ft_Intl PROJCS["NAD_1983_CORS96_StatePlane_Michigan_North_FIPS_2111_Ft_Intl",GEOGCS["GCS_
103385 NAD_1983_CORS96_StatePlane_Michigan_Central_FIPS_2112_Ft_Intl PROJCS["NAD_1983_CORS96_StatePlane_Michigan_Central_FIPS_2112_Ft_Intl",GEOGCS["GCS
103386 NAD_1983_CORS96_StatePlane_Michigan_South_FIPS_2113_Ft_Intl PROJCS["NAD_1983_CORS96_StatePlane_Michigan_South_FIPS_2113_Ft_Intl",GEOGCS["GCS_
103387 NAD_1983_CORS96_StatePlane_Minnesota_North_FIPS_2201 PROJCS["NAD_1983_CORS96_StatePlane_Minnesota_North_FIPS_2201",GEOGCS["GCS_NAD_
103388 NAD_1983_CORS96_StatePlane_Minnesota_Central_FIPS_2202 PROJCS["NAD_1983_CORS96_StatePlane_Minnesota_Central_FIPS_2202",GEOGCS["GCS_NAD
103389 NAD_1983_CORS96_StatePlane_Minnesota_South_FIPS_2203 PROJCS["NAD_1983_CORS96_StatePlane_Minnesota_South_FIPS_2203",GEOGCS["GCS_NAD_
103390 NAD_1983_CORS96_StatePlane_Minnesota_North_FIPS_2201_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Minnesota_North_FIPS_2201_Ft_US",GEOGCS["GCS
103391 NAD_1983_CORS96_StatePlane_Minnesota_Central_FIPS_2202_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Minnesota_Central_FIPS_2202_Ft_US",GEOGCS["GC
103392 NAD_1983_CORS96_StatePlane_Minnesota_South_FIPS_2203_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Minnesota_South_FIPS_2203_Ft_US",GEOGCS["GCS
103393 NAD_1983_CORS96_StatePlane_Mississippi_East_FIPS_2301 PROJCS["NAD_1983_CORS96_StatePlane_Mississippi_East_FIPS_2301",GEOGCS["GCS_NAD_1
103394 NAD_1983_CORS96_StatePlane_Mississippi_West_FIPS_2302 PROJCS["NAD_1983_CORS96_StatePlane_Mississippi_West_FIPS_2302",GEOGCS["GCS_NAD_
103395 NAD_1983_CORS96_StatePlane_Mississippi_East_FIPS_2301_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Mississippi_East_FIPS_2301_Ft_US",GEOGCS["GCS_
103396 NAD_1983_CORS96_StatePlane_Mississippi_West_FIPS_2302_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Mississippi_West_FIPS_2302_Ft_US",GEOGCS["GCS
103397 NAD_1983_CORS96_StatePlane_Missouri_East_FIPS_2401 PROJCS["NAD_1983_CORS96_StatePlane_Missouri_East_FIPS_2401",GEOGCS["GCS_NAD_198
103398 NAD_1983_CORS96_StatePlane_Missouri_Central_FIPS_2402 PROJCS["NAD_1983_CORS96_StatePlane_Missouri_Central_FIPS_2402",GEOGCS["GCS_NAD_1
103399 NAD_1983_CORS96_StatePlane_Missouri_West_FIPS_2403 PROJCS["NAD_1983_CORS96_StatePlane_Missouri_West_FIPS_2403",GEOGCS["GCS_NAD_19
103400 NAD_1983_HARN_WISCRS_Adams_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Adams_County_Feet",GEOGCS["GCS_North_American_19
103401 NAD_1983_HARN_WISCRS_Ashland_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Ashland_County_Feet",GEOGCS["GCS_North_American_1
103402 NAD_1983_HARN_WISCRS_Barron_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Barron_County_Feet",GEOGCS["GCS_North_American_19
103403 NAD_1983_HARN_WISCRS_Bayfield_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Bayfield_County_Feet",GEOGCS["GCS_North_American_1
103404 NAD_1983_HARN_WISCRS_Brown_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Brown_County_Feet",GEOGCS["GCS_North_American_19
103405 NAD_1983_HARN_WISCRS_Buffalo_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Buffalo_County_Feet",GEOGCS["GCS_North_American_19
103406 NAD_1983_HARN_WISCRS_Burnett_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Burnett_County_Feet",GEOGCS["GCS_North_American_19

Copyright 1995-2015 Esri. All rights reserved. 408


ArcGIS Runtime SDK for .NET

103407 NAD_1983_HARN_WISCRS_Calumet_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Calumet_County_Feet",GEOGCS["GCS_North_American_1


103408 NAD_1983_HARN_WISCRS_Chippewa_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Chippewa_County_Feet",GEOGCS["GCS_North_American
103409 NAD_1983_HARN_WISCRS_Clark_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Clark_County_Feet",GEOGCS["GCS_North_American_198
103410 NAD_1983_HARN_WISCRS_Columbia_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Columbia_County_Feet",GEOGCS["GCS_North_American_
103411 NAD_1983_HARN_WISCRS_Crawford_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Crawford_County_Feet",GEOGCS["GCS_North_American_
103412 NAD_1983_HARN_WISCRS_Dane_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Dane_County_Feet",GEOGCS["GCS_North_American_198
103413 NAD_1983_HARN_WISCRS_Dodge_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Dodge_County_Feet",GEOGCS["GCS_North_American_19
103414 NAD_1983_HARN_WISCRS_Door_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Door_County_Feet",GEOGCS["GCS_North_American_198
103415 NAD_1983_HARN_WISCRS_Douglas_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Douglas_County_Feet",GEOGCS["GCS_North_American_1
103416 NAD_1983_HARN_WISCRS_Dunn_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Dunn_County_Feet",GEOGCS["GCS_North_American_198
103417 NAD_1983_HARN_WISCRS_EauClaire_County_Feet PROJCS["NAD_1983_HARN_WISCRS_EauClaire_County_Feet",GEOGCS["GCS_North_American
103418 NAD_1983_HARN_WISCRS_Florence_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Florence_County_Feet",GEOGCS["GCS_North_American_
103419 NAD_1983_HARN_WISCRS_Fond_du_Lac_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Fond_du_Lac_County_Feet",GEOGCS["GCS_North_Ameri
103420 NAD_1983_HARN_WISCRS_Forest_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Forest_County_Feet",GEOGCS["GCS_North_American_19
103421 NAD_1983_HARN_WISCRS_Grant_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Grant_County_Feet",GEOGCS["GCS_North_American_198
103422 NAD_1983_HARN_WISCRS_Green_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Green_County_Feet",GEOGCS["GCS_North_American_19
103423 NAD_1983_HARN_WISCRS_GreenLake_County_Feet PROJCS["NAD_1983_HARN_WISCRS_GreenLake_County_Feet",GEOGCS["GCS_North_America
103424 NAD_1983_HARN_WISCRS_Iowa_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Iowa_County_Feet",GEOGCS["GCS_North_American_1983
103425 NAD_1983_HARN_WISCRS_Iron_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Iron_County_Feet",GEOGCS["GCS_North_American_1983
103426 NAD_1983_HARN_WISCRS_Jackson_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Jackson_County_Feet",GEOGCS["GCS_North_American_1
103427 NAD_1983_HARN_WISCRS_Jefferson_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Jefferson_County_Feet",GEOGCS["GCS_North_American_
103428 NAD_1983_HARN_WISCRS_Juneau_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Juneau_County_Feet",GEOGCS["GCS_North_American_1
103429 NAD_1983_HARN_WISCRS_Kenosha_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Kenosha_County_Feet",GEOGCS["GCS_North_American_
103430 NAD_1983_HARN_WISCRS_Kewaunee_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Kewaunee_County_Feet",GEOGCS["GCS_North_American
103431 NAD_1983_HARN_WISCRS_LaCrosse_County_Feet PROJCS["NAD_1983_HARN_WISCRS_LaCrosse_County_Feet",GEOGCS["GCS_North_American_
103432 NAD_1983_HARN_WISCRS_Lafayette_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Lafayette_County_Feet",GEOGCS["GCS_North_American_
103433 NAD_1983_HARN_WISCRS_Langlade_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Langlade_County_Feet",GEOGCS["GCS_North_American_
103434 NAD_1983_HARN_WISCRS_Lincoln_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Lincoln_County_Feet",GEOGCS["GCS_North_American_19
103435 NAD_1983_HARN_WISCRS_Manitowoc_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Manitowoc_County_Feet",GEOGCS["GCS_North_American
103436 NAD_1983_HARN_WISCRS_Marathon_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Marathon_County_Feet",GEOGCS["GCS_North_American_
103437 NAD_1983_HARN_WISCRS_Marinette_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Marinette_County_Feet",GEOGCS["GCS_North_American_
103438 NAD_1983_HARN_WISCRS_Marquette_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Marquette_County_Feet",GEOGCS["GCS_North_American
103439 NAD_1983_HARN_WISCRS_Menominee_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Menominee_County_Feet",GEOGCS["GCS_North_America
103440 NAD_1983_HARN_WISCRS_Milwaukee_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Milwaukee_County_Feet",GEOGCS["GCS_North_American
103441 NAD_1983_HARN_WISCRS_Monroe_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Monroe_County_Feet",GEOGCS["GCS_North_American_1
103442 NAD_1983_HARN_WISCRS_Oconto_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Oconto_County_Feet",GEOGCS["GCS_North_American_19
103443 NAD_1983_HARN_WISCRS_Oneida_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Oneida_County_Feet",GEOGCS["GCS_North_American_19
103444 NAD_1983_HARN_WISCRS_Outagamie_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Outagamie_County_Feet",GEOGCS["GCS_North_American
103445 NAD_1983_HARN_WISCRS_Ozaukee_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Ozaukee_County_Feet",GEOGCS["GCS_North_American_
103446 NAD_1983_HARN_WISCRS_Pepin_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Pepin_County_Feet",GEOGCS["GCS_North_American_198
103447 NAD_1983_HARN_WISCRS_Pierce_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Pierce_County_Feet",GEOGCS["GCS_North_American_19
103448 NAD_1983_HARN_WISCRS_Polk_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Polk_County_Feet",GEOGCS["GCS_North_American_1983
103449 NAD_1983_HARN_WISCRS_Portage_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Portage_County_Feet",GEOGCS["GCS_North_American_1
103450 NAD_1983_HARN_WISCRS_Price_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Price_County_Feet",GEOGCS["GCS_North_American_198
103451 NAD_1983_HARN_WISCRS_Racine_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Racine_County_Feet",GEOGCS["GCS_North_American_19
103452 NAD_1983_HARN_WISCRS_Richland_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Richland_County_Feet",GEOGCS["GCS_North_American_
103453 NAD_1983_HARN_WISCRS_Rock_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Rock_County_Feet",GEOGCS["GCS_North_American_198
103454 NAD_1983_HARN_WISCRS_Rusk_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Rusk_County_Feet",GEOGCS["GCS_North_American_198
103455 NAD_1983_HARN_WISCRS_Sauk_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Sauk_County_Feet",GEOGCS["GCS_North_American_198
103456 NAD_1983_HARN_WISCRS_Sawyer_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Sawyer_County_Feet",GEOGCS["GCS_North_American_1
103457 NAD_1983_HARN_WISCRS_Shawano_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Shawano_County_Feet",GEOGCS["GCS_North_American_
103458 NAD_1983_HARN_WISCRS_Sheboygan_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Sheboygan_County_Feet",GEOGCS["GCS_North_America
103459 NAD_1983_HARN_WISCRS_St_Croix_County_Feet PROJCS["NAD_1983_HARN_WISCRS_St_Croix_County_Feet",GEOGCS["GCS_North_American_
103460 NAD_1983_HARN_WISCRS_Taylor_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Taylor_County_Feet",GEOGCS["GCS_North_American_19

Copyright 1995-2015 Esri. All rights reserved. 409


ArcGIS Runtime SDK for .NET

103461 NAD_1983_HARN_WISCRS_Trempealeau_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Trempealeau_County_Feet",GEOGCS["GCS_North_Americ


103462 NAD_1983_HARN_WISCRS_Vernon_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Vernon_County_Feet",GEOGCS["GCS_North_American_19
103463 NAD_1983_HARN_WISCRS_Vilas_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Vilas_County_Feet",GEOGCS["GCS_North_American_198
103464 NAD_1983_HARN_WISCRS_Walworth_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Walworth_County_Feet",GEOGCS["GCS_North_American_
103465 NAD_1983_HARN_WISCRS_Washburn_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Washburn_County_Feet",GEOGCS["GCS_North_American
103466 NAD_1983_HARN_WISCRS_Washington_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Washington_County_Feet",GEOGCS["GCS_North_America
103467 NAD_1983_HARN_WISCRS_Waukesha_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Waukesha_County_Feet",GEOGCS["GCS_North_American
103468 NAD_1983_HARN_WISCRS_Waupaca_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Waupaca_County_Feet",GEOGCS["GCS_North_American_
103469 NAD_1983_HARN_WISCRS_Waushara_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Waushara_County_Feet",GEOGCS["GCS_North_American
103470 NAD_1983_HARN_WISCRS_Winnebago_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Winnebago_County_Feet",GEOGCS["GCS_North_America
103471 NAD_1983_HARN_WISCRS_Wood_County_Feet PROJCS["NAD_1983_HARN_WISCRS_Wood_County_Feet",GEOGCS["GCS_North_American_198
103472 NAD_1983_CORS96_StatePlane_Montana_FIPS_2500 PROJCS["NAD_1983_CORS96_StatePlane_Montana_FIPS_2500",GEOGCS["GCS_NAD_1983_CO
103473 NAD_1983_CORS96_StatePlane_Montana_FIPS_2500_Ft_Intl PROJCS["NAD_1983_CORS96_StatePlane_Montana_FIPS_2500_Ft_Intl",GEOGCS["GCS_NAD_1
103474 NAD_1983_CORS96_StatePlane_Nebraska_FIPS_2600 PROJCS["NAD_1983_CORS96_StatePlane_Nebraska_FIPS_2600",GEOGCS["GCS_NAD_1983_C
103475 NAD_1983_CORS96_StatePlane_Nebraska_FIPS_2600_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Nebraska_FIPS_2600_Ft_US",GEOGCS["GCS_NAD_
103476 NAD_1983_CORS96_StatePlane_Nevada_East_FIPS_2701 PROJCS["NAD_1983_CORS96_StatePlane_Nevada_East_FIPS_2701",GEOGCS["GCS_NAD_198
103477 NAD_1983_CORS96_StatePlane_Nevada_Central_FIPS_2702 PROJCS["NAD_1983_CORS96_StatePlane_Nevada_Central_FIPS_2702",GEOGCS["GCS_NAD_1
103478 NAD_1983_CORS96_StatePlane_Nevada_West_FIPS_2703 PROJCS["NAD_1983_CORS96_StatePlane_Nevada_West_FIPS_2703",GEOGCS["GCS_NAD_198
103479 NAD_1983_CORS96_StatePlane_Nevada_East_FIPS_2701_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Nevada_East_FIPS_2701_Ft_US",GEOGCS["GCS_NA
103480 NAD_1983_CORS96_StatePlane_Nevada_Central_FIPS_2702_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Nevada_Central_FIPS_2702_Ft_US",GEOGCS["GCS_
103481 NAD_1983_CORS96_StatePlane_Nevada_West_FIPS_2703_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Nevada_West_FIPS_2703_Ft_US",GEOGCS["GCS_N
103482 NAD_1983_CORS96_StatePlane_New_Hampshire_FIPS_2800 PROJCS["NAD_1983_CORS96_StatePlane_New_Hampshire_FIPS_2800",GEOGCS["GCS_NAD_1
103483 NAD_1983_CORS96_StatePlane_New_Hampshire_FIPS_2800_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_New_Hampshire_FIPS_2800_Ft_US",GEOGCS["GCS_
103484 NAD_1983_CORS96_StatePlane_New_Jersey_FIPS_2900 PROJCS["NAD_1983_CORS96_StatePlane_New_Jersey_FIPS_2900",GEOGCS["GCS_NAD_1983
103485 NAD_1983_CORS96_StatePlane_New_Jersey_FIPS_2900_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_New_Jersey_FIPS_2900_Ft_US",GEOGCS["GCS_NA
103486 NAD_1983_CORS96_StatePlane_New_Mexico_East_FIPS_3001 PROJCS["NAD_1983_CORS96_StatePlane_New_Mexico_East_FIPS_3001",GEOGCS["GCS_NAD
103487 NAD_1983_CORS96_StatePlane_New_Mexico_Central_FIPS_3002 PROJCS["NAD_1983_CORS96_StatePlane_New_Mexico_Central_FIPS_3002",GEOGCS["GCS_NA
103488 NAD_1983_CORS96_StatePlane_New_Mexico_West_FIPS_3003 PROJCS["NAD_1983_CORS96_StatePlane_New_Mexico_West_FIPS_3003",GEOGCS["GCS_NAD
103489 NAD_1983_CORS96_StatePlane_New_Mexico_East_FIPS_3001_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_New_Mexico_East_FIPS_3001_Ft_US",GEOGCS["GC
103490 NAD_1983_CORS96_StatePlane_New_Mexico_Central_FIPS_3002_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_New_Mexico_Central_FIPS_3002_Ft_US",GEOGCS["G
103491 NAD_1983_CORS96_StatePlane_New_Mexico_West_FIPS_3003_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_New_Mexico_West_FIPS_3003_Ft_US",GEOGCS["GC
103492 NAD_1983_CORS96_StatePlane_New_York_East_FIPS_3101 PROJCS["NAD_1983_CORS96_StatePlane_New_York_East_FIPS_3101",GEOGCS["GCS_NAD_1
103493 NAD_1983_CORS96_StatePlane_New_York_Central_FIPS_3102 PROJCS["NAD_1983_CORS96_StatePlane_New_York_Central_FIPS_3102",GEOGCS["GCS_NAD
103494 NAD_1983_CORS96_StatePlane_New_York_West_FIPS_3103 PROJCS["NAD_1983_CORS96_StatePlane_New_York_West_FIPS_3103",GEOGCS["GCS_NAD_1
103495 NAD_1983_CORS96_StatePlane_New_York_Long_Island_FIPS_3104 PROJCS["NAD_1983_CORS96_StatePlane_New_York_Long_Island_FIPS_3104",GEOGCS["GCS_
103496 NAD_1983_CORS96_StatePlane_New_York_East_FIPS_3101_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_New_York_East_FIPS_3101_Ft_US",GEOGCS["GCS_
103497 NAD_1983_CORS96_StatePlane_New_York_Central_FIPS_3102_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_New_York_Central_FIPS_3102_Ft_US",GEOGCS["GC
103498 NAD_1983_CORS96_StatePlane_New_York_West_FIPS_3103_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_New_York_West_FIPS_3103_Ft_US",GEOGCS["GCS
103499 NAD_1983_CORS96_StatePlane_New_York_Long_Isl_FIPS_3104_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_New_York_Long_Isl_FIPS_3104_Ft_US",GEOGCS["G
103500 NAD_1983_CORS96_StatePlane_North_Carolina_FIPS_3200 PROJCS["NAD_1983_CORS96_StatePlane_North_Carolina_FIPS_3200",GEOGCS["GCS_NAD_19
103501 NAD_1983_CORS96_StatePlane_North_Carolina_FIPS_3200_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_North_Carolina_FIPS_3200_Ft_US",GEOGCS["GCS_N
103502 NAD_1983_CORS96_StatePlane_North_Dakota_North_FIPS_3301 PROJCS["NAD_1983_CORS96_StatePlane_North_Dakota_North_FIPS_3301",GEOGCS["GCS_NA
103503 NAD_1983_CORS96_StatePlane_North_Dakota_South_FIPS_3302 PROJCS["NAD_1983_CORS96_StatePlane_North_Dakota_South_FIPS_3302",GEOGCS["GCS_NA
103504 NAD_1983_CORS96_StatePlane_North_Dakota_North_FIPS_3301_FtI PROJCS["NAD_1983_CORS96_StatePlane_North_Dakota_North_FIPS_3301_FtI",GEOGCS["GCS
103505 NAD_1983_CORS96_StatePlane_North_Dakota_South_FIPS_3302_FtI PROJCS["NAD_1983_CORS96_StatePlane_North_Dakota_South_FIPS_3302_FtI",GEOGCS["GCS
103506 NAD_1983_CORS96_StatePlane_Ohio_North_FIPS_3401 PROJCS["NAD_1983_CORS96_StatePlane_Ohio_North_FIPS_3401",GEOGCS["GCS_NAD_1983_
103507 NAD_1983_CORS96_StatePlane_Ohio_South_FIPS_3402 PROJCS["NAD_1983_CORS96_StatePlane_Ohio_South_FIPS_3402",GEOGCS["GCS_NAD_1983_
103508 NAD_1983_CORS96_StatePlane_Ohio_North_FIPS_3401_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Ohio_North_FIPS_3401_Ft_US",GEOGCS["GCS_NAD
103509 NAD_1983_CORS96_StatePlane_Ohio_South_FIPS_3402_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Ohio_South_FIPS_3402_Ft_US",GEOGCS["GCS_NAD
103510 NAD_1983_CORS96_StatePlane_Oklahoma_North_FIPS_3501 PROJCS["NAD_1983_CORS96_StatePlane_Oklahoma_North_FIPS_3501",GEOGCS["GCS_NAD_1
103511 NAD_1983_CORS96_StatePlane_Oklahoma_South_FIPS_3502 PROJCS["NAD_1983_CORS96_StatePlane_Oklahoma_South_FIPS_3502",GEOGCS["GCS_NAD_
103512 NAD_1983_CORS96_StatePlane_Oklahoma_North_FIPS_3501_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Oklahoma_North_FIPS_3501_Ft_US",GEOGCS["GCS
103513 NAD_1983_CORS96_StatePlane_Oklahoma_South_FIPS_3502_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Oklahoma_South_FIPS_3502_Ft_US",GEOGCS["GCS
103514 NAD_1983_CORS96_StatePlane_Pennsylvania_North_FIPS_3701 PROJCS["NAD_1983_CORS96_StatePlane_Pennsylvania_North_FIPS_3701",GEOGCS["GCS_NA

Copyright 1995-2015 Esri. All rights reserved. 410


ArcGIS Runtime SDK for .NET

103515 NAD_1983_CORS96_StatePlane_Pennsylvania_North_FIPS_3701_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Pennsylvania_North_FIPS_3701_Ft_US",GEOGCS["G


103516 NAD_1983_CORS96_StatePlane_Pennsylvania_South_FIPS_3702 PROJCS["NAD_1983_CORS96_StatePlane_Pennsylvania_South_FIPS_3702",GEOGCS["GCS_NA
103517 NAD_1983_CORS96_StatePlane_Pennsylvania_South_FIPS_3702_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Pennsylvania_South_FIPS_3702_Ft_US",GEOGCS["G
103518 NAD_1983_CORS96_StatePlane_Rhode_Island_FIPS_3800 PROJCS["NAD_1983_CORS96_StatePlane_Rhode_Island_FIPS_3800",GEOGCS["GCS_NAD_198
103519 NAD_1983_CORS96_StatePlane_Rhode_Island_FIPS_3800_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Rhode_Island_FIPS_3800_Ft_US",GEOGCS["GCS_N
103520 NAD_1983_CORS96_StatePlane_South_Carolina_FIPS_3900 PROJCS["NAD_1983_CORS96_StatePlane_South_Carolina_FIPS_3900",GEOGCS["GCS_NAD_19
103521 NAD_1983_CORS96_StatePlane_South_Carolina_FIPS_3900_Ft_Intl PROJCS["NAD_1983_CORS96_StatePlane_South_Carolina_FIPS_3900_Ft_Intl",GEOGCS["GCS_N
103522 NAD_1983_CORS96_StatePlane_South_Dakota_North_FIPS_4001 PROJCS["NAD_1983_CORS96_StatePlane_South_Dakota_North_FIPS_4001",GEOGCS["GCS_NA
103523 NAD_1983_CORS96_StatePlane_South_Dakota_South_FIPS_4002 PROJCS["NAD_1983_CORS96_StatePlane_South_Dakota_South_FIPS_4002",GEOGCS["GCS_NA
103524 NAD_1983_CORS96_StatePlane_South_Dakota_North_FIPS_4001_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_South_Dakota_North_FIPS_4001_Ft_US",GEOGCS["G
103525 NAD_1983_CORS96_StatePlane_South_Dakota_South_FIPS_4002_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_South_Dakota_South_FIPS_4002_Ft_US",GEOGCS["G
103526 NAD_1983_CORS96_StatePlane_Tennessee_FIPS_4100 PROJCS["NAD_1983_CORS96_StatePlane_Tennessee_FIPS_4100",GEOGCS["GCS_NAD_1983_
103527 NAD_1983_CORS96_StatePlane_Tennessee_FIPS_4100_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Tennessee_FIPS_4100_Ft_US",GEOGCS["GCS_NAD
103539 NAD_1983_CORS96_StatePlane_Texas_North_FIPS_4201 PROJCS["NAD_1983_CORS96_StatePlane_Texas_North_FIPS_4201",GEOGCS["GCS_NAD_1983
103540 NAD_1983_CORS96_StatePlane_Texas_North_Central_FIPS_4202 PROJCS["NAD_1983_CORS96_StatePlane_Texas_North_Central_FIPS_4202",GEOGCS["GCS_NA
103541 NAD_1983_CORS96_StatePlane_Texas_Central_FIPS_4203 PROJCS["NAD_1983_CORS96_StatePlane_Texas_Central_FIPS_4203",GEOGCS["GCS_NAD_19
103542 NAD_1983_CORS96_StatePlane_Texas_South_Central_FIPS_4204 PROJCS["NAD_1983_CORS96_StatePlane_Texas_South_Central_FIPS_4204",GEOGCS["GCS_N
103543 NAD_1983_CORS96_StatePlane_Texas_South_FIPS_4205 PROJCS["NAD_1983_CORS96_StatePlane_Texas_South_FIPS_4205",GEOGCS["GCS_NAD_1983
103544 NAD_1983_CORS96_StatePlane_Texas_North_FIPS_4201_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Texas_North_FIPS_4201_Ft_US",GEOGCS["GCS_NA
103545 NAD_1983_CORS96_StatePlane_Texas_North_Central_FIPS_4202_FtUS PROJCS["NAD_1983_CORS96_StatePlane_Texas_North_Central_FIPS_4202_FtUS",GEOGCS["G
103546 NAD_1983_CORS96_StatePlane_Texas_Central_FIPS_4203_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Texas_Central_FIPS_4203_Ft_US",GEOGCS["GCS_N
103547 NAD_1983_CORS96_StatePlane_Texas_South_Central_FIPS_4204_FtUS PROJCS["NAD_1983_CORS96_StatePlane_Texas_South_Central_FIPS_4204_FtUS",GEOGCS["G
103548 NAD_1983_CORS96_StatePlane_Texas_South_FIPS_4205_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Texas_South_FIPS_4205_Ft_US",GEOGCS["GCS_NA
103549 NAD_1983_CORS96_StatePlane_Utah_North_FIPS_4301 PROJCS["NAD_1983_CORS96_StatePlane_Utah_North_FIPS_4301",GEOGCS["GCS_NAD_1983_
103550 NAD_1983_CORS96_StatePlane_Utah_Central_FIPS_4302 PROJCS["NAD_1983_CORS96_StatePlane_Utah_Central_FIPS_4302",GEOGCS["GCS_NAD_1983
103551 NAD_1983_CORS96_StatePlane_Utah_South_FIPS_4303 PROJCS["NAD_1983_CORS96_StatePlane_Utah_South_FIPS_4303",GEOGCS["GCS_NAD_1983_
103552 NAD_1983_CORS96_StatePlane_Utah_North_FIPS_4301_Ft_Intl PROJCS["NAD_1983_CORS96_StatePlane_Utah_North_FIPS_4301_Ft_Intl",GEOGCS["GCS_NAD
103553 NAD_1983_CORS96_StatePlane_Utah_Central_FIPS_4302_Ft_Intl PROJCS["NAD_1983_CORS96_StatePlane_Utah_Central_FIPS_4302_Ft_Intl",GEOGCS["GCS_NA
103554 NAD_1983_CORS96_StatePlane_Utah_South_FIPS_4303_Ft_Intl PROJCS["NAD_1983_CORS96_StatePlane_Utah_South_FIPS_4303_Ft_Intl",GEOGCS["GCS_NAD
103555 NAD_1983_CORS96_StatePlane_Utah_North_FIPS_4301_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Utah_North_FIPS_4301_Ft_US",GEOGCS["GCS_NAD
103556 NAD_1983_CORS96_StatePlane_Utah_Central_FIPS_4302_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Utah_Central_FIPS_4302_Ft_US",GEOGCS["GCS_NA
103557 NAD_1983_CORS96_StatePlane_Utah_South_FIPS_4303_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Utah_South_FIPS_4303_Ft_US",GEOGCS["GCS_NAD
103558 NAD_1983_CORS96_StatePlane_Vermont_FIPS_4400 PROJCS["NAD_1983_CORS96_StatePlane_Vermont_FIPS_4400",GEOGCS["GCS_NAD_1983_CO
103559 NAD_1983_CORS96_StatePlane_Virginia_North_FIPS_4501 PROJCS["NAD_1983_CORS96_StatePlane_Virginia_North_FIPS_4501",GEOGCS["GCS_NAD_198
103560 NAD_1983_CORS96_StatePlane_Virginia_South_FIPS_4502 PROJCS["NAD_1983_CORS96_StatePlane_Virginia_South_FIPS_4502",GEOGCS["GCS_NAD_19
103561 NAD_1983_CORS96_StatePlane_Virginia_North_FIPS_4501_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Virginia_North_FIPS_4501_Ft_US",GEOGCS["GCS_N
103562 NAD_1983_CORS96_StatePlane_Virginia_South_FIPS_4502_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Virginia_South_FIPS_4502_Ft_US",GEOGCS["GCS_N
103563 NAD_1983_CORS96_StatePlane_Washington_North_FIPS_4601 PROJCS["NAD_1983_CORS96_StatePlane_Washington_North_FIPS_4601",GEOGCS["GCS_NAD
103564 NAD_1983_CORS96_StatePlane_Washington_South_FIPS_4602 PROJCS["NAD_1983_CORS96_StatePlane_Washington_South_FIPS_4602",GEOGCS["GCS_NAD
103565 NAD_1983_CORS96_StatePlane_Washington_North_FIPS_4601_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Washington_North_FIPS_4601_Ft_US",GEOGCS["GC
103566 NAD_1983_CORS96_StatePlane_Washington_South_FIPS_4602_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Washington_South_FIPS_4602_Ft_US",GEOGCS["GC
103567 NAD_1983_CORS96_StatePlane_West_Virginia_North_FIPS_4701 PROJCS["NAD_1983_CORS96_StatePlane_West_Virginia_North_FIPS_4701",GEOGCS["GCS_NA
103568 NAD_1983_CORS96_StatePlane_West_Virginia_South_FIPS_4702 PROJCS["NAD_1983_CORS96_StatePlane_West_Virginia_South_FIPS_4702",GEOGCS["GCS_NA
103569 NAD_1983_CORS96_StatePlane_West_Virginia_North_FIPS_4701_FtUS PROJCS["NAD_1983_CORS96_StatePlane_West_Virginia_North_FIPS_4701_FtUS",GEOGCS["GC
103570 NAD_1983_CORS96_StatePlane_West_Virginia_South_FIPS_4702_FtUS PROJCS["NAD_1983_CORS96_StatePlane_West_Virginia_South_FIPS_4702_FtUS",GEOGCS["GC
103571 NAD_1983_CORS96_StatePlane_Wisconsin_North_FIPS_4801 PROJCS["NAD_1983_CORS96_StatePlane_Wisconsin_North_FIPS_4801",GEOGCS["GCS_NAD_1
103572 NAD_1983_CORS96_StatePlane_Wisconsin_Central_FIPS_4802 PROJCS["NAD_1983_CORS96_StatePlane_Wisconsin_Central_FIPS_4802",GEOGCS["GCS_NAD
103573 NAD_1983_CORS96_StatePlane_Wisconsin_South_FIPS_4803 PROJCS["NAD_1983_CORS96_StatePlane_Wisconsin_South_FIPS_4803",GEOGCS["GCS_NAD_
103574 NAD_1983_CORS96_StatePlane_Wisconsin_North_FIPS_4801_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Wisconsin_North_FIPS_4801_Ft_US",GEOGCS["GCS
103575 NAD_1983_CORS96_StatePlane_Wisconsin_Central_FIPS_4802_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Wisconsin_Central_FIPS_4802_Ft_US",GEOGCS["GC
103576 NAD_1983_CORS96_StatePlane_Wisconsin_South_FIPS_4803_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Wisconsin_South_FIPS_4803_Ft_US",GEOGCS["GCS
103577 NAD_1983_CORS96_StatePlane_Wyoming_East_FIPS_4901 PROJCS["NAD_1983_CORS96_StatePlane_Wyoming_East_FIPS_4901",GEOGCS["GCS_NAD_19
103578 NAD_1983_CORS96_StatePlane_Wyoming_East_Central_FIPS_4902 PROJCS["NAD_1983_CORS96_StatePlane_Wyoming_East_Central_FIPS_4902",GEOGCS["GCS_
103579 NAD_1983_CORS96_StatePlane_Wyoming_West_Central_FIPS_4903 PROJCS["NAD_1983_CORS96_StatePlane_Wyoming_West_Central_FIPS_4903",GEOGCS["GCS_

Copyright 1995-2015 Esri. All rights reserved. 411


ArcGIS Runtime SDK for .NET

103580 NAD_1983_CORS96_StatePlane_Wyoming_West_FIPS_4904 PROJCS["NAD_1983_CORS96_StatePlane_Wyoming_West_FIPS_4904",GEOGCS["GCS_NAD_19


103581 NAD_1983_CORS96_StatePlane_Wyoming_East_FIPS_4901_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Wyoming_East_FIPS_4901_Ft_US",GEOGCS["GCS_N
103582 NAD_1983_CORS96_StatePlane_Wyoming_E_Central_FIPS_4902_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Wyoming_E_Central_FIPS_4902_Ft_US",GEOGCS["G
103583 NAD_1983_CORS96_StatePlane_Wyoming_W_Central_FIPS_4903_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Wyoming_W_Central_FIPS_4903_Ft_US",GEOGCS["G
103585 NAD_1983_CORS96_StatePlane_Wyoming_West_FIPS_4904_Ft_US PROJCS["NAD_1983_CORS96_StatePlane_Wyoming_West_FIPS_4904_Ft_US",GEOGCS["GCS_
103600 NAD_1983_HARN_Adj_MN_Aitkin_Meters PROJCS["NAD_1983_HARN_Adj_MN_Aitkin_Meters",GEOGCS["GCS_North_American_1983_HAR
103601 NAD_1983_HARN_Adj_MN_Clay_Meters PROJCS["NAD_1983_HARN_Adj_MN_Clay_Meters",GEOGCS["GCS_North_American_1983_HARN
103602 NAD_1983_HARN_Adj_MN_Clearwater_Meters PROJCS["NAD_1983_HARN_Adj_MN_Clearwater_Meters",GEOGCS["GCS_North_American_1983
103603 NAD_1983_HARN_Adj_MN_Hubbard_Meters PROJCS["NAD_1983_HARN_Adj_MN_Hubbard_Meters",GEOGCS["GCS_North_American_1983_H
103604 NAD_1983_HARN_Adj_MN_Lake_Meters PROJCS["NAD_1983_HARN_Adj_MN_Lake_Meters",GEOGCS["GCS_North_American_1983_HAR
103605 NAD_1983_HARN_Adj_MN_Mille_Lacs_Meters PROJCS["NAD_1983_HARN_Adj_MN_Mille_Lacs_Meters",GEOGCS["GCS_North_American_1983
103606 NAD_1983_HARN_Adj_MN_Washington_Meters PROJCS["NAD_1983_HARN_Adj_MN_Washington_Meters",GEOGCS["GCS_North_American_198
103607 NAD_1983_HARN_Adj_MN_Wilkin_Meters PROJCS["NAD_1983_HARN_Adj_MN_Wilkin_Meters",GEOGCS["GCS_North_American_1983_HAR
103608 NAD_1983_HARN_Adj_MN_Anoka_Meters PROJCS["NAD_1983_HARN_Adj_MN_Anoka_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103609 NAD_1983_HARN_Adj_MN_Becker_Meters PROJCS["NAD_1983_HARN_Adj_MN_Becker_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103610 NAD_1983_HARN_Adj_MN_Beltrami_North_Meters PROJCS["NAD_1983_HARN_Adj_MN_Beltrami_North_Meters",GEOGCS["GCS_NAD_1983_HARN
103611 NAD_1983_HARN_Adj_MN_Beltrami_South_Meters PROJCS["NAD_1983_HARN_Adj_MN_Beltrami_South_Meters",GEOGCS["GCS_NAD_1983_HARN
103612 NAD_1983_HARN_Adj_MN_Benton_Meters PROJCS["NAD_1983_HARN_Adj_MN_Benton_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103613 NAD_1983_HARN_Adj_MN_Big_Stone_Meters PROJCS["NAD_1983_HARN_Adj_MN_Big_Stone_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj
103614 NAD_1983_HARN_Adj_MN_Blue_Earth_Meters PROJCS["NAD_1983_HARN_Adj_MN_Blue_Earth_Meters",GEOGCS["GCS_NAD_1983_HARN_Ad
103615 NAD_1983_HARN_Adj_MN_Brown_Meters PROJCS["NAD_1983_HARN_Adj_MN_Brown_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103616 NAD_1983_HARN_Adj_MN_Carlton_Meters PROJCS["NAD_1983_HARN_Adj_MN_Carlton_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103617 NAD_1983_HARN_Adj_MN_Carver_Meters PROJCS["NAD_1983_HARN_Adj_MN_Carver_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103618 NAD_1983_HARN_Adj_MN_Cass_North_Meters PROJCS["NAD_1983_HARN_Adj_MN_Cass_North_Meters",GEOGCS["GCS_NAD_1983_HARN_A
103619 NAD_1983_HARN_Adj_MN_Cass_South_Meters PROJCS["NAD_1983_HARN_Adj_MN_Cass_South_Meters",GEOGCS["GCS_NAD_1983_HARN_A
103620 NAD_1983_HARN_Adj_MN_Chippewa_Meters PROJCS["NAD_1983_HARN_Adj_MN_Chippewa_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj
103621 NAD_1983_HARN_Adj_MN_Chisago_Meters PROJCS["NAD_1983_HARN_Adj_MN_Chisago_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103622 NAD_1983_HARN_Adj_MN_Cook_North_Meters PROJCS["NAD_1983_HARN_Adj_MN_Cook_North_Meters",GEOGCS["GCS_NAD_1983_HARN_A
103623 NAD_1983_HARN_Adj_MN_Cook_South_Meters PROJCS["NAD_1983_HARN_Adj_MN_Cook_South_Meters",GEOGCS["GCS_NAD_1983_HARN_A
103624 NAD_1983_HARN_Adj_MN_Cottonwood_Meters PROJCS["NAD_1983_HARN_Adj_MN_Cottonwood_Meters",GEOGCS["GCS_NAD_1983_HARN_A
103625 NAD_1983_HARN_Adj_MN_Crow_Wing_Meters PROJCS["NAD_1983_HARN_Adj_MN_Crow_Wing_Meters",GEOGCS["GCS_NAD_1983_HARN_Ad
103626 NAD_1983_HARN_Adj_MN_Dakota_Meters PROJCS["NAD_1983_HARN_Adj_MN_Dakota_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103627 NAD_1983_HARN_Adj_MN_Dodge_Meters PROJCS["NAD_1983_HARN_Adj_MN_Dodge_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103628 NAD_1983_HARN_Adj_MN_Douglas_Meters PROJCS["NAD_1983_HARN_Adj_MN_Douglas_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103629 NAD_1983_HARN_Adj_MN_Faribault_Meters PROJCS["NAD_1983_HARN_Adj_MN_Faribault_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_
103630 NAD_1983_HARN_Adj_MN_Fillmore_Meters PROJCS["NAD_1983_HARN_Adj_MN_Fillmore_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103631 NAD_1983_HARN_Adj_MN_Freeborn_Meters PROJCS["NAD_1983_HARN_Adj_MN_Freeborn_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_
103632 NAD_1983_HARN_Adj_MN_Goodhue_Meters PROJCS["NAD_1983_HARN_Adj_MN_Goodhue_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_
103633 NAD_1983_HARN_Adj_MN_Grant_Meters PROJCS["NAD_1983_HARN_Adj_MN_Grant_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103634 NAD_1983_HARN_Adj_MN_Hennepin_Meters PROJCS["NAD_1983_HARN_Adj_MN_Hennepin_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_
103635 NAD_1983_HARN_Adj_MN_Houston_Meters PROJCS["NAD_1983_HARN_Adj_MN_Houston_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103636 NAD_1983_HARN_Adj_MN_Isanti_Meters PROJCS["NAD_1983_HARN_Adj_MN_Isanti_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103637 NAD_1983_HARN_Adj_MN_Itasca_North_Meters PROJCS["NAD_1983_HARN_Adj_MN_Itasca_North_Meters",GEOGCS["GCS_NAD_1983_HARN_A
103638 NAD_1983_HARN_Adj_MN_Itasca_South_Meters PROJCS["NAD_1983_HARN_Adj_MN_Itasca_South_Meters",GEOGCS["GCS_NAD_1983_HARN_A
103639 NAD_1983_HARN_Adj_MN_Jackson_Meters PROJCS["NAD_1983_HARN_Adj_MN_Jackson_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103640 NAD_1983_HARN_Adj_MN_Kanabec_Meters PROJCS["NAD_1983_HARN_Adj_MN_Kanabec_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_
103641 NAD_1983_HARN_Adj_MN_Kandiyohi_Meters PROJCS["NAD_1983_HARN_Adj_MN_Kandiyohi_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_
103642 NAD_1983_HARN_Adj_MN_Kittson_Meters PROJCS["NAD_1983_HARN_Adj_MN_Kittson_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103643 NAD_1983_HARN_Adj_MN_Koochiching_Meters PROJCS["NAD_1983_HARN_Adj_MN_Koochiching_Meters",GEOGCS["GCS_NAD_1983_HARN_A
103644 NAD_1983_HARN_Adj_MN_Lac_Qui_Parle_Meters PROJCS["NAD_1983_HARN_Adj_MN_Lac_Qui_Parle_Meters",GEOGCS["GCS_NAD_1983_HARN
103645 NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_North_Meters PROJCS["NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_North_Meters",GEOGCS["GCS_NAD_
103646 NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_South_Meters PROJCS["NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_South_Meters",GEOGCS["GCS_NAD_
103647 NAD_1983_HARN_Adj_MN_Le_Sueur_Meters PROJCS["NAD_1983_HARN_Adj_MN_Le_Sueur_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_
103648 NAD_1983_HARN_Adj_MN_Lincoln_Meters PROJCS["NAD_1983_HARN_Adj_MN_Lincoln_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M

Copyright 1995-2015 Esri. All rights reserved. 412


ArcGIS Runtime SDK for .NET

103649 NAD_1983_HARN_Adj_MN_Lyon_Meters PROJCS["NAD_1983_HARN_Adj_MN_Lyon_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_


103650 NAD_1983_HARN_Adj_MN_McLeod_Meters PROJCS["NAD_1983_HARN_Adj_MN_McLeod_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103651 NAD_1983_HARN_Adj_MN_Mahnomen_Meters PROJCS["NAD_1983_HARN_Adj_MN_Mahnomen_Meters",GEOGCS["GCS_NAD_1983_HARN_Ad
103652 NAD_1983_HARN_Adj_MN_Marshall_Meters PROJCS["NAD_1983_HARN_Adj_MN_Marshall_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103653 NAD_1983_HARN_Adj_MN_Martin_Meters PROJCS["NAD_1983_HARN_Adj_MN_Martin_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103654 NAD_1983_HARN_Adj_MN_Meeker_Meters PROJCS["NAD_1983_HARN_Adj_MN_Meeker_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103655 NAD_1983_HARN_Adj_MN_Morrison_Meters PROJCS["NAD_1983_HARN_Adj_MN_Morrison_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_
103656 NAD_1983_HARN_Adj_MN_Mower_Meters PROJCS["NAD_1983_HARN_Adj_MN_Mower_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103657 NAD_1983_HARN_Adj_MN_Murray_Meters PROJCS["NAD_1983_HARN_Adj_MN_Murray_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103658 NAD_1983_HARN_Adj_MN_Nicollet_Meters PROJCS["NAD_1983_HARN_Adj_MN_Nicollet_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103659 NAD_1983_HARN_Adj_MN_Nobles_Meters PROJCS["NAD_1983_HARN_Adj_MN_Nobles_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103660 NAD_1983_HARN_Adj_MN_Norman_Meters PROJCS["NAD_1983_HARN_Adj_MN_Norman_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103661 NAD_1983_HARN_Adj_MN_Olmsted_Meters PROJCS["NAD_1983_HARN_Adj_MN_Olmsted_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103662 NAD_1983_HARN_Adj_MN_Ottertail_Meters PROJCS["NAD_1983_HARN_Adj_MN_Ottertail_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103663 NAD_1983_HARN_Adj_MN_Pennington_Meters PROJCS["NAD_1983_HARN_Adj_MN_Pennington_Meters",GEOGCS["GCS_NAD_1983_HARN_Ad
103664 NAD_1983_HARN_Adj_MN_Pine_Meters PROJCS["NAD_1983_HARN_Adj_MN_Pine_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103665 NAD_1983_HARN_Adj_MN_Pipestone_Meters PROJCS["NAD_1983_HARN_Adj_MN_Pipestone_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj
103666 NAD_1983_HARN_Adj_MN_Polk_Meters PROJCS["NAD_1983_HARN_Adj_MN_Polk_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103667 NAD_1983_HARN_Adj_MN_Pope_Meters PROJCS["NAD_1983_HARN_Adj_MN_Pope_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103668 NAD_1983_HARN_Adj_MN_Ramsey_Meters PROJCS["NAD_1983_HARN_Adj_MN_Ramsey_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103669 NAD_1983_HARN_Adj_MN_Red_Lake_Meters PROJCS["NAD_1983_HARN_Adj_MN_Red_Lake_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj
103670 NAD_1983_HARN_Adj_MN_Redwood_Meters PROJCS["NAD_1983_HARN_Adj_MN_Redwood_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_
103671 NAD_1983_HARN_Adj_MN_Renville_Meters PROJCS["NAD_1983_HARN_Adj_MN_Renville_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103672 NAD_1983_HARN_Adj_MN_Rice_Meters PROJCS["NAD_1983_HARN_Adj_MN_Rice_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103673 NAD_1983_HARN_Adj_MN_Rock_Meters PROJCS["NAD_1983_HARN_Adj_MN_Rock_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103674 NAD_1983_HARN_Adj_MN_Roseau_Meters PROJCS["NAD_1983_HARN_Adj_MN_Roseau_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103675 NAD_1983_HARN_Adj_MN_St_Louis_North_Meters PROJCS["NAD_1983_HARN_Adj_MN_St_Louis_North_Meters",GEOGCS["GCS_NAD_1983_HARN
103676 NAD_1983_HARN_Adj_MN_St_Louis_Central_Meters PROJCS["NAD_1983_HARN_Adj_MN_St_Louis_Central_Meters",GEOGCS["GCS_NAD_1983_HAR
103677 NAD_1983_HARN_Adj_MN_St_Louis_South_Meters PROJCS["NAD_1983_HARN_Adj_MN_St_Louis_South_Meters",GEOGCS["GCS_NAD_1983_HARN
103678 NAD_1983_HARN_Adj_MN_Scott_Meters PROJCS["NAD_1983_HARN_Adj_MN_Scott_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103679 NAD_1983_HARN_Adj_MN_Sherburne_Meters PROJCS["NAD_1983_HARN_Adj_MN_Sherburne_Meters",GEOGCS["GCS_NAD_1983_HARN_Ad
103680 NAD_1983_HARN_Adj_MN_Sibley_Meters PROJCS["NAD_1983_HARN_Adj_MN_Sibley_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103681 NAD_1983_HARN_Adj_MN_Stearns_Meters PROJCS["NAD_1983_HARN_Adj_MN_Stearns_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103682 NAD_1983_HARN_Adj_MN_Steele_Meters PROJCS["NAD_1983_HARN_Adj_MN_Steele_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103683 NAD_1983_HARN_Adj_MN_Stevens_Meters PROJCS["NAD_1983_HARN_Adj_MN_Stevens_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103684 NAD_1983_HARN_Adj_MN_Swift_Meters PROJCS["NAD_1983_HARN_Adj_MN_Swift_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103685 NAD_1983_HARN_Adj_MN_Todd_Meters PROJCS["NAD_1983_HARN_Adj_MN_Todd_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103686 NAD_1983_HARN_Adj_MN_Traverse_Meters PROJCS["NAD_1983_HARN_Adj_MN_Traverse_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_
103687 NAD_1983_HARN_Adj_MN_Wabasha_Meters PROJCS["NAD_1983_HARN_Adj_MN_Wabasha_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_
103688 NAD_1983_HARN_Adj_MN_Wadena_Meters PROJCS["NAD_1983_HARN_Adj_MN_Wadena_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103689 NAD_1983_HARN_Adj_MN_Waseca_Meters PROJCS["NAD_1983_HARN_Adj_MN_Waseca_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103690 NAD_1983_HARN_Adj_MN_Watonwan_Meters PROJCS["NAD_1983_HARN_Adj_MN_Watonwan_Meters",GEOGCS["GCS_NAD_1983_HARN_Ad
103691 NAD_1983_HARN_Adj_MN_Winona_Meters PROJCS["NAD_1983_HARN_Adj_MN_Winona_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103692 NAD_1983_HARN_Adj_MN_Wright_Meters PROJCS["NAD_1983_HARN_Adj_MN_Wright_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103693 NAD_1983_HARN_Adj_MN_Yellow_Medicine_Meters PROJCS["NAD_1983_HARN_Adj_MN_Yellow_Medicine_Meters",GEOGCS["GCS_NAD_1983_HAR
103694 NAD_1983_HARN_Adj_MN_St_Louis_CS96_Meters PROJCS["NAD_1983_HARN_Adj_MN_St_Louis_CS96_Meters",GEOGCS["GCS_NAD_1983_HARN
103695 NAD_1983_HARN_Adj_MN_St_Louis_CS96_Feet PROJCS["NAD_1983_HARN_Adj_MN_St_Louis_CS96_Feet",GEOGCS["GCS_NAD_1983_HARN_
103700 NAD_1983_HARN_Adj_MN_Aitkin_Feet PROJCS["NAD_1983_HARN_Adj_MN_Aitkin_Feet",GEOGCS["GCS_North_American_1983_HARN
103701 NAD_1983_HARN_Adj_MN_Clay_Feet PROJCS["NAD_1983_HARN_Adj_MN_Clay_Feet",GEOGCS["GCS_North_American_1983_HARN",
103702 NAD_1983_HARN_Adj_MN_Clearwater_Feet PROJCS["NAD_1983_HARN_Adj_MN_Clearwater_Feet",GEOGCS["GCS_North_American_1983_H
103703 NAD_1983_HARN_Adj_MN_Hubbard_Feet PROJCS["NAD_1983_HARN_Adj_MN_Hubbard_Feet",GEOGCS["GCS_North_American_1983_HA
103704 NAD_1983_HARN_Adj_MN_Lake_Feet PROJCS["NAD_1983_HARN_Adj_MN_Lake_Feet",GEOGCS["GCS_North_American_1983_HARN"
103705 NAD_1983_HARN_Adj_MN_Mille_Lacs_Feet PROJCS["NAD_1983_HARN_Adj_MN_Mille_Lacs_Feet",GEOGCS["GCS_North_American_1983_H
103706 NAD_1983_HARN_Adj_MN_Washington_Feet PROJCS["NAD_1983_HARN_Adj_MN_Washington_Feet",GEOGCS["GCS_North_American_1983_

Copyright 1995-2015 Esri. All rights reserved. 413


ArcGIS Runtime SDK for .NET

103707 NAD_1983_HARN_Adj_MN_Wilkin_Feet PROJCS["NAD_1983_HARN_Adj_MN_Wilkin_Feet",GEOGCS["GCS_North_American_1983_HARN


103708 NAD_1983_HARN_Adj_MN_Anoka_Feet PROJCS["NAD_1983_HARN_Adj_MN_Anoka_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103709 NAD_1983_HARN_Adj_MN_Becker_Feet PROJCS["NAD_1983_HARN_Adj_MN_Becker_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103710 NAD_1983_HARN_Adj_MN_Beltrami_North_Feet PROJCS["NAD_1983_HARN_Adj_MN_Beltrami_North_Feet",GEOGCS["GCS_NAD_1983_HARN_A
103711 NAD_1983_HARN_Adj_MN_Beltrami_South_Feet PROJCS["NAD_1983_HARN_Adj_MN_Beltrami_South_Feet",GEOGCS["GCS_NAD_1983_HARN_A
103712 NAD_1983_HARN_Adj_MN_Benton_Feet PROJCS["NAD_1983_HARN_Adj_MN_Benton_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103713 NAD_1983_HARN_Adj_MN_Big_Stone_Feet PROJCS["NAD_1983_HARN_Adj_MN_Big_Stone_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103714 NAD_1983_HARN_Adj_MN_Blue_Earth_Feet PROJCS["NAD_1983_HARN_Adj_MN_Blue_Earth_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_
103715 NAD_1983_HARN_Adj_MN_Brown_Feet PROJCS["NAD_1983_HARN_Adj_MN_Brown_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103716 NAD_1983_HARN_Adj_MN_Carlton_Feet PROJCS["NAD_1983_HARN_Adj_MN_Carlton_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103717 NAD_1983_HARN_Adj_MN_Carver_Feet PROJCS["NAD_1983_HARN_Adj_MN_Carver_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103718 NAD_1983_HARN_Adj_MN_Cass_North_Feet PROJCS["NAD_1983_HARN_Adj_MN_Cass_North_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_
103719 NAD_1983_HARN_Adj_MN_Cass_South_Feet PROJCS["NAD_1983_HARN_Adj_MN_Cass_South_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_
103720 NAD_1983_HARN_Adj_MN_Chippewa_Feet PROJCS["NAD_1983_HARN_Adj_MN_Chippewa_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103721 NAD_1983_HARN_Adj_MN_Chisago_Feet PROJCS["NAD_1983_HARN_Adj_MN_Chisago_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103722 NAD_1983_HARN_Adj_MN_Cook_North_Feet PROJCS["NAD_1983_HARN_Adj_MN_Cook_North_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_
103723 NAD_1983_HARN_Adj_MN_Cook_South_Feet PROJCS["NAD_1983_HARN_Adj_MN_Cook_South_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj
103724 NAD_1983_HARN_Adj_MN_Cottonwood_Feet PROJCS["NAD_1983_HARN_Adj_MN_Cottonwood_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_
103725 NAD_1983_HARN_Adj_MN_Crow_Wing_Feet PROJCS["NAD_1983_HARN_Adj_MN_Crow_Wing_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_
103726 NAD_1983_HARN_Adj_MN_Dakota_Feet PROJCS["NAD_1983_HARN_Adj_MN_Dakota_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103727 NAD_1983_HARN_Adj_MN_Dodge_Feet PROJCS["NAD_1983_HARN_Adj_MN_Dodge_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103728 NAD_1983_HARN_Adj_MN_Douglas_Feet PROJCS["NAD_1983_HARN_Adj_MN_Douglas_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103729 NAD_1983_HARN_Adj_MN_Faribault_Feet PROJCS["NAD_1983_HARN_Adj_MN_Faribault_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103730 NAD_1983_HARN_Adj_MN_Fillmore_Feet PROJCS["NAD_1983_HARN_Adj_MN_Fillmore_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103731 NAD_1983_HARN_Adj_MN_Freeborn_Feet PROJCS["NAD_1983_HARN_Adj_MN_Freeborn_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103732 NAD_1983_HARN_Adj_MN_Goodhue_Feet PROJCS["NAD_1983_HARN_Adj_MN_Goodhue_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103733 NAD_1983_HARN_Adj_MN_Grant_Feet PROJCS["NAD_1983_HARN_Adj_MN_Grant_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_G
103734 NAD_1983_HARN_Adj_MN_Hennepin_Feet PROJCS["NAD_1983_HARN_Adj_MN_Hennepin_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103735 NAD_1983_HARN_Adj_MN_Houston_Feet PROJCS["NAD_1983_HARN_Adj_MN_Houston_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103736 NAD_1983_HARN_Adj_MN_Isanti_Feet PROJCS["NAD_1983_HARN_Adj_MN_Isanti_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Is
103737 NAD_1983_HARN_Adj_MN_Itasca_North_Feet PROJCS["NAD_1983_HARN_Adj_MN_Itasca_North_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj
103738 NAD_1983_HARN_Adj_MN_Itasca_South_Feet PROJCS["NAD_1983_HARN_Adj_MN_Itasca_South_Feet",GEOGCS["GCS_NAD_1983_HARN_Ad
103739 NAD_1983_HARN_Adj_MN_Jackson_Feet PROJCS["NAD_1983_HARN_Adj_MN_Jackson_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103740 NAD_1983_HARN_Adj_MN_Kanabec_Feet PROJCS["NAD_1983_HARN_Adj_MN_Kanabec_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103741 NAD_1983_HARN_Adj_MN_Kandiyohi_Feet PROJCS["NAD_1983_HARN_Adj_MN_Kandiyohi_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103742 NAD_1983_HARN_Adj_MN_Kittson_Feet PROJCS["NAD_1983_HARN_Adj_MN_Kittson_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103743 NAD_1983_HARN_Adj_MN_Koochiching_Feet PROJCS["NAD_1983_HARN_Adj_MN_Koochiching_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_
103744 NAD_1983_HARN_Adj_MN_Lac_Qui_Parle_Feet PROJCS["NAD_1983_HARN_Adj_MN_Lac_Qui_Parle_Feet",GEOGCS["GCS_NAD_1983_HARN_A
103745 NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_North_Feet PROJCS["NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_North_Feet",GEOGCS["GCS_NAD_19
103746 NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_South_Feet PROJCS["NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_South_Feet",GEOGCS["GCS_NAD_19
103747 NAD_1983_HARN_Adj_MN_Le_Sueur_Feet PROJCS["NAD_1983_HARN_Adj_MN_Le_Sueur_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103748 NAD_1983_HARN_Adj_MN_Lincoln_Feet PROJCS["NAD_1983_HARN_Adj_MN_Lincoln_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103749 NAD_1983_HARN_Adj_MN_Lyon_Feet PROJCS["NAD_1983_HARN_Adj_MN_Lyon_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Ly
103750 NAD_1983_HARN_Adj_MN_McLeod_Feet PROJCS["NAD_1983_HARN_Adj_MN_McLeod_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103751 NAD_1983_HARN_Adj_MN_Mahnomen_Feet PROJCS["NAD_1983_HARN_Adj_MN_Mahnomen_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_
103752 NAD_1983_HARN_Adj_MN_Marshall_Feet PROJCS["NAD_1983_HARN_Adj_MN_Marshall_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103753 NAD_1983_HARN_Adj_MN_Martin_Feet PROJCS["NAD_1983_HARN_Adj_MN_Martin_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_M
103754 NAD_1983_HARN_Adj_MN_Meeker_Feet PROJCS["NAD_1983_HARN_Adj_MN_Meeker_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103755 NAD_1983_HARN_Adj_MN_Morrison_Feet PROJCS["NAD_1983_HARN_Adj_MN_Morrison_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103756 NAD_1983_HARN_Adj_MN_Mower_Feet PROJCS["NAD_1983_HARN_Adj_MN_Mower_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103757 NAD_1983_HARN_Adj_MN_Murray_Feet PROJCS["NAD_1983_HARN_Adj_MN_Murray_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103758 NAD_1983_HARN_Adj_MN_Nicollet_Feet PROJCS["NAD_1983_HARN_Adj_MN_Nicollet_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103759 NAD_1983_HARN_Adj_MN_Nobles_Feet PROJCS["NAD_1983_HARN_Adj_MN_Nobles_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103760 NAD_1983_HARN_Adj_MN_Norman_Feet PROJCS["NAD_1983_HARN_Adj_MN_Norman_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN

Copyright 1995-2015 Esri. All rights reserved. 414


ArcGIS Runtime SDK for .NET

103761 NAD_1983_HARN_Adj_MN_Olmsted_Feet PROJCS["NAD_1983_HARN_Adj_MN_Olmsted_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN


103762 NAD_1983_HARN_Adj_MN_Ottertail_Feet PROJCS["NAD_1983_HARN_Adj_MN_Ottertail_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103763 NAD_1983_HARN_Adj_MN_Pennington_Feet PROJCS["NAD_1983_HARN_Adj_MN_Pennington_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_
103764 NAD_1983_HARN_Adj_MN_Pine_Feet PROJCS["NAD_1983_HARN_Adj_MN_Pine_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Pi
103765 NAD_1983_HARN_Adj_MN_Pipestone_Feet PROJCS["NAD_1983_HARN_Adj_MN_Pipestone_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103766 NAD_1983_HARN_Adj_MN_Polk_Feet PROJCS["NAD_1983_HARN_Adj_MN_Polk_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Po
103767 NAD_1983_HARN_Adj_MN_Pope_Feet PROJCS["NAD_1983_HARN_Adj_MN_Pope_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_P
103768 NAD_1983_HARN_Adj_MN_Ramsey_Feet PROJCS["NAD_1983_HARN_Adj_MN_Ramsey_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103769 NAD_1983_HARN_Adj_MN_Red_Lake_Feet PROJCS["NAD_1983_HARN_Adj_MN_Red_Lake_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103770 NAD_1983_HARN_Adj_MN_Redwood_Feet PROJCS["NAD_1983_HARN_Adj_MN_Redwood_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103771 NAD_1983_HARN_Adj_MN_Renville_Feet PROJCS["NAD_1983_HARN_Adj_MN_Renville_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103772 NAD_1983_HARN_Adj_MN_Rice_Feet PROJCS["NAD_1983_HARN_Adj_MN_Rice_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Ri
103773 NAD_1983_HARN_Adj_MN_Rock_Feet PROJCS["NAD_1983_HARN_Adj_MN_Rock_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_R
103774 NAD_1983_HARN_Adj_MN_Roseau_Feet PROJCS["NAD_1983_HARN_Adj_MN_Roseau_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103775 NAD_1983_HARN_Adj_MN_St_Louis_North_Feet PROJCS["NAD_1983_HARN_Adj_MN_St_Louis_North_Feet",GEOGCS["GCS_NAD_1983_HARN_A
103776 NAD_1983_HARN_Adj_MN_St_Louis_Central_Feet PROJCS["NAD_1983_HARN_Adj_MN_St_Louis_Central_Feet",GEOGCS["GCS_NAD_1983_HARN
103777 NAD_1983_HARN_Adj_MN_St_Louis_South_Feet PROJCS["NAD_1983_HARN_Adj_MN_St_Louis_South_Feet",GEOGCS["GCS_NAD_1983_HARN_
103778 NAD_1983_HARN_Adj_MN_Scott_Feet PROJCS["NAD_1983_HARN_Adj_MN_Scott_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_S
103779 NAD_1983_HARN_Adj_MN_Sherburne_Feet PROJCS["NAD_1983_HARN_Adj_MN_Sherburne_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103780 NAD_1983_HARN_Adj_MN_Sibley_Feet PROJCS["NAD_1983_HARN_Adj_MN_Sibley_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_S
103781 NAD_1983_HARN_Adj_MN_Stearns_Feet PROJCS["NAD_1983_HARN_Adj_MN_Stearns_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103782 NAD_1983_HARN_Adj_MN_Steele_Feet PROJCS["NAD_1983_HARN_Adj_MN_Steele_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103783 NAD_1983_HARN_Adj_MN_Stevens_Feet PROJCS["NAD_1983_HARN_Adj_MN_Stevens_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103784 NAD_1983_HARN_Adj_MN_Swift_Feet PROJCS["NAD_1983_HARN_Adj_MN_Swift_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_S
103785 NAD_1983_HARN_Adj_MN_Todd_Feet PROJCS["NAD_1983_HARN_Adj_MN_Todd_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_T
103786 NAD_1983_HARN_Adj_MN_Traverse_Feet PROJCS["NAD_1983_HARN_Adj_MN_Traverse_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103787 NAD_1983_HARN_Adj_MN_Wabasha_Feet PROJCS["NAD_1983_HARN_Adj_MN_Wabasha_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103788 NAD_1983_HARN_Adj_MN_Wadena_Feet PROJCS["NAD_1983_HARN_Adj_MN_Wadena_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103789 NAD_1983_HARN_Adj_MN_Waseca_Feet PROJCS["NAD_1983_HARN_Adj_MN_Waseca_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103790 NAD_1983_HARN_Adj_MN_Watonwan_Feet PROJCS["NAD_1983_HARN_Adj_MN_Watonwan_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_M
103791 NAD_1983_HARN_Adj_MN_Winona_Feet PROJCS["NAD_1983_HARN_Adj_MN_Winona_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN
103792 NAD_1983_HARN_Adj_MN_Wright_Feet PROJCS["NAD_1983_HARN_Adj_MN_Wright_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_
103793 NAD_1983_HARN_Adj_MN_Yellow_Medicine_Feet PROJCS["NAD_1983_HARN_Adj_MN_Yellow_Medicine_Feet",GEOGCS["GCS_NAD_1983_HARN

Related Topics
Spatial references

Copyright 1995-2015 Esri. All rights reserved. 415


ArcGIS Runtime SDK for .NET

Local Server package support


Local package files are only supported for Windows Desktop apps. Map packages, tile packages, geoprocessing packages, and so on are
not available for a Windows Store app.

Copyright 1995-2015 Esri. All rights reserved. 416


ArcGIS Runtime SDK for .NET

Local Server raster support


Access to raster data is available using the Local Server, which is only supported for Windows Desktop apps. Raster formats are not
available in a Windows Store app.

Copyright 1995-2015 Esri. All rights reserved. 417


ArcGIS Runtime SDK for .NET

Local Server geoprocessing tools support


Geoprocessing is available using the Local Server, which is only supported for Windows Desktop apps. Geoprocessing tools are not
available for a Windows Store app.

Copyright 1995-2015 Esri. All rights reserved. 418


ArcGIS Runtime SDK for .NET

Supported languages
Language support in ArcGIS Runtime provides exception messages in the language of the computer running the app. The following
languages (cultures) are supported.
Arabic (ar)
Czech (cs)
Danish (da)
German (de)
Spanish (es)
Estonian (et)
Finnish (fi)
French (fr)
Hebrew (he)
Italian (it)
Japanese (jp)
Korean (ko)
Lithuanian (li)
Latvian (lv)
Norwegian (nb-NO)
Dutch (nl)
Polish (pl)
Portuguese (pt-BR, pt-PT)
Romanian (ro)
Russian (ru)
Swedish (sv)
Chinese (zh-CN, zh-Hans)

Copyright 1995-2015 Esri. All rights reserved. 419


ArcGIS Runtime SDK for .NET

Legal
The following legal notices are installed in the legal subfolder of the ArcGIS Runtime SDK installation folder.
Copyright and Trademarks
Licensing Terms of Use (End User Licensing Agreement)
Acknowledgments of third parties whose software has been used in permissible forms with ArcGIS Runtime SDKs
For the latest versions of these documents and other legal information, see http://www.esri.com/legal.

Copyright 1995-2015 Esri. All rights reserved. 420

Das könnte Ihnen auch gefallen