zoukankan      html  css  js  c++  java
  • ArcGIS Arcade



    ArcGIS Arcade

    http://127.0.0.1/Resource/JavaScript/arcgis_js_api/sdk/4.10/latest/guide/arcade/index.html

    https://developers.arcgis.com/arcade/function-reference/logical_functions/#when

    Constants

    The following constants are available for your convenience in writing expressions:

    Infinity

    Represents a value greater than any other number. -Infinity may also be used as a value smaller than any number.

    Example

    Calculates the maximum of four field values

    var values = [ $feature.field1, $feature.field2, $feature.field3, $feature.field4 ];
    var max = -Infinity;
     
    for(var i in values){
      max = IIF(values[i] > max, values[i], max);
    }
     
    return max;
     

    PI

    The value of a circle's circumference divided by its diameter, approximately 3.14159.

    Example

    Returns the area of a circle feature

    var r = $feature.radius;
    PI * r * r;
     

    TextFormatting.BackwardSlash

    Inserts a backslash character into the text.

    Example

    Returns '\serverNamefooar'

    TextFormatting.BackwardSlash + TextFormatting.BackwardSlash + $feature.FILE_PATH
     

    TextFormatting.DoubleQuote

    Inserts a double quote character " into the text.

    Example

    Returns 'Nicholas "Nick" Anderson'

    $feature.NAME + " " + TextFormatting.DoubleQuote + $feature.ALIAS + TextFormatting.DoubleQuote + " " + $feature.SURNAME
     

    TextFormatting.ForwardSlash

    Inserts a forward slash character / into the text.

    Example

    Returns '151/low'

    $feature.POP_DENSITY + TextFormatting.ForwardSlash + $feature.CLASS
     

    TextFormatting.NewLine

    Inserts a new line, or line break, into the text. Multi-line labels are NOT supported in the ArcGIS API 3.x for JavaScript nor in the ArcGIS Online map viewer.

    Example

    Returns "T2N R1W"

    "T" + $feature.TOWNSHIP + TextFormatting.NewLine + "R" + $feature.RANGE
     

    TextFormatting.SingleQuote

    Inserts a single quote character ' into the text.

    Example

    Returns "Nicholas 'Nick' Anderson"

    $feature.NAME + " " + TextFormatting.SingleQuote + $feature.ALIAS + TextFormatting.SingleQuote + " " + $feature.SURNAME
     

    TextFormatting.Tab

    Inserts a tab into the text.

    Example

    Returns "T2N R1W"

    "T" + $feature.TOWNSHIP + TextFormatting.Tab + "R" + $feature.RANGE
     

    Logical Functions

    These functions provide convenient one-line methods for evaluating expressions. They include methods for checking for empty values, using if-else logic, and implementing switch-case statements among others.

    Boolean

    Boolean( value ) -> returns: Boolean

    Attempts to convert the given non-boolean value to a boolean value. For example a string 'true' would become true.

    Name

    Type

    Description

    value

    Text | Number

    A text or number value to be converted to a boolean.

    Returns: Boolean

    Example

    // returns `true`

    Boolean('true')

    // returns `false`. A value of 1 would return `true`

    Boolean(0)

    // returns `false`

    Boolean('hello')


    Decode

    Decode( expression, [compare1, return1, ...compareN, returnN]?, default? ) -> returns: *

    Evaluates an expression to a value and compares the result value with the value of subsequent parameters. If the expression evaluates to a matching value, it returns the subsequent parameter value. If no matches are found, then a default value may be provided. This is similar to a switch/case statement

    Name

    Type

    Description

    expression

    *

    An Arcade expression that must evaluate to a value that can be compared with the provided case values.

    [compare1, return1, ...compareN, returnN]

    *

    optional A set of compare values and return value pairs.

    default

    *

    optional A default value to return if none of the compare values match. This may be a value of any type.

    Returns:

    Type

    Description

    *

    Returns the matched return value. If no matches are found, then the default value is returned.

    Example

    // returns a meaningful value when a field contains coded values

    var code = $feature.codedValue;

    var decodedValue = Decode(code, 1, 'Residential', 2, 'Commercial', 3, 'Mixed', 'Other');


    DefaultValue

    DefaultValue( value, defaultValue? ) -> returns: *

    Replaces an empty value with a provided default value.

    Name

    Type

    Description

    value

    *

    The input value to compare against null or ''. This may be a value of any type. However, if this value is an empty array, then the empty array will be returned.

    defaultValue

    *

    optional Return this value if the provided value is empty. This may be a value of any type.

    Returns:

    Type

    Description

    *

    If value is empty, then the defaultValue is returned. Otherwise, the value of value is returned. This may be a value of any type.

    Example

    // If a feature has no value in the POP_2000 field

    // then 'no data' is returned

    DefaultValue($feature.POP_2000, 'no data')


    IIf

    IIf( condition, trueValue, falseValue ) -> returns: *

    Returns a given value if a conditional expression evaluates to true, and returns an alternate value if that condition evaluates to false.

    Name

    Type

    Description

    condition

    Boolean

    A logical expression that must evaluate to true or false.

    trueValue

    *

    The value to return if the condition evaluates to true. This may be a value of any type.

    falseValue

    *

    The value to return if the condition evaluates to false. This may be a value of any type.

    Returns:

    Type

    Description

    *

    If condition is true, then the trueValue is returned. Otherwise, the value of falseValue is returned.

    Example

    // returns 'below' if the value is less than 1,000,000.

    // if the value is more than 1,000,000, then returns 'above'

    var population = $feature.POP_2007;

    IIf(population < 1000000, 'below', 'above');


    IsEmpty

    IsEmpty( value ) -> returns: Boolean

    Returns true if the provided value is null or an empty string (e.g. ''). Returns false for all other cases, including empty arrays and dictionaries.

    Name

    Type

    Description

    value

    *

    The value that is compared against null or ''. This may be a value of any type.

    Returns: Boolean

    Example

    // Returns true

    IsEmpty(null)

    // Returns false

    IsEmpty('hello world')


    When

    When( [expr1, result1, ...exprN, resultN], default ) -> returns: *

    Evaluates a series of conditional expressions until one evaluates to true.

    Name

    Type

    Description

    [expr1, result1, ...exprN, resultN]

    *

    A series of conditional expressions and return values if the given expression evaluates to true. This may be a value of any type.

    default

    *

    Returns this value if all expressions evaluate to false. This may be a value of any type.

    Returns: *

    Example

    Reclassify a numeric field value to a generic ranking (string)

    If all expressions are false, then 'n/a' is returned

    var density = $feature.densityField;

    var ranking = When(density < 50, 'low', density >=50 && density < 100, 'medium', density >= 100, 'high', 'n/a');

    Geometry Functions

    Since Arcade expressions execute for each feature, using multiple geometry operations within the context of the labeling and visualization profiles can be expensive and severely impact the performance of the application. Also note that geometries fetched from feature services, especially polylines and polygons, are generalized according to the view's scale resolution. Be aware that using a feature's geometry (i.e. $feature) as input to any geometry function will yield results only as precise as the view scale. Therefore, results returned from geometry operations in the visualization and labeling profiles may be different at each scale level. Use these functions at your discretion within these contexts.

    The following functions allow you to create and evaluate geometry objects. For convenience, you may pass a Feature object (e.g. $feature) as input to any of these methods, and the feature will internally cast as a geometry. These functions are grouped into the following categories:

    Create geometries

    Measurement

    Topological relationship testing

    Overlay

    Proximity

    Units reference

    If a function references units, then any of the values described in the table below may be used. Units can either be identified as a number or a string. If the value is a number, it will be based on the standard referenced here. Where appropriate, linear and areal units may be used interchangeably. For example, if calculating an area and meters is specified as the unit, then the unit will be treated as square-meters and vice versa.

    Unit value

    Alternate values

    *acres

    acre, ac

    feet

    foot, ft, square-feet, square-foot, squarefeet, squarefoot

    *hectares

    hectare, ha

    kilometers

    kilometer, km, square-kilometers, square-kilometer, squarekilometers, squarekilometer

    miles

    mile, square-miles, square-mile, squaremiles, squaremile

    meters

    meter, m, square-meters, square-meter, squaremeters, squaremeter

    yards

    yard, yd, square-yards, square-yard, squareyards, squareyard

    * Indicates the unit may only be used for calculating areas.

    Area

    Area( geometry, unit? ) -> returns: Number

    Since version 1.3

    Returns the area of the input geometry in the given units. This is a planar measurement using Cartesian mathematics.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    geometry

    Polygon | Feature

    The Polygon or Extent geometry for which to calculate the planar area.

    unit

    Text | Number

    optional Measurement unit of the return value. Use one of the string values listed in the Units reference or any of the numeric codes for area units.

    Returns: Number

    Example

    Returns the area of the feature in square meters

    Area($feature, 'square-meters')


    AreaGeodetic

    AreaGeodetic( geometry, unit? ) -> returns: Number

    Since version 1.3

    Returns the geodetic area of the input geometry in the given units. This is more reliable measurement of area than Area() because it takes into account the Earth's curvature. Support is limited to geometries with a Web Mercator (wkid 3857) or a WGS 84 (wkid 4326) spatial reference.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    geometry

    Polygon | Feature

    The Polygon or Extent geometry for which to calculate the planar area.

    unit

    Text | Number

    optional Measurement unit of the return value. Use one of the string values listed in the Units reference or any of the numeric codes for area units.

    Returns: Number

    Example

    Returns the geodetic area of the feature in square meters

    AreaGeodetic($feature, 'square-meters')


    Buffer

    Buffer( geometry, distance, unit? ) -> returns: Polygon

    Since version 1.3

    Returns the planar (or Euclidean) buffer at a specified distance around the input geometry. This is a planar measurement using Cartesian mathematics.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    geometry

    Geometry | Feature

    The geometry to buffer.

    distance

    Number

    The distance to buffer from the geometry.

    unit

    Text | Number

    optional Measurement unit of the buffer distance. Use one of the string values listed in the Units reference or any of the numeric codes.

    Returns: Polygon

    Example

    Returns a polygon representing a 1/2-mile buffer around the input geometry

    Buffer($feature, 0.5, 'miles')


    BufferGeodetic

    BufferGeodetic( geometry, distance, unit? ) -> returns: Polygon

    Since version 1.3

    Returns the geodetic buffer at a specified distance around the input geometry. This is a geodesic measurement, which calculates distances on an ellipsoid. Support is limited to geometries with a Web Mercator (wkid 3857) or a WGS 84 (wkid 4326) spatial reference.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    geometry

    Geometry | Feature

    The geometry to buffer.

    distance

    Number

    The distance to buffer from the geometry.

    unit

    Text | Number

    optional Measurement unit of the buffer distance. Use one of the string values listed in the Units reference or any of the numeric codes.

    Returns: Polygon

    Example

    Returns a polygon representing a 1/2-mile buffer around the input geometry

    BufferGeodetic($feature, 0.5, 'miles')


    Centroid

    Centroid( geometry ) -> returns: Point

    Since version 1.3

    Returns the centroid of the input geometry.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    geometry

    Polygon | Feature

    The polygon or feature for which to calculate the centroid.

    Returns: Point

    Example

    Returns the centroid of the given polygon

    Centroid($feature)


    Clip

    Clip( geometry, envelope ) -> returns: Geometry

    Since version 1.3

    Calculates the clipped geometry from a target geometry by an envelope.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    geometry

    Geometry | Feature

    The geometry to be clipped.

    envelope

    Extent

    The envelope used to clip the geometry.

    Returns: Geometry

    Example

    Returns the area of the clipped geometry

    var envelope = Extent({ ... });

    Area(Clip($feature, envelope), 'square-miles');


    Contains

    Contains( containerGeometry, insideGeometry ) -> returns: Boolean / FeatureSet

    Since version 1.3

    Indicates if one geometry contains another geometry.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    containerGeometry

    Geometry | Feature | FeatureSet

    The geometry that is tested for the 'contains' relationship to insideGeometry. Think of this geometry as the potential 'container' of the insideGeometry. In profiles that support accessing data, this can be a FeatureSet.

    insideGeometry

    Geometry | Feature

    The geometry that is tested for the 'within' relationship to the containerGeometry.

    Returns: Boolean | FeatureSet

    Example

    Returns true if the feature is contained within the given polygon

    var container = Polygon({ ... });

    Contains(container, $feature);

    Returns the number of features that contain the given polygon

    var projectArea = Polygon({ ... });

    Count(Contains($layer, projectArea));


    Crosses

    Crosses( geometry1, geometry2 ) -> returns: Boolean / FeatureSet

    Since version 1.3

    Indicates if one geometry crosses another geometry.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    geometry1

    Geometry | Feature | FeatureSet

    The geometry to cross. In profiles that support accessing data, this can be a FeatureSet.

    geometry2

    Geometry | Feature

    The geometry being crossed.

    Returns: Boolean | FeatureSet

    Example

    Returns true if the feature crosses the given polygon

    var geom2 = Polygon({ ... });

    Crosses($feature, geom2);

    Returns the number of features in the feature set that cross the given polygon

    var geom2 = Polygon({ ... });

    Count( Crosses($layer, geom2) );


    Cut

    Cut( geometry, cutter ) -> returns: Geometry[]

    Since version 1.3

    Splits the input Polyline or Polygon where it crosses a cutting Polyline. For Polylines, all resulting left cuts are grouped together in the first Geometry. Right cuts and coincident cuts are grouped in the second Geometry. Each undefined cut, along with any uncut parts, are output as separate Polylines.
    For Polygons, all resulting left cuts are grouped in the first Polygon, all right cuts are grouped in the second Polygon, and each undefined cut, along with any left-over parts after cutting, are output as a separate Polygon. If no cuts are returned then the array will be empty. An undefined cut will only be produced if a left cut or right cut was produced and there was a part left over after cutting, or a cut is bounded to the left and right of the cutter.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    geometry

    Polyline | Polygon | Feature

    The geometry to cut.

    cutter

    Polyline | Feature

    The Polyline used to cut the geometry.

    Returns: Geometry[]

    Example

    Cuts the feature's geometry with the given polyline

    var cutter = Polyline({ ... });

    Cut($feature, cutter));


    Difference

    Difference( inputGeometry, subtractor ) -> returns: Geometry

    Since version 1.3

    Performs the topological difference operation for the two geometries. The resultant geometry comes from inputGeometry, not the subtractor. The dimension of subtractor has to be equal to or greater than that of inputGeometry.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    inputGeometry

    Geometry | Feature

    The input geometry from which to subtract.

    subtractor

    Geometry | Feature

    The geometry to subtract from inputGeometry.

    Returns: Geometry

    Example

    Subtracts the given polygon area from the feature.

    var subtractor = Polygon({ ... });

    Difference($feature, subtractor);


    Disjoint

    Disjoint( geometry1, geometry2 ) -> returns: Boolean

    Since version 1.3

    Indicates if one geometry is disjoint (doesn't intersect in any way) with another geometry.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    geometry1

    Geometry | Feature

    The base geometry that is tested for the 'disjoint' relationship to geometry2.

    geometry2

    Geometry | Feature

    The comparison geometry that is tested for the 'disjoint' relationship to geometry1.

    Returns: Boolean

    Example

    Returns true if the geometries don't intersect

    var geom2 = Polygon({ ... });

    Disjoint($feature, geom2);


    Distance

    Distance( geometry1, geometry2, unit? ) -> returns: Number

    Since version 1.3

    Returns the planar distance between two geometries in the given units. This is a planar measurement using Cartesian mathematics.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    geometry1

    Geometry | Feature

    The geometry used to measure the distance from geometry2.

    geometry2

    Geometry | Feature

    The geometry used to measure the distance from geometry1.

    unit

    Text | Number

    optional Measurement unit of the return value. Use one of the string values listed in the Units reference or any of the numeric codes.

    Returns: Number

    Example

    Returns the distance between two geometries in meters

    var geom2 = Point({ ... });

    Distance($feature, geom2, 'meters')


    Equals

    Equals( geometry1, geometry2 ) -> returns: Boolean

    Since version 1.3

    Indicates if two geometries are equal, or geographically equivalent given the spatial reference and tolerance of the data. The two input geometries don't have to be clones to be considered equal.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    geometry1

    Geometry | Feature

    The first input geometry.

    geometry2

    Geometry | Feature

    The second input geometry.

    Returns: Boolean

    Example

    Returns true if the geometries are equal

    var geom2 = Point({ ... });

    Equals($feature, geom2);


    Extent

    Extent( json ) -> returns: Extent

    Constructs an Extent object from a JSON string or an object literal. The JSON schema must follow the ArcGIS REST API format for Envelope geometries. This function may also return the extent of an input Polygon, Point, Polyline or Multipoint.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    json

    Dictionary | Geometry

    The JSON or Geometry from which to construct the extent geometry object.

    Returns: Extent

    Example

    // Creates an Extent object

    var extentJSON = {

    'xmin' : -109.55, 'ymin' : 25.76, 'xmax' : -86.39, 'ymax' : 49.94,

    'spatialReference' : {'wkid' : 4326}

    };

    Extent(extentJSON);

    // Returns the Extent of the given feature

    Extent($feature)


    Geometry

    Geometry( feature ) -> returns: Geometry

    Constructs a Geometry object from a JSON string or an object literal. The JSON schema must follow the ArcGIS REST API format for geometries. This function may also return the Geometry of an input feature.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    feature

    Feature | Dictionary

    The Feature or JSON from which to construct the geometry object.

    Returns: Geometry

    Example

    Returns the geometry of the feature

    Geometry($feature)

    Constructs a point geometry. This can be done with any geometry type.

    var pointJSON = {'x' : -118.15, 'y' : 33.80, 'spatialReference' : {'wkid' : 4326}};

    Geometry(pointJSON);


    Intersection

    Intersection( geometry1, geometry2 ) -> returns: Geometry

    Since version 1.3

    Constructs the set-theoretic intersection between two geometries and returns a new geometry.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    geometry1

    Geometry | Feature

    The geometry to intersect with geometry2.

    geometry2

    Geometry | Feature

    The geometry to intersect with geometry1.

    Returns: Geometry

    Example

    Returns the area common to both polygons

    var geom2 = Polygon({ ... });

    Area(Intersection($feature, geom2), 'square-miles');


    Intersects

    Intersects( geometry1, geometry2 ) -> returns: Boolean / FeatureSet

    Since version 1.3

    Indicates if one geometry intersects another geometry.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    geometry1

    Geometry | Feature | FeatureSet

    The geometry that is tested for the intersects relationship to the other geometry. In profiles that support accessing data, this can be a FeatureSet.

    geometry2

    Geometry | Feature

    The geometry being intersected.

    Returns: Boolean | FeatureSet

    Example

    Returns true if the geometries intersect

    var geom2 = Polygon({ ... });

    Intersects($feature, geom2);

    Returns the number of features that intersect the polygon

    var geom2 = Polygon({ ... });

    Count( Intersects($layer, geom2) );


    Length

    Length( geometry, unit? ) -> returns: Number

    Since version 1.3

    Returns the length of the input geometry in the given units. This is a planar measurement using Cartesian mathematics.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    geometry

    Geometry | Feature

    The geometry for which to calculate the planar length.

    unit

    Text | Number

    optional Measurement unit of the return value. Use one of the string values listed in the Units reference or any of the numeric codes.

    Returns: Number

    Example

    Returns the planar length of the feature in kilometers

    Length($feature, 'kilometers')


    LengthGeodetic

    LengthGeodetic( geometry, unit? ) -> returns: Number

    Since version 1.3

    Returns the geodetic length of the input geometry in the given units. This is more reliable measurement of length than Length() because it takes into account the Earth's curvature. Support is limited to geometries with a Web Mercator (wkid 3857) or a WGS 84 (wkid 4326) spatial reference.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    geometry

    Geometry | Feature

    The geometry for which to calculate the geodetic length.

    unit

    Text | Number

    optional Measurement unit of the return value. Use one of the string values listed in the Units reference or any of the numeric codes.

    Returns: Number

    Example

    Returns the geodetic length of the feature in kilometers

    LengthGeodetic($feature, 'kilometers')


    MultiPartToSinglePart

    MultiPartToSinglePart( geometry ) -> returns: Geometry[]

    Since version 1.3

    Converts a multi-part geometry into separate geometries.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    geometry

    Geometry | Feature

    The multi-part geometry to break into single parts.

    Returns: Geometry[]

    Example

    Returns an array of single-part geometries from a multi-part geometry

    var allParts = MultiPartToSinglePart($feature)


    Multipoint

    Multipoint( json ) -> returns: Multipoint

    Constructs a Multipoint object from a JSON string or an object literal. The JSON schema must follow the ArcGIS REST API format for multipoint geometries.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    json

    Dictionary

    The JSON from which to construct the multipoint geometry object.

    Returns: Multipoint

    Example

    // Creates a Multipoint object

    var multipointJSON = {

    'points' : [[-97.06138,32.837],[-97.06133,32.836],[-97.06124,32.834],[-97.06127,32.832]],

    'spatialReference' : {'wkid' : 4326}

    };

    Multipoint(multipointJSON);


    Overlaps

    Overlaps( geometry1, geometry2 ) -> returns: Boolean / FeatureSet

    Since version 1.3

    Indicates if one geometry overlaps another geometry.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    geometry1

    Geometry | Feature | FeatureSet

    The base geometry that is tested for the 'overlaps' relationship with geometry2. In profiles that support accessing data, this can be a FeatureSet.

    geometry2

    Geometry | Feature

    The comparison geometry that is tested for the 'overlaps' relationship with geometry1.

    Returns: Boolean | FeatureSet

    Example

    Returns true if the geometries overlap

    var geom2 = Polygon({ ... });

    Overlaps($feature, geom2);

    Returns the number of features that overlap the polygon

    var geom2 = Polygon({ ... });

    Count( Overlaps($layer, geom2) );


    Point

    Point( json ) -> returns: Point

    Constructs a Point object from a JSON string or an object literal. The JSON schema must follow the ArcGIS REST API format for Point geometries.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    json

    Dictionary

    The JSON from which to construct the point geometry object.

    Returns: Point

    Example

    // Creates a Point object

    var pointJSON = {'x' : -118.15, 'y' : 33.80, 'spatialReference' : {'wkid' : 4326}};

    Point(pointJSON)


    Polygon

    Polygon( json ) -> returns: Polygon

    Constructs a Polygon object from a JSON string or an object literal. The JSON schema must follow the ArcGIS REST API format for Polygon geometries.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    json

    Dictionary

    The JSON from which to construct the polygon geometry object.

    Returns: Polygon

    Example

    // Creates a Polygon object

    var polygonJSON = {

    'rings' : [ [[-97.06138,32.837],[-97.06133,32.836],[-97.06124,32.834],[-97.06127,32.832], [-97.06138,32.837]],[[-97.06326,32.759],[-97.06298,32.755],[-97.06153,32.749], [-97.06326,32.759]] ],

    'spatialReference' : {'wkid' : 4326}

    };

    Polygon(polygonJSON);


    Polyline

    Polyline( json ) -> returns: Polyline

    Constructs a Polyline object from a JSON string or an object literal. The JSON schema must follow the ArcGIS REST API format for Polyline geometries.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    json

    Dictionary

    The JSON from which to construct the polyline geometry object.

    Returns: Polyline

    Example

    // Creates a Polyline object

    var polylineJSON = {

    'paths' : [ [[-97.06138,32.837],[-97.06133,32.836],[-97.06124,32.834],[-97.06127,32.832]], [[-97.06326,32.759],[-97.06298,32.755]] ],

    'spatialReference' : {'wkid' : 4326}

    };

    Polyline(polylineJSON);


    SetGeometry

    SetGeometry( internalFeature, geometry )

    Since version 1.3

    Sets or replaces a geometry on a user-defined Feature. Note that features referenced as global variables are immutable; their geometries cannot be changed.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    internalFeature

    Feature

    A feature whose geometry will be updated.

    geometry

    Geometry

    The geometry to set on the input feature.

    Example

    Sets a new geometry on the feature

    var feature = Feature(Point( ... ), 'name', 'buffer centroid');

    var buffer = BufferGeodetic(Geometry(feature), 1, 'mile');

    SetGeometry(feature, buffer);


    SymmetricDifference

    SymmetricDifference( leftGeometry, rightGeometry ) -> returns: Geometry

    Since version 1.3

    Performs the Symmetric difference operation on the two geometries. The symmetric difference includes the parts of both geometries that are not common with each other.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    leftGeometry

    Geometry | Feature

    The geometry instance to compare to rightGeometry in the XOR operation.

    rightGeometry

    Geometry | Feature

    The geometry instance to compare to leftGeometry in the XOR operation.

    Returns: Geometry

    Example

    Returns a polygon representing areas where both inputs do not overlap

    var geom2 = Polygon({ ... });

    SymmetricDifference($feature, geom2);


    Touches

    Touches( geometry1, geometry2 ) -> returns: Boolean / FeatureSet

    Since version 1.3

    Indicates if one geometry touches another geometry.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    geometry1

    Geometry | Feature | FeatureSet

    The geometry to test the 'touches' relationship with geometry2. In profiles that support accessing data, this can be a FeatureSet.

    geometry2

    Geometry | Feature

    The geometry to test the 'touches' relationship with geometry1.

    Returns: Boolean | FeatureSet

    Example

    Returns true if the geometries touch

    var geom2 = Polygon({ ... });

    Touches($feature, geom2);

    Returns the number of features in the layer that touch the geometry.

    var geom = Polygon({ ... });

    Count( Touches($layer, geom) );


    Union

    Union( geometries ) -> returns: Geometry

    Since version 1.3

    Constructs the set-theoretic union of the geometries in an input array, or list, and returns a single Geometry. All inputs must have the same geometry type and share the same spatial reference.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    geometries

    Geometry[] | Feature[]

    An array, or list, of geometries to union into a single geometry. This can be any number of geometries.

    Returns: Geometry

    Example

    Unions geometries passed as an array

    var geom2 = Polygon({ ... });

    Union([ $feature, geom2 ]);

    Unions geometries passed as a list

    var geom2 = Polygon({ ... });

    var geom3 = Polygon({ ... });

    var geom4 = Polygon({ ... });

    Union(Geometry($feature), geom2, geom3, geom4);


    Within

    Within( innerGeometry, outerGeometry ) -> returns: Boolean / FeatureSet

    Since version 1.3

    Indicates if one geometry is within another geometry.
    Be aware that using $feature as input to this function will yield results only as precise as the view's scale resolution. Therefore values returned from expressions using this function may change after zooming between scales. Read more here.

    Name

    Type

    Description

    innerGeometry

    Geometry | Feature | FeatureSet

    The base geometry that is tested for the 'within' relationship to outerGeometry. In profiles that support accessing data, this can be a FeatureSet.

    outerGeometry

    Geometry | Feature

    The comparison geometry that is tested for the 'contains' relationship to innerGeometry.

    Returns: Boolean | FeatureSet

    Example

    Returns true if the feature is within the given polygon

    var outerGeom = Polygon({ ... });

    Within($feature, outerGeom);

    Returns the number of features in the layer within the polygon

    var outerGeom = Polygon({ ... });

    Count( Within($feature, outerGeom) );

    Data Functions

    A set of convenient functions for working with and manipulating various types of data values.

    Console

    Console( message [,obj,text, ...objN,textN] ) -> returns: Text

    Logs a message in the messages window for debugging purposes. This function can be especially useful for inspecting variable values within a custom function at runtime. Unlike other functions and the return statement, Console() doesn't actually return a value; rather, it logs messages in a separate window for inspection purposes only. The successful use of this function has no computational impact on the evaluation of the expression.

    Name

    Type

    Description

    message [,obj,text, ...objN,textN]

    *

    A list of variables, messages, or objects to output in the messages window.

    Returns: Text

    Example

    Prints the value of max for each iteration of the loop within the function

    // The messages window will log the following:

    // 'current item is: 10, but max = 10'

    // 'current item is: 0, but max = 10'

    // 'current item is: 84, but max = 84'

    // 'current item is: 30, but max = 84'

    // The expression evaluates to 84

    function findMax(yourArray) {

    var max = -Infinity;

    for (var i in yourArray) {

    max = IIf(yourArray[i] > max, yourArray[i], max);

    Console('current item is: ' + i + ', but max = ' + max);

    }

    return max;

    }

    var myArray = [ 10, 0, 84, 30];

    findMax(myArray);


    Count

    Count( values ) -> returns: Number

    Returns the number of items in an array or FeatureSet, or the number of characters in a string.

    Name

    Type

    Description

    values

    Array | Text | FeatureSet

    An array or string on which to perform the operation. In profiles that support accessing data, this can be a FeatureSet.

    Returns: Number

    Example

    Returns 6

    Count([12,21,32,44,58,63])

    Returns 13

    Count('Graham County')

    Returns the number of features in a layer

    Count($layer)


    Dictionary

    Dictionary( name1, value1, [...nameN, compareN]? ) -> returns: Dictionary

    Returns a new dictionary based on the provided arguments. The arguments are name/value pairs. e.g. dictionary('field1',val,'field2',val2,...).

    Name

    Type

    Description

    name1

    Text

    The attribute name.

    value1

    *

    The attribute value.

    [...nameN, compareN]

    *

    optional Ongoing name/value pairs.

    Returns: Dictionary

    Example

    prints 3

    var d = Dictionary('field1', 1, 'field2',2)

    return d.field1 + d.field2


    Distinct

    Distinct( values ) -> returns: Array

    Since version 1.1

    Returns a set of distinct, or unique, values for a given array or list of values.

    Name

    Type

    Description

    values

    Array

    An array or list of values on which to perform the operation.

    Returns: Array

    Example

    Returns [1,2,3,4,5]

    Distinct([1,1,2,1,1,2,2,3,4,5])

    Returns ['high','medium','low',0]

    Distinct('high','medium','low',0,'high','high','low')


    DomainCode

    DomainCode( feature, fieldName, value, subtype? ) -> returns: Text

    Returns the code of an associated a domain description in a feature.

    Name

    Type

    Description

    feature

    Feature | FeatureSet

    The feature with a field that has a domain. In profiles that support accessing data, this can be a FeatureSet.

    fieldName

    Text

    The name of the field (not the alias of the field) containing the domain.

    value

    Text

    The value to be converted back into a code. This parameter is required when a FeatureSet is passed to the featureparameter. The returned code comes from the service metadata.

    subtype

    Text

    optional The coded number for the subtype if the feature supports subtyping. If not provided, the current feature's subtype (if it has one), will be used.

    Returns: Text

    Example

    prints the domain description for the field referenced.

    DomainCode($feature, 'Enabled', 'True')


    DomainName

    DomainName( feature, fieldName, code?, subtype? ) -> returns: Text

    Returns the descriptive name for a domain code in a feature.

    Name

    Type

    Description

    feature

    Feature | FeatureSet

    The feature with a field that has a domain. In profiles that support accessing data, this can be a FeatureSet.

    fieldName

    Text

    The name of the field (not the alias of the field) containing the domain.

    code

    Text

    optional The code associated with the desired descriptive name. If not provided, the field value in the feature will be returned. This parameter is required when a FeatureSet is passed to the feature parameter. The returned code comes from the service metadata.

    subtype

    Text

    optional The coded number of the subtype if the feature supports subtyping. If not provided, the feature's subtype (if it has one) will be used.

    Returns: Text

    Example

    prints the domain description for the referenced field

    DomainName($feature, 'fieldName')


    Feature

    Feature( geometry, name1, value1, [... nameN, valueN]? ) -> returns: Feature

    Creates a new feature. Alternatively, it can be called with object notation: Feature({geometry: {}, attributes: {...}}) or with two parameters: Feature(geometry, attributes);.

    Name

    Type

    Description

    geometry

    Geometry

    The geometry of the feature.

    name1

    Text

    The first attribute's name.

    value1

    Text | Date | Number | Boolean

    The first attribute's value.

    [... nameN, valueN]

    *

    optional Ongoing name/value pairs for each attribute in the feature.

    Returns: Feature

    Example

    Feature(pointGeometry, 'city_name', 'Spokane', 'population', 210721)

    Create a feature from another feature.

    var dict = { hello:10 }

    var p = point({x:10, y:20, spatialReference:{wkid:102100}})

    var ftr1 = Feature(p,dict)

    var ftr2 = Feature(ftr1)

    Create a feature from a JSON string.

    var JSONString = "{'geometry':{'x':10,'y':20,'spatialReference':{'wkid':102100}},'attributes':{'hello':10}}"

    var feature = Feature(JSONString)


    FeatureSet

    FeatureSet( definition ) -> returns: FeatureSet

    Since version 1.5

    Profiles: Attribute Rules | Popup | Field Calculate

    Creates a new FeatureSet from JSON according to the ArcGIS REST spec. See the snippet below for an example of this.

    Name

    Type

    Description

    definition

    Text

    The JSON describing a set of features. The JSON must be contained in a string.

    Returns: FeatureSet

    Example

    Create a FeatureSet from JSON.

    // JSON representation of the feature used in the snippet below

    // {

    // 'fields': [{

    // 'alias': 'RANK',

    // 'name': 'RANK',

    // 'type': 'esriFieldTypeInteger'

    // }, {

    // 'alias': 'ELEV_m',

    // 'name': 'ELEV_m',

    // 'type': 'esriFieldTypeInteger'

    // }],

    // 'spatialReference': { 'wkid': 4326 },

    // 'geometryType': 'esriGeometryPoint',

    // 'features': [{

    // 'geometry': {

    // 'spatialReference': { 'wkid': 4326 },

    // 'x': -151.0063,

    // 'y': 63.069

    // },

    // 'attributes': {

    // 'RANK': 1,

    // 'ELEV_m': 6168

    // }

    // }]

    // };

    // The Dictionary representation of the FeatureSet must be a stringified object

    var features = FeatureSet('{"fields":[{"alias":"RANK","name":"RANK","type":"esriFieldTypeInteger"},{"alias":"ELEV_m","name":"ELEV_m","type":"esriFieldTypeInteger"}],"spatialReference":{"wkid":4326},"geometryType":"esriGeometryPoint","features":[{"geometry":{"spatialReference":{"wkid":4326},"x":-151.0063,"y":63.069},"attributes":{"RANK":1,"ELEV_m":6168}}]}')


    FeatureSetById

    FeatureSetById( map, id, fieldList?, includeGeometry? ) -> returns: FeatureSet

    Since version 1.5

    Profiles: Attribute Rules | Popup | Field Calculate

    Creates a FeatureSet from a Feature Layer based on its layer ID within a map or feature service. Limiting the number of fields in the request and excluding the geometry can improve the performance of the script.

    Name

    Type

    Description

    map

    FeatureSetCollection

    The map or feature service containing one or more layers from which to create a FeatureSet. Typically, this value is the $map or $datastore global.

    id

    Text

    The ID of the layer within the given map.

    fieldList

    Text[]

    optional The fields to include in the FeatureSet. By default, all fields are included. To request all fields in the layer, set this value to ['*']. Limiting the number of fields improves the performance of the script.

    includeGeometry

    Boolean

    optional Indicates whether to include the geometry in the features. By default, this is true. For performance reasons, you should only request the geometry if necessary, such as for use in geometry functions.

    Returns: FeatureSet

    Example

    Returns the number of features in the layer with the id DemoLayerWM_1117 in the given map.

    var features = FeatureSetById($map,'DemoLayerWM_1117', ['*'], true);

    Count( features );


    FeatureSetByName

    FeatureSetByName( map, title, fieldList?, includeGeometry? ) -> returns: FeatureSet

    Since version 1.5

    Profiles: Attribute Rules | Popup | Field Calculate

    Creates a FeatureSet from a Feature Layer based on its name within a map or feature service. Keep in mind this name is not necessarily unique. It is therefore more appropriate to create a FeatureSet using FeatureSetById(). Limiting the number of fields in the feature set and excluding the geometry can improve the performance of the script.

    Name

    Type

    Description

    map

    FeatureSetCollection

    The map or feature service containing one or more layers from which to create a FeatureSet. Typically, this value is the $map or $datastore global.

    title

    Text

    The title of the layer within the given map.

    fieldList

    Text[]

    optional The fields to include in the FeatureSet. By default, all fields are included. To request all fields in the layer, set this value to ['*']. Limiting the number of fields improves the performance of the script.

    includeGeometry

    Boolean

    optional Indicates whether to include the geometry in the features. By default, this is true. For performance reasons, you should only request the geometry if necessary, such as for use in geometry functions.

    Returns: FeatureSet

    Example

    Returns the number of features in the layer with the title 'Bike routes' in the given map.

    var features = FeatureSetByName($map,'Bike routes', ['*'], true);

    Count( features );


    FeatureSetByPortalItem

    FeatureSetByPortalItem( itemId, layerId, fieldList?, includeGeometry? ) -> returns: FeatureSet

    Since version 1.5

    Profiles: Field Calculate

    Creates a FeatureSet from a Feature Layer in a portal item. Limiting the number of fields in the feature set and excluding the geometry can improve the performance of the script.

    Name

    Type

    Description

    itemId

    Text

    The GUID of the portal item referencing a feature layer or feature service.

    layerId

    Number

    The ID of the layer in the feature service.

    fieldList

    Text[]

    optional The fields to include in the FeatureSet. By default, all fields are included. To request all fields in the layer, set this value to ['*']. Limiting the number of fields improves the performance of the script.

    includeGeometry

    Boolean

    optional Indicates whether to include the geometry in the features. For performance reasons, you should only request the geometry if necessary, such as for use in geometry functions.

    Returns: FeatureSet

    Example

    Returns the number of features in the layer with the title 'Bike routes' in the given map.

    var features = FeatureSetByPortalItem('7b1fb95ab77f40bf8aa09c8b59045449', 0, ['Name', 'Count'], false);

    Count( features );


    Filter

    Filter( featureSet, filter ) -> returns: FeatureSet

    Since version 1.5

    Profiles: Attribute Rules | Popup | Field Calculate

    Filters a FeatureSet based on a SQL92 expression.

    Name

    Type

    Description

    featureSet

    FeatureSet

    The FeatureSet, or layer, to filter.

    filter

    Text

    The SQL92 expression used to filter features in the layer. This expression can substitute an Arcade variable using the @ character. See the snippet below for an example.

    Returns: FeatureSet

    Example

    Filter features using a SQL92 expression

    // Returns all features with a Population greater than 10,000

    var result = Filter($layer, 'POPULATION > 10000');

    Filter features using a SQL92 expression with a variable substitute

    // Returns all features with a Population greater than the dataset average

    var averageValue = Average($layer, 'POPULATION')

    var result = Filter($layer, 'POPULATION > @averageValue');


    First

    First( items ) -> returns: *

    Returns the first element in an array or FeatureSet.

    Name

    Type

    Description

    items

    Array

    The array from which to return the first feature. In profiles that support accessing data, this can be a FeatureSet.

    Returns: *

    Example

    prints 'orange'

    First(['orange', 'purple', 'gray'])

    returns the area of the first feature in the layer.

    Area( First($layer) )


    Guid

    Guid( format? ) -> returns: Text

    Since version 1.3

    Returns a random GUID as a string.

    Name

    Type

    Description

    format

    Text

    optional An named format for the GUID. The default value is digits-hyphen-braces.
    Possible Values: digits / digits-hyphen / digits-hyphen-braces / digits-hyphen-parentheses

    Returns: Text

    Example

    Returns a value similar to {db894515-ed21-4df1-af67-36232256f59a}

    Guid()

    Returns a value similar to d00cf4dffb184caeb8ed105b2228c247

    Guid('digits')


    HasKey

    HasKey( feature, key ) -> returns: Boolean

    Indicates whether a dictionary or feature has the input key.

    Name

    Type

    Description

    feature

    Dictionary | Feature

    The dictionary or feature to check for a key or field name.

    key

    Text

    The key or field name to check.

    Returns: Boolean

    Example

    prints true

    var d = Dictionary('Port Hope', 16214, 'Grafton', '<1000', 'Cobourg', 18519);

    HasKey(d, 'Cobourg');


    IndexOf

    IndexOf( inputArray, item ) -> returns: Number

    Returns the zero-based index location of the input item in an array. If item does not exist, then -1 is returned.

    Name

    Type

    Description

    inputArray

    Array

    The array to search.

    item

    *

    The item to locate in the array.

    Returns: Number

    Example

    prints 2

    var array = [1,2,3,4];

    return indexof(array, 3);


    IsNan

    IsNan( value ) -> returns: Boolean

    Since version 1.5

    Indicates whether the input value is not a number (NaN). A number is considered NaN in one of the following scenarios:

    • 0/0
    • Infinity / Infinity
    • Infinity * 0
    • Any operation in which NaN is an operand
    • Casting a non-numeric string or undefined to a number

    Name

    Type

    Description

    value

    *

    The value to check if it is NaN.

    Returns: Boolean

    Example

    // Returns true

    IsNan(Infinity / Infinity)

    // Returns false

    IsNan('4')


    NextSequenceValue

    NextSequenceValue( inputSequenceName ) -> returns: Number

    Since version 1.4

    Profiles: Attribute Rules

    Returns the next sequence value from the database sequence specified. If inputSequenceName does not exist, the expression will error. This function is only valid in the calculation profile when used in attribute rules.

    Name

    Type

    Description

    inputSequenceName

    Text

    The name of the sequence. This must already be configured in the database.

    Returns: Number

    Example

    Returns a number with the next sequence value

    NextSequenceValue('PipeIDSeq')


    Number

    Number( value, pattern? ) -> returns: Number

    Parses the input value to a number.

    Name

    Type

    Description

    value

    *

    The value to convert to a number.

    pattern

    Text

    optional The format pattern string used to parse numbers formatted in a localized context from a string value to a number. The table below describes the characters that may be used in the pattern.

    Value

    Description

    0

    Mandatory digits

    #

    Optional digits

    %

    Divide by 100

    Returns: Number

    Example

    Parses a number using a grouping separator appropriate for the local in which the expression is executed

    returns 1365

    Number('1,365', ',###')

    Remove strings from number.

    prints 10

    Number('abc10def', 'abc##def')

    Specify minimum digits past 0 as two and maximum digits past 0 as 4.

    prints 10.456

    Number('10.456','00.00##')

    Specify minimum digits past 0 as two and maximum digits past 0 as 4. The left and right side of the function must match or NaN is returned.

    prints NaN

    Number('10.4','00.00##')

    Indicate the size of the repeated group and the final group size of the input value.

    prints 1212456

    Number('12,12,456', ',##,###')

    If there is a negative subpattern, it serves only to specify the negative prefix and suffix.

    prints -1223345

    Number('-12,23,345', ',##,###;-,##,###')

    Divide by 100. Maximum of three decimal places can be input.

    prints 0.9999

    Number('99.99%', '#.##%')


    OrderBy

    OrderBy( featureSet, expression ) -> returns: FeatureSet

    Since version 1.5

    Profiles: Attribute Rules | Popup | Field Calculate

    Orders a FeatureSet by using a SQL92 OrderBy clause.

    Name

    Type

    Description

    featureSet

    FeatureSet

    The FeatureSet, or layer, to order.

    expression

    Text

    The SQL92 expression used to order features in the layer.

    Returns: FeatureSet

    Example

    Order features by population where features with the highest population are listed first

    OrderBy($layer, 'POPULATION DESC')

    Order features by rank in ascending order

    OrderBy($layer, 'Rank ASC')


    Reverse

    Reverse( inputArray ) -> returns: Array

    Reverses the contents of the array in place.

    Name

    Type

    Description

    inputArray

    Array

    The array to be reversed.

    Returns: Array

    Example

    returns ['grey', 'purple', 'orange']

    Reverse(['orange', 'purple', 'grey'])


    Sort

    Sort( inputArray, comparator? ) -> returns: Array

    Sorts an array by ASCII value. If all the items in the array are the same type, an appropriate sort function will be used. If they are different types, the items will be converted to strings. If the array contains objects, and no user defined function is provided, no sort will happen.

    Name

    Type

    Description

    inputArray

    Array

    The array to sort.

    comparator

    Text

    optional The name of a user defined function to be used for the sort.

    Returns: Array

    Example

    returns ['$', 1, 'A', 'a']

    Sort([1, 'a', '$', 'A'])

    Sort using a user defined function

    returns '[{ 'AGE': 24, 'NAME': 'Emma' }, { 'AGE': 25, 'NAME': 'Sam' }, { 'AGE': 27, 'NAME': 'Bob' } ]'

    var peopleArray = [{ 'NAME': 'Sam', 'AGE': 25 }, {'NAME': 'Bob', 'AGE': 27 },{ 'NAME': 'Emma', 'AGE': 24 }];

    function compareAge(a,b){

    if (a['AGE']<b['AGE'])

    return -1;

    if (a['AGE']>b['AGE'])

    return 1;

    return 0;

    }

    return Sort(peopleArray, compareAge);


    Text

    Text( value, format? ) -> returns: Text

    Converts its argument into a string and optionally formats it. Returns null if it fails.

    Name

    Type

    Description

    value

    *

    A value to be converted to a string (e.g. date, number or other type).

    format

    Text

    optional Formatting string for dates or numbers. See the list of possible values below.

    Value

    Description

    0

    Digit

    #

    Digit, omitting leading/trailing zeros

    D

    Day of the month, not padded (1 - 31).

    DD

    Day of the month, padded (01 - 31).

    DDD

    Ordinal day of the year (1 - 365).

    d

    Day of the week (1 - 7)

    ddd

    Abbreviated day of the week (e.g. Mon)

    dddd

    Full day of the week (e.g. Monday).

    M

    Month number (1 - 12)

    MM

    Month number, padded (01 - 12).

    MMM

    Abbreviated month name (e.g. Jan).

    MMMM

    Full month name (e.g. January)

    m

    Minutes, not padded (0 - 59).

    mm

    Minutes, padded (00 - 59).

    Y

    Full year

    YY

    Two-digit year

    h

    Civilian hours, not padded (0 - 12)

    hh

    Civilian hours, padded (00 - 12)

    H

    Military hours, not padded (0 - 24)

    HH

    Military hours, padded (00 - 24)

    s

    Seconds, not padded (0 - 59)

    ss

    Seconds, padded (00 - 59)

    Returns: Text

    Example

    Pad the number to the left of the decimal

    prints '0123'

    Text(123, '0000')

    Restrict the number to the left of the decimal

    prints '23'

    Text(123, '00')

    Group the number by thousands

    prints '1,234'

    Text(1234, '#,###')

    Round the number to two decimal places

    prints '12,345,678.12'

    Text(12345678.123, '#,###.00')

    Format number as currency

    prints '$1,234.55'

    Text(1234.55, '$#,###.00')

    Round the number to two decimal places

    prints '1.24'

    Text(1.236, '#.00')

    Maintain significant digits and group by thousands

    prints '1,234.568'

    Text(1234.5678, '#,##0.00#')

    Format the number and format positive/negative - if there is a negative subpattern, it serves only to specify the negative prefix and suffix

    prints 'Basement 2'

    Text(-2, 'Floor #;Basement #')

    prints 'Floor 2'

    Text(2, 'Floor #;Basement #')

    Multiply by 100 and format as percentage

    prints '30%'

    Text(0.3, '#%')

    Format date and time

    prints the date at the moment. eg 'Tuesday, October 25, 2016 @ 08:43:11'

    Text(Now(), 'dddd, MMMM D, yyyy @ h:m:s')


    Top

    Top( items, numElements ) -> returns: Array / FeatureSet

    Since version 1.3

    Truncates the input array or FeatureSet and returns the first given number of elements.

    Name

    Type

    Description

    items

    Array | FeatureSet

    The array to truncate. In profiles that support accessing data, this can be a FeatureSet.

    numElements

    Number

    The number of elements to return from the beginning of the array or FeatureSet.

    Returns: Array | FeatureSet

    Example

    returns [ 43,32,19 ]

    Top([ 43,32,19,0,3,55 ], 3)

    Returns the top 5 features with the highest population

    Top( OrderBy($layer, 'POPULATION DESC'), 5 )


    TypeOf

    TypeOf( value ) -> returns: Text

    Returns the type of the input value. Will return one of the following types: Array, Date, Text, Boolean, Number, Dictionary, Feature, Point, Polygon, Polyline, Multipoint, Extent, Function, Unrecognized Type.

    Name

    Type

    Description

    value

    *

    The input value, variable, or feature attribute.

    Returns: Text

    Example

    prints 'Boolean'

    TypeOf(true)

    prints 'Date'

    TypeOf(Now())

    Text Functions

    Functions for formatting text values. These are commonly used in the labeling and popup profiles.

    Concatenate

    Concatenate( values, separator?, format? ) -> returns: Text

    Concatenates values together and returns a text value.

    Name

    Type

    Description

    values

    Text[]

    An array of text values to concatenate.

    separator

    Text

    optional Separator to use for concatenation if values parameter is an array. Or text to concatenate, if a single value is provided for the first parameter. If not provided will be empty.

    format

    Text

    optional Formatting text for dates or numbers. This parameter is available in Arcade version 1.3 and later. See the list of possible values below.

    Value

    Description

    0

    Digit

    #

    Digit, omitting leading/trailing zeros

    D

    Day of the month, not padded (1 - 31).

    DD

    Day of the month, padded (01 - 31).

    DDD

    Ordinal day of the year (1 - 365).

    d

    Day of the week (1 - 7)

    ddd

    Abbreviated day of the week (e.g. Mon)

    dddd

    Full day of the week (e.g. Monday).

    M

    Month number (1 - 12)

    MM

    Month number, padded (01 - 12).

    MMM

    Abbreviated month name (e.g. Jan).

    MMMM

    Full month name (e.g. January)

    m

    Minutes, not padded (0 - 59).

    mm

    Minutes, padded (00 - 59).

    Y

    Full year

    YY

    Two-digit year

    h

    Civilian hours, not padded (0 - 12)

    hh

    Civilian hours, padded (00 - 12)

    H

    Military hours, not padded (0 - 24)

    HH

    Military hours, padded (00 - 24)

    s

    Seconds, not padded (0 - 59)

    ss

    Seconds, padded (00 - 59)

    Returns: Text

    Example

    prints 'red/blue/green'

    Concatenate(['red', 'blue', 'green'], '/')


    Find

    Find( searchText, text, startpos? ) -> returns: Number

    Finds a string of characters within a text value. Wildcards are NOT supported.

    Name

    Type

    Description

    searchText

    Text

    The character string to search for.

    text

    Text

    The text to search.

    startpos

    Number

    optional The zero-based index of the location in the text to search from.

    Returns: Number

    Example

    prints 6

    Find('380', 'Esri, 380 New York Street', 0)


    Left

    Left( value, charCount ) -> returns: Text

    Returns the specified number of characters from the beginning of a text value.

    Name

    Type

    Description

    value

    Text | Array | Number | Boolean

    The text from which to get characters.

    charCount

    Number

    The number of characters to get from the beginning of the text.

    Returns: Text

    Example

    prints 'the'

    Left('the quick brown fox', 3)


    Lower

    Lower( value ) -> returns: Text

    Makes a text value lower case.

    Name

    Type

    Description

    value

    Text

    The text to be made lowercase.

    Returns: Text

    Example

    prints 'hello'

    Lower('HELLO')


    Mid

    Mid( value, startpos, charCount ) -> returns: Text

    Gets a number of characters from the middle of a text value.

    Name

    Type

    Description

    value

    Text | Array | Number | Boolean

    The text from which to get characters.

    startpos

    Number

    The starting position from which to get the text. 0 is the first position.

    charCount

    Number

    The number of characters to extract.

    Returns: Text

    Example

    prints 'quick'

    Mid('the quick brown fox', 4, 5)


    Proper

    Proper( value, applyTo? ) -> returns: Text

    Converts a text value to title case. By default, the beginning of every word is capitalized. The option firstword will capitalize only the first word.

    Name

    Type

    Description

    value

    Text

    The text to convert to title case.

    applyTo

    Text

    optional A text value specifying the type of capitalization to be performed. By default every word is capitalized. This parameter accepts one of two values: everyword or firstword.

    Returns: Text

    Example

    prints 'The Quick Brown Fox'

    Proper('the quick brown fox', 'everyword')


    Replace

    Replace( value, searchText, replacementText, allOccurrences? ) -> returns: Text

    Replaces a string within a text value or an element within an array. Defaults to replacing all occurrences.

    Name

    Type

    Description

    value

    Text | Array | Number | Boolean

    The value in which to make replacements.

    searchText

    Text

    The text to search for.

    replacementText

    Text

    The replacement text.

    allOccurrences

    Boolean

    optional Indicates if all occurrences of the searchText should be replaced in the text. Defaults to true.

    Returns: Text

    Example

    prints 'the quick red fox'

    Replace('the quick brown fox', 'brown', 'red')


    Right

    Right( value, charCount ) -> returns: Text

    Returns the specified number of characters from the end of a text value.

    Name

    Type

    Description

    value

    Text | Array | Number | Boolean

    The text from which to get characters.

    charCount

    Number

    The number of characters to get from the end of the text value.

    Returns: Text

    Example

    prints 'fox'

    Right('the quick brown fox', 3)


    Split

    Split( value, separator, limit?, removeEmpty? ) -> returns: Text[]

    Splits a text value into an array.

    Name

    Type

    Description

    value

    Text

    The text value to be split.

    separator

    Text

    The separator used to split the text.

    limit

    Number

    optional An integer that specifies the number of splits.

    removeEmpty

    Boolean

    optional Indicates whether to remove empty values. By default this is false.

    Returns: Text[]

    Example

    returns '[red,green]'

    Split('red,green,blue,orange', ',', 2)


    Trim

    Trim( value ) -> returns: Text

    Removes spaces from the beginning or end of an input text value.

    Name

    Type

    Description

    value

    Text

    The text to be trimmed.

    Returns: Text

    Example

    prints 'hello world'

    Trim(' hello world')


    Upper

    Upper( value ) -> returns: Text

    Makes text upper case.

    Name

    Type

    Description

    value

    Text

    The text value to be made uppercase.

    Returns: Text

    Example

    prints 'HELLO'

    Upper('Hello')

    Mathematical Functions

    Functions for performing mathematical operations.

    Abs
    Abs( value ) -> returns: Number

    Returns the absolute value of a number. If the input is null, then it returns 0.

    Name

    Type

    Description

    value

    Number

    A number on which to perform the operation.

    Returns: Number
    Example

    prints 3

    Abs(-3)

    Acos
    Acos( value ) -> returns: Number

    Returns the arccosine of the input value in radians, in the range of zero to PI. If the input value is outside the appropriate range of +/- 1, then NaN is returned.

    Name

    Type

    Description

    value

    Number

    A number between -1 and 1 on which to perform the operation.

    Returns: Number
    Example

    prints 1.266104

    Acos(0.3)

    Asin
    Asin( value ) -> returns: Number

    Returns the arcsine of the input value in radians, in the range of -PI/2 and PI/2. If the input value is outside the appropriate range of +/- 1, then NaN is returned.

    Name

    Type

    Description

    value

    Number

    A number between -1 and 1 on which to perform the operation.

    Returns: Number
    Example

    prints 0.304693

    Asin(0.3)

    Atan
    Atan( value ) -> returns: Number

    Returns the arctangent of the input value in radians, in the range of -PI/2 and PI/2.

    Name

    Type

    Description

    value

    Number

    A number on which to perform the operation.

    Returns: Number
    Example

    prints 0.785398

    Atan(1)

    Atan2
    Atan2( y, x ) -> returns: Number

    Returns the arctangent of the quotient of the input values in radians, in the range of -PI and zero or zero and PI depending on the sign of arguments.

    Name

    Type

    Description

    y

    Number

    A number representing the y-coordinate.

    x

    Number

    A number representing the x-coordinate.

    Returns: Number
    Example

    prints -2.356194

    Atan2(-1, -1)

    Average
    Average( values, fieldName? ) -> returns: Number

    Returns the average of a set of numbers. In profiles that support accessing data, this function can return the average value of a given numeric field in a FeatureSet.

    Name

    Type

    Description

    values

    Number[] | FeatureSet

    A list or array of numbers on which to perform the operation. In profiles that support accessing data, this can be a FeatureSet.

    fieldName

    Text

    optional Specifies the name of a numeric field or SQL92 expression for which the statistic will be calculated from the input FeatureSet. This parameter only applies when a FeatureSet is specified.

    Returns: Number
    Example

    prints 5

    var array = [0,10]
    Average(0,10,5,array)
     

    calculates the difference between the feature's population and the average population of all features in the layer

    $feature.population - Average($layer, 'population')

    calculates the average population per square mile of all features in the layer

    Average($layer, 'population / area')

    Ceil
    Ceil( value, numPlaces? ) -> returns: Number

    Returns the input value rounded upwards to the given number of decimal places.

    Name

    Type

    Description

    value

    Number

    The number to round upward.

    numPlaces

    Number

    optional The number of decimal places to round the value to. Default is 0. Trailing zeros will be truncated.

    Returns: Number
    Example

    prints 2135.1

    Ceil(2135.0905, 2)

    Constrain
    Constrain( value, min, max ) -> returns: Number

    Since version 1.2

    Constrains the given input value to minimum and maximum bounds. For example, if the input value is 10, the lower bound is 50, and the upper bound is 100, then 50 is returned.

    Name

    Type

    Description

    value

    Number

    The value to constrain to the given min and max bounds.

    min

    Number

    The lower bound by which to constrain the input value. If the given value is less than the min, then min is returned.

    max

    Number

    The upper bound by which to constrain the input value. If the given value is greater than the max, then max is returned.

    Returns: Number
    Example

    returns 5

    Constrain(5, 0, 10)

    returns 0

    Constrain(-3, 0, 10)

    returns 10

    Constrain(553, 0, 10)

    Cos
    Cos( value ) -> returns: Number

    Returns the cosine of the input value in radians.

    Name

    Type

    Description

    value

    Number

    A number in radians on which to perform the operation.

    Returns: Number
    Example

    prints 0.540302

    Cos(1)

    Exp
    Exp( x ) -> returns: Number

    Returns the value of e to the power of x, where e is the base of the natural logarithm 2.718281828.

    Name

    Type

    Description

    x

    Number

    The power, or number of times to multiply e to itself.

    Returns: Number
    Example

    prints 7.389056

    Exp(2)

    Floor
    Floor( value, numPlaces? ) -> returns: Number

    Returns the input value rounded downward to the given number of decimal places.

    Name

    Type

    Description

    value

    Number

    A number to round downward.

    numPlaces

    Number

    optional The number of decimal places to round the number. Default is 0. Trailing zeros will be truncated.

    Returns: Number
    Example

    prints 2316.25

    Floor(2316.2562, 2)

    Log
    Log( x ) -> returns: Number

    Returns the natural logarithm (base e) of x.

    Name

    Type

    Description

    x

    Number

    A number on which to perform the operation.

    Returns: Number
    Example

    prints 2.302585

    Log(10)

    Max
    Max( values, fieldName? ) -> returns: Number

    Returns the highest value from an array of numbers. In profiles that support accessing data, this function can return the highest value for a given numeric field from a FeatureSet.

    Name

    Type

    Description

    values

    Number[] | FeatureSet

    An array or list of numbers. In profiles that support accessing data, this can be a FeatureSet.

    fieldName

    Text

    optional Specifies the name of a numeric field or SQL92 expression for which the statistic will be calculated from the input FeatureSet. This parameter only applies when a FeatureSet is specified.

    Returns: Number
    Example

    prints 89

    Max([23,56,89])

    prints 120

    Max(23,5,120,43,9)

    prints the max value of the population field for all features in the layer

    Max($layer, 'population')

    calculates the max population per square mile of all features in the layer

    Max($layer, 'population / area')

    Mean
    Mean( values, fieldName? ) -> returns: Number

    Since version 1.1

    Returns the mean value of an array of numbers. In profiles that support accessing data, this function can return the mean value of a given numeric field in a FeatureSet.

    Name

    Type

    Description

    values

    Number[] | FeatureSet

    A list or array of numbers from which to calculate the mean. In profiles that support accessing data, this can be a FeatureSet.

    fieldName

    Text

    optional Specifies the name of a numeric field or SQL92 expression for which the statistic will be calculated from the input FeatureSet. This parameter only applies when a FeatureSet is specified.

    Returns: Number
    Example
    Use a single array as input

    returns 5

    var vals = [1,2,3,4,5,6,7,8,9];
    Mean(vals);
     
    Use comma separated values with array element

    returns 5

    var array = [0,10];
    Mean(0,10,5,array);
     

    calculates the difference between the feature's population and the mean population of all features in the layer

    $feature.population - Mean($layer, 'population')

    calculates the mean population per square mile of all features in the layer

    Mean($layer, 'population / area')

    Min
    Min( values, fieldName? ) -> returns: Number

    Returns the lowest value in a given array. In profiles that support accessing data, this function can return the lowest value for a given numeric field from a FeatureSet.

    Name

    Type

    Description

    values

    Number[] | FeatureSet

    An array or list of numbers. In profiles that support accessing data, this can be a FeatureSet.

    fieldName

    Text

    optional Specifies the name of a numeric field or SQL92 expression for which the statistic will be calculated from the input FeatureSet. This parameter only applies when a FeatureSet is specified.

    Returns: Number
    Example

    prints 23

    Min([23,56,89])

    prints 5

    Min(23,5,120,43,9)

    prints the min value of the population field for all features in the layer

    Min($layer, 'population')

    returns the minimum population per square mile of all features in the layer

    Min($layer, 'population / area')

    Pow
    Pow( x, y ) -> returns: Number

    Returns the value of x to the power of y.

    Name

    Type

    Description

    x

    Number

    The base value.

    y

    Number

    The exponent. This indicates the number of times to multiply x by itself.

    Returns: Number
    Example

    prints 9

    Pow(3, 2)

    Random
    Random( ) -> returns: Number

    Returns a random number between 0 and 1.

    Name

    Type

    Description

    Returns: Number
    Example
    Random()

    Round
    Round( value, numPlaces? ) -> returns: Number

    Returns the input value, rounded to the given number of decimal places.

    Name

    Type

    Description

    value

    Number

    A number to round.

    numPlaces

    Number

    optional The number of decimal places to round the number to. Default is 0. Trailing zeros will be truncated.

    Returns: Number
    Example

    prints 2316.26

    Round(2316.2562, 2)

    Sin
    Sin( value ) -> returns: Number

    Returns the sine of the input value.

    Name

    Type

    Description

    value

    Number

    A number in radians on which to perform the operation.

    Returns: Number
    Example

    prints 0.841741

    Sin(1)

    Sqrt
    Sqrt( value ) -> returns: Number

    Returns the square root of a number.

    Name

    Type

    Description

    value

    Number

    A number on which to calculate the square root.

    Returns: Number
    Example

    prints 3

    Sqrt(9)

    Stdev
    Stdev( values, fieldName? ) -> returns: Number

    Returns the standard deviation (population standard deviation) of a set of numbers. In profiles that support accessing data, this function can return the standard deviation for the values from a given numeric field in a FeatureSet.

    Name

    Type

    Description

    values

    Number[] | FeatureSet

    An array or list of numbers on which to perform the operation. In profiles that support accessing data, this can be a FeatureSet.

    fieldName

    Text

    optional Specifies the name of a numeric field or SQL92 expression for which the statistic will be calculated from the input FeatureSet. This parameter only applies when a FeatureSet is specified.

    Returns: Number
    Example

    prints 27.5

    Stdev(23,56,89,12,45,78)

    prints the standard deviation of values from the 'population' field

    Stdev($layer, 'population')

    calculates the standard deviation of the population per square mile of all features in the layer

    Stdev($layer, 'population / area')

    Sum
    Sum( values, fieldName? ) -> returns: Number

    Returns the sum of a set of numbers. In profiles that support accessing data, this function can return the sum of values returned from a given numeric field in a FeatureSet.

    Name

    Type

    Description

    values

    Number[] | FeatureSet

    An array of numbers on which to perform the operation. In profiles that support accessing data, this can be a FeatureSet.

    fieldName

    Text

    optional Specifies the name of a numeric field or SQL92 expression for which the statistic will be calculated from the input FeatureSet. This parameter only applies when a FeatureSet is specified.

    Returns: Number
    Example

    prints 303

    Sum(23,56,89,12,45,78)

    calculates the population of the current feature as a % of the total population of all features in the layer

    ( $feature.population / Sum($layer, 'population') ) * 100

    calculates the total number of votes cast in an election for the entire dataset

    Sum($layer, 'democrat + republican + other')

    Tan
    Tan( value ) -> returns: Number

    Returns the tangent of an angle in radians.

    Name

    Type

    Description

    value

    Number

    A number on which to calculate the tangent.

    Returns: Number
    Example

    prints 0.57389

    Tan(0.521)

    Variance
    Variance( values, fieldName? ) -> returns: Number

    Returns the variance (population variance) of a set of numbers. In profiles that support accessing data, this function can return the variance of the values from a given numeric field in a FeatureSet.

    Name

    Type

    Description

    values

    Number[] | FeatureSet

    An array of numbers on which to perform the operation. In profiles that support accessing data, this can be a FeatureSet.

    fieldName

    Text

    optional Specifies the name of a numeric field or SQL92 expression for which the statistic will be calculated from the input FeatureSet. This parameter only applies when a FeatureSet is specified.

    Returns: Number
    Example

    prints 756.25

    Variance(12,23,45,56,78,89)

    prints the variance for the population field in the given layer

    Variance($layer, 'population')

    calculates the variance of the population per square mile of all features in the layer

    Variance($layer, 'population / area')



  • 相关阅读:
    动态可配置表单的设计构思
    mysql之视图
    mysql学习之数据备份和恢复
    mysqli操作
    mysql登录出现1045错误修改方法
    mysql之简单的多表查询
    sql优化的方法总结
    mysql语句操作
    linux 批量替换文件内容
    zend framework 数据库操作(DB操作)总结
  • 原文地址:https://www.cnblogs.com/gispathfinder/p/10322469.html
Copyright © 2011-2022 走看看