REST: Measurements API

Have more questions? Submit a request

Programmatically measure map data using the DroneDeploy REST API. This tool is primarily for partners who render DroneDeploy data in their own applications and want to use our server-side measurement features.

Availability: Who has access?

The REST: Measurements API is available to Enterprise customers and App Market partners. You must generate an API Key from your Account Preferences to authenticate these requests.

Overview

This API allows you to calculate elevation at specific points, generate elevation profiles along lines, and calculate volumes within polygons.

Coordinate geometry format

All coordinate geometries pass through the URL using the Well Known Text (WKT) format. Because WKT includes spaces—which are invalid in URLs—you must encode them as %20. Order all points as Longitude, Latitude.

Elevation at a point

Get the elevation data for a single point on your plan.

GET /v2/tiles/<plan_id>/points/POINT(<lng> <lat>)

  • The plan_id can be obtained by listing your plans
  • lng lat is the longitude, latitude pair of the point

Returns JSON - Array of one Elevation Point Objects

curl "https://public-api.dronedeploy.com/v2/tiles/5605c0e5752afc005a000004/points/POINT(-96.7493%2035.9272)?api_key={api_key}"
[
  {
    "lat": 35.9272,
    "lng": -96.7493,
    "aspect": 100.57501983642578,
    "elevation": -2.0494751930236816,
    "slope": 7.686941623687744
  }
]

Elevation at multiple points

Get the elevation data for a set of points in your plan.

GET /v2/tiles/<plan_id>/points/LINESTRING(<lng> <lat>,<lng> <lat>)

  • The plan_id can be obtained by listing your plans
  • lng lat is longitude, latitude pairs of points on the line

Returns JSON - Array of multiple Elevation Point Objects

curl "https://public-api.dronedeploy.com/v2/tiles/580fd790d5d264a5d8515a73/points/LINESTRING(-123.11389%2038.4264,-123.11376%2038.42633,-123.11392%2038.42624)?api_key={api_key}"
[
  {
    "lat": 35.9272,
    "lng": -96.7493,
    "aspect": 100.57501983642578,
    "elevation": -2.0494751930236816,
    "slope": 7.686941623687744
  },
  {
    "lat": 35.9282,
    "lng": -96.7493,
    "aspect": 100.57501983642578,
    "elevation": -2.0494751930236816,
    "slope": 7.686941623687744
  },
  {
    "lat": 35.9292,
    "lng": -96.7493,
    "aspect": 100.57501983642578,
    "elevation": -2.0494751930236816,
    "slope": 7.686941623687744
  }
]

Elevation profile

Get the elevation profile for a line segment in your plan.

GET /v2/tiles/<plan_id>/elevation_profile/LINESTRING(<lng> <lat>,<lng> <lat>)

  • The plan_id can be obtained by listing your plans
  • num_samples can optionally be used to request a specific number of points. The default is 200. The maximum is 1,000 points.
  • lng lat is the longitude, latitude pairs of the profile's end points. The maximum number of points is 500.

Returns JSON - Elevation Profile Object

curl "https://public-api.dronedeploy.com/v2/tiles/5605c0e50752afc005a000004/elevation_profile/LINESTRING(-96.748958 35.926247,-96.747933 35.926738)?num_samples=200&api_key={api_key}"
{
  "length": 107.35063384719186,
  "endpoints": [
    [
      35.926247,
      -96.748958
    ],
    [
      35.926738,
      -96.747933
    ]
  ],
  "dx": 0.5394504213426726,
  "points": 200,
  "profile": [
    -6.944386005401611,
    -7.042884826660156,
 [...]
    -3.645210027694702,
    -3.779625415802002
  ]  
}

Volume inside a polygon

Get the material volume of a polygon in your plan. Assumes that the object has no overhanging features, so most valuable for stockpiles, earth movement on construction sites, and quarry walls.

GET /v2/tiles/<plan_id>/volume/POLYGON((<lng> <lat>,<lng> <lat>,...,<lng> <lat>))

  • The plan_id can be obtained by listing your plans
  • lng lat is the longitude, latitude pairs of the corners of the polygon

Available Query Parameters:

1. baseplane_type

Valid values for baseplane_type:

  • fit(default)
  • triangulated
  • lowest
  • designSurface(requiresdifferenceparameter)
  • comparisonMap(requiresdifferenceparameter)
  • custom(requires numericcustom_elevationparameter)

2. tolerance

a. Optional

b. Numeric value

i. ex: 0.04 (4cm)

c. example

curl "https://public-api.dronedeploy.com/v2/tiles/580fd790d5d264a5d8515a73/volume/POLYGON((-123.11442375183108%2038.42649805908029,-123.11435401439668%2038.42607780608576,-123.1135976314545%2038.42590129909882,-123.11349570751193%2038.426666159593374,-123.11442375183108%2038.42649805908029))?baseplane_type=fit&tolerance=0.04&api_key={api_key}"

3. difference

a. Optional

b. Only valid when  baseplane_type is designSurface or comparisonMap

c. Value must be the tile template url for the design surface or comparison map

d. example

curl "https://public-api.dronedeploy.com/v2/tiles/580fd790d5d264a5d8515a73/volume/POLYGON((-123.11442375183108%2038.42649805908029,-123.11435401439668%2038.42607780608576,-123.1135976314545%2038.42590129909882,-123.11349570751193%2038.426666159593374,-123.11442375183108%2038.42649805908029))?baseplane_type=comparisonMap&difference=https://storage.domain.com/dronedeploy-tiles/4cc6f9fa6b_028567932EINSPIRE_COPY_dem_abc/{z}/{x}/{y}.tiff&api_key={api_key}"

4. custom_elevation

a. Optional

b. Only valid when baseplane_type is custom

c. Value must be numeric

d. example

curl "https://public-api.dronedeploy.com/v2/tiles/580fd790d5d264a5d8515a73/volume/POLYGON((-123.11442375183108%2038.42649805908029,-123.11435401439668%2038.42607780608576,-123.1135976314545%2038.42590129909882,-123.11349570751193%2038.426666159593374,-123.11442375183108%2038.42649805908029))?baseplane_type=custom&custom_elevation=123.4&api_key={api_key}"

 

Returns JSON - Polygon Volume Object

curl "https://public-api.dronedeploy.com/v2/tiles/580fd790d5d264a5d8515a73/volume/POLYGON((-123.11442375183108%2038.42649805908029,-123.11435401439668%2038.42607780608576,-123.1135976314545%2038.42590129909882,-123.11349570751193%2038.426666159593374,-123.11442375183108%2038.42649805908029))?baseplane_type=fit&api_key={api_key}"
{  
  "baseplane_type": "fit", 
  "cut": 26153.559188015362, 
  "fill": -18900.181208767106, 
  "polygon": "POLYGON(6.535406112670899 46.655990545464206,6.5360498428344735 46.655710711675226,6.535298824310304 46.654561905156164,6.534655094146729 46.654723917810095,6.535406112670899 46.655990545464206)",
  "volume": 7253.377979248256 
}
Please check out our API explorer page and our developer page for our new, more robust GraphQL based APIs.
 

Limitations and considerations

  • The volume tool assumes the object has no overhanging features.

  • This is a legacy REST API. For more robust data queries, we recommend using our GraphQL API.

  • Ensure the lines of your polygon do not intersect themselves to avoid calculation errors.

V2.2

Articles in this section

Was this article helpful?
0 out of 0 found this helpful