{ "Requirements": { "spatial reference": "datasets that have projected spatial reference", "datum transformations": "datasets with projections that don’t need transformations (method GetElevationAtLonLat)", "Z values": "datasets where the Z values are in the same units as the XY", "Raster or Mosaic layer in the map": "Map Service with at least one elevation layer; the elevation layer must be a single band Raster Layer or Mosaic Layer", "Capabilities": "Select the operations you want to allow for the SOE" }, "Properties": { "interpolationCount": "Number of points to interpolate along a geometry; used in the GetElevations operation when the input geometry is a polyline or polygon.", "maxDataValues": "Maximum number of values to send back; used in the GetElevationData operation and is calculated by multiplying the Rows and Columns input values." }, "Resources": { "ElevationLayers": "A list of Raster or Mosaic layers in the map." }, "Operations": { "GetElevationAtLonLat": { "Info": "Get the elevation at a location. \u003cb\u003e\u003cfont color=\u0027#FF0000\u0027\u003eInput geometry (lon,lat) are projected to the elevation source dataset but transformations are not supported\u003c/font\u003e\u003c/b\u003e", "Inputs": { "lon": "(double) The longitude of the location in WGS84 coordinates. Value must be between -180.0 and 180.0", "lat": "(double) The latitude of the location in WGS84 coordinates. Value must be between -90.0 and 90.0" }, "Outputs": { "elevation": "(double) Elevation at input location" } }, "GetElevations": { "Info": "Get the elevations along a set of geometries. Supported geometries are point, multipoint, polyline and polygon. To learn more about formatting the input geometries, please visit the \u0027Geometry Objects\u0027 section of the ArcGIS Server REST documentation.", "Inputs": { "geometries": "(geometry[]) The array of geometries" }, "Outputs": { "geometries": "(geometry[]) The array of interpolated geometries which are densified and contain Z values at each vertex or point." } }, "GetElevationData": { "Info": "Get interpolated elevation values within an extent.", "Inputs": { "extent": "(extent) The interpolation extent", "rows": "(int) Number of rows. Note: (rows * columns) must be less than maxDataValues as defined by admin", "columns": "(int) Number of columns; Note: (rows * columns) must be less than maxDataValues as defined by admin" }, "Outputs": { "nCols": "(int) Number of columns", "nRows": "(int) Number of rows", "xLLCenter": "(double) X coordinate of the center of the lower left cell", "yLLCenter": "(double) Y coordinate of the center of the lower left cell", "cellSize": "(double) Cell size of the interpolated raster", "noDataValue": "(number) \u0027No Data\u0027 value", "spatialReference": "(SpatialReference) Spatial reference of the interpolated raster", "data": "(number[]) Interpolated elevation values as array of numbers", "rasterProperties": { "isInteger": "(boolean) Are the values integers", "datasetMin": "(number/NaN) The minimum value of the entire elevation dataset", "datasetMax": "(number/NaN) The maximum value of the entire elevation dataset" } } }, "GetLineOfSight": { "Info": "Computes the visibility of a line-of-sight from the observer to the target.", "Inputs": { "geometry": "(geometry) The line of sight between two points, an observer and target (end points of line)", "offsetObserver": "(double/NaN) optional offset of observer from surface", "offsetTarget": "(double/NaN) optional offset of target from surface", "applyCurvature": "(boolean) optional true to have earth curvature taken into consideration. The default is false. It can be set to true if the surface has a defined projected coordinate system that includes defined ZUnits", "applyRefraction": "(boolean) optional true to have refraction of visible light taken into consideration. The default is false. It can be set to true if the surface has a defined projected coordinate system that includes defined ZUnits", "refractionFactor": "(number/NaN) optional The default refraction factor is 0.13" }, "Outputs": { "pointObstruction": "(geometry) the location of the first obstruction point", "visibleLines": "(geometry) represent that which is seen from the observation point", "invisibleLines": "(geometry) represent that which isn\u0027t seen from the observation point", "isVisible": "(boolean) whether the target is visible" } }, "GetSteepestPath": { "Info": "Returns the steepest downhill path, the direction of steepest slope, from the specified query point. It will start at the query point and end in a pit or the edge of the surface. The returned polyline will be 3D.", "Inputs": { "geometry": "(geometry) Point" }, "Outputs": { "geometry": "(geometry) Polyline The steepest downhill path. The resulting polyline pointer will be set to Nil (nothing) if the query point falls outside the surface or on a flat area" } }, "GetContour": { "Info": "Returns the contour and height corresponding to a specified query point.", "Inputs": { "geometry": "(geometry) Point" }, "Outputs": { "geometry": "(geometry) Polyline The contour", "elevation": "(number) double/NaN The height corresponding to a specified query point." } }, "GetSlope": { "Info": "Returns the slope at the specified location in percent or degrees or radians.", "Inputs": { "geometry": "(geometry) Point", "units": "(string) percent|degrees|radians Optional(default:percent)" }, "Outputs": { "slope": "(double) Slope", "units": "(string) percent|degrees|radians" } }, "GetRelief": { "Info": "Returns the relief of a line using the min/max elevations of the line.", "Inputs": { "geometries": "(geometry[]) The array of geometries" }, "Outputs": { "relief": "(double) Relief" } }, "GetAspect": { "Info": "Returns the aspect at the specified location in degrees or radians. Aspect is defined as the direction of steepest slope. The possible range of values falls between 0.0 and 360. 0.0 represents a north facing slope with increasing values changing aspect in a clockwise direction. For example, 90 degrees is due east, 180 degrees due south, and 270 degrees due west", "Inputs": { "geometry": "(geometry) Point", "units": "(string) degrees|radians Optional(default:degrees)" }, "Outputs": { "aspect": "(double) Aspect", "units": "(string) degrees|radians" } }, "GetSurfaceLength": { "Info": "Returns the 3D length of the polyline by interpolating heights from the surface and calculating the sum of 3D distances between the vertices. Portions of the line falling outside the interpolation zone are excluded from the calculation", "Inputs": { "geometry": "(geometry) Polyline", "stepSize": "(double/NaN) Generally, the smaller the interval the greater the detail (unless smaller than 1/2 cellsize), but at an increased cost in processing time and size of resulting geometry. The default stepSize for raster based surface is set equal to the cellsize" }, "Outputs": { "surfaceLength": "(double) Returns the 3D length of the polyline by interpolating heights from the surface and calculating the sum of 3D distances between the vertices" } }, "GetNormal": { "Info": "Returns the normal vector corresponding to a specified query point.", "Inputs": { "geometry": "(geometry) Point" }, "Outputs": { "geometry": "(geometry) input location", "vector3D": "(array) double Components (x,y,z) of vector normal (versor)" } }, "GetLocate": { "Info": "Returns the intersection of the query ray (origin: start point of line) and the surface", "Inputs": { "geometry": "(geometry) Line", "offsetFromPoint": "(double/NaN) offset from surface. If NaN uses Z from start point line", "offsetToPoint": "(double/NaN) offset from surface. If NaN uses Z from end point line", "hint": "(int/NaN) Optional Default = 0" }, "Outputs": { "geometry": "(geometry) point location" } }, "GetLocateAll": { "Info": "Returns the distances of intersections of the query ray (origin: start point of line) and the surface.", "Inputs": { "geometry": "(geometry) Line", "offsetFromPoint": "(double/NaN) offset from surface. If NaN uses Z from start point line", "offsetToPoint": "(double/NaN) offset from surface. If NaN uses Z from end point line", "hint": "(int/NaN) Optional Default = 0" }, "Outputs": { "distances": "(array double) The distances of intersections of the query ray (origin: start point of line) and the surface" } } } }