Żądania dotyczące wysokości
Żądania do interfejsu Elevation API są tworzone jako ciąg znaków URL. Interfejs API zwraca dane o wysokości w różnych miejscach na świecie. Dane o lokalizacji możesz określić na 2 sposoby:
- jako zbiór co najmniej 1
locations
. - jako seria połączonych punktów wzdłuż
path
.
Oba te podejścia wykorzystują współrzędne geograficzne do identyfikowania lokalizacji lub wierzchołków ścieżki. W tym dokumencie opisujemy wymagany format adresów URL interfejsu Elevation API i dostępne parametry.
Interfejs Elevation API zwraca dane dla zapytań dotyczących pojedynczych punktów z największą możliwą dokładnością. Zapytania wsadowe obejmujące wiele lokalizacji mogą zwracać mniej dokładne dane, zwłaszcza jeśli lokalizacje są od siebie oddalone, ponieważ następuje pewne wygładzenie danych.
Żądanie interfejsu Elevation API ma następującą formę:
https://maps.googleapis.com/maps/api/elevation/outputFormat?parameters
gdzie outputFormat
może mieć jedną z tych wartości:
json
(zalecane) – wskazuje dane wyjściowe w formacie JavaScript Object Notation (JSON);xml
oznacza dane wyjściowe w formacie XML, zawarte w węźle<ElevationResponse>
.
Uwaga: aby adresy URL były prawidłowe, muszą być odpowiednio zakodowane. W przypadku wszystkich usług internetowych obowiązuje limit 16 384 znaków. Pamiętaj o tym ograniczeniu podczas tworzenia adresów URL. Pamiętaj też, że różne przeglądarki, serwery proxy i serwery mogą mieć różne limity znaków w adresie URL.
W przypadku żądań, które używają klucza interfejsu API, wymagany jest protokół HTTPS.
Parametry żądania
Żądania do interfejsu Elevation API wykorzystują różne parametry w zależności od tego, czy dotyczą dyskretnych lokalizacji, czy uporządkowanej ścieżki. W przypadku dyskretnych lokalizacji żądania dotyczące wysokości zwracają dane o konkretnych lokalizacjach przekazanych w żądaniu. W przypadku ścieżek żądania dotyczące wysokości są próbkowane wzdłuż danej ścieżki.
Zgodnie ze standardem obowiązującym w przypadku wszystkich adresów URL parametry są rozdzielane znakiem ampersand (&
). Listę parametrów i ich możliwych wartości znajdziesz poniżej.
Wszystkie prośby
key
– (wymagany) klucz interfejsu API aplikacji. Ten klucz identyfikuje aplikację na potrzeby zarządzania limitami. Dowiedz się, jak uzyskać klucz.
Żądania dotyczące pozycji
locations
(wymagany) określa lokalizacje na Ziemi, z których mają być zwracane dane o wysokości. Ten parametr przyjmuje pojedynczą lokalizację jako parę {szerokość geograficzna,długość geograficzna} oddzieloną przecinkiem (np. „40.714728,-73.998672”) lub wiele par szerokości i długości geograficznej przekazywanych jako tablica lub zakodowana linia łamana. W przypadku tego parametru obowiązuje limit 512 punktów. Więcej informacji znajdziesz w sekcji Określanie lokalizacji poniżej.
Żądania ścieżki próbkowanej
path
(wymagany) określa ścieżkę na Ziemi, dla której mają być zwracane dane o wysokości. Ten parametr definiuje zbiór co najmniej 2 uporządkowanych par {szerokość geograficzna,długość geograficzna} określających ścieżkę na powierzchni Ziemi. Ten parametr musi być używany w połączeniu z parametremsamples
opisanym poniżej. W przypadku tego parametru obowiązuje limit 512 punktów. Więcej informacji znajdziesz w sekcji Określanie ścieżek poniżej.samples
(wymagany) określa liczbę punktów próbnych na ścieżce, dla których mają być zwracane dane o wysokości. Parametrsamples
dzieli podaną wartośćpath
na uporządkowany zbiór równoodległych punktów wzdłuż ścieżki.
Określanie lokalizacji
Żądania dotyczące pozycji są oznaczane za pomocą parametru locations
, który wskazuje żądania dotyczące wysokości dla konkretnych lokalizacji przekazywanych jako wartości szerokości i długości geograficznej.
Parametr locations
może przyjmować te argumenty:
- pojedyncze współrzędne:
locations=40.714728,-73.998672
, - Tablica współrzędnych rozdzielonych znakiem kreski pionowej („
|
”):locations=40.714728,-73.998672|-34.397,150.644
- Zestaw zakodowanych współrzędnych za pomocą algorytmu kodowania linii łamanych:
locations=enc:gfo}EtohhU
Ciągi współrzędnych geograficznych są definiowane za pomocą cyfr w ciągu tekstowym oddzielonym przecinkami. Na przykład „40.714728,-73.998672” jest prawidłową wartością locations
. Wartości szerokości i długości geograficznej muszą odpowiadać prawidłowej lokalizacji na powierzchni Ziemi. Szerokość geograficzna może przyjmować dowolną wartość z przedziału od -90
do 90
, a długość geograficzna – dowolną wartość z przedziału od -180
do 180
. Jeśli podasz nieprawidłową wartość szerokości lub długości geograficznej, Twoje żądanie zostanie odrzucone jako nieprawidłowe.
W tablicy lub zakodowanej polilinii możesz przekazać maksymalnie 512 współrzędnych, zachowując przy tym prawidłowy adres URL.
Pamiętaj, że w przypadku przekazywania wielu współrzędnych dokładność zwracanych danych może być mniejsza niż w przypadku żądania danych dla pojedynczych współrzędnych.
Przekroczenie 512 punktów lub współrzędnych w parametrach „locations” lub „path” powoduje zwrócenie odpowiedzi INVALID_REQUEST
.
Określanie ścieżek
Żądania ścieżek próbkowanych są oznaczane za pomocą parametrów path
i samples
, co oznacza żądanie danych o wysokości wzdłuż ścieżki w określonych odstępach. Podobnie jak w przypadku żądań pozycyjnych z parametrem locations
, parametr path
określa zestaw wartości szerokości i długości geograficznej. W odróżnieniu od żądania pozycyjnego path
określa uporządkowany zbiór wierzchołków. Zamiast zwracać dane o wysokości tylko w wierzchołkach, żądania dotyczące ścieżki są próbkowane wzdłuż ścieżki na podstawie podanej liczby samples
(włącznie z punktami końcowymi).
Parametr path
może przyjmować te argumenty:
- Tablica zawierająca co najmniej 2 ciągi tekstowe z współrzędnymi rozdzielone przecinkami, a następnie znakiem „
|
”:path=40.714728,-73.998672|-34.397,150.644
- Zakodowane współrzędne za pomocą algorytmu kodowania linii łamanych:
path=enc:gfo}EtohhUxD@bAxJmGF
Ciągi współrzędnych geograficznych są definiowane za pomocą cyfr w ciągu tekstowym oddzielonym przecinkami. Na przykład „40.714728,-73.998672|-34.397, 150.644” to prawidłowa wartość.path
Wartości szerokości i długości geograficznej muszą odpowiadać prawidłowej lokalizacji na powierzchni Ziemi. Szerokość geograficzna może przyjmować dowolną wartość z przedziału od -90
do 90
, a długość geograficzna – dowolną wartość z przedziału od -180
do 180
. Jeśli podasz nieprawidłową wartość szerokości lub długości geograficznej, Twoje żądanie zostanie odrzucone jako nieprawidłowe.
W tablicy lub zakodowanej polilinii możesz przekazać maksymalnie 512 współrzędnych, zachowując przy tym prawidłowy adres URL. Pamiętaj, że w przypadku przekazywania wielu współrzędnych dokładność zwracanych danych może być mniejsza niż w przypadku żądania danych dla pojedynczych współrzędnych. Przekroczenie 512 punktów lub współrzędnych w parametrach „locations” lub „path” zwraca odpowiedź INVALID_REQUEST
.
Odpowiedzi dotyczące wysokości
W przypadku każdego prawidłowego żądania usługa Elevation zwraca odpowiedź Elevation w formacie wskazanym w adresie URL żądania.
ElevationResponse
Field | Required | Type | Description |
---|---|---|---|
| required | Array<ElevationResult> | See ElevationResult for more information. |
| required | ElevationStatus | See ElevationStatus for more information. |
| optional | string |
When the service returns a status code other than |
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.
Jeśli kod stanu jest inny niż OK
, w obiekcie odpowiedzi Elevation może się pojawić dodatkowe pole error_message
. To pole zawiera bardziej szczegółowe informacje o przyczynach danego kodu stanu.
Odpowiedź zawiera tablicę results
z tymi elementami:
ElevationResult
Field | Required | Type | Description |
---|---|---|---|
| required | number | The elevation of the location in meters. |
| required | LatLngLiteral | 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. |
| optional | number | 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. |
Obiekt location
ma te elementy:
LatLngLiteral
An object describing a specific location with Latitude and Longitude in decimal degrees.
Field | Required | Type | Description |
---|---|---|---|
| required | number | Latitude in decimal degrees |
| required | number | Longitude in decimal degrees |
Przykłady wysokości względnej
Poniższy przykład wysyła żądanie wysokości nad poziomem morza dla Denver w Kolorado, czyli „Miasta na wysokości mili”, w formacie 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>
Poniższy przykład pokazuje kilka odpowiedzi (dla Denver w stanie Kolorado i Dolina Śmierci w stanie Kalifornia).
To żądanie pokazuje użycie flagi JSON output
:
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'
To żądanie pokazuje użycie flagi XML output
:
https://maps.googleapis.com/maps/api/elevation/xml?locations=39.7391536,-104.9847034|36.455556,-116.866667&key=YOUR_API_KEY
Aby zobaczyć przykładowe odpowiedzi w formatach JSON i XML, wybierz karty poniżej.
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>
W przykładach poniżej wysyłamy żądania danych o wysokości wzdłuż linii prostejpath
od Mt. Whitney w Kalifornii do Badwater w Kalifornii, czyli najwyższego i najniższego punktu w Stanach Zjednoczonych kontynentalnych. Prosimy o 3 samples
, czyli 2 punkty końcowe i punkt w połowie odcinka.
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>