Class ElevationSampler
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
ElevationSampler
允许对特定位置的海拔进行采样。
以下示例展示了如何使用此类确定从丹佛到科罗拉多州大峡谷沿途的最高点,将其绘制在地图上,并将地图保存到 Google 云端硬盘。
// Get directions from Denver to Grand Junction.
const directions = Maps.newDirectionFinder()
.setOrigin('Denver, CO')
.setDestination('Grand Junction, CO')
.setMode(Maps.DirectionFinder.Mode.DRIVING)
.getDirections();
const route = directions.routes[0];
// Get elevation samples along the route.
const numberOfSamples = 30;
const response = Maps.newElevationSampler().samplePath(
route.overview_polyline.points,
numberOfSamples,
);
// Determine highest point.
let highestLocation = null;
let highestElevation = Number.MIN_VALUE;
for (const sample of response.results) {
if (sample.elevation > highestElevation) {
highestElevation = sample.elevation;
highestLocation = sample.location;
}
}
// Add the path and marker to a map.
const map = Maps.newStaticMap()
.addPath(route.overview_polyline.points)
.addMarker(highestLocation.lat, highestLocation.lng);
// Save the map to your drive
DriveApp.createFile(
Utilities.newBlob(map.getMapImage(), 'image/png', 'map.png'),
);
另请参阅
详细文档
sampleLocation(latitude, longitude)
返回单个地点(纬度/经度)的海拔数据。
// Gets the elevation of Times Square using a point.
const data = Maps.newElevationSampler().sampleLocation(40.759011, -73.984472);
Logger.log(data.results[0].elevation);
参数
名称 | 类型 | 说明 |
latitude | Number | 要采样的点的纬度 |
longitude | Number | 要采样的点的经度 |
返回
Object
- 包含海拔数据的 JSON 对象,如此处所述
sampleLocations(points)
返回一系列点(纬度/经度)的海拔数据。
// Gets the elevation of Times Square and Central Park using points.
const data = Maps.newElevationSampler().sampleLocations([
// Times Square
40.759011,
-73.984472,
// Central Park
40.777052,
-73.975464,
]);
Logger.log(`Times Square: ${data.results[0].elevation}`);
Logger.log(`Central Park: ${data.results[1].elevation}`);
参数
名称 | 类型 | 说明 |
points | Number[] | 纬度/经度对数组 |
返回
Object
- 包含海拔数据的 JSON 对象,如此处所述
sampleLocations(encodedPolyline)
返回经过编码的多段线中点的海拔数据。
// Gets the elevation of Times Square and Central Park using a polyline.
const data = Maps.newElevationSampler().sampleLocations('yvwwF|aqbMwoBiw@');
Logger.log(`Times Square: ${data.results[0].elevation}`);
Logger.log(`Central Park: ${data.results[1].elevation}`);
参数
名称 | 类型 | 说明 |
encodedPolyline | String | 要采样的点的编码多段线 |
返回
Object
- 包含海拔数据的 JSON 对象,如此处所述
samplePath(points, numSamples)
返回线条(使用一系列点定义)上多个样本的海拔数据。
// Gets the elevation of five points between Times Square and Central Park.
const data = Maps.newElevationSampler().samplePath(
[
// Times Square
40.759011,
-73.984472,
// Central Park
40.777052,
-73.975464,
],
5,
);
for (let i = 0; i < data.results.length; i++) {
Logger.log(data.results[i].elevation);
}
参数
名称 | 类型 | 说明 |
points | Number[] | 一个纬度/经度对数组,用于定义要对其进行抽样的路径 |
numSamples | Integer | 要沿点路径采样的点数 |
返回
Object
- 包含海拔数据的 JSON 对象,如此处所述
samplePath(encodedPolyline, numSamples)
返回线条(使用编码的多段线定义)沿线的多个样本的海拔数据。
// Gets the elevation of five points between Times Square and Central Park.
const data = Maps.newElevationSampler().samplePath('yvwwF|aqbMwoBiw@', 5);
for (let i = 0; i < data.results.length; i++) {
Logger.log(data.results[i].elevation);
}
参数
名称 | 类型 | 说明 |
encodedPolyline | String | 定义要采样的路径的点的编码多段线 |
numSamples | Integer | 要沿点路径采样的点数 |
返回
Object
- 包含海拔数据的 JSON 对象,如此处所述
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-26。
[null,null,["最后更新时间 (UTC):2025-07-26。"],[[["\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,["# Class ElevationSampler\n\nElevationSampler\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\n#### See also\n\n- [Google Elevation API](/maps/documentation/elevation) \n\n### Methods\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\n### `sample``Location(latitude, longitude)`\n\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\n#### Parameters\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\n#### Return\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)`\n\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\n#### Parameters\n\n| Name | Type | Description |\n|----------|------------|--------------------------------------|\n| `points` | `Number[]` | an array of latitude/longitude pairs |\n\n#### Return\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)`\n\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\n#### Parameters\n\n| Name | Type | Description |\n|---------------------|----------|-----------------------------------------|\n| `encoded``Polyline` | `String` | an encoded polyline of points to sample |\n\n#### Return\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)`\n\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\n#### Parameters\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\n#### Return\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)`\n\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\n#### Parameters\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\n#### Return\n\n\n`Object` --- a JSON Object containing the elevation data, as described [here](/maps/documentation/elevation#ElevationResponses)"]]