ArcGIS map image layer

API classes: AGSArcGISMapImageLayer, AGSArcGISMapImageSublayer

ArcGIS map image layer displays maps from an ArcGIS map server. A 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. While the image itself does not contain information about the features it displays, you can get the underlying data (service feature table) for each sublayer. This layer supports time-based filtering.

Functional characteristics

Map images are created and returned by the server on every request, so they always show the latest data at the time of the request. Characteristics of the image, such as brightness, contrast, gamma, and opacity can be specified. You can also control the visibility and symbols of sublayers and filter data with layer definition expressions. The spatial reference can be changed from the service's default and the service will reproject each image on-the-fly.

The underlying service feature table for each map image sublayer (or for non-spatial tables used in the service) can be accessed. These tables can be queried using any valid combination of attribute, spatial, and temporal criteria. You can also query for summary statistics or to find related features in other tables.

Performance characteristics

The map service creates map images on-the-fly. Rendering time depends on the amount and complexity of the data in the map. This will typically be slower than fetching the equivalent map as pre-rendered tiles. Because the server renders the map, map image layers require less processing time on the client than similar maps rendered locally.

ArcGIS map image layers are good candidates for showing features that change periodically over time, or that require some sort of filtering by the user. Although rendering occurs on the server, the client has access to service feature tables for all sublayers (as well as non-spatial tables and relationships).

Learn more

ArcGIS tiled layer

API classes: AGSArcGISTiledLayer, AGSTileCache

ArcGIS tiled layers consume raster tiles provided by an ArcGIS service or a tile package. Raster tiles are cached by the server at various scales; the client requests the tiles needed at a particular map extent. You can use AGSExportTileCacheTask to generate and download tiles from the service, creating a tile package (.tpk). Alternatively, you can use ArcGIS Pro to create a map tile package and provision it to the device. Learn more about creating offline layers.

Functional characteristics

ArcGIS tiled layers do not support reprojection, query, select, identify, or editing.

Performance characteristics

Tiles are generated by the server only once when the service is originally created. Requests for tiles are made on multiple threads and handled asynchronously. The size of each returned tile increases as the resolution or complexity of the image in the tile increases. For example, high-resolution imagery tiles can be larger in file size than topographic mapping for the same area and map extent.

Learn more

ArcGIS vector tiled layer

API classes: AGSArcGISVectorTiledLayer, AGSVectorTileCache

An ArcGIS vector tile layer consumes vector tiles and an associated style for drawing them. There are many styled vector basemaps available through ArcGIS online; if you can’t find one that works, it is easy to create your own with the online style editor. Your customized vector layers can be saved to and read from ArcGIS Online.

You can use AGSExportVectorTilesTask to generate and download a tile cache directly from a service to the device. The cache will be a single vector tile package (.vtpk) file. Alternatively, you can use ArcGIS Pro to create a vector tile package and provision it to the device. Learn more about Creating offline layers.

Functional characteristics

Vector tiled layers do not support identify, query, selection or time. Vector tiled layers cannot be displayed in scenes.

Performance characteristics

Because vector tiles are defined in terms of points, lines, and polygons, they are very fast to draw. Vector data is usually smaller than raster data and may be more suitable in low-bandwidth or offline environments. Because vector tiles are rendered on the device, they always look good, regardless of screen size or resolution.

Performance characteristics

Learn more

ENC layer

API classes: AGSENCLayer, AGSENCCell, AGSENCDataSet

Electronic navigational charts (ENCs) are georeferenced vector datasets for the visualization and analysis of hydrographic and maritime information. ArcGIS Runtime supports ENCs that conform to the International Hydrographic Organization (IHO) S-57 standard. For more information, see Display electronic navigational charts.

Functional characteristics

ENC layer supports identify and selection. ENC layer does not support query or time. ArcGIS Runtime's ENC implementation is not suitable for use in navigation or the creation of an Electronic Chart Display and Information System (ECDIS).

Performance characteristics

ENC layers differ from other layer types in that ENC content is cached in an internal collection of SENC files. When an ENC layer is displayed, only the content in the SENC files is referenced. SENC files are produced when an ENC cell is read for the first time and updated as update sets are applied. You can set the path to the SENC storage directory with the AGSENCEnvironmentSettings.SENCDataDirectory property. SENC files are in a binary format that is not intended to be shared between platforms or versions of ArcGIS Runtime.

Learn more

Feature collection layer

API classes: AGSFeatureCollectionLayer

A feature collection layer is used to display the features in a feature collection. A feature collection provides a way of grouping logically-related feature collection tables. Tables in the collection can have different schema, geometry types, and rendering. Feature collection layer allows multiple tables with different schemas to be managed as a group.

Functional characteristics

Redlining information (called "Map Notes" in ArcGIS Online), may contain points, lines, polygons, and associated text to describe things in the map. Because they have different schema and geometry types, these features are stored in several distinct tables. Feature collection layer allows these tables to be rendered and managed as a group.

A feature collection can be saved in the map or as a stand-alone portal item. If you need to share the feature collection between several maps, it's best to store it as a separate portal item. If you need to make frequent (near real-time) edits to features in a collection, consider storing these in a feature service instead, because the feature collection is not refreshed until the map or portal item is reloaded. If features are used by a single map and/or are not subject to frequent updates, it might be best to store them directly in the map. Edits made to features stored in a map will be saved when the map is saved. Edits made to features stored in a portal item (and loaded into a map, for example) must be explicitly saved to the original portal item.

Performance characteristics

Feature collection layers are designed to display a moderate amount of feature data (hundreds or thousands of features). They are ideal for sharing static data (not subject to frequent updates, in other words) amongst several clients.

As full feature information is cached locally in a geodatabase and features are drawn natively, this layer type offers excellent display performance when zooming and panning the map, within the extent of cached features.

Downloading features to the device may require extensive network usage and local device storage space. Once the features are present on the client, the app no longer needs to make requests for the data. App memory increases with the number and complexity of the features in the collection.

Feature layer

Feature layers display data from feature services or supported local data sources, including shapefiles, GeoPackages, and geodatabases. Feature layers can be used to display, select, and query features in a layer. If the underlying feature service or table supports editing, you can use it with a feature layer as a basis for editing geometry, attributes, and attachments.

Features are retrieved as needed by the app. Features can be downloaded from a sync-enabled feature service when the device is connected and cached locally for use when the device is offline. Edits can then be synchronized back to the service.

Functional characteristics

There are many sources that can be rendered using a feature layer:

Feature service – backed by a service feature table; feature data from the service is cached locally in the table. New features are retrieved automatically when you navigate the map. The local table cache is discarded when the layer is disposed. If sync is enabled, features can be created, edited, and pushed to the server.

Geodatabase – backed by a geodatabase feature table; The geodatabase can be a replica of a feature service, which allows synchronizing with a feature service, or taking the content of a feature service offline. Use a geodatabase sync task to synchronize the geodatabase with the service.

Shapefile – backed by a shapefile feature table; Use a feature layer to show the contents of shapefiles (.shp).

Geopackage – backed by a geopackage feature table; use a feature layer to render the tables in a GeoPackage (.gpkg). A GeoPackage is a data source that conforms to the OGC GeoPackage specification. Geopackage feature tables can be edited and saved, but can't support sync, because there is no backing feature service. Runtime supports GeoPackage versions 1.0, 1.1, and
1.2 .

Individual features can be queried and filtered based on spatial queries or SQL queries. Introduced at 100.3.0, string comparisons that are done to features queried in service feature tables are case insensitive.

Local tables cannot be reprojected automatically. Find out more about editing features.

For details on viewing, identifying, querying, and editing features offline, see Feature layers in "Create an offline layer."

Performance characteristics

As full feature information is cached locally in a geodatabase, shapefile, or GeoPackage, and features are drawn natively, this layer type offers excellent display performance when zooming and panning the map within the extent of cached features. Querying features is also efficient, enabling app functions like real-time updates of query results in a map.

The local cache must be initially created, which can be resource-intensive for the server. The initial download to the device may require extensive network usage and subsequent local device storage. App memory increases with the number and complexity of the features cached. Network usage can be eliminated by provisioning the cache directly to the device in advance.

KML layer

KML is a specification for working with geographic content in Google Earth. KML files can contain 2D and 3D content, as well as links to content from the network.

Functional characteristics

KML specifies features as a tree of nodes, including network links, folders, and placemarks. Placemarks are similar to ArcGIS features, and are based on point, line, or polygon geometry. Objects in a KML file can have attributes, but unlike ArcGIS feature services, there is no schema defined for all of the 'features' in a document. KML always uses the WGS84 coordinate system. KML is a rich specification. See Display KML content for more details.

Unique features of KML include network links and screen overlays. Network links are useful for retrieving network content on a specified interval - perfect for keeping a live map up-to-date. Network links can also be used to split a large KML file into multiple per-region KML files, with each being loaded only when the region is in view. Screen overlays can be used to show content, such as branding or a legend, on top of the view. Screen overlay content does not scroll with the map or react to user interaction.

Demonstration of how screen overlays are rendered on top of the map, staying at a fixed position on the screen as the user pans and zooms the map.

Performance characteristics

KML files can vary significantly in the features they use, including 3D models, network links, and refresh intervals. Not all features are supported in 2D and 3D. For example, 3D models only appear when KML layer is shown in a scene. Many KML files are consist solely of a pointer to another KML file and a refresh interval. For example, the U.S. National Weather Service distributes forecast maps this way.

Learn more

Mobile basemap layer

API classes: AGSMobileBasemapLayer

A mobile map package can be created in ArcGIS Pro and provisioned for display in your app. The package may contain one or more mobile maps, each of which can contain a basemap with mobile basemap layers. These layers contain vector features in a compressed format. Because mobile basemap layers are authored in Pro and can't be used independently of a mobile map package, there is no mobile basemap layer constructor.

Functional characteristics

Mobile basemap layers do not support query, selection, identify, or time. Data must be prepared using ArcGIS Pro as part of the mobile map package (.mmpk) authoring process.

Performance characteristics

Mobile basemap layers contain vector content that has been packaged specifically for use offline. Tiles are loaded locally, which means they can be displayed quickly and don't require network access.

OpenStreetMap layer

API classes: AGSOpenStreetMapLayer

OpenStreetMap layer is a pre-configured web tiled layer that displays tiles from the openstreetmap.org tile servers. OpenStreetMap (OSM) is a project to create a free, publicly editable map of the world.

Raster layer

You can change how a raster layer is visualized by creating a raster renderer and applying it to the layer. For more information about working with rasters, see Add raster data.

Functional characteristics

Raster imagery is often used as part of a basemap. Many sources of analytical data are available in a raster format, such as those derived from satellite imagery. These data may be used for classification, change analysis, and so on.

A raster consists of a matrix of cells (or pixels) organized into rows and columns (or a grid) where each cell contains a numeric value. The values in a raster can represent discrete features, such as land use codes, or continuous phenomenon such as elevation.

An example of a single-band raster dataset is a digital elevation model (DEM), where each cell contains one value representing the elevation at that location. A satellite image, on the other hand, commonly has multiple bands representing different wavelengths of the electromagnetic spectrum. Landsat imagery, for example, contains seven bands that represent data from the visible and infrared parts of the spectrum. Rasters are particularly useful for remote sensing tasks, like monitoring vegetation and seeing through smoke to analyze an active fire.

Performance characteristics

Raster datasets can be quite large. The size of the dataset depends on:

The geographic extent of the data

The size of the cells used (resolution)

The number of bands

As with any data consumed locally, file size can be an issue for storage as well as for transferring datasets over the network.

Scene layer

API classes: AGSArcGISSceneLayer

Scene layers display content from a scene service or a scene package. Scene layers can be used to show 3D objects, such as textured or untextured buildings, or 3D mesh data, such as imagery captured by drones.

Note:

Many layer types work in 3D, not just scene layer

3D content can be delivered as scene packages (stored on the client) or as online scene services. These data sources support consuming large volumes of multipatch features, like building models for an entire city. See Build a new scene for more information about working with scenes and displaying data in 3D.

Functional characteristics

A scene service is used to provide one of the following types of 3D data:

3D objects – 3D object scene layers are used to represent objects such as buildings, trees, and street furniture that are explicitly modeled in three dimensions.

Integrated mesh – 3D mesh data is typically captured by an automated process for constructing 3D objects out of large sets of overlapping imagery. The result integrates the original input image information as a textured mesh including 3D objects, such as buildings and trees, and elevation information. Integrated mesh scene layers are often created for citywide 3D mapping. They are often assembled automatically from imagery collected by a drone; they cannot be restyled because there is no underlying feature data.

Point scene – To ensure fast visualization, cached scene layers are used to display large amounts of 3D point data, such as all the trees in a city. Point scene layers are automatically thinned to improve performance and visibility at smaller scales. Automatic thinning means that not all features are displayed at small scales; as you zoom in, additional features are displayed. Point scene services are not supported for ArcGIS Runtime SDK at this release.

Performance characteristics

For a scene layer, the rendering of 3D data is based on the current level of detail (LOD), which is determined by the distance from the camera. Each object in a 3D object service is represented differently at various LODs determined by the camera distance. As the camera distance changes in the scene, objects will be displayed appropriately for the current LOD. This results in good client performance and low memory usage, at the expense of frequently loading and unloading objects.

Learn more

Web tiled layer

API classes: AGSWebTiledLayer

Web tiled layer displays tiles from a tile service. Tiles are accessed directly by URL using a defined URL template. Because the service is only providing images, the developer is responsible for manually setting the attribution text on the map or scene view.

Functional characteristics

Tiles are fetched on demand using the provided URL template. Tiles are typically pre-rendered (cached) on the server but may be generated on-demand by some services. Web tiled layers do not support identify, query, selection, or time.

You can specify subdomains that the layer will request tiles from. This allows the load to be evenly distributed among servers.

Performance characteristics

Web tiled layer requires a connection to the service at all times. Performance is similar to other raster tile layers.

Learn more

Web Map Service (WMS) layer

API classes: AGSWMSLayer, AGSWMSSublayer, AGSWMSService

WMS layer displays data from a web service that provides maps in the form of server-rendered images. Web Map Service (WMS) is an Open Geospatial Consortium (OGC) standard for delivering map images from an online service. Runtime supports WMS versions 1.1.0, 1.1.1, and 1.3.0 .

Functional characteristics

A WMS service can contain multiple layers in a hierarchy. A AGSWMSLayer can be constructed directly with a URL to a service and the uniquely-identifying name of the desired layer. Alternatively, a AGSWMSService can be used to programmatically explore the available layers and allow the user to choose layers at run time.

The maps provided by a WMS service use predefined symbology defined by the server. As a result, it is not possible to apply custom renderers or to visualize feature selection. WMS layers can have multiple style options. Your app can choose from the available styles.

Some layers can be marked as opaque, which means that they cover most of the map area and are good candidates for use as a basemap.

WMS layers support identify and time. They do not support selection or query. Note that due to the nature of WMS, it is not possible to retrieve feature geometry from WMS identify results. WMS layers support custom parameters, which can be specified for the service or an individual layer.

Performance characteristics

WMS servers render map images on demand, which can require more server resources than a similar tiled service. WMS requires a service connection at all times.

Functional characteristics

The maps provided by a WMTS service use predefined symbology defined by the server. As a result, it is not possible to apply custom renderers or to visualize feature selection.

A WMTS service can contain multiple layers in a hierarchy. A WMTS layer can be constructed directly with a URL to a service and the uniquely-identifying name of the desired layer. Alternatively, a WMTS service can be used to programmatically explore the available layers and allow the user to choose layers at run time.

Performance characteristics

WMTS layer consumes raster tiles that were pre-rendered by a server. WMTS requires fewer server resources than WMS because the images are rendered and cached ahead of time. WMTS layer requires a connection to the service at all times.