Solicitudes de elevación y respuestas

Solicitudes de Elevation

Las solicitudes a la API de Elevation se crean como una cadena de URL. La API devuelve datos de elevación para ubicaciones en la Tierra. Puedes especificar los datos de ubicación de una de las siguientes dos maneras:

  • Como un conjunto de uno o más locations.
  • Como una serie de puntos conectados a lo largo de un path.

Cualquiera de estos enfoques usa coordenadas de latitud y longitud para identificar las ubicaciones o los vértices de la ruta. En este documento, se describe el formato requerido de las URLs de la API de Elevation y los parámetros disponibles.

La API de Elevation devuelve datos para consultas de un solo punto con la mayor precisión posible. Las consultas por lotes que involucran varias ubicaciones pueden devolver datos con menor precisión, en especial si las ubicaciones están muy separadas, ya que se produce un cierto suavizado de los datos.

Una solicitud a la API de Elevation tiene el siguiente formato:

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

donde outputFormat puede ser cualquiera de los siguientes valores:

  • json (recomendado), indica el resultado en JavaScript Object Notation (JSON).
  • xml, indica la salida en XML, incluida dentro de un nodo <ElevationResponse>.

Nota: Las URLs deben estar codificadas correctamente para ser válidas y están limitadas a 16,384 caracteres en todos los servicios web. Ten en cuenta este límite cuando construyas tus URLs. Ten en cuenta que los diferentes navegadores, proxies y servidores también pueden tener diferentes límites de caracteres de URL.

Se requiere HTTPS para las solicitudes que usan una clave de API.

parámetros de solicitud

Las solicitudes a la API de Elevation utilizan diferentes parámetros según si la solicitud es para ubicaciones discretas o para una ruta ordenada. En el caso de ubicaciones discretas, las solicitudes de elevación devuelven datos sobre las ubicaciones específicas que se pasaron en la solicitud. En el caso de las rutas, las solicitudes de elevación se muestrean a lo largo de la ruta determinada.

Tal como es práctica estándar para todas las URLs, los parámetros se separan usando el signo et (&amp;). A continuación, se indica la lista de parámetros y sus posibles valores.

Todas las solicitudes

  • key: (obligatorio) Es la clave de API de tu aplicación. Esta clave identifica tu aplicación a los fines de la administración de la cuota. Obtén más información para obtener una clave.

Solicitudes posicionales

  • locations (obligatorio) define las ubicaciones de la Tierra a partir de las cuales se muestran los datos de elevación. Este parámetro toma una sola ubicación como un par {latitud, longitud} separado por comas (p.ej., "40.714728,-73.998672") o varios pares de latitud y longitud que se pasan como un array o como una polilínea codificada. Este parámetro específico tiene un límite de 512 puntos. Para obtener más información, consulta Cómo especificar ubicaciones a continuación.

Solicitudes de rutas muestreadas

  • path (obligatorio) define una ruta en la Tierra para la cual se deben mostrar datos de elevación. Este parámetro define un conjunto de dos o más pares ordenados {latitud,longitud} que definen una ruta a lo largo de la superficie de la Tierra. Este parámetro se debe usar junto con el parámetro samples que se describe a continuación. Este parámetro específico tiene un límite de 512 puntos. Para obtener más información, consulta Cómo especificar rutas de acceso a continuación.
  • samples (obligatorio) especifica la cantidad de puntos de muestra a lo largo de una ruta para la que se muestran datos de elevación. El parámetro samples divide el objeto path determinado en un conjunto ordenado de puntos equidistantes a lo largo de la ruta.

Cómo especificar ubicaciones

Las solicitudes posicionales se indican con el parámetro locations, que indica solicitudes de elevación para las ubicaciones específicas que se pasan como valores de latitud y longitud.

El parámetro locations puede tomar los siguientes argumentos:

  • Una sola coordenada: locations=40.714728,-73.998672
  • Es un array de coordenadas separadas con el carácter de barra vertical (“|”): locations=40.714728,-73.998672|-34.397,150.644
  • Un conjunto de coordenadas codificadas con el algoritmo de polilínea codificada: locations=enc:gfo}EtohhU

Las cadenas de coordenadas de latitud y longitud se definen con números dentro de una cadena de texto separada por comas. Por ejemplo, "40.714728,-73.998672" es un valor de locations válido. Los valores de latitud y longitud deben corresponder a una ubicación válida en la superficie de la Tierra. Las latitudes pueden tomar cualquier valor entre -90 y 90, mientras que las longitudes pueden tomar cualquier valor entre -180 y 180. Si especificas un valor de latitud o longitud no válido, tu solicitud se rechazará como una solicitud incorrecta.

Puedes pasar hasta 512 coordenadas dentro de un array o una polilínea codificada y, al mismo tiempo, construir una URL válida. Ten en cuenta que, cuando se pasan varias coordenadas, la precisión de los datos devueltos puede ser inferior que cuando se solicitan datos para una sola coordenada. Si se superan los 512 puntos o coordenadas en los parámetros "locations" o "path", se devuelve una respuesta INVALID_REQUEST.

Cómo especificar rutas de acceso

Las solicitudes de rutas muestreadas se indican a través del uso de los parámetros path y samples, que indican una solicitud de datos de elevación a lo largo de una ruta en intervalos especificados. Al igual que con las solicitudes posicionales que usan el parámetro locations, el parámetro path especifica un conjunto de valores de latitud y longitud. Sin embargo, a diferencia de una solicitud posicional, la path especifica un conjunto ordenado de vértices. En lugar de mostrar los datos de elevación solo en los vértices, las solicitudes de ruta se muestrean a lo largo de la ruta, según la cantidad de samples especificada (incluidos los extremos).

El parámetro path puede tomar cualquiera de los siguientes argumentos:

  • Es un array de dos o más cadenas de texto de coordenadas separadas por comas y, a su vez, separadas con el carácter de barra vertical (“|”): path=40.714728,-73.998672|-34.397,150.644
  • Coordenadas codificadas con el algoritmo de polilínea codificada: path=enc:gfo}EtohhUxD@bAxJmGF

Las cadenas de coordenadas de latitud y longitud se definen con números dentro de una cadena de texto separada por comas. Por ejemplo, "40.714728,-73.998672|-34.397, 150.644" es un valor de path válido. Los valores de latitud y longitud deben corresponder a una ubicación válida en la superficie de la Tierra. Las latitudes pueden tomar cualquier valor entre -90 y 90, mientras que las longitudes pueden tomar cualquier valor entre -180 y 180. Si especificas un valor de latitud o longitud no válido, tu solicitud se rechazará como una solicitud incorrecta.

Puedes pasar hasta 512 coordenadas dentro de un array o una polilínea codificada y, al mismo tiempo, construir una URL válida. Ten en cuenta que, cuando se pasan varias coordenadas, la precisión de los datos devueltos puede ser inferior que cuando se solicitan datos para una sola coordenada. Si se superan los 512 puntos o coordenadas en los parámetros "locations" o "path", se devuelve una respuesta INVALID_REQUEST.

Respuestas de Elevation

Para cada solicitud válida, el servicio Elevation devolverá una respuesta de Elevation en el formato indicado en la URL de la solicitud.

ElevationResponse

FieldRequiredTypeDescription
required Array<ElevationResult> See ElevationResult for more information.
requiredElevationStatus See ElevationStatus for more information.
optionalstring

When the service returns a status code other than OK, there may be an additional error_message field within the response object. This field contains more detailed information about thereasons behind the given status code. This field is not always returned, and its content is subject to change.

ElevationStatus

Status codes returned by service.

  • OK indicating the API request was successful.
  • DATA_NOT_AVAILABLE indicating that there's no available data for the input locations.
  • INVALID_REQUEST indicating the API request was malformed.
  • OVER_DAILY_LIMIT indicating any of the following:
    • The API key is missing or invalid.
    • Billing has not been enabled on your account.
    • A self-imposed usage cap has been exceeded.
    • The provided method of payment is no longer valid (for example, a credit card has expired).
  • OVER_QUERY_LIMIT indicating the requestor has exceeded quota.
  • REQUEST_DENIED indicating the API did not complete the request.
  • UNKNOWN_ERROR indicating an unknown error.

Cuando el código de estado no es OK, es posible que haya un campo error_message adicional dentro del objeto de respuesta de Elevation. Este campo contiene información más detallada sobre los motivos del código de estado proporcionado.

La respuesta contiene un array results con los siguientes elementos:

ElevationResult

FieldRequiredTypeDescription
requirednumber

The elevation of the location in meters.

requiredLatLngLiteral

A location element of the position for which elevation data is being computed. Note that for path requests, the set of location elements will contain the sampled points along the path.

See LatLngLiteral for more information.

optionalnumber

The value indicating the maximum distance between data points from which the elevation was interpolated, in meters. This property will be missing if the resolution is not known. Note that elevation data becomes more coarse (larger resolution values) when multiple points are passed. To obtain the most accurate elevation value for a point, it should be queried independently.

El objeto location tiene los siguientes elementos:

LatLngLiteral

An object describing a specific location with Latitude and Longitude in decimal degrees.

FieldRequiredTypeDescription
requirednumber

Latitude in decimal degrees

requirednumber

Longitude in decimal degrees

Ejemplos de elevación posicional

En el siguiente ejemplo, se solicita la elevación de Denver, Colorado, la "ciudad a una milla de altura", en formato JSON:

URL

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>

En el siguiente ejemplo, se muestran varias respuestas (para Denver, Colorado, y para Death Valley, California).

En esta solicitud, se muestra el uso de la marca output de JSON:

URL

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.86&6667key=YOUR_API_KEY'

En esta solicitud, se muestra el uso de la marca output en XML:

https://maps.googleapis.com/maps/api/elevation/xml?locations=39.7391536,-104.9847034|36.455556,-116.866667&key=YOUR_API_KEY

Selecciona las pestañas a continuación para ver las respuestas de muestra en JSON y 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>

En los siguientes ejemplos, se solicitan datos de elevación a lo largo de una línea recta path desde el monte Whitney, California, hasta Badwater, California, los puntos más alto y más bajo de Estados Unidos continentales. Te pedimos tres samples, por lo que se incluirán los dos extremos y el punto medio.

URL

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.8&3171sampl&es=3key=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>