高度要求和回應

海拔高度要求

海拔高度 API 要求會建構為網址字串。這項 API 會傳回地表位置的海拔高度資料。您可以透過下列兩種方式指定位置資料:

  • 做為一或多個 locations 的集合。
  • 沿著 path 的一系列相連點。

這兩種方法都會使用經緯度座標來識別位置或路徑頂點。本文說明 Elevation API 網址的必要格式和可用參數。

海拔高度 API 會傳回單點查詢的資料,盡可能提供最高精確度。如果批次查詢涉及多個位置,且這些位置相距甚遠,則傳回的資料準確度可能會降低,因為系統會對資料進行某種程度的平滑化處理。

海拔高度 API 要求的格式如下:

https://maps.googleapis.com/maps/api/elevation/outputFormat?parameters

其中 outputFormat 可以是下列任一值:

  • json (建議使用),表示以 JavaScript 物件標記法 (JSON) 輸出;或
  • xml,表示以 XML 格式輸出,並包裝在 <ElevationResponse> 節點中。

注意:網址必須經過適當編碼,才能有效使用,且所有網路服務的網址長度上限為 16384 個字元。建構網址時,請注意這項限制。請注意,不同的瀏覽器、Proxy 和伺服器也可能有不同的網址字元限制。

使用 API 金鑰的要求必須透過 HTTPS 傳送。

要求參數

對 Elevation API 發出的要求會根據要求是針對離散位置還是有序路徑,使用不同的參數。如果是離散位置,海拔高度要求會傳回要求中傳遞的特定位置資料;如果是路徑,海拔高度要求則會沿著指定路徑取樣

依照所有網址的標準,參數會以 &amp; 字元分隔。以下列出參數及其可能的值。

所有要求

  • 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 值。緯度和經度值必須對應地球表面的有效位置。緯度值可介於 -9090 之間,經度值則可介於 -180180 之間。如果指定無效的緯度或經度值,系統會拒絕要求,並視為錯誤要求。

您可以在陣列或編碼折線中傳送最多 512 個座標,同時建構有效的網址。請注意,傳遞多個座標時,任何傳回資料的解析度準確性,可能會比只要求單一座標資料時更低。如果「locations」或「path」參數中的點或座標超過 512 個,系統會傳回 INVALID_REQUEST 回應。

指定路徑

使用 pathsamples 參數,表示要求路徑沿途特定間隔的海拔高度資料。與使用 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 值。經緯度值必須對應地球表面上的有效位置。緯度值可為介於 -9090 之間的任何值,經度值則可為介於 -180180 之間的任何值。如果指定無效的緯度或經度值,系統會拒絕要求,並視為錯誤要求。

您可以在陣列或編碼折線中傳送最多 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 值。經緯度值必須對應地球表面上的有效位置。緯度可採用介於 -9090 之間的任何值,經度則可採用介於 -180-180 之間的任何值。如果指定無效的緯度或經度值,系統會拒絕要求,並視為錯誤要求。

您可以在陣列或編碼折線中傳送最多 512 個座標,同時建構有效的網址。請注意,傳遞多個座標時,任何傳回資料的解析度準確性,可能會比只要求單一座標資料時更低。如果「locations」或「path」參數中的點或座標超過 512 個,系統會傳回 INVALID_REQUEST 回應。

海拔高度回應

對於每個有效的要求,海拔高度服務會以要求網址中指定的格式,傳回海拔高度回應。

ElevationResponse

欄位 必填 類型 說明
required Array<ElevationResult> 詳情請參閱 ElevationResult
required ElevationStatus 詳情請參閱「ElevationStatus」。
選用 字串

如果服務傳回的狀態碼不是 OK,回應物件中可能會有額外的 error_message 欄位。這個欄位包含有關指定狀態碼原因的詳細資訊。這個欄位不一定會傳回,且內容可能會變更。

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>