Layer (Feature Service)
- URL:http://<featureservice-url>/<layerId>
- Operations:Query,Query Related Records,Apply Edits,Add Features,Update Features,Delete Features,Generate Renderer
- Child Resources:Feature,Image
- Version Introduced:10.0
Description
The layer resource represents a single feature layer or a non spatial table in a feature service. A feature layer is a table or view with at least one spatial column.
For tables, it provides basic information about the table such as its id, name, fields, types and templates. For feature layers, in addition to the table information above, it provides information such as its geometry type, min and max scales, and spatial reference. Each type includes information about the type such as the type id, name, and definition expression. Sub-types also include a default symbol and a list of feature templates. Each feature template includes a template name, description and a prototypical feature.
The property capabilities returns Query, Create, Delete, Update, and Editing capabilities. The Editing capability will be included if Create, Delete or Update is enabled for a Feature Service.
The property maxRecordCount returns the maximum number of records that will be returned at once for a query.
Layer resource returns relatedTableId, cardinality, role, keyField, and composite, for all relationships. In addition the relationshiptableId and keyFieldInRelationshipTable properties are returned for attributed relationships only.
The properties effectiveMinScale and effectiveMaxScalerepresent the effective minimum and maximum scales at which the layer is visible. Effective minimum and maximum scale are calculated based on the minScale and maxScale values of the current layer and its ancestors.
Layer resource supports an input parameter returnUpdates that accepts a boolean value. Pass this parameter to retrieve updated timeExtent for the layer.
The field property nullable indicates if the field can accept null values.
If a layer has attachments, its hasAttachments property will be true.
The following properties describe new features that have been added to the Feature Service through the releases. If the property does not exist it is equivalent to having a value false or not set.
- useStandardizedQueries will be true to indicate the layer requires the use of standardized queries. Learn more about standardized queries.
- supportsRollbackOnFailures will be true to indicate the support for transactional edits. If true the layer supports setting the rollbackOnFailure parameter for edit operations. For example, apply edits, add features, update features, and delete features. The supportsRollbackOnFailureParameter will be true if the data is simple and non-versioned.
- syncCanReturnChanges will be true if the data is versioned and has globalIds; this indicates the server has the abiltiy to return changes only. If syncCanReturnChanges is false the server will include all data for each layer in the response.
- isDataVersioned will be true if the layer is versioned.
- supportsStatistics indicates if the layer supports statistical functions in query operation.
- supportsAdvancedQueries indicates if the layer supports orderBy in a query operation.
- supportedQueryFormats returns the formats in which query results can be returned.
- hasZ returns true if the features in the layer have Z values.
- hasM returns true if the features in the layer have M values.
- allowGeometryUpdates returns true if the geometry of the features in the layer can be edited.
Resource Hierarchy
Request Parameters
Parameter |
Details |
---|---|
f |
Description: The response format. The default response format is html. Values: html | json | pjson |
returnUpdates | //This option was added at 10.1. Description: If value is true, an updated time extent is returned. If the layer is not time-aware, an empty response is returned. Values: true | false |
Example Usage
Example 1: Get information about layer 0 in the "USA" Feature Service
http://services.myserver.com/ERmEceOGq5cHrItq/ArcGIS/rest/services/USA/FeatureServer/0
JSON Response Syntax
{
"currentVersion": <currentVersion>, //Added at 10.0 SP1
//properties applicable to both feature layers and tables
"id" : <layerOrTableId>,
"name" : "<layerOrTableName>",
"type" : "<layerOrTableType>", //"Feature Layer" or "Table"
"displayField" : "<field name>"
"description" : "<description>",
"copyrightText" : "<copyrightText>",
"defaultVisibility": <true | false>,//Added at 10.1
//Added at 10.1
"editFieldsInfo": {
"creationDateField": "<creationDateField>",
"creatorField": "<creatorField>",
"editDateField": "<editDateField>",
"editorField": "<editorField>",
"realm":"<realm>"
},
//Added at 10.1
"ownershipBasedAccessControlForFeatures": {
"allowOthersToUpdate": <true | false>,
"allowOthersToDelete": <true | false>,
"allowOthersToQuery": <true | false>
},
//Added at 10.1
"syncCanReturnChanges": <true | false>,
"relationships" : [
{
"id" : <relationshipId1>,
"name" : "<relationshipName1>",
"relatedTableId" : <relatedTableId1>,
"cardinality" : "<esriRelCardinalityOneToOne>|<esriRelCardinalityOneToMany>|<esriRelCardinalityManyToMany>";,//Added at 10.1
"role" : "<esriRelRoleOrigin>|<esriRelRoleDestination>";,//Added at 10.1
"keyField" : "<keyFieldName2>",//Added at 10.1
"composite" : <true>|<false>,//Added at 10.1
"relationshipTableId": <attributedRelationshipClassTableId>, //Added in 10.1. Returned only for attributed relationships
"keyFieldInRelationshipTable": "<key field in AttributedRelationshipClass table that matches keyField>" //Added in 10.1. Returned only for attributed relationships
},
{
"id" : <relationshipId2>,
"name" : "<relationshipName2>",
"relatedTableId" : <relatedTableId2>,
"cardinality" : "<esriRelCardinalityOneToOne>|<esriRelCardinalityOneToMany>|<esriRelCardinalityManyToMany>";,//Added at 10.1
"role" : "<esriRelRoleOrigin>|<esriRelRoleDestination>";,//Added at 10.1
"keyField" : "<keyFieldName2>",//Added at 10.1
"composite" : <true>|<false>,//Added at 10.1
"relationshipTableId": <attributedRelationshipClassTableId>, //Added in 10.1. Returned only for attributed relationships
"keyFieldInRelationshipTable": "<key field in AttributedRelationshipClass table that matches keyField>" //Added in 10.1. Returned only for attributed relationships
}
],
"isDataVersioned": <true | false>, //Added at 10.1
"supportsRollbackOnFailureParameter": <true | false>, //Added at 10.1
"supportsStatistics": <true | false>, //Added at 10.1
"supportsAdvancedQueries":<true | false>, //Added at 10.1
//properties applicable to feature layers only
"geometryType" : "<geometryType>",
"minScale" : <minScale>,
"maxScale" : <maxScale>,
"effectiveMinScale" : <effectiveMinScale>,
"effectiveMaxScale" : <effectiveMaxScale>,
"extent" : <envelope>,
//for feature layers only
"drawingInfo" : {
"renderer" : <renderer>,
"transparency" : <transparency>,
"labelingInfo" : <labelingInfo>
},
"hasM": <true | false>, //if the features in the layer have M values, the hasM property will be true
"hasZ": <true | false>, //if the features in the layer have Z values, the hasZ property will be true
//if the layer / table supports querying based on time
"enableZDefaults": <true | false>,//Added at 10.1
"zDefault": <zDefaultValue>,//Added at 10.1
"allowGeometryUpdates": <true | false>,//Added at 10.1
"timeInfo" : {
"startTimeField" : "<startTimeFieldName>",
"endTimeField" : "<endTimeFieldName>",
"trackIdField" : "<trackIdFieldName>",
"timeExtent" : [<startTime>, <endTime>],
"timeReference" : {
"timeZone" : "<timeZone>",
"respectsDaylightSaving" : <true | false>
},
"timeInterval" : <timeInterval>,
"timeIntervalUnits" : "<timeIntervalUnits>"
},
//if the layer / table has attachments, the hasAttachments property will be true
"hasAttachments" : <true | false>
//from 10 onward - indicates whether the layer / table has htmlPopups
"htmlPopupType" : "<esriServerHTMLPopupTypeNone | esriServerHTMLPopupTypeAsURL | esriServerHTMLPopupTypeAsHTMLText>",
//layer / table fields
"objectIdField" : "<objectIdFieldName>",
"globalIdField" : "<globalIdFieldName>",
"typeIdField" : "<typeIFieldName>",
//from 10.0 fields of type (String, Date, GlobalID, GUID and XML) have an additional length property, editable properties
//from 10.1 fields have an additional nullable property
"fields" : [
{"name" : "<fieldName1>", "type" : "<fieldType1>", "alias" : "<fieldAlias1>", "length" : "<length1>", "editable" : "<true | false>","nullable" : "<true | false>","domain" : <domain1>},
{"name" : "<fieldName2>", "type" : "<fieldType2>", "alias" : "<fieldAlias1>", "length" : "<length2>", "editable" : "<true | false>","nullable" : "<true | false>", "domain" : <domain2>}
],
//layer / table sub-types
"types" : [
{
"id" : <typeId1>,
"name" : "<typeName1>",
"domains" : {
"<domainField11>" : <domain11>,
"<domainField12>" : <domain12>
},
"templates" : [
{
"name" : "<templateName11>",
"description" : "<templateDescription11>",
"prototype" : <prototypicalFeature11>
},
{
"name" : "<templateName12>",
"description" : "<templateDescription12>",
"prototype" : <prototypicalFeature12>
}
]
},
{
"id" : <typeId2>,
"name" : "<typeName2>",
"domains" : {
"<domainField11>" : <domain21>,
"<domainField12>" : <domain22>
},
"templates" : [
{
"name" : "<templateName21>",
"description" : "<templateDescription21>",
"prototype" : <prototypicalFeature21>,
"drawingTool": "esriFeatureEditToolNone | esriFeatureEditToolPoint | esriFeatureEditToolLine | esriFeatureEditToolPolygon |
esriFeatureEditToolAutoCompletePolygon | esriFeatureEditToolCircle | esriFeatureEditToolEllipse | esriFeatureEditToolRectangle |
esriFeatureEditToolFreehand"
},
{
"name" : "<templateName22>",
"description" : "<templateDescription22>",
"prototype" : <prototypicalFeature22>,
"drawingTool": "esriFeatureEditToolNone | esriFeatureEditToolPoint | esriFeatureEditToolLine | esriFeatureEditToolPolygon |
esriFeatureEditToolAutoCompletePolygon | esriFeatureEditToolCircle | esriFeatureEditToolEllipse | esriFeatureEditToolRectangle |
esriFeatureEditToolFreehand"
}
]
}
],
//layer / table templates - usually present when the layer / table has no sub-types
"templates" : [
{
"name" : "<templateName1>",
"description" : "<templateDescription1>",
"prototype" : <prototypicalFeature1>
},
{
"name" : "<templateName2>",
"description" : "<templateDescription2>",
"prototype" : <prototypicalFeature2>
}
],
//Maximum number of records returned in a query result
"maxRecordCount": <maxRecordCount> //Added at 10.1
"supportedQueryFormats": "<supportedQueryFormats>", //Added at 10.1
"hasStaticData" : <true | false>
//comma separated list of supported capabilities - e.g. "Create,Delete,Query,Update,Editing"
"capabilities" : "<capabilities>"
}
JSON Response Example
{
"id": 0,
"name": "Incidents",
"type": "Feature Layer",
"displayField": "req_id",
"description": "",
"copyrightText": ""
"supportsRollbackOnFailures": true,
"geometryType": "esriGeometryPoint",
"minScale": 0,
"maxScale": 0,
"extent": {
"xmin": -122.514435102,
"ymin": 5.6843418860808E-14,
"xmax": 138.625776397,
"ymax": 67.1577965990001,
"spatialReference": {
"wkid": 4326
}
},
"drawingInfo": {
"renderer": {
"type": "uniqueValue",
"field1": "req_type",
"field2": null,
"field3": null,
"defaultSymbol": null,
"defaultLabel": "\u003call other values\u003e",
"uniqueValueInfos": [
{
"value": "Blocked Street or Sidewalk",
"label": "Blocked Street or Sidewalk",
"description": "",
"symbol": {
"type": "esriPMS",
"url": "1DD4FC53",
"imageData": "iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAII=",
"contentType": "image/png",
"color": null,
"width": 19,
"height": 19,
"angle": 0,
"xoffset": 0,
"yoffset": 0
}
},
{
"value": "Damaged Property",
"label": "Damaged Property",
"description": "",
"symbol": {
"type": "esriPMS",
"url": "DF3100A6",
"imageData": "iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAII=",
"contentType": "image/png",
"color": null,
"width": 15,
"height": 9,
"angle": 0,
"xoffset": 0,
"yoffset": 0
}
},
{
"value": "Graffiti Complaint - Public Property",
"label": "Graffiti Complaint",
"description": "",
"symbol": {
"type": "esriPMS",
"url": "B2E6E7A0",
"imageData": "iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAg==",
"contentType": "image/png",
"color": null,
"width": 19,
"height": 19,
"angle": 0,
"xoffset": 0,
"yoffset": 0
}
},
{
"value": "Graffiti Complaint � Private Property",
"label": "Graffiti Complaint",
"description": "",
"symbol": {
"type": "esriPMS",
"url": "B2E6E7A0",
"imageData": "iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAAg==",
"contentType": "image/png",
"color": null,
"width": 19,
"height": 19,
"angle": 0,
"xoffset": 0,
"yoffset": 0
}
},
{
"value": "Sewer Issues",
"label": "Sewer Issues",
"description": "",
"symbol": {
"type": "esriPMS",
"url": "80DC11A7",
"imageData": "iVBORw0KGgoAAAANSUhEUgAAABYAAAAaCAYAAACzdqxAAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAAg==",
"contentType": "image/png",
"color": null,
"width": 16,
"height": 19,
"angle": 0,
"xoffset": 0,
"yoffset": 0
}
},
{
"value": "Sidewalk and Curb Issues",
"label": "Sidewalk and Curb Issues",
"description": "",
"symbol": {
"type": "esriPMS",
"url": "19213DC2",
"imageData": "iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAAII=",
"contentType": "image/png",
"color": null,
"width": 19,
"height": 19,
"angle": 0,
"xoffset": 0,
"yoffset": 0
}
},
{
"value": "Tree Maintenance or Damage",
"label": "Tree Maintenance or Damage",
"description": "",
"symbol": {
"type": "esriPMS",
"url": "37B62A6C",
"imageData": "iVBORw0KGgoAAAANSUhEUgAAABcAAAAaCAYAAABctMd+AAAAAXNSR0IB2cksfwAAAAlwSFlzAAAOxAAACC",
"contentType": "image/png",
"color": null,
"width": 17,
"height": 19,
"angle": 0,
"xoffset": 0,
"yoffset": 0
}
}
]
},
"transparency": 0,
"labelingInfo": null
},
"hasAttachments": false,
"htmlPopupType": "esriServerHTMLPopupTypeAsHTMLText",
"objectIdField": "objectid",
"globalIdField": "",
"typeIdField": "req_type",
"fields": [
{
"name": "objectid",
"type": "esriFieldTypeOID",
"alias": "Object ID",
"editable": false,
"nullable": true,
"domain": null
},
{
"name": "req_id",
"type": "esriFieldTypeString",
"alias": "Request ID",
"editable": true,
"length": 20,
"nullable": true,
"domain": null
},
{
"name": "req_type",
"type": "esriFieldTypeString",
"alias": "Request Type",
"editable": true,
"length": 40,
"nullable": true,
"domain": null
},
{
"name": "req_date",
"type": "esriFieldTypeString",
"alias": "Request Date",
"editable": true,
"length": 30,
"nullable": true,
"domain": null
},
{
"name": "req_time",
"type": "esriFieldTypeString",
"alias": "Request Time",
"editable": true,
"length": 20,
"nullable": true,
"domain": null
},
{
"name": "address",
"type": "esriFieldTypeString",
"alias": "Address",
"editable": true,
"length": 60,
"nullable": true,
"domain": null
},
{
"name": "x_coord",
"type": "esriFieldTypeString",
"alias": "X Coordinate",
"editable": true,
"length": 20,
"nullable": true,
"domain": null
},
{
"name": "y_coord",
"type": "esriFieldTypeString",
"alias": "Y Coordinate",
"editable": true,
"length": 20,
"nullable": true,
"domain": null
},
{
"name": "district",
"type": "esriFieldTypeString",
"alias": "District",
"editable": true,
"length": 20,
"nullable": true,
"domain": null
},
{
"name": "status",
"type": "esriFieldTypeSmallInteger",
"alias": "Status",
"editable": true,
"nullable": true,
"domain": {
"type": "codedValue",
"name": "StatusCodes",
"codedValues": [
{
"name": "New",
"code": 1
},
{
"name": "Open",
"code": 2
},
{
"name": "Closed",
"code": 3
}
]
}
}
],
"types": [
{
"id": "Graffiti Complaint - Private Property",
"name": "Graffiti Complaint",
"domains": {
},
"templates": [
{
"name": "Graffiti Complaint",
"description": "",
"drawingTool": "esriFeatureEditToolPoint",
"prototype": {
"attributes": {
"status": 1,
"req_id": null,
"req_type": "Graffiti Complaint - Private Property",
"req_date": null,
"req_time": null,
"address": null,
"x_coord": null,
"y_coord": null,
"district": null
}
}
}
]
},
{
"id": "Blocked Street or Sidewalk",
"name": "Blocked Street or Sidewalk",
"domains": {
},
"templates": [
{
"name": "Blocked Street or Sidewalk",
"description": "",
"drawingTool": "esriFeatureEditToolPoint",
"prototype": {
"attributes": {
"status": 1,
"req_id": null,
"req_type": "Blocked Street or Sidewalk",
"req_date": null,
"req_time": null,
"address": null,
"x_coord": null,
"y_coord": null,
"district": null
}
}
}
]
},
{
"id": "Damaged Property",
"name": "Damaged Property",
"domains": {
},
"templates": [
{
"name": "Damaged Property",
"description": "",
"drawingTool": "esriFeatureEditToolPoint",
"prototype": {
"attributes": {
"status": 1,
"req_id": null,
"req_type": "Damaged Property",
"req_date": null,
"req_time": null,
"address": null,
"x_coord": null,
"y_coord": null,
"district": null
}
}
}
]
},
{
"id": "Graffiti Complaint - Public Property",
"name": "Graffiti Complaint",
"domains": {
},
"templates": [
{
"name": "Graffiti Complaint",
"description": "",
"drawingTool": "esriFeatureEditToolPoint",
"prototype": {
"attributes": {
"status": 1,
"req_id": null,
"req_type": "Graffiti Complaint - Public Property",
"req_date": null,
"req_time": null,
"address": null,
"x_coord": null,
"y_coord": null,
"district": null
}
}
}
]
},
{
"id": "Sewer Issues",
"name": "Sewer Issues",
"domains": {
},
"templates": [
{
"name": "Sewer Issues",
"description": "",
"drawingTool": "esriFeatureEditToolPoint",
"prototype": {
"attributes": {
"status": 1,
"req_id": null,
"req_type": "Sewer Issues",
"req_date": null,
"req_time": null,
"address": null,
"x_coord": null,
"y_coord": null,
"district": null
}
}
}
]
},
{
"id": "Tree Maintenance or Damage",
"name": "Tree Maintenance or Damage",
"domains": {
},
"templates": [
{
"name": "Tree Maintenance or Damage",
"description": "",
"drawingTool": "esriFeatureEditToolPoint",
"prototype": {
"attributes": {
"status": 1,
"req_id": null,
"req_type": "Tree Maintenance or Damage",
"req_date": null,
"req_time": null,
"address": null,
"x_coord": null,
"y_coord": null,
"district": null
}
}
}
]
},
{
"id": "Sidewalk and Curb Issues",
"name": "Sidewalk and Curb Issues",
"domains": {
},
"templates": [
{
"name": "Sidewalk and Curb Issues",
"description": "",
"drawingTool": "esriFeatureEditToolPoint",
"prototype": {
"attributes": {
"status": 1,
"req_id": null,
"req_type": "Sidewalk and Curb Issues",
"req_date": null,
"req_time": null,
"address": null,
"x_coord": null,
"y_coord": null,
"district": null
}
}
}
]
}
],
"templates": [
],
"capabilities": "Create,Delete,Query,Update,Editing"
}