Feature layer displaying road traffic data from a hosted feature layer
What is a data layer?
A data layer, also known as an operational layer, is a client-side layer that can access geographic data from a data source. You use a data layer to display geographic data on top of a basemap layer in a map or scene. The data source for the layer can be a data service or a file such as a Shapefile or GeoJSON file.
You can use data layers to:
Display feature or tile data from feature services, vector tile services, or image tile services.
Display layers with renders and symbols (data-driven styles).
Access data through SQL and spatial queries.
Provide access to data attributes for point, line, and polygon feature data.
Add, update, and delete feature data.
How a data layer works
A data layer provides access to geographic data that is displayed in a map or scene. Each layer references a file or service data source. The data source contains either as vector data (points, lines, polygons and attributes) or raster data (images). Different types of layers can access and display different types of data.
The data for a data layer is typically stored in the ArcGIS Platform as a data service. You can use feature services, vector tile services, and image tile services to host your data. Learn more in Data hosting.
To add a data layer to a map or scene, you typically add imagery or tile layers first, and then polygons, lines, and points layers last. A map or scene controls the order of the layers, and the map or scene view combines the layers to create the final display.
Figure 1: Data layers are added on top of a basemap layer.
Types of data layers
You can use different types of data layers to access and display different types of data in your applications. Data layers can access ArcGIS data sources and other types of data sources such as OGC data and files.
Different data layers provide different types of functionality. The functionality available is largely dependent on the capabilities of the API and the data source. For example, a feature layer can access a feature service and perform queries, edits, and data export, whereas a vector tile layer can only access tiles from a vector tile service.
ArcGIS data layers
The following layers work with ArcGIS data sources.
* Offline layers can be used with the ArcGIS Runtime APIs.
** ArcGIS JavaScript only.
*** ArcGIS Runtime APIs only.
OGC data layers
The following layers work with OGC data sources.
Layer
Data type
Display
Query
Edit
Offline*
Data sources
Feature layer
Feature
2D/3D
True
True
True
WFS, GeoPackage
Raster layer
Raster
2D/3D
True
False
True
GeoPackage
KML layer
Feature/Image
2D/3D
True
True
True
KML file (.kml, .kmz)
WMS layer
Image
2D/3D
False
False
False
WMS service
WMTS layer
Image Tile
2D/3D
False
False
False
WMTS service
OGC feature layer
Feature
2D/3D
False
False
False
OGC API Features service
* Offline layers can be used with the ArcGIS Runtime APIs.
Other data layers
The following layers work with non-ArcGIS data sources.
Layer
Data type
Display
Query
Edit
Offline*
Data sources
CSV layer**
Feature
2D/3D
True
False
False
CSV file (.csv)
GeoJSON layer**
Feature
2D/3D
True
True
False
GeoJSON file or service
OpenStreetMap layer
Vector Tile
2D/3D
False
False
True
OSM Vector tile service
Vector tile layer
Vector Tile
2D/3D**
False
False
False
Vector tile service (Mapbox specification)
Web tile layer
Image Tile
2D/3D
False
False
False
{level},{row},{col} Image tile service
Raster/Imagery layer***
Raster
2D/3D
False
False
False
Raster files e.g. GeoTiff, Mr. Sid
* Offline layers can be used with the ArcGIS Runtime APIs.
** ArcGIS JavaScript API only.
*** ArcGIS Runtime APIs only.
Examples
Display feature data from a feature service
This example uses a feature layer to access and display features from a feature service. A feature layer is used to display points, lines, or polygons from a layer in a feature service. To access attribute values, they need to be requested from the service. You can also override the default symbols for the features by using a renderer. Learn more about renderers in Styles and data visualiziation.
Steps
Create a map or scene.
Create a feature layer and reference a feature service with a URL or item ID.
Add the feature layer to the map or scene.
Map
ArcGIS JS APIEsri LeafletMapbox GL JSOpenLayersArcGIS .NET APIArcGIS Android APIArcGIS iOS APIArcGIS Java APIArcGIS Qt API (C++)ArcGIS Qt API (QML)
This example uses a vector tile layer to access and display data from a vector tile service. The layer works with the service to access the tile data as well as the styles for the data. The styles can also be overridden on the client to change how the layer is displayed in a map or scene.
Steps
Create a map or scene.
Create a vector tile layer and reference a vector tile service with a URL or item ID.
Add the layer to the map or scene.
ArcGIS JS APIEsri LeafletMapbox GL JSOpenLayersArcGIS .NET APIArcGIS Android APIArcGIS iOS APIArcGIS Java APIArcGIS Qt API (C++)ArcGIS Qt API (QML)
This example uses a GeoJSON layer to access and display data in a GeoJSON file. The file contains features with a geometry (point, line, or polygon) and attributes. When features are loaded by the layer, they can be styled and the data can be accessed like features in feature layers.
<html><head><metacharset="utf-8" /><metaname="viewport"content="initial-scale=1,maximum-scale=1,user-scalable=no" /><!-- ArcGIS Mapping APIs and Location Services Guide
Learn more: https://developers.arcgis.com/documentation/mapping-apis-and-location-services/maps/
--><title>ArcGIS Developer Guide: Map (GeoJSON data)</title><style>html,
body,
#viewDiv {
padding: 0;
margin: 0;
height: 100%;
width: 100%;
}
</style><linkrel="stylesheet"href="https://js.arcgis.com/4.18/esri/themes/light/main.css"><scriptsrc="https://js.arcgis.com/4.18/"></script><script>require([
"esri/config",
"esri/Map",
"esri/layers/GeoJSONLayer",
"esri/views/MapView"//If GeoJSON files are not on the same domain as your website, a CORS enabled server or a proxy is required. ], function (esriConfig,Map, GeoJSONLayer, MapView) {
// Earthquake information to appear when point is clickedconst template = {
title: "Earthquake Info",
content: "Magnitude {mag} {type} hit {place} on {time}",
fieldInfos: [
{
fieldName: "time",
format: {
dateFormat: "short-date-short-time" }
}
]
};
const renderer = {
type: "simple",
field: "mag",
symbol: {
type: "simple-marker",
color: "orange",
outline: {
color: "white" }
},
visualVariables: [
{
type: "size",
field: "mag",
stops: [
{
value: 2.5,
size: "4px" },
{
value: 8,
size: "40px" }
]
}
]
};
const geojsonLayer = new GeoJSONLayer({
url: "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.geojson",
copyright: "USGS Earthquakes" });
esriConfig.apiKey = "YOUR-API-KEY";
const map = newMap({
basemap: "arcgis-light-gray",
layers: [geojsonLayer]
});
geojsonLayer.popupTemplate = template;
geojsonLayer.renderer = renderer;
// Add the map to a new viewconst view = new MapView({
container: "viewDiv",
center: [-168, 46],
zoom: 3,
map: map,
constraints: {
snapToZoom: false }
});
});
</script></head><body><divid="viewDiv"></div></body></html>
Display data from a WMS service
This example uses a WMS layer to display data from an OpenGIS® Web Map Service Interface Standard (WMS) service. The layer displays geo-registered map images from one or more distributed geospatial databases. For more information about this service and specification, visit OGC WMS.
Steps
Get the URL to the WMS service.
Create the layer and set the URL. Define which sublayers to display.
Add the layer to a map or scene as a basemap or data layer.
ArcGIS JS APIArcGIS .NET APIArcGIS Android APIArcGIS iOS APIArcGIS Java APIArcGIS Qt API (C++)ArcGIS Qt API (QML)