海拔高度要求
Elevation API 要求是以網址字串的形式建構。API 會傳回地表位置的海拔高度資料。您可以透過下列兩種方式指定位置資料:
- 一或多個
locations的集合。 - 沿著
path的一連串相連點。
這兩種方法都會使用經緯度座標來識別位置或路徑頂點。本文說明 Elevation API 網址的必要格式和可用參數。
Elevation API 會傳回單點查詢的資料,並盡可能提供最高準確度。涉及多個位置的批次查詢可能會傳回準確度較低的資料,尤其是當位置分散時,因為資料會進行一些平滑處理。
Elevation API 要求的格式如下:
https://maps.googleapis.com/maps/api/elevation/outputFormat?parameters
其中 outputFormat 可以是下列任一值:
json(建議):表示輸出內容為 JavaScript 物件標記法 (JSON);或xml:表示輸出內容為 XML,並包裝在<ElevationResponse>節點中。
注意:網址必須正確編碼才有效,且所有 Web 服務的網址長度上限為 16384 個字元。建構網址時,請留意這項限制。請注意,不同的瀏覽器、Proxy 和伺服器也可能有不同的網址字元限制。
使用 API 金鑰的要求必須透過 HTTPS 傳送。
要求參數
向 Elevation API 發出的要求會根據要求是針對不連續的位置或排序路徑,使用不同的參數。如果是離散位置,海拔高度要求會傳回要求中傳遞的特定位置資料;如果是路徑,海拔高度要求則會沿著指定路徑取樣。
依照所有網址的標準,參數會以 & 字元分隔。以下列出參數和可能的值。
所有要求
key-- (必要) 應用程式的 API 金鑰。這組金鑰可識別您的應用程式,以便管理配額。瞭解如何取得金鑰。
位置要求
locations(必要):定義要傳回海拔高度資料的地表位置。這個參數可接受單一位置 (以半形逗號分隔的 {latitude,longitude} 組合,例如「40.714728,-73.998672」),或多組經緯度 (以陣列或編碼折線形式傳遞)。這個參數的上限為 512 點。詳情請參閱下方的「指定位置」一節。
路徑取樣要求
path(必要):定義要傳回海拔高度資料的地表路徑。這個參數會定義一組包含兩對或多對已排序 {latitude,longitude} 的組合,用來定義沿著地球表面的路徑。這項參數必須與下方所述的samples參數搭配使用。這項特定參數的上限為 512 點。詳情請參閱下方的「指定路徑」。samples(必要):指定要傳回海拔高度資料的路徑沿途取樣點數量。samples參數會將指定的path分割為路徑沿途中一組已排序的等距點。
指定位置
位置要求會透過 locations 參數表示,指出特定位置的海拔高度要求,並以經緯度值傳遞。
locations 參數可接受下列引數:
- 單一座標:
locations=40.714728,-73.998672 - 以直立線 (「
|」) 字元分隔的座標陣列:locations=40.714728,-73.998672|-34.397,150.644 - 使用編碼折線演算法的一組編碼座標:
locations=enc:gfo}EtohhU
經緯度座標字串是以半形逗號分隔的文字字串,其中包含數字。例如,「40.714728,-73.998672」是有效的 locations 值。經緯度值必須對應至地球表面的有效位置。緯度可介於 -90 至 90 之間,經度則可介於 -180 至 180 之間。如果指定的經緯度值無效,系統會拒絕要求,並視為無效要求。
您可以在陣列或編碼折線中傳遞最多 512 個座標,同時仍可建構有效的網址。請注意,傳遞多個座標時,任何傳回資料的解析度準確性,可能會比只要求單一座標資料時更低。如果「locations」或「path」參數中的點或座標超過 512 個,系統會傳回 INVALID_REQUEST 回應。
指定路徑
取樣路徑要求會透過 path 和 samples 參數表示,指出要求路徑沿途指定間隔的海拔高度資料。與使用 locations 參數的位置要求一樣,path 參數會指定一組經緯度值。然而與位置要求不同的是,path 會指定一組已排序的端點。路徑要求不會只傳回端點的海拔高度資料,而是會根據指定的 samples 數量,沿著路徑長度取樣 (包含端點)。
path 參數可採用下列任一引數:
- 由兩個以上座標文字字串組成的陣列,以半形逗號分隔,並使用直立線 (「
|」) 字元分隔:path=40.714728,-73.998672|-34.397,150.644 - 使用編碼折線演算法編碼的座標:
path=enc:gfo}EtohhUxD@bAxJmGF
經緯度座標字串是以半形逗號分隔的文字字串,其中包含數字。舉例來說,「40.714728,-73.998672|-34.397, 150.644」是有效的 path 值。經緯度值必須對應至地球上的有效位置。緯度值可介於 -90 至 90 之間,經度值則可介於 -180 至 180 之間。如果您指定的緯度或經度值無效,系統會拒絕要求,並視為無效要求。
您可以在陣列或編碼折線中傳遞最多 512 個座標,同時仍可建構有效的網址。請注意,傳遞多個座標時,任何傳回資料的解析度準確性,可能會比只要求單一座標資料時更低。如果「locations」或「path」參數中的點或座標超過 512 個,系統會傳回 INVALID_REQUEST 回應。
海拔高度回應
- 由兩個以上座標文字字串組成的陣列,以半形逗號分隔,並使用直立線 (「
|」) 字元分隔:path=40.714728,-73.998672|-34.397,150.644 - 使用編碼折線演算法編碼的座標:
path=enc:gfo}EtohhUxD@bAxJmGF
經緯度座標字串是以半形逗號分隔的文字字串,其中包含數字。舉例來說,「40.714728,-73.998672|-34.397, 150.644」是有效的 path 值。經緯度值必須對應至地球上的有效位置。緯度值可介於 -90 至 90 之間,經度值則可介於 -180 至 -180 之間。如果您指定的緯度或經度值無效,系統會拒絕要求,並視為無效要求。
您可以在陣列或編碼折線中傳遞最多 512 個座標,同時仍可建構有效的網址。請注意,傳遞多個座標時,任何傳回資料的解析度準確性,可能會比只要求單一座標資料時更低。如果「locations」或「path」參數中的點或座標超過 512 個,系統會傳回 INVALID_REQUEST 回應。
海拔高度回應
對於每個有效要求,海拔高度服務都會傳回海拔高度回應,格式則依要求網址中指定的格式而定。
ElevationResponse
| 欄位 | 必填 | 類型 | 說明 |
|---|---|---|---|
|
required | Array<ElevationResult> | 詳情請參閱 ElevationResult。 |
|
required | ElevationStatus | 詳情請參閱 ElevationStatus。 |
|
選填 | 字串 |
如果服務傳回 |
ElevationStatus
服務傳回的狀態碼。
OK:表示已成功完成 API 要求。DATA_NOT_AVAILABLE,表示您輸入的地點沒有可用的資料。INVALID_REQUEST:表示 API 要求的格式有誤。OVER_DAILY_LIMIT,表示下列任一情況:- API 金鑰遺失或無效。
- 您的帳戶未啟用計費功能。
- 超過自行設定的用量上限。
- 您提供的付款方式已失效 (例如信用卡已過期)。
OVER_QUERY_LIMIT:表示要求者已超出配額。REQUEST_DENIED:表示 API 未完成要求。UNKNOWN_ERROR:表示發生未知錯誤。
如果狀態碼不是 OK,Elevation 回應物件中可能會有額外的 error_message 欄位。這個欄位包含更詳細的資訊,說明指定狀態碼背後的原因。
回應包含 results 陣列,其中有下列元素:
ElevationResult
| 欄位 | 必填 | 類型 | 說明 |
|---|---|---|---|
|
required | 數字 |
位置的海拔高度 (以公尺為單位)。 |
|
required | LatLngLiteral |
位置的位置元素,此位置用於計算海拔高度資料。請注意,在路徑要求中,位置元素的組合會包含路徑沿途的取樣點。 詳情請參閱 LatLngLiteral。 |
|
選填 | 數字 |
這個值表示插入海拔高度的資料點之間的最遠距離 (以公尺為單位)。如果解析度不明,就不會顯示這個屬性。請注意,傳遞多個點時,海拔高度資料會變得較不精確 (解析度值較大)。如要取得某一點最準確的海拔高度值,請單獨進行查詢。 |
LatLngLiteral
描述特定位置的物件,經緯度以十進位度數表示。
| 欄位 | 必填 | 類型 | 說明 |
|---|---|---|---|
|
required | 數字 |
緯度 (十進制度數) |
|
required | 數字 |
經度 (十進制度) |
位置海拔高度範例
以下範例要求科羅拉多州丹佛市 (又稱「一英里高城」) 的海拔高度:
網址
https://maps.googleapis.com/maps/api/elevation/json
?locations=39.7391536%2C-104.9847034
&key=YOUR_API_KEY
cURL
curl -L -X GET 'https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536%2C-104.9847034&key=YOUR_API_KEY'
JSON
{ "results": [ { "elevation": 1608.637939453125, "location": { "lat": 39.7391536, "lng": -104.9847034 }, "resolution": 4.771975994110107, }, ], "status": "OK", }
XML
<ElevationResponse> <status>OK</status> <result> <location> <lat>39.7391536</lat> <lng>-104.9847034</lng> </location> <elevation>1608.6379395</elevation> <resolution>4.7719760</resolution> </result> </ElevationResponse>
以下範例顯示多個回應 (科羅拉多州丹佛和加州死谷)。
這項要求示範如何使用 JSON output 旗標:
網址
https://maps.googleapis.com/maps/api/elevation/json
?locations=39.7391536%2C-104.9847034%7C36.455556%2C-116.866667
&key=YOUR_API_KEY
cURL
curl -L -X GET 'https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536%2C-104.9847034%7C36.455556%2C-116.866667&key=YOUR_API_KEY'
這項要求示範如何使用 XML output 旗標:
https://maps.googleapis.com/maps/api/elevation/xml?locations=39.7391536,-104.9847034|36.455556,-116.866667&key=YOUR_API_KEY
選取下方分頁標籤,即可查看 JSON 和 XML 回應範例。
JSON
{ "results": [ { "elevation": 1608.637939453125, "location": { "lat": 39.7391536, "lng": -104.9847034 }, "resolution": 4.771975994110107, }, { "elevation": -52.79492568969727, "location": { "lat": 36.455556, "lng": -116.866667 }, "resolution": 19.08790397644043, }, ], "status": "OK", }
XML
<ElevationResponse> <status>OK</status> <result> <location> <lat>39.7391536</lat> <lng>-104.9847034</lng> </location> <elevation>1608.6379395</elevation> <resolution>4.7719760</resolution> </result> <result> <location> <lat>36.4555560</lat> <lng>-116.8666670</lng> </location> <elevation>-52.7949257</elevation> <resolution>19.0879040</resolution> </result> </ElevationResponse>
下列範例要求沿著直線 path 取得海拔高度資料,範圍從加州惠特尼山到加州惡水盆地,也就是美國本土的最高點和最低點。我們要求三個 samples,因此會包含兩個端點和中間點。
網址
https://maps.googleapis.com/maps/api/elevation/json ?path=36.578581%2C-118.291994%7C36.23998%2C-116.83171 &samples=3 &key=YOUR_API_KEY
cURL
curl -L -X GET 'https://maps.googleapis.com/maps/api/elevation/json?path=36.578581%2C-118.291994%7C36.23998%2C-116.83171&samples=3&key=YOUR_API_KEY'
JSON
{ "results": [ { "elevation": 4411.94189453125, "location": { "lat": 36.578581, "lng": -118.291994 }, "resolution": 19.08790397644043, }, { "elevation": 1372.8359375, "location": { "lat": 36.41150289067028, "lng": -117.5602607523847 }, "resolution": 9.543951988220215, }, { "elevation": -84.51690673828125, "location": { "lat": 36.23998, "lng": -116.83171 }, "resolution": 9.543951988220215, }, ], "status": "OK", }
XML
<ElevationResponse> <status>OK</status> <result> <location> <lat>36.5785810</lat> <lng>-118.2919940</lng> </location> <elevation>4411.9418945</elevation> <resolution>19.0879040</resolution> </result> <result> <location> <lat>36.4115029</lat> <lng>-117.5602608</lng> </location> <elevation>1372.8359375</elevation> <resolution>9.5439520</resolution> </result> <result> <location> <lat>36.2399800</lat> <lng>-116.8317100</lng> </location> <elevation>-84.5169067</elevation> <resolution>9.5439520</resolution> </result> </ElevationResponse>