Skip To Content
ArcGIS Developer
Dashboard

Feature input

All GeoAnalytics Tools have input parameters that take features as their input. Features can be input in one of the following ways:

  1. Specify a URL to a feature service layer (or a map service layer that has query as one of its capabilities) along with an optional filter.
  2. Specify a URL to a big data file share layer along with an optional filter.
  3. Specify a feature collection.

URL to a feature service

You can give the URL to a feature service layer or a map service layer that has query capability.

The URL syntax is:

{
"url": "<url to feature or map service layer>"
"serviceToken": "<token to allow access to feature service layer>"
"filter": "<attribute query string to select features to process>"
}

If your layer is on a secure server, you must provide a token that allows the analysis service to access your layer.

Note:

You cannot run any of the analysis tasks using data from map or feature services that are not accessible to the portal. That is, the URL to the service must be either a public URL, or one accessible behind your firewall. Otherwise, you'll receive an error saying that the URL is not accessible.

In addition to supplying the URL, you can supply a filter string for an SQL WHERE clause but without the WHERE statement, for example:

{
  "url": "https://services.arcgis.com/f126c8da131543019b05e4bfab6fc6ac/arcgis/rest/services/hospitals/FeatureServer/0",
  "filter": "STATE='CA'"
}

If no filter is supplied, all features will be analyzed.

URL to a big data catalog service

You can give the URL to a big data catalog service dataset. See Big Data Catalog Service for more information.

The URL syntax is:

{
"url": "<url to bigDataFileShare dataset>"
"serviceToken": "<token to allow access to bigDataFileShare dataset >"
"filter": "<attribute query string to select features to process>"
}

If your layer is on a secure server, you must provide a token that allows the analysis service to access your layer.

In addition to supplying the URL, you can supply a filter string on an SQL WHERE clause but without the WHERE statement. For example, with a machine named mymachine on domain esri.com, a web adaptor named server, and a big data catalog service that is sourced from a big data file share (seeWhat is a big data file share?) named fileShareName, you can access a dataset named Cities:

{
  "url": "https://mymachine.esri.com/server/rest/services/DataStoreCatalogs/bigDataFileShare_fileShareName/Cities",
  "filter": "STATE='CA' and POPULATION > 100000"
}

If no filter is supplied, all features will be analyzed.

Feature collection

The other option is to send a featureCollection instead of a layer. Filters are supported with feature collections. For more information on feature collections and feature sets, see the Javascript documentation for featureCollection and featureSet.

An example of a feature collection of points with an Id and Name attribute.

{
    "layerDefinition": {
        "geometryType": "esriGeometryPoint",
        "fields": [
            {
                "name": "Id",
                "type": "esriFieldTypeOID",
                "alias": "Id"
            },
            {
                "name": "Name",
                "type": "esriFieldTypeString",
                "alias": "Name"
            }
        ]
    },
    "featureSet": {
        "geometryType": "esriGeometryPoint",
        "spatialReference": {
            "wkid": 4326
        },
        "features": [
            {
                "geometry": {
                    "x": -104.44,
                    "y": 34.83
                },
                "attributes": {
                    "Id": 43,
                    "Name": "Feature 1"
                }
            },
            {
                "geometry": {
                    "x": -100.65,
                    "y": 33.69
                },
                "attributes": {
                    "Id": 67,
                    "Name": "Feature 2"
                }
            }
        ]
    },
    "filter": "Name = 'Feature 1'"
}