Stay organized with collections
Save and categorize content based on your preferences.
ElevationSampler
Allows for the sampling of elevations at particular locations.
The example below shows how you can use this class to determine the highest point along the route
from Denver to Grand Junction in Colorado, plot it on a map, and save the map to Google Drive.
// Get directions from Denver to Grand Junction.constdirections=Maps.newDirectionFinder().setOrigin('Denver, CO').setDestination('Grand Junction, CO').setMode(Maps.DirectionFinder.Mode.DRIVING).getDirections();constroute=directions.routes[0];// Get elevation samples along the route.constnumberOfSamples=30;constresponse=Maps.newElevationSampler().samplePath(route.overview_polyline.points,numberOfSamples,);// Determine highest point.lethighestLocation=null;lethighestElevation=Number.MIN_VALUE;for(constsampleofresponse.results){if(sample.elevation > highestElevation){highestElevation=sample.elevation;highestLocation=sample.location;}}// Add the path and marker to a map.constmap=Maps.newStaticMap().addPath(route.overview_polyline.points).addMarker(highestLocation.lat,highestLocation.lng);// Save the map to your driveDriveApp.createFile(Utilities.newBlob(map.getMapImage(),'image/png','map.png'),);
Returns elevation data for a number of samples along a line, defined using an encoded polyline.
Detailed documentation
sampleLocation(latitude, longitude)
Returns elevation data for a single point (lat/lng).
// Gets the elevation of Times Square using a point.constdata=Maps.newElevationSampler().sampleLocation(40.759011,-73.984472);Logger.log(data.results[0].elevation);
Parameters
Name
Type
Description
latitude
Number
the latitude of the point to sample
longitude
Number
the longitude of the point to sample
Return
Object — a JSON Object containing the elevation data, as described here
sampleLocations(points)
Returns elevation data for a series of points (lat/lng).
// Gets the elevation of Times Square and Central Park using points.constdata=Maps.newElevationSampler().sampleLocations([// Times Square40.759011,-73.984472,// Central Park40.777052,-73.975464,]);Logger.log(`Times Square: ${data.results[0].elevation}`);Logger.log(`Central Park: ${data.results[1].elevation}`);
Parameters
Name
Type
Description
points
Number[]
an array of latitude/longitude pairs
Return
Object — a JSON Object containing the elevation data, as described here
sampleLocations(encodedPolyline)
Returns elevation data for the points in an encoded polyline.
// Gets the elevation of Times Square and Central Park using a polyline.constdata=Maps.newElevationSampler().sampleLocations('yvwwF|aqbMwoBiw@');Logger.log(`Times Square: ${data.results[0].elevation}`);Logger.log(`Central Park: ${data.results[1].elevation}`);
Parameters
Name
Type
Description
encodedPolyline
String
an encoded polyline of points to sample
Return
Object — a JSON Object containing the elevation data, as described here
samplePath(points, numSamples)
Returns elevation data for a number of samples along a line, defined using a series of points.
// Gets the elevation of five points between Times Square and Central Park.constdata=Maps.newElevationSampler().samplePath([// Times Square40.759011,-73.984472,// Central Park40.777052,-73.975464,],5,);for(leti=0;i < data.results.length;i++){Logger.log(data.results[i].elevation);}
Parameters
Name
Type
Description
points
Number[]
an array of latitude/longitude pairs defining a path to sample over
numSamples
Integer
the number of points to sample along the path of points
Return
Object — a JSON Object containing the elevation data, as described here
samplePath(encodedPolyline, numSamples)
Returns elevation data for a number of samples along a line, defined using an encoded polyline.
// Gets the elevation of five points between Times Square and Central Park.constdata=Maps.newElevationSampler().samplePath('yvwwF|aqbMwoBiw@',5);for(leti=0;i < data.results.length;i++){Logger.log(data.results[i].elevation);}
Parameters
Name
Type
Description
encodedPolyline
String
an encoded polyline of points defining a path to sample over
numSamples
Integer
the number of points to sample along the path of points
Return
Object — a JSON Object containing the elevation data, as described here
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-12-02 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eElevationSampler\u003c/code\u003e class allows you to retrieve elevation data for specific locations or along a path.\u003c/p\u003e\n"],["\u003cp\u003eYou can sample elevation for single points, multiple points defined by latitude/longitude pairs or encoded polylines, and along paths.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003esampleLocation\u003c/code\u003e, \u003ccode\u003esampleLocations\u003c/code\u003e, and \u003ccode\u003esamplePath\u003c/code\u003e methods provide various ways to retrieve elevation data.\u003c/p\u003e\n"],["\u003cp\u003eResults are returned as a JSON object containing elevation, latitude, and longitude information for each sampled point.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eElevationSampler\u003c/code\u003e can be used for tasks such as finding the highest point along a route, as demonstrated in the provided example.\u003c/p\u003e\n"]]],[],null,["ElevationSampler\n\nAllows for the sampling of elevations at particular locations. \n\nThe example below shows how you can use this class to determine the highest point along the route\nfrom Denver to Grand Junction in Colorado, plot it on a map, and save the map to Google Drive.\n\n```javascript\n// Get directions from Denver to Grand Junction.\nconst directions = Maps.newDirectionFinder()\n .setOrigin('Denver, CO')\n .setDestination('Grand Junction, CO')\n .setMode(Maps.DirectionFinder.Mode.DRIVING)\n .getDirections();\nconst route = directions.routes[0];\n\n// Get elevation samples along the route.\nconst numberOfSamples = 30;\nconst response = Maps.newElevationSampler().samplePath(\n route.overview_polyline.points,\n numberOfSamples,\n);\n\n// Determine highest point.\n\nlet highestLocation = null;\nlet highestElevation = Number.MIN_VALUE;\nfor (const sample of response.results) {\n if (sample.elevation \u003e highestElevation) {\n highestElevation = sample.elevation;\n highestLocation = sample.location;\n }\n}\n\n// Add the path and marker to a map.\nconst map = Maps.newStaticMap()\n .addPath(route.overview_polyline.points)\n .addMarker(highestLocation.lat, highestLocation.lng);\n\n// Save the map to your drive\nDriveApp.createFile(\n Utilities.newBlob(map.getMapImage(), 'image/png', 'map.png'),\n);\n```\n\nSee also\n\n- [Google Elevation API](/maps/documentation/elevation) \n\nMethods\n\n| Method | Return type | Brief description |\n|------------------------------------------------------------------------|-------------|-------------------------------------------------------------------------------------------------|\n| [sampleLocation(latitude, longitude)](#sampleLocation(Number,Number)) | `Object` | Returns elevation data for a single point (lat/lng). |\n| [sampleLocations(points)](#sampleLocations(Number)) | `Object` | Returns elevation data for a series of points (lat/lng). |\n| [sampleLocations(encodedPolyline)](#sampleLocations(String)) | `Object` | Returns elevation data for the points in an encoded polyline. |\n| [samplePath(points, numSamples)](#samplePath(Number,Integer)) | `Object` | Returns elevation data for a number of samples along a line, defined using a series of points. |\n| [samplePath(encodedPolyline, numSamples)](#samplePath(String,Integer)) | `Object` | Returns elevation data for a number of samples along a line, defined using an encoded polyline. |\n\nDetailed documentation \n\n`sample``Location(latitude, longitude)` \nReturns elevation data for a single point (lat/lng).\n\n```javascript\n// Gets the elevation of Times Square using a point.\nconst data = Maps.newElevationSampler().sampleLocation(40.759011, -73.984472);\nLogger.log(data.results[0].elevation);\n```\n\nParameters\n\n| Name | Type | Description |\n|-------------|----------|--------------------------------------|\n| `latitude` | `Number` | the latitude of the point to sample |\n| `longitude` | `Number` | the longitude of the point to sample |\n\nReturn\n\n\n`Object` --- a JSON Object containing the elevation data, as described [here](/maps/documentation/elevation#ElevationResponses)\n\n*** ** * ** ***\n\n`sample``Locations(points)` \nReturns elevation data for a series of points (lat/lng).\n\n```javascript\n// Gets the elevation of Times Square and Central Park using points.\nconst data = Maps.newElevationSampler().sampleLocations([\n // Times Square\n 40.759011,\n -73.984472,\n // Central Park\n 40.777052,\n -73.975464,\n]);\nLogger.log(`Times Square: ${data.results[0].elevation}`);\nLogger.log(`Central Park: ${data.results[1].elevation}`);\n```\n\nParameters\n\n| Name | Type | Description |\n|----------|------------|--------------------------------------|\n| `points` | `Number[]` | an array of latitude/longitude pairs |\n\nReturn\n\n\n`Object` --- a JSON Object containing the elevation data, as described [here](/maps/documentation/elevation#ElevationResponses)\n\n*** ** * ** ***\n\n`sample``Locations(encodedPolyline)` \nReturns elevation data for the points in an encoded polyline.\n\n```javascript\n// Gets the elevation of Times Square and Central Park using a polyline.\nconst data = Maps.newElevationSampler().sampleLocations('yvwwF|aqbMwoBiw@');\nLogger.log(`Times Square: ${data.results[0].elevation}`);\nLogger.log(`Central Park: ${data.results[1].elevation}`);\n```\n\nParameters\n\n| Name | Type | Description |\n|---------------------|----------|-----------------------------------------|\n| `encoded``Polyline` | `String` | an encoded polyline of points to sample |\n\nReturn\n\n\n`Object` --- a JSON Object containing the elevation data, as described [here](/maps/documentation/elevation#ElevationResponses)\n\n*** ** * ** ***\n\n`sample``Path(points, numSamples)` \nReturns elevation data for a number of samples along a line, defined using a series of points.\n\n```javascript\n// Gets the elevation of five points between Times Square and Central Park.\nconst data = Maps.newElevationSampler().samplePath(\n [\n // Times Square\n 40.759011,\n -73.984472,\n // Central Park\n 40.777052,\n -73.975464,\n ],\n 5,\n);\nfor (let i = 0; i \u003c data.results.length; i++) {\n Logger.log(data.results[i].elevation);\n}\n```\n\nParameters\n\n| Name | Type | Description |\n|----------------|------------|---------------------------------------------------------------------|\n| `points` | `Number[]` | an array of latitude/longitude pairs defining a path to sample over |\n| `num``Samples` | `Integer` | the number of points to sample along the path of points |\n\nReturn\n\n\n`Object` --- a JSON Object containing the elevation data, as described [here](/maps/documentation/elevation#ElevationResponses)\n\n*** ** * ** ***\n\n`sample``Path(encodedPolyline, numSamples)` \nReturns elevation data for a number of samples along a line, defined using an encoded polyline.\n\n```javascript\n// Gets the elevation of five points between Times Square and Central Park.\nconst data = Maps.newElevationSampler().samplePath('yvwwF|aqbMwoBiw@', 5);\nfor (let i = 0; i \u003c data.results.length; i++) {\n Logger.log(data.results[i].elevation);\n}\n```\n\nParameters\n\n| Name | Type | Description |\n|---------------------|-----------|--------------------------------------------------------------|\n| `encoded``Polyline` | `String` | an encoded polyline of points defining a path to sample over |\n| `num``Samples` | `Integer` | the number of points to sample along the path of points |\n\nReturn\n\n\n`Object` --- a JSON Object containing the elevation data, as described [here](/maps/documentation/elevation#ElevationResponses)"]]