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 物件,如這裡所述
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-26 (世界標準時間)。
[null,null,["上次更新時間: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)"]]