REST: Measurements API

Have more questions? Submit a request
Take measurements via our API
Programmatically measure DroneDeploy map data. It is primarily used by partners who are rendering DroneDeploy data in their own mapping application and want to take advantage of our server-side measurement features.

First you will need an API Key

Coordinate Geometry Format

All coordinate geometries are passed in on the URL using the Well Known Text (WKT) format. Since WKT includes spaces which are not valid in URLs they have to be encoded with %20 instead.

All points are ordered 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.

Articles in this section

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