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ć wyświetlane wyniki.- Zobacz listę obsługiwanych języków. Google często aktualizuje listę obsługiwanych języków, więc może ona nie być kompletna.
- Jeśli parametr
language
nie zostanie podany, geokoder spróbuje użyć preferowanego języka określonego w nagłówkuAccept-Language
lub domyślnego języka 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 preferowanym języku. Wszystkie elementy adresu są zwracane w tym samym języku, który jest wybierany na podstawie pierwszego elementu.
- Jeśli nazwa nie jest dostępna w preferowanym języku, geokoder użyje jak najbliższe znaczeniem.
region
– kod regionu podany jako 2-znakowa wartość ccTLD („domena najwyższego poziomu”). 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 dotycząca przetwarzania: parametrresult_type
nie ogranicza wyszukiwania do określonych typów adresów. Zamiast tegoresult_type
działa jako filtr po wyszukiwaniu: interfejs API pobiera wszystkie wyniki dla określonegolatlng
, a potem odrzuca te, które nie pasują do określonych typów adresów. Obsługiwane są następujące wartości: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 wskazuje poligon administracji cywilnej.country
oznacza krajowy podmiot polityczny i jest zwykle jest to najwyższy typ kolejności zwracany przez Geocoder.administrative_area_level_1
wskazuje podmiot prawny pierwszego rzędu poniżej poziomu kraju. W Stanach Zjednoczonych te poziomy administracyjne to stany. Nie wszystkie kraje mają te poziomy administracyjne. 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 jednostkę prawną drugiego rzędu na poziomie niższym niż kraj. W Stanach Zjednoczonych są to hrabstwa. Nie wszystkie kraje mają te poziomy administracyjne.administrative_area_level_3
oznacza rodzaj cywilny trzeciego rzędu. poniżej poziomu kraju. Ten typ wskazuje mniejszy podział administracyjny. Nie wszystkie kraje mają te poziomy administracyjne.administrative_area_level_4
oznacza czwarty poziom podmiotu cywilnego poniżej poziomu kraju. Ten typ wskazuje mniejszy podział administracyjny. Nie wszystkie kraje mają te poziomy administracyjne.administrative_area_level_5
wskazuje jednostkę prawną piątego rzędu poniżej poziomu kraju. Ten typ wskazuje mniejszy podział administracyjny. 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 wskazuje mniejszy podział administracyjny. Nie wszystkie kraje mają te poziomy administracyjne.administrative_area_level_7
wskazuje podmiot prawny siódmego rzędu poniżej poziomu kraju. Ten typ oznacza niewielką jednostkę cywilną. Nie wszystkie kraje mają te poziomy administracyjne.colloquial_area
wskazuje powszechnie używaną nazwę alternatywną podmiotu.locality
oznacza miasto lub miejscowość podmiotu zabezpieczeń.sublocality
oznacza jednostkę cywilną pierwszego rzędu poniżej lokalizacji. W przypadku niektórych lokalizacji może być używany jeden z dodatkowych typów:sublocality_level_1
dosublocality_level_5
. Każdy poziom podrejonu jest podmiotem cywilnym. Im większa liczba, tym mniejszy 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ępować adresy ulicy w miejscach, w których ich nie ma (gdzie budynki nie mają numerów lub ulice nie mają nazw). Więcej informacji znajdziesz na stronie https://plus.codes.postal_code
oznacza kod pocztowy używany do adresowania. na terenie tego kraju.natural_feature
wskazuje charakterystyczny element przyrodniczy.airport
oznacza lotnisko.park
oznacza park o nazwie.point_of_interest
wskazuje nazwane miejsce docelowe. Zwykle są to znane obiekty lokalne, które nie pasują do żadnej innej kategorii, np. „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. Zamiast tegolocation_type
działa jako filtr po wyszukiwaniu: interfejs API pobiera wszystkie wyniki dla określonegolatlng
, a potem odrzuca te, które nie pasują do określonych typów lokalizacji. Obsługiwane są te wartości:"ROOFTOP"
zwraca tylko adresy, dla których Google ma 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). Interpolowany zakres zazwyczaj wskazuje, że kody geoadresowe dachów są niedostępne dla adresu ulicznego. "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.
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 podane są filtry result_type
i location_type
, interfejs API zwraca tylko te wyniki, które pasują do obu wartości result_type
i location_type
. Jeśli żadna z wartości filtra nie jest akceptowalna, interfejs API zwraca 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> ...
Pamiętaj, że odwrotny geokodownik zwrócił więcej niż 1 wynik.
Wyniki w usłudze "formatted_address"
to nie tylko adresy pocztowe,
w jakikolwiek sposób określić położenie geograficzne. Podczas geokodowania punktu w mieście Chicago może on zostać oznaczony jako adres ulicy, miasto (Chicago), stan (Illinois) lub kraj (Stany Zjednoczone). Wszystkie są „adresami” do geokodera. Odwrotny geokodownik zwraca dowolny z tych typów jako prawidłowe wyniki.
Geokodowanie odwrotne umożliwia dopasowanie jednostek politycznych (krajów, miast, dzielnic), adresów ulic i kodów pocztowych.
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 szczegółowego adresu ulicy do mniej szczegółowych jednostek administracyjnych, takich jak dzielnice, miasta, powiaty i stany. W tym przypadku bardziej dokładny adres jest zwykle najbardziej widocznym wynikiem. Jeśli chcesz dopasować określony typ Więcej informacji znajdziesz w sekcji Ograniczenia wyniki według typu. Z tego powodu lokalizacja wyników w stosunku do siebie może się różnić.
Odwrotne geokodowanie filtrowane według typu
W tym przykładzie zwracane adresy są filtrowane tak, aby uwzględnić tylko te, które mają typ lokalizacji ROOFTOP
i typ 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 geokodowanie odpowiedzi
Format odwrotnej odpowiedzi geokodowania jest taki sam jak danych geokodowania . Zobacz odpowiedzi 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"
oznacza, że odwrotne geokodowanie zakończyło się powodzeniem, ale nie zwróciło żadnych wyników. Może się tak zdarzyć, jeśli geokoder otrzymałlatlng
w odległej lokalizacji."OVER_QUERY_LIMIT"
oznacza, że przekroczono limit miejsca na dane."REQUEST_DENIED"
oznacza, że żądanie zostało odrzucone. Prawdopodobnie dlatego, że żądanie zawiera parametrresult_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 z powodu błędu serwera. Żądanie może się powieść, jeśli spróbujesz ponownie.
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.