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_idcan be obtained by listing your plans -
lnglatis 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_idcan be obtained by listing your plans -
lnglatis 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_idcan be obtained by listing your plans -
num_samplescan optionally be used to request a specific number of points. The default is 200. The maximum is 1,000 points. -
lnglatis 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_idcan be obtained by listing your plans -
lnglatis the longitude, latitude pairs of the corners of the polygon
Available Query Parameters:
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
}
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