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 muestra datos de elevación para ubicaciones de la Tierra. Puedes especificar los datos de ubicación de una de las siguientes dos maneras:

  • Como un conjunto de una o más locations
  • Como una serie de puntos conectados a lo largo de una 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 muestra datos para consultas de un solo punto con la mayor precisión posible. Las consultas por lotes que involucran varias ubicaciones pueden mostrar datos con menos precisión, en especial si las ubicaciones están muy separadas, ya que se produce un 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 uno de los siguientes valores:

  • json (recomendado): Indica el resultado en JavaScript Object Notation (JSON).
  • xml Indica el resultado en XML, incluido en un nodo <ElevationResponse>.

Nota: Las URLs deben estar codificadas correctamente para que sean válidas y están limitadas a 16,384 caracteres para todos los servicios web. Ten en cuenta este límite cuando crees 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. Para ubicaciones discretas, las solicitudes de elevación muestran datos sobre las ubicaciones específicas que se pasan en la solicitud. Para las rutas, las solicitudes de elevación se muestran 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 valores posibles.

Todas las solicitudes

  • key -- (obligatorio) Es la clave de API de tu aplicación. Esta clave identifica tu aplicación para la administración de cuotas. Obtén 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 Especifica ubicaciones a continuación.

Solicitudes de rutas muestreadas

  • path (obligatorio): Define una ruta en el Tierra para la cual se deben mostrar datos de elevación. Este parámetro define un conjunto de dos o más pares de coordenadas (latitud y longitud) ordenados 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 Especifica rutas 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.

Especifica ubicaciones

Las solicitudes posicionales se indican mediante el uso del 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
  • 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 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 los valores de longitud 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, crear una URL válida. Ten en cuenta que, cuando se pasan varias coordenadas, la precisión de los datos resultantes puede ser inferior que cuando se solicitan datos para una única coordenada. Si se superan los 512 puntos o coordenadas en los parámetros "locations" o "path", se muestra una respuesta INVALID_REQUEST.

Especifica rutas

Las solicitudes de rutas muestreadas se indican mediante el 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 especificadas (incluidos los extremos).

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

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 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 los valores de longitud 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, crear una URL válida. Ten en cuenta que, cuando se pasan varias coordenadas, la precisión de los datos resultantes puede ser inferior que cuando se solicitan datos para una única coordenada. Si se superan los 512 puntos o coordenadas en los parámetros "locations" o "path", se muestra una respuesta INVALID_REQUEST.

Respuestas de Elevation

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 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 los valores de longitud 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, crear una URL válida. Ten en cuenta que, cuando se pasan varias coordenadas, la precisión de los datos resultantes puede ser inferior que cuando se solicitan datos para una única coordenada. Si se superan los 512 puntos o coordenadas en los parámetros "locations" o "path", se muestra una respuesta INVALID_REQUEST.

Respuestas de Elevation

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

ElevationResponse

Campo Obligatorio Tipo Descripción
obligatorio Array<ElevationResult> Consulta ElevationResult para obtener más información.
obligatorio ElevationStatus Consulta ElevationStatus para obtener más información.
opcional string

Cuando el servicio muestra un código de estado que no es OK, puede haber un campo error_message adicional dentro del objeto de respuesta. Este campo contiene información más detallada sobre los motivos del código de estado determinado. Este campo no siempre se muestra y su contenido está sujeto a cambios.

ElevationStatus

Códigos de estado que muestra el servicio.

  • OK: Indica que la solicitud a la API se realizó correctamente.
  • DATA_NOT_AVAILABLE : Indica que no hay datos disponibles para las ubicaciones de entrada.
  • INVALID_REQUEST: Indica que la solicitud a la API tiene un formato incorrecto.
  • OVER_DAILY_LIMIT : Indica cualquiera de las siguientes opciones:
    • Falta la clave de API o no es válida.
    • La facturación no está habilitada en tu cuenta.
    • Se superó un límite de uso autoimpuesto.
    • La forma de pago proporcionada ya no es válida (por ejemplo, si venció una tarjeta de crédito).
  • OVER_QUERY_LIMIT: Indica que el solicitante superó la cuota.
  • REQUEST_DENIED: Indica que la API no completó la solicitud.
  • UNKNOWN_ERROR: Indica un error desconocido.

Cuando el código de estado no es OK, puede haber 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 determinado.

La respuesta contiene un array results con los siguientes elementos:

ElevationResult

Campo Obligatorio Tipo Descripción
obligatorio número

La elevación de la ubicación en metros

obligatorio LatLngLiteral

Un elemento de ubicación de la posición para la que se calculan los datos de elevación (ten en cuenta que, para las solicitudes de ruta, el conjunto de elementos de ubicación contendrá los puntos de muestreo a lo largo de la ruta)

Consulta LatLngLiteral para obtener más información.

opcional número

Un valor de que indica la distancia máxima en metros entre los puntos de datos a partir de los cuales se interpoló la elevación (esta propiedad estará ausente si se desconoce la resolución) (ten en cuenta que los datos de elevación se vuelven menos precisos [valores de resolución más grandes] cuando se pasan varios puntos ) (para obtener el valor de elevación más preciso para un punto, se deben realizar consultas independientes)

LatLngLiteral

Es un objeto que describe una ubicación específica con latitud y longitud en grados decimales.

Campo Obligatorio Tipo Descripción
obligatorio número

Latitud en grados decimales

obligatorio número

Longitud en grados decimales

Ejemplos de elevación posicional

En el siguiente ejemplo, se solicita la elevación de Denver, Colorado, la "Ciudad de la Milla de Altura":

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 el Valle de la Muerte, 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.866667&key=YOUR_API_KEY'
      

En esta solicitud, se muestra el uso de la marca output de 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 ejemplo 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 altos y más bajos de los Estados Unidos continentales. Solicitamos 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.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>