Termin geokodowanie odnosi się ogólnie do tłumaczenia zrozumiałego dla człowieka adres w lokalizacji na mapie. Ten proces tłumaczenie lokalizacji na mapie na adres czytelny dla człowieka to tzw. odwrotne geokodowanie.
Odwrotne żądania geokodowania
Wymagane parametry
latlng
– szerokość i długość geograficzną. czyli najbliższą lokalizację, łatwy do odczytania przez człowieka.key
– klucz interfejsu API Twojej aplikacji. Ten klucz identyfikuje Twojej aplikacji na potrzeby zarządzania limitami. Dowiedz się, jak uzyskaj klucz.
Parametry opcjonalne
Są to parametry opcjonalne, które możesz umieścić odwrotnie żądanie geokodowania:
language
– język, w którym mają być zwracane wyniki.- Zobacz listę obsługiwanych funkcji języki. Google często aktualizuje obsługiwane języki, więc może nie być wyczerpująca.
- Jeśli nie zostanie podany
language
, geokoder spróbuje użyj preferowanego języka określonego wAccept-Language
lub język ojczysty domeny, z której wysłano żądanie. - Geokoder stara się podać adres, który łatwy do odczytania zarówno przez użytkownika, jak i lokalnie. Aby osiągnąć ten cel, zwraca adresy ulic w języku lokalnym po transliteracji na skryptach odczytanych przez użytkownika w razie potrzeby, obserwując preferowany język. Wszystkie inne adresy są zwracane w preferencjach język. wszystkie komponenty adresu są zwracane w jednym języku, który jest wybierany z pierwszego komponentu.
- Jeśli nazwa nie jest dostępna w preferowanym języku, geokoder użyje jak najbliższe znaczeniem.
region
– kod regionu określony jako ccTLD. („domena najwyższego poziomu”) wartość dwuznakowa. Może on też wpływać na to, na podstawie obowiązującego prawa.result_type
– filtr obejmujący co najmniej jeden typ adresu, oddzielone pionową kreską (|
). Jeśli parametr zawiera wiele wartości adresy, interfejs API zwraca wszystkie adresy pasujące do dowolnego z tych typów. Uwaga na temat przetwarzania: parametrresult_type
nie ograniczyć wyszukiwanie do określonych typów adresów. leczresult_type
działa jak filtr po wyszukiwaniu: interfejs API pobiera wszystkie wyników dla określonego parametrulatlng
, a następnie odrzuca te wyniki które nie pasują do określonych typów adresów. Następujące wartości są obsługiwane:street_address
wskazuje dokładny adres.route
oznacza trasę z nazwą (np. „E101”).intersection
oznacza większe przecięcie, zwykle składające się z dwóch dróg głównych.political
oznacza podmiot polityczny. Zwykle ten typ oznacza wielokąt niektórych jednostek administracji cywilnej.country
oznacza krajowy podmiot polityczny i jest zwykle jest to najwyższy typ kolejności zwracany przez Geocoder.administrative_area_level_1
oznacza cywilny pierwszego rzędu poniżej poziomu kraju. W Stanach Zjednoczonych te poziomy administracyjne to stany. Nie we wszystkich krajach na poziomach administracyjnych. W większości przypadków parametr administracyjny_area_level_1 krótkie nazwy będą dokładnie odpowiadać podziałom zgodnym z normą ISO 3166-2 oraz innymi powszechnymi publikowane listy; Nie jest to jednak gwarantowane, ponieważ wyniki geokodowania na podstawie różnych sygnałów i danych o lokalizacji.administrative_area_level_2
oznacza typ cywilny drugiego rzędu. poniżej poziomu kraju. W Stanach Zjednoczonych te poziomy administracyjne to hrabstwa. Nie we wszystkich krajach na poziomach administracyjnych.administrative_area_level_3
oznacza rodzaj cywilny trzeciego rzędu. poniżej poziomu kraju. Ten typ oznacza niewielką jednostkę cywilną. Nie we wszystkich krajach obowiązują te poziomy administracyjne.administrative_area_level_4
oznacza cywilny rządu czwartego rzędu poniżej poziomu kraju. Ten typ oznacza niewielką jednostkę cywilną. Nie we wszystkich krajach obowiązują te poziomy administracyjne.administrative_area_level_5
oznacza cywilny piątego rzędu poniżej poziomu kraju. Ten typ oznacza niewielką jednostkę cywilną. Nie we wszystkich krajach obowiązują te poziomy administracyjne.administrative_area_level_6
oznacza cywilny szóstego rzędu. poniżej poziomu kraju. Ten typ oznacza niewielką jednostkę cywilną. Nie we wszystkich krajach obowiązują te poziomy administracyjne.administrative_area_level_7
oznacza cywilny siódmego rzędu. poniżej poziomu kraju. Ten typ oznacza niewielką jednostkę cywilną. Nie we wszystkich krajach obowiązują te poziomy administracyjne.colloquial_area
oznacza często używaną nazwę alternatywną. danego podmiotu.locality
oznacza miasto lub miejscowości, na terenie których funkcjonuje podmiotu zabezpieczeń.sublocality
oznacza podmiot cywilny pierwszego rzędu pod lokalizacji. W przypadku niektórych lokalizacji mogą pojawić się dodatkowe typy lokalizacji:sublocality_level_1
dosublocality_level_5
. Każdy poziom podrejonu jest podmiotem cywilnym. Większe liczby oznaczają mniejsze obszar geograficzny.neighborhood
oznacza nazwany dzielnicępremise
wskazuje nazwane lokalizację, zwykle budynek lub zespół budynków o takiej samej nazwiesubpremise
oznacza element pierwszego rzędu pod nazwanym lokalizacji, zwykle pojedynczego budynku w obrębie zespołu budynków imię i nazwiskoplus_code
oznacza zakodowane odniesienie do lokalizacji, pochodne od szerokości i długości geograficznej. Kody Plus Code mogą zastąpić: adresów w miejscach, gdzie nie istnieją (gdzie budynki nie są numerowane lub ulice nie mają nazwy). Zobacz https://plus.codes. .postal_code
oznacza kod pocztowy używany do adresowania. na terenie tego kraju.natural_feature
oznacza ważny obiekt naturalny.airport
oznacza lotnisko.park
oznacza nazwany park.point_of_interest
wskazuje nazwane miejsce. Takie miejsca to zazwyczaj dobrze widoczne obiekty lokalne, które nie zawsze w innej kategorii, takiej jak „Empire State Building” czy „wieża Eiffla”.
location_type
– filtr obejmujący co najmniej jeden typ lokalizacji, oddzielone pionową kreską (|
). Jeśli parametr zawiera wiele wartości typ lokalizacji, interfejs API zwróci wszystkie adresy pasujące do dowolnego z tych typów. Uwaga na temat przetwarzania: parametrlocation_type
nie ograniczyć wyszukiwanie do określonych typów lokalizacji. leczlocation_type
działa jak filtr po wyszukiwaniu: interfejs API pobiera wszystkie wyników dla określonego parametrulatlng
, a następnie odrzuca te wyniki które nie pasują do określonych typów lokalizacji. Obsługiwane są te wartości:- Funkcja
"ROOFTOP"
zwraca tylko adresy, dla których Google zawiera informacje o lokalizacji z dokładnością do adresu ulicy. - Funkcja
"RANGE_INTERPOLATED"
zwraca tylko adresy, które odzwierciedlają przybliżoną (zwykle na drodze) interpolację między dwoma zawężone punkty (np. skrzyżowania). Zakres interpolowany wskazuje, że geokody dachowe dla adresu ulicy są niedostępne. "GEOMETRIC_CENTER"
zwraca tylko dane geometryczne środki lokalizacji, takie jak linia łamana (na przykład ulica) lub wielokąt (region).- Funkcja
"APPROXIMATE"
zwraca tylko adresy, które są w sposób przybliżony.
- Funkcja
extra_computations
– użyj tego parametru, aby określić parametr następujące dodatkowe funkcje w odpowiedzi:ADDRESS_DESCRIPTORS
– Zobacz deskryptory adresów.BUILDING_AND_ENTRANCES
– Zobacz wejścia i kontury budynków.
extra_computations
w żądaniu dla każdej funkcji, np.:extra_computations=ADDRESS_DESCRIPTORS&extra_computations=BUILDING_AND_ENTRANCES
Jeśli obecne są zarówno filtry result_type
, jak i location_type
, interfejs API
zwraca tylko te wyniki, które pasują zarówno do result_type
, jak i do
location_type
wartości. Jeśli żadna z wartości filtra nie jest akceptowalna, w parze klucz-wartość
Interfejs API zwraca wartość ZERO_RESULTS
.
Przykład odwrotnego geokodowania
Następujące zapytanie zawiera wartość szerokości/długości geograficznej lokalizacji na Brooklynie:
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY
Powyższe zapytanie zwraca następujący wynik:
{
"results" : [
{
"address_components" : [
{
"long_name" : "277",
"short_name" : "277",
"types" : [ "street_number" ]
},
{
"long_name" : "Bedford Avenue",
"short_name" : "Bedford Ave",
"types" : [ "route" ]
},
{
"long_name" : "Williamsburg",
"short_name" : "Williamsburg",
"types" : [ "neighborhood", "political" ]
},
{
"long_name" : "Brooklyn",
"short_name" : "Brooklyn",
"types" : [ "sublocality", "political" ]
},
{
"long_name" : "Kings",
"short_name" : "Kings",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "New York",
"short_name" : "NY",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
},
{
"long_name" : "11211",
"short_name" : "11211",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "277 Bedford Avenue, Brooklyn, NY 11211, USA",
"geometry" : {
"location" : {
"lat" : 40.714232,
"lng" : -73.9612889
},
"location_type" : "ROOFTOP",
"viewport" : {
"northeast" : {
"lat" : 40.7155809802915,
"lng" : -73.9599399197085
},
"southwest" : {
"lat" : 40.7128830197085,
"lng" : -73.96263788029151
}
}
},
"place_id" : "ChIJd8BlQ2BZwokRAFUEcm_qrcA",
"types" : [ "street_address" ]
},
... Additional <code>results[]</code> ...
Zwróć uwagę, że odwrotny geokoder zwrócił więcej niż jeden wynik.
Wyniki w usłudze "formatted_address"
to nie tylko adresy pocztowe,
w jakikolwiek sposób określić położenie geograficzne. Na przykład podczas geokodowania punktu
w Chicago punkt z geokodami może być oznaczony jako adres,
jako miasto (Chicago), stan (Illinois) lub kraj (Stany Zjednoczone
stany). Wszystkie są „adresami” do geokodera. Odwrotny geokoder zwraca
każdy z nich jako prawidłowe wyniki.
Odwrotny geokoder pasuje do podmiotów politycznych (krajów, prowincji, miasta i dzielnice), adresy ulic i kody pocztowe.
Pełną listę wartości funkcji formatted_address
zwróconych przez
poprzednie zapytanie zostało wyświetlone poniżej.
{
"plus_code" : {
"compound_code" : "P27Q+MCM New York, NY, USA",
"global_code" : "87G8P27Q+MCM"
},
"results" : [
{
"formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA",
...
"types" : [ "street_address" ]
},
{
"formatted_address" : "279 Bedford Ave, Brooklyn, NY 11211, USA",
...
"types" : [ "premise" ]
},
{
"formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA",
...
"types" : [ "establishment", "point_of_interest" ]
},
{
"formatted_address" : "291-275 Bedford Ave, Brooklyn, NY 11211, USA",
...
"types" : [ "route" ]
},
{
"formatted_address" : "P27Q+MC New York, NY, USA",
...
"types" : [ "plus_code" ]
},
{
"formatted_address" : "South Williamsburg, Brooklyn, NY, USA",
...
"types" : [ "neighborhood", "political" ]
},
{
"formatted_address" : "Brooklyn, NY 11211, USA",
...
"types" : [ "postal_code" ]
},
{
"formatted_address" : "Williamsburg, Brooklyn, NY, USA",
...
"types" : [ "neighborhood", "political" ]
},
{
"formatted_address" : "Kings County, Brooklyn, NY, USA",
...
"types" : [ "administrative_area_level_2", "political" ]
},
{
"formatted_address" : "Brooklyn, NY, USA",
...
"types" : [ "political", "sublocality", "sublocality_level_1" ]
},
{
"formatted_address" : "New York, NY, USA",
...
"types" : [ "locality", "political" ]
},
{
"formatted_address" : "New York, USA",
...
"types" : [ "administrative_area_level_1", "political" ]
},
{
"formatted_address" : "United States",
...
"types" : [ "country", "political" ]
}
],
"status" : "OK"
}
Ten interfejs API zwraca różne typy adresów, od najbardziej adresu do mniej konkretnych jednostek politycznych, takich jak dzielnice, miasta, hrabstwa i stany. Bardziej dokładny adres jest zwykle jak w tym przypadku. Jeśli chcesz dopasować określony typ Więcej informacji znajdziesz w sekcji Ograniczenia wyniki według typu. Z tego powodu położenie wyników względem mogą się różnić między sobą.
Odwrotne geokodowanie filtrowane według typu
Poniższy przykład filtruje zwrócone adresy, aby zawierały tylko te
z typem lokalizacji ROOFTOP
i typem adresu
street_address
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452
&location_type=ROOFTOP&result_type=street_address&key=YOUR_API_KEY
Uwaga: te filtry działają tylko w przypadku odwrotne geokodowanie.
Odwrotne odpowiedzi geokodowania
Format odwrotnej odpowiedzi geokodowania jest taki sam jak danych geokodowania . Zobacz Odpowiedzi na potrzeby geokodowania. Poniżej znajdują się kody stanu możliwe w przypadku odwrotnej odpowiedzi geokodowania.
Kody stanu odwrotnego geokodowania
Pole "status"
w obiekcie odpowiedzi Geocoding zawiera
stan żądania i może zawierać informacje na potrzeby debugowania, które pomogą Ci
i dowiedzieć się, dlaczego odwrotne geokodowanie nie działa. "status"
może zawierać następujące wartości:
"OK"
oznacza, że nie wystąpiły żadne błędy i co najmniej jeden ."ZERO_RESULTS"
wskazuje, że odwrotne geokodowanie zostało udało się rozwiązać problem, ale nie zwrócił żadnych wyników. Może się to zdarzyć, jeśli geokoder był udało mi się wyprzedzićlatlng
w lokalizacji zdalnej."OVER_QUERY_LIMIT"
oznacza, że przekroczono limit miejsca na dane."REQUEST_DENIED"
oznacza, że żądanie zostało odrzucone. Prawdopodobnie dlatego, że żądanie zawiera elementresult_type
lublocation_type
, ale nie zawiera klucza interfejsu API."INVALID_REQUEST"
zwykle oznacza jedno z tych:- Zapytanie (
address
,components
lublatlng
). - Nieprawidłowa wartość
result_type
lublocation_type
została danej wartości.
- Zapytanie (
"UNKNOWN_ERROR"
oznacza, że nie udało się zrealizować żądania przetworzono z powodu błędu serwera. Żądanie może zostać zrealizowane, jeśli: spróbuj jeszcze raz.
Kody plus odwrotne geokodowanie
Pole plus_code
w odpowiedzi Geocoding zawiera kod plus, który
najlepiej określa w przybliżeniu długość i szerokość geograficzną danego zapytania.
Dodatkowo tablica wyników JSON w większości przypadków zawiera pełne geokodowanie
wynik o typie plus_code
i adresie zawierającym plus
w kodzie. Odległość między zdekodowanym kodem plus a punktem żądania wynosi
musi być poniżej 10 metrów.