Prośby o potwierdzenie poziomu
Żądania do interfejsu Elevation API są tworzone jako ciąg znaków adresu URL. Interfejs API zwraca dane dotyczące wysokości w różnych miejscach na świecie. Dane o lokalizacji możesz określić na 2 sposoby:
- jako zestaw zawierający co najmniej jeden element
locations. - Jako seria połączonych punktów wzdłuż
path.
W obu tych podejściach do identyfikowania lokalizacji lub wierzchołków ścieżki używane są współrzędne geograficzne. W tym dokumencie opisujemy wymagany format adresów URL interfejsu Elevation API oraz dostępne parametry.
Interfejs Elevation API zwraca dane dla zapytań o pojedynczy punkt z najwyższą możliwą dokładnością. Zapytania zbiorcze dotyczące wielu lokalizacji mogą zwracać mniej dokładne dane, zwłaszcza jeśli lokalizacje są od siebie oddalone, ponieważ dane są wygładzane.
Żądanie do interfejsu Elevation API ma następującą postać:
https://maps.googleapis.com/maps/api/elevation/outputFormat?parameters
gdzie outputFormat może mieć jedną z tych wartości:
json(zalecany) – wskazuje dane wyjściowe w formacie JavaScript Object Notation (JSON);xml, wskazuje dane wyjściowe w formacie XML, opakowane w węzeł<ElevationResponse>.
Uwaga: aby adresy URL były prawidłowe, muszą być odpowiednio zakodowane. W przypadku wszystkich usług internetowych ich długość jest ograniczona do 16 384 znaków. Pamiętaj o tym limicie podczas tworzenia adresów URL. Pamiętaj, że różne przeglądarki, serwery proxy i serwery mogą mieć różne limity znaków w adresach URL.
W przypadku żądań, które używają klucza interfejsu API, wymagany jest protokół HTTPS.
Parametry żądania
Żądania wysyłane do interfejsu Elevation API wykorzystują różne parametry w zależności od tego, czy dotyczą pojedynczych lokalizacji czy uporządkowanej ścieżki. W przypadku pojedynczych 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 wszystkich adresów URL parametry są rozdzielane znakiem ampersand (&). Lista parametrów i ich możliwych wartości znajduje się poniżej.
Wszystkie prośby
key– (wymagany) klucz interfejsu API aplikacji. Ten klucz identyfikuje Twoją aplikację na potrzeby zarządzania limitami. Dowiedz się, jak uzyskać klucz.
Żądania pozycyjne
locations(wymagany) określa lokalizacje na Ziemi, dla których mają zostać zwrócone dane o wysokości. Ten parametr przyjmuje pojedynczą lokalizację jako parę {szerokość,długość} rozdzieloną przecinkami (np. „40.714728,-73.998672”) lub wiele par szerokości i długości geograficznej przekazanych jako tablica lub zakodowana linia łamana. Ten parametr ma limit 512 punktów. Więcej informacji znajdziesz poniżej w sekcji Określanie lokalizacji.
Przykładowe żądania ścieżki
path(wymagany) definiuje ścieżkę na Ziemi, dla której mają zostać zwrócone dane o wysokości. Ten parametr określa zbiór co najmniej 2 uporządkowanych par {szerokość,długość geograficzna} definiujących ścieżkę na powierzchni Ziemi. Ten parametr musi być używany w połączeniu z parametremsamplesopisanym poniżej. Ten parametr ma limit 512 punktów. Więcej informacji znajdziesz w sekcji Określanie ścieżek poniżej.samples(wymagany) określa liczbę punktów próbkowania na ścieżce, dla których mają zostać zwrócone dane o wysokości. Parametrsamplesdzieli dany elementpathna uporządkowany zbiór równoodległych punktów wzdłuż ścieżki.
Określanie lokalizacji
Żądania dotyczące pozycji są wskazywane 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:
- Pojedyncza współrzędna:
locations=40.714728,-73.998672 - Tablica współrzędnych rozdzielonych pionową kreską („
|”):locations=40.714728,-73.998672|-34.397,150.644 - Zestaw zakodowanych współrzędnych przy użyciu algorytmu zakodowanej linii łamanej:
locations=enc:gfo}EtohhU
Ciągi współrzędnych szerokości i długości geograficznej są definiowane za pomocą cyfr w ciągu tekstowym rozdzielanym 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 kuli ziemskiej. Szerokość geograficzna może mieć dowolną wartość z zakresu od -90 do 90, a długość geograficzna – 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 linii łamanej możesz przekazać maksymalnie 512 współrzędnych, zachowując przy tym prawidłowy adres URL. Pamiętaj, że gdy przekazujesz wiele współrzędnych, dokładność zwracanych danych może być niższa niż w przypadku żądania danych dotyczących pojedynczych współrzędnych. Przekroczenie 512 punktów lub współrzędnych w parametrach „locations” lub „path” powoduje zwrócenie odpowiedzi INVALID_REQUEST.
Określ ścieżki
Żądania ścieżki z próbkowaniem są wskazywane przez użycie parametrów path i samples, które oznaczają żądanie danych o wysokości wzdłuż ścieżki w określonych odstępach czasu. Podobnie jak w przypadku żądań pozycyjnych, które używają parametru locations, parametr path określa zestaw wartości szerokości i długości geograficznej. Jednak 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 ścieżki są próbkowane wzdłuż długości ścieżki na podstawie określonej liczby samples (w tym punktów końcowych).
Parametr path może przyjmować jeden z tych argumentów:
- Tablica zawierająca co najmniej 2 ciągi tekstowe współrzędnych rozdzielone przecinkami i znakiem kreski pionowej („
|”):path=40.714728,-73.998672|-34.397,150.644 - Współrzędne zakodowane za pomocą algorytmu kodowania linii łamanej:
path=enc:gfo}EtohhUxD@bAxJmGF
Ciągi współrzędnych szerokości i długości geograficznej są definiowane za pomocą cyfr w ciągu tekstowym rozdzielonym przecinkami. Na przykład „40.714728,-73.998672|-34.397, 150.644” jest prawidłową wartością parametru path. Wartości szerokości i długości geograficznej muszą odpowiadać prawidłowej lokalizacji na kuli ziemskiej. Szerokość geograficzna może mieć dowolną wartość z zakresu od -90 do 90, a długość geograficzna – z zakresu 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 linii łamanej możesz przekazać maksymalnie 512 współrzędnych, zachowując przy tym prawidłowy adres URL. Pamiętaj, że gdy przekazujesz wiele współrzędnych, dokładność zwracanych danych może być niższa niż w przypadku żądania danych dotyczących pojedynczych współrzędnych. Przekroczenie 512 punktów lub współrzędnych w parametrach „locations” lub „path” powoduje zwrócenie odpowiedzi INVALID_REQUEST.
Odpowiedzi dotyczące wysokości
- Tablica zawierająca co najmniej 2 ciągi tekstowe współrzędnych rozdzielone przecinkami i znakiem kreski pionowej („
|”):path=40.714728,-73.998672|-34.397,150.644 - Współrzędne zakodowane za pomocą algorytmu kodowania linii łamanej:
path=enc:gfo}EtohhUxD@bAxJmGF
Ciągi współrzędnych szerokości i długości geograficznej są definiowane za pomocą cyfr w ciągu tekstowym rozdzielonym przecinkami. Na przykład „40.714728,-73.998672|-34.397, 150.644” jest prawidłową wartością parametru path. Wartości szerokości i długości geograficznej muszą odpowiadać prawidłowej lokalizacji na kuli ziemskiej. Szerokość geograficzna może mieć dowolną wartość z zakresu od -90 do 90, a długość geograficzna – z zakresu 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 linii łamanej możesz przekazać maksymalnie 512 współrzędnych, zachowując przy tym prawidłowy adres URL. Pamiętaj, że gdy przekazujesz wiele współrzędnych, dokładność zwracanych danych może być niższa niż w przypadku żądania danych dotyczących pojedynczych współrzędnych. Przekroczenie 512 punktów lub współrzędnych w parametrach „locations” lub „path” powoduje zwrócenie odpowiedzi INVALID_REQUEST.
Odpowiedzi dotyczące wysokości
W przypadku każdego prawidłowego żądania usługa Elevation zwraca odpowiedź w formacie wskazanym w adresie URL żądania.
ElevationResponse
| Pole | Wymagane | Typ | Opis |
|---|---|---|---|
|
wymagane | Array<ElevationResult> | Więcej informacji znajdziesz w sekcji ElevationResult. |
|
wymagane | ElevationStatus | Więcej informacji znajdziesz w artykule ElevationStatus. |
|
opcjonalnie | tekst |
Gdy usługa zwraca kod stanu inny niż |
ElevationStatus
Kody stanu zwracane przez usługę.
OK, co oznacza, że żądanie do interfejsu API zostało zrealizowane.DATA_NOT_AVAILABLE, co oznacza, że nie ma dostępnych danych dla podanych lokalizacji.INVALID_REQUEST, co oznacza, że żądanie do interfejsu API było nieprawidłowe.OVER_DAILY_LIMIT, który zawiera dowolne z tych informacji:- Brak klucza interfejsu API lub jest on nieprawidłowy.
- Na Twoim koncie nie włączono płatności.
- Przekroczono samodzielnie nałożony limit wykorzystania.
- Podana forma płatności jest już nieważna (np. karta kredytowa straciła ważność).
OVER_QUERY_LIMIT, co oznacza, że żądający przekroczył limit.REQUEST_DENIED, co oznacza, że interfejs API nie zrealizował żądania.UNKNOWN_ERRORwskazujący nieznany błąd.
Jeśli kod stanu jest inny niż OK, w obiekcie odpowiedzi Elevation może znajdować się dodatkowe pole error_message. To pole zawiera bardziej szczegółowe informacje o przyczynach danego kodu stanu.
Odpowiedź zawiera tablicę results z tymi elementami:
ElevationResult
| Pole | Wymagane | Typ | Opis |
|---|---|---|---|
|
wymagane | liczba |
Wysokość lokalizacji w metrach. |
|
wymagane | LatLngLiteral |
Element lokalizacji pozycji, dla której obliczane są dane wysokości. Pamiętaj, że w przypadku żądań ścieżki zbiór elementów lokalizacji będzie zawierać próbkowane punkty na ścieżce. Więcej informacji znajdziesz w artykule LatLngLiteral. |
|
opcjonalnie | liczba |
Wartość wskazująca maksymalną odległość między punktami danych, z których interpolowano wysokość, w metrach. Jeśli rozdzielczość jest nieznana, ta właściwość nie będzie dostępna. Pamiętaj, że dane o wysokości stają się mniej dokładne (większe wartości rozdzielczości), gdy przekazywanych jest wiele punktów. Aby uzyskać jak najdokładniejszą wartość wysokości dla danego punktu, należy wysłać zapytanie niezależnie. |
LatLngLiteral
Obiekt opisujący konkretną lokalizację z szerokością i długością geograficzną w stopniach dziesiętnych.
| Pole | Wymagane | Typ | Opis |
|---|---|---|---|
|
wymagane | liczba |
Szerokość geograficzna w stopniach dziesiętnych |
|
wymagane | liczba |
Długość geograficzna w stopniach dziesiętnych |
Przykłady wysokości pozycyjnej
Ten przykładowy kod wysyła żądanie o wysokość nad poziomem morza dla Denver w Kolorado, czyli „Mile High City”:
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 Kolorado i Doliny Śmierci w Kalifornii).
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, jak używać flagi XML output:
https://maps.googleapis.com/maps/api/elevation/xml?locations=39.7391536,-104.9847034|36.455556,-116.866667&key=YOUR_API_KEY
Wybierz karty poniżej, aby zobaczyć przykładowe odpowiedzi JSON i 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>
W poniższych przykładach żądane są dane o wysokości wzdłuż linii prostej path od góry Whitney w Kalifornii do Badwater w Kalifornii, czyli najwyższego i najniższego punktu w kontynentalnej części Stanów Zjednoczonych. Prosimy o 3 samples, więc będą to 2 punkty końcowe i punkt środkowy.
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>