Prośba
Żądanie do Geocoding API ma taką formę:
https://maps.googleapis.com/maps/api/geocode/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
Protokół HTTPS jest wymagany.
Niektóre parametry są wymagane, a inne opcjonalne. Zgodnie ze standardem w adresach URL parametry są rozdzielone znakami ampersand (&
).
W pozostałej części tej strony omówiono oddzielnie geokodowanie i odwrotne geokodowanie, ponieważ dla każdego typu żądania dostępne są inne parametry.
Parametry geokodowania (wyszukiwanie szerokości i długości geograficznej)
Parametry wymagane w żądaniu geokodowania:
address
– adres lub kod plus, na który chcesz geokodować. Podaj adresy zgodnie z formatem używanym przez krajową usługę pocztową w danym kraju. Należy unikać dodatkowych elementów adresu, takich jak nazwy firm, lokale, lokale czy piętra. Elementy adresu pocztowego powinny być rozdzielone spacjami (w tym przypadku adresy URL ze zmianą znaczenia do%20
):address=24%20Sussex%20Drive%20Ottawa%20ON
Sformatuj kody plus w taki sposób, jak pokazano tutaj (znak plusa to%2B
ze zmianą znaczenia, a spacje są znakami zmiany znaczenia do ciągu%20
):- Kod globalny to 4-znakowy numer kierunkowy i co najmniej 6-znakowy kod lokalny (849VCWC8+R9 to
849VCWC8%2BR9
). - Kod złożony to co najmniej 6-znakowy kod lokalny z wyraźną lokalizacją (CWC8+R9 Mountain View, CA, USA to
CWC8%2BR9%20Mountain%20View%20CA%20USA
).
--OR--
components
– filtr komponentów z elementami rozdzielonymi pionową kreską (|
). Filtr komponentów jest też akceptowany jako parametr opcjonalny, jeśli podanoaddress
. Każdy element filtra komponentów składa się z parycomponent:value
. W pełni ogranicza wyniki generowane przez geokodera. Więcej informacji o filtrowaniu komponentów znajdziesz poniżej.- Kod globalny to 4-znakowy numer kierunkowy i co najmniej 6-znakowy kod lokalny (849VCWC8+R9 to
key
– klucz interfejsu API aplikacji. Ten klucz identyfikuje aplikację na potrzeby zarządzania limitami. Dowiedz się, jak uzyskać klucz.
Więcej informacji znajdziesz w najczęstszych pytaniach.
Parametry opcjonalne w żądaniu geokodowania:
bounds
– ramka ograniczająca widocznego obszaru, w którym lepiej widać odchylenie wyników geograficznych. Ten parametr ma wpływ tylko na wyniki generowane przez geokodera, a nie na pełne ograniczanie wyników. Więcej informacji znajdziesz w sekcji Promowanie widocznego obszaru poniżej.language
– język, w którym mają być zwracane wyniki.- Zobacz listę obsługiwanych języków. Google często aktualizuje obsługiwane języki, więc ta lista może nie być pełna.
- Jeśli
language
nie zostanie podany, geokoder spróbuje użyć preferowanego języka określonego w nagłówkuAccept-Language
lub języka ojczystego domeny, z której wysłane jest żądanie. - Geokoder dokłada wszelkich starań, aby podać czytelny adres zarówno dla użytkownika, jak i lokalnego. W tym celu funkcja zwraca adresy w języku lokalnym, transliterację do skryptu zrozumiałego dla użytkownika (w razie potrzeby) z uwzględnieniem preferowanego języka. Wszystkie inne adresy są zwracane w preferowanym języku. Komponenty adresu są zwracane w tym samym języku, który jest wybierany z pierwszego komponentu.
- Jeśli nazwa nie jest dostępna w preferowanym języku, geokoder użyje najbliższego dopasowania.
- Preferowany język ma niewielki wpływ na zbiór wyników, które interfejs API wybiera do zwrócenia, oraz na kolejność ich zwracania. Geokoder interpretuje skróty różnie w zależności od języka, np. rodzaje skrótów nazw ulic lub synonimy, które mogą być prawidłowe w jednym języku, ale nie w innym. Na przykład utca i tér to synonimy odpowiednio ulicy i kwadratu w języku węgierskim.
region
– kod regionu, podany jako dwuznakowa wartość domeny ccTLD („domena najwyższego poziomu”). Ten parametr ma wpływ tylko na wyniki generowane przez geokodera, a nie na pełne ograniczanie wyników. (Więcej informacji znajdziesz poniżej w sekcji Promowanie regionu). Parametr może również wpływać na wyniki zgodnie z obowiązującym prawem.components
– filtr komponentów z elementami rozdzielonymi pionową kreską (|
). Filtr komponentów jest wymagany, jeśli żądanie nie zawiera elementuaddress
. Każdy element filtra komponentów składa się z parycomponent:value
. W pełni ogranicza wyniki generowane przez geokodera. Więcej informacji o filtrowaniu komponentów znajdziesz poniżej.
Odpowiedzi
Odpowiedzi na potrzeby geokodowania są zwracane w formacie określonym przez flagę output
w żądaniu adresu URL lub w formacie JSON.
W tym przykładzie interfejs Geocoding API wysyła żądanie odpowiedzi json
na zapytanie o identyfikator miejsca „ChIJeRpOeF67j4AR9ydy_PIzPuM”. Ten identyfikator miejsca dotyczy budynku przy ulicy 1600 Amphitheatre Parkway, Mountain View, CA.
To żądanie pokazuje, jak używać flagi JSON output
:
https://maps.googleapis.com/maps/api/geocode/json?place_id=ChIJeRpOeF67j4AR9ydy_PIzPuM&key=YOUR_API_KEY
To żądanie pokazuje użycie flagi XML output
:
https://maps.googleapis.com/maps/api/geocode/xml?place_id=ChIJeRpOeF67j4AR9ydy_PIzPuM&key=YOUR_API_KEY
Wybierz karty poniżej, aby zobaczyć przykładowe odpowiedzi JSON i XML.
JSON
{ "results": [ { "address_components": [ { "long_name": "1600", "short_name": "1600", "types": [ "street_number" ] }, { "long_name": "Amphitheatre Parkway", "short_name": "Amphitheatre Pkwy", "types": [ "route" ] }, { "long_name": "Mountain View", "short_name": "Mountain View", "types": [ "locality", "political" ] }, { "long_name": "Santa Clara County", "short_name": "Santa Clara County", "types": [ "administrative_area_level_2", "political" ] }, { "long_name": "California", "short_name": "CA", "types": [ "administrative_area_level_1", "political" ] }, { "long_name": "United States", "short_name": "US", "types": [ "country", "political" ] }, { "long_name": "94043", "short_name": "94043", "types": [ "postal_code" ] } ], "formatted_address": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA", "geometry": { "location": { "lat": 37.4224428, "lng": -122.0842467 }, "location_type": "ROOFTOP", "viewport": { "northeast": { "lat": 37.4239627802915, "lng": -122.0829089197085 }, "southwest": { "lat": 37.4212648197085, "lng": -122.0856068802915 } } }, "place_id": "ChIJeRpOeF67j4AR9ydy_PIzPuM", "plus_code": { "compound_code": "CWC8+X8 Mountain View, CA", "global_code": "849VCWC8+X8" }, "types": [ "street_address" ] } ], "status": "OK" }
Zwróć uwagę, że odpowiedź JSON zawiera 2 elementy główne:
"status"
zawiera metadane żądania. Zobacz Kody stanu poniżej."results"
zawiera tablicę geokodowanych danych adresowych i danych geometrycznych.
Podczas wyszukiwania adresów zwracany jest tylko jeden wpis w tablicy "results"
, choć geokoder może zwrócić kilka wyników,gdy zapytania o adresy są niejednoznaczne.
XML
<GeocodeResponse> <status>OK</status> <result> <type>street_address</type> <formatted_address>1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA</formatted_address> <address_component> <long_name>1600</long_name> <short_name>1600</short_name> <type>street_number</type> </address_component> <address_component> <long_name>Amphitheatre Parkway</long_name> <short_name>Amphitheatre Pkwy</short_name> <type>route</type> </address_component> <address_component> <long_name>Mountain View</long_name> <short_name>Mountain View</short_name> <type>locality</type> <type>political</type> </address_component> <address_component> <long_name>Santa Clara County</long_name> <short_name>Santa Clara County</short_name> <type>administrative_area_level_2</type> <type>political</type> </address_component> <address_component> <long_name>California</long_name> <short_name>CA</short_name> <type>administrative_area_level_1</type> <type>political</type> </address_component> <address_component> <long_name>United States</long_name> <short_name>US</short_name> <type>country</type> <type>political</type> </address_component> <address_component> <long_name>94043</long_name> <short_name>94043</short_name> <type>postal_code</type> </address_component> <geometry> <location> <lat>37.4224428</lat> <lng>-122.0842467</lng> </location> <location_type>ROOFTOP</location_type> <viewport> <southwest> <lat>37.4212648</lat> <lng>-122.0856069</lng> </southwest> <northeast> <lat>37.4239628</lat> <lng>-122.0829089</lng> </northeast> </viewport> </geometry> <place_id>ChIJeRpOeF67j4AR9ydy_PIzPuM</place_id> <plus_code> <global_code>849VCWC8+X8</global_code> <compound_code>CWC8+X8 Mountain View, CA</compound_code> </plus_code> </result> </GeocodeResponse>
Zwróć uwagę, że odpowiedź XML składa się z 1 elementu <GeocodeResponse>
i 2 elementów najwyższego poziomu:
<status>
zawiera metadane żądania. Zobacz Kody stanu poniżej.- 0 lub więcej elementów
<result>
, z których każdy zawiera zbiór geokodowanych danych adresowych i danych geometrycznych.
Odpowiedź XML jest znacznie dłuższa niż odpowiedź JSON. Dlatego zalecamy użycie flagi json
jako preferowanego wyniku, chyba że usługa z jakiegoś powodu wymaga xml
.
Dodatkowo przetwarzanie drzew XML wymaga pewnej ostrożności, aby odwoływać się do odpowiednich węzłów i elementów. Niektóre zalecane wzorce projektowe przetwarzania danych wyjściowych znajdziesz w artykule o
analizowaniu kodu XML za pomocą XPath.
- Wyniki XML są zawarte w elemencie głównym
<GeocodeResponse>
. - Plik JSON oznacza wpisy z wieloma elementami za pomocą tablic liczby mnogiej (
types
), a XML – przy użyciu wielu elementów pojedynczych (<type>
). - Puste elementy są oznaczone w formacie JSON przez puste tablice, ale przez brak jakiegokolwiek takiego elementu w pliku XML. Odpowiedź, która nie generuje żadnych wyników, zwróci pustą tablica
results
w formacie JSON, ale nie zwrócimy na przykład elementów<result>
w pliku XML.
Kody stanu
Pole "status"
w obiekcie odpowiedzi Geocoding zawiera stan żądania i może zawierać informacje debugowania, które mogą pomóc w ustaleniu, dlaczego geokodowanie nie działa. Pole "status"
może zawierać te wartości:
"OK"
oznacza, że nie wystąpiły żadne błędy. Adres został pomyślnie przeanalizowany i zwrócony co najmniej jeden geokod został zwrócony."ZERO_RESULTS"
oznacza, że geokod został przetworzony, ale nie zwrócił żadnych wyników. Może się tak zdarzyć, jeśli geokoder został przekazany z kodem, który nie istnieje:address
.OVER_DAILY_LIMIT
oznacza:- Brak klucza interfejsu API lub jest on nieprawidłowy.
- Płatności nie zostały włączone na Twoim koncie.
- Nałożony przez Ciebie limit wykorzystania został przekroczony.
- Podana forma płatności straciła ważność (np. wygasła karta kredytowa).
Aby dowiedzieć się, jak rozwiązać ten problem, zapoznaj się z najczęstszymi pytaniami na temat Map.
"OVER_QUERY_LIMIT"
oznacza, że przekraczasz limit."REQUEST_DENIED"
oznacza, że Twoja prośba została odrzucona."INVALID_REQUEST"
zwykle wskazuje, że brakuje zapytania (address
,components
lublatlng
)."UNKNOWN_ERROR"
oznacza, że nie udało się przetworzyć żądania z powodu błędu serwera. Jeśli spróbujesz ponownie, żądanie może się powieść.
Komunikaty o błędach
Gdy geokoder zwraca kod stanu inny niż OK
, w obiekcie odpowiedzi Geocoding może znajdować się dodatkowe pole error_message
. To pole zawiera bardziej szczegółowe informacje o przyczynach pojawienia się danego kodu stanu.
Wyniki
Gdy geokoder zwraca wyniki, umieszcza je w tablicy results
(JSON). Nawet jeśli geokoder nie zwróci żadnych wyników (np. jeśli adres nie istnieje), zwróci pustą tablicę results
. (Odpowiedzi XML zawierają 0 lub więcej elementów <result>
).
Typowy wynik zawiera te pola:
- Tablica
types[]
wskazuje typ zwracanego wyniku. Ta tablica zawiera zestaw tagów zawierających 0 lub więcej tagów identyfikujących typ cechy zwracanej w wyniku. Na przykład kod geograficzny „Chicago” zwraca wartość „locality”, która wskazuje, że „Chicago” jest miastem, i zwraca też „polityczne”, które oznacza, że jest podmiotem politycznym. Komponenty mogą mieć pustą tablicę typów, jeśli nie ma znanych typów dla tego komponentu adresu. W razie potrzeby interfejs API może dodać nowe wartości typu. Więcej informacji znajdziesz w artykule Typy adresów i komponenty adresów. formatted_address
to ciąg znaków zawierający zrozumiały dla człowieka adres tej lokalizacji.Często jest to adres pocztowy. Pamiętaj, że ze względu na ograniczenia licencyjne niektóre kraje, np. Wielka Brytania, nie zezwalają na rozpowszechnianie prawdziwych adresów pocztowych.
Sformatowany adres składa się logicznie z co najmniej jednego komponentu adresu. Na przykład adres „111 8th Avenue, Nowy Jork, NY” składa się z tych komponentów: „111” – numer domu, „8 Aleja” (trasa), „Nowy Jork” – miasto i „NY” (stan w USA).
Nie analizuj automatycznie sformatowanego adresu. Zamiast tego użyj poszczególnych komponentów adresu, które zawiera odpowiedź interfejsu API oprócz sformatowanego pola adresu.
address_components[]
to tablica zawierająca osobne komponenty mające zastosowanie do tego adresu.Każdy komponent adresu zwykle zawiera te pola:
types[]
to tablica wskazująca typ komponentu adresu. Zobacz listę obsługiwanych typów.long_name
to pełny opis lub nazwa komponentu adresu zwracana przez geokodera.short_name
to skrócona nazwa tekstowa komponentu adresu (jeśli jest dostępna). Na przykład składnik adresu dla stanu Alaska może mieć atrybutlong_name
o nazwie „Alaska” i zasadęshort_name
o nazwie „AK” z dwuliterowym skrótem pocztowym.
Zwróć uwagę na te informacje o tablicy
address_components[]
:- Tablica komponentów adresu może zawierać więcej komponentów niż
formatted_address
. - Tablica nie musi zawierać wszystkich jednostek politycznych z adresem (z wyjątkiem tych uwzględnionych w elemencie
formatted_address
). Aby pobrać wszystkie jednostki polityczne, które zawierają określony adres, użyj odwrotnego geokodowania, przesyłając szerokość i długość geograficzną adresu jako parametr w żądaniu. - Nie ma gwarancji, że format odpowiedzi pozostanie taki sam między żądaniami. Liczba
address_components
różni się w zależności od żądanego adresu i może się z czasem zmienić dla tego samego adresu. Komponent może zmieniać pozycję w tablicy. Typ komponentu może się zmieniać. Konkretnego komponentu może brakować w późniejszej odpowiedzi.
Aby obsługiwać tablicę komponentów, przeanalizuj odpowiedź i wybierz odpowiednie wartości za pomocą wyrażeń. Zapoznaj się z przewodnikiem na temat analizowania odpowiedzi.
postcode_localities[]
to tablica oznaczająca maksymalnie 100 miejscowości w danym kodzie pocztowym. Jest ona widoczna tylko wtedy, gdy wynik to kod pocztowy zawierający kilka regionów.geometry
zawiera te informacje:location
zawiera geokodowaną wartość szerokości i długości geograficznej. W przypadku normalnego wyszukiwania adresów to pole jest zazwyczaj najważniejsze.location_type
przechowuje dodatkowe dane o określonej lokalizacji. Obecnie obsługiwane są te wartości:- Wartość
"ROOFTOP"
wskazuje, że zwrócony wynik to dokładny geokod, w przypadku którego informacje o lokalizacji są precyzyjne z dokładnością do adresu. "RANGE_INTERPOLATED"
wskazuje, że wynik to przybliżenie (zwykle na drodze) z interpolacją między 2 precyzyjnymi punktami (np. skrzyżowaniami). Wyniki interpolowane są zwykle zwracane, gdy geokody dachowe są niedostępne dla adresu."GEOMETRIC_CENTER"
wskazuje, że zwrócony wynik jest środkiem geometrycznym wyniku, np. linia łamana (na przykład ulica) lub wielokątem (region)."APPROXIMATE"
oznacza, że zwrócony wynik jest przybliżony.
- Wartość
viewport
zawiera zalecany widoczny obszar do wyświetlania zwracanego wyniku, określony w postaci 2 wartości szerokości i długości geograficznej wyznaczających narożniksouthwest
inortheast
ramki ograniczającej widoczny obszar. Ogólnie widoczny obszar służy do umieszczania wyniku w ramce podczas wyświetlania go użytkownikowi.bounds
(zwrócony opcjonalnie) przechowuje ramkę ograniczającą, która może w całości zawierać zwrócony wynik. Pamiętaj, że te progi mogą się różnić od zalecanego widocznego obszaru. (Na przykład San Francisco obejmuje wyspy Farallona, które technicznie są częścią miasta, ale prawdopodobnie nie powinny być zwracane w widocznym obszarze).
-
plus_code
(zobacz Open Location Code i kody plus) to zakodowane odniesienie do lokalizacji, pobierane ze współrzędnych geograficznych, które reprezentuje obszar: 1/8000 stopnia na 1/8000 stopnia (około 14 m x 14 m na równiku) lub mniejsze. Kody Plus Code mogą zastąpić adresy ulic w miejscach, gdzie adresy nie istnieją (gdzie budynki nie mają numerów lub ulic nie mają nazw). Interfejs API nie zawsze zwraca kody plus.Jeśli usługa zwraca kod plus, jest on sformatowany jako kod globalny i kod złożony:
global_code
to 4-znakowy numer kierunkowy i co najmniej 6-znakowy kod lokalny (849VCWC8+R9).compound_code
to co najmniej 6-znakowy kod lokalny z określoną lokalizacją (CWC8+R9, Mountain View, CA, USA). Nie analizuj tych treści automatycznie.
-
partial_match
oznacza, że geokoder nie zwrócił dokładnego dopasowania do pierwotnego żądania, chociaż był w stanie dopasować część żądanego adresu. Warto sprawdzić pierwotne żądanie pod kątem błędów pisowni lub niekompletnego adresu.Dopasowania częściowe najczęściej występują w przypadku adresów, których nie ma w rejonie podanym w żądaniu. Dopasowania częściowe mogą być również zwracane, gdy żądanie pasuje do co najmniej 2 lokalizacji w tej samej okolicy. Na przykład zapytanie „Hillpar St, Bristol, UK” zwróci częściowe dopasowanie dla Henry Street i Henrietta Street. Pamiętaj, że jeśli żądanie zawiera błędnie wpisany komponent adresu, usługa geokodowania może zasugerować alternatywny adres. Sugestie aktywowane w ten sposób będą również oznaczane jako dopasowania częściowe.
place_id
to unikalny identyfikator, którego można używać z innymi interfejsami API Google. Możesz na przykład użyćplace_id
w żądaniu Places API, aby uzyskać informacje o firmie lokalnej, takie jak numer telefonu, godziny otwarcia, opinie użytkowników itp. Przeczytaj omówienie identyfikatora miejsca.
Typy adresów i typy komponentów adresu
Tablica types[]
w wyniku wskazuje typ adresu. Przykładowe typy adresów to adres, kraj lub podmiot polityczny. W address_components[]
znajduje się też tablica types[]
, która wskazuje typ każdej części adresu. Może to być na przykład numer domu lub numer domu. Poniżej znajdziesz pełną listę typów. Adresy mogą mieć kilka typów. Te typy mogą być uznawane za „tagi”.
Na przykład wiele miast jest oznaczonych tagami political
i locality
.
Geokoder obsługuje i zwraca te typy zarówno w tablicach typu adresu, jak i typów komponentu adresu:
street_address
wskazuje dokładny adres.route
wskazuje nazwaną trasę (np. „US 101”).intersection
to główne skrzyżowanie, które obejmuje zwykle 2 główne drogi.political
oznacza podmiot polityczny. Zwykle ten typ oznacza wielokąt związany z administracją cywilną.country
wskazuje krajowy podmiot polityczny i zazwyczaj jest to najwyższy typ kolejności zwracany przez geokodera.administrative_area_level_1
oznacza podmiot cywilny pierwszego rzędu poniżej poziomu kraju. W Stanach Zjednoczonych te poziomy administracyjne to stany. Nie we wszystkich krajach obowiązują te poziomy administracyjne. W większości przypadków krótkie nazwy admin_area_level_1 są ściśle dopasowane do podziałów według normy ISO 3166-2 i innych często rozpowszechnianych list. Nie możemy jednak zagwarantować, że wyniki z kodowania geograficznego są uzależnione od różnych sygnałów i danych o lokalizacji.administrative_area_level_2
oznacza podmiot cywilny drugiego rzędu poniżej poziomu kraju. W Stanach Zjednoczonych te poziomy administracyjne to hrabstwa. Nie we wszystkich krajach obowiązują te poziomy administracyjne.administrative_area_level_3
oznacza podmiot cywilny trzeciego poziomu poniżej poziomu kraju. Ten typ oznacza niewielki podział cywilny. Nie we wszystkich krajach obowiązują te poziomy administracyjne.administrative_area_level_4
oznacza podmiot cywilny czwartego rzędu poniżej poziomu kraju. Ten typ oznacza niewielki podział cywilny. Nie we wszystkich krajach obowiązują te poziomy administracyjne.administrative_area_level_5
oznacza podmiot cywilny piątego rzędu poniżej poziomu kraju. Ten typ oznacza niewielki podział cywilny. Nie we wszystkich krajach obowiązują te poziomy administracyjne.administrative_area_level_6
oznacza podmiot cywilny szóstego rzędu poniżej poziomu kraju. Ten typ oznacza niewielki podział cywilny. Nie we wszystkich krajach obowiązują te poziomy administracyjne.administrative_area_level_7
oznacza podmiot cywilny siódmego rzędu poniżej poziomu kraju. Ten typ oznacza niewielki podział cywilny. Nie we wszystkich krajach obowiązują te poziomy administracyjne.colloquial_area
wskazuje często używaną alternatywną nazwę encji.locality
oznacza miasto lub miejscowość, w której on działa.sublocality
wskazuje podmiot cywilny pierwszego rzędu poniżej danego rejonu. W przypadku niektórych lokalizacji może pojawić się jeden z dodatkowych typów: odsublocality_level_1
dosublocality_level_5
. Każdy poziom podrejonu jest podmiotem cywilnym. Większe liczby oznaczają mniejszy obszar geograficzny.neighborhood
wskazuje nazwę okolicypremise
oznacza nazwaną lokalizację, zwykle budynek lub zespół budynków o wspólnej nazwiesubpremise
wskazuje element pierwszego rzędu poniżej nazwanej lokalizacji, zwykle pojedynczy budynek w zbiorze budynków o wspólnej nazwieplus_code
to zakodowane odwołanie do lokalizacji pobrane na podstawie szerokości i długości geograficznej. Kody Plus Code mogą zastąpić adresy w miejscach, gdzie nie istnieją (gdzie budynki nie są numerowane lub nie mają nazw ulic). Więcej informacji znajdziesz na stronie https://plus.codes.postal_code
wskazuje kod pocztowy używany w danym kraju do adresowania przesyłek pocztowych.natural_feature
oznacza ważny obiekt naturalny.airport
wskazuje lotnisko.park
wskazuje park nazwany.point_of_interest
wskazuje nazwane miejsce. Są to zwykle ważne lokalne jednostki, których nie da się łatwo umieścić w innych kategoriach, np. „Empire State Building” lub „wieża Eiffla”.
Pusta lista typów oznacza, że nie ma znanych typów dla danego komponentu adresu, np. Lieu-dit we Francji.
Oprócz powyższych typów komponenty adresu mogą obejmować te typy. Ta lista nie jest pełna i może ulec zmianie.
floor
wskazuje piętro adresu budynku.establishment
zwykle oznacza miejsce, które nie zostało jeszcze sklasyfikowane.landmark
wskazuje miejsce w pobliżu, które jest używane jako punkt odniesienia, aby ułatwić nawigację.point_of_interest
wskazuje nazwane miejsce.parking
oznacza parking lub obiekt parkingowy.post_box
oznacza konkretną skrytkę pocztową.postal_town
oznacza grupę obszarów geograficznych, np.locality
isublocality
, używaną w adresach pocztowych w niektórych krajach.room
wskazuje pomieszczenie przypisane do danego adresu budynku.street_number
wskazuje dokładną ulicę i numer.bus_station
,train_station
itransit_station
wskazują lokalizację przystanku autobusowego, pociągu lub transportu publicznego.
Promowanie widocznego obszaru
W żądaniu Geocoding możesz poinstruować usługę Geocoding, aby preferowała wyniki na danym obszarze (wyrażonym w ramce ograniczającej). Możesz to zrobić w ramach adresu URL żądania, ustawiając parametr bounds
.
Parametr bounds
określa współrzędne geograficzne południowo-zachodnich i północno-wschodnich narożników tej ramki ograniczającej, rozdzielając je pionową kreską (|
).
Na przykład kod geograficzny dla hasła „Waszyngton” zwraca zwykle stan Waszyngton w USA:
Prośba:
https://maps.googleapis.com/maps/api/geocode/json?address=Washington&key=YOUR_API_KEY
Odpowiedź:
{
"results" : [
{
"address_components" : [
{
"long_name" : "Washington",
"short_name" : "WA",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Washington, USA",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 49.0024442,
"lng" : -116.91558
},
"southwest" : {
"lat" : 45.543541,
"lng" : -124.8489739
}
},
"location" : {
"lat" : 47.7510741,
"lng" : -120.7401385
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 49.0024442,
"lng" : -116.91558
},
"southwest" : {
"lat" : 45.543541,
"lng" : -124.8489739
}
}
},
"place_id" : "ChIJ-bDD5__lhVQRuvNfbGh4QpQ",
"types" : [ "administrative_area_level_1", "political" ]
}
],
"status" : "OK"
}
Jednak dodanie argumentu bounds
definiującego ramkę ograniczającą wokół północno-wschodniej części Stanów Zjednoczonych spowoduje zwrócenie tego geokoda, który zwraca miasto Waszyngton, D.C.:
Prośba:
https://maps.googleapis.com/maps/api/geocode/json?address=Washington&bounds=36.47,-84.72%7C43.39,-65.90&key=YOUR_API_KEY
Odpowiedź:
{
"results" : [
{
"address_components" : [
{
"long_name" : "Washington",
"short_name" : "Washington",
"types" : [ "locality", "political" ]
},
{
"long_name" : "District of Columbia",
"short_name" : "District of Columbia",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "District of Columbia",
"short_name" : "DC",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Washington, DC, USA",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 38.9958641,
"lng" : -76.90939299999999
},
"southwest" : {
"lat" : 38.7916449,
"lng" : -77.119759
}
},
"location" : {
"lat" : 38.9071923,
"lng" : -77.03687069999999
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 38.9958641,
"lng" : -76.90939299999999
},
"southwest" : {
"lat" : 38.7916449,
"lng" : -77.119759
}
}
},
"place_id" : "ChIJW-T2Wt7Gt4kRKl2I1CJFUsI",
"types" : [ "locality", "political" ]
}
],
"status" : "OK"
}
Promowanie regionu
W żądaniu Geocoding możesz poinstruować usługę Geocoding, aby przy użyciu parametru region
zwracała wyniki uprzedzenia dotyczące konkretnego regionu. Ten parametr przyjmuje argument ccTLD (domena najwyższego poziomu kodu kraju) określający promowanie regionu. Większość kodów domen ccTLD jest identyczna z kodami ISO 3166-1, z kilkoma ważnymi wyjątkami. Na przykład domena ccTLD w Wielkiej Brytanii to „uk” (.co.uk
), a kod ISO 3166-1 to „gb” (technicznie oznacza to „Wielka Brytania i Irlandia Północna”).
Wyniki geokodowania mogą być stronnicze w przypadku każdej domeny, w której oficjalnie uruchomiono główną aplikację Map Google. Pamiętaj, że promowanie wyników preferuje tylko wyniki z konkretnej domeny. Jeśli bardziej trafne wyniki występują poza tą domeną, mogą zostać uwzględnione.
Na przykład kod geograficzny dla hasła „Toledo” zwraca ten wynik, ponieważ domyślną domeną interfejsu Geocoding API jest Stany Zjednoczone. Prośba:
https://maps.googleapis.com/maps/api/geocode/json?address=Toledo&key=YOUR_API_KEY
Odpowiedź:
{
"results" : [
{
"address_components" : [
{
"long_name" : "Toledo",
"short_name" : "Toledo",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Lucas County",
"short_name" : "Lucas County",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Ohio",
"short_name" : "OH",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Toledo, OH, USA",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 41.732844,
"lng" : -83.454229
},
"southwest" : {
"lat" : 41.580266,
"lng" : -83.69423700000002
}
},
"location" : {
"lat" : 41.6639383,
"lng" : -83.55521200000001
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 41.732844,
"lng" : -83.454229
},
"southwest" : {
"lat" : 41.580266,
"lng" : -83.69423700000002
}
}
},
"place_id" : "ChIJeU4e_C2HO4gRRcM6RZ_IPHw",
"types" : [ "locality", "political" ]
}
],
"status" : "OK"
}
Żądanie geokodowania dla „Toledo” wysłane do użytkownika region=es
(Hiszpania) zwróci hiszpańskie miasto.
Prośba:
https://maps.googleapis.com/maps/api/geocode/json?address=Toledo®ion=es&key=YOUR_API_KEY
Odpowiedź:
{
"results" : [
{
"address_components" : [
{
"long_name" : "Toledo",
"short_name" : "Toledo",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Toledo",
"short_name" : "TO",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Castile-La Mancha",
"short_name" : "CM",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Spain",
"short_name" : "ES",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Toledo, Spain",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 39.88605099999999,
"lng" : -3.9192423
},
"southwest" : {
"lat" : 39.8383676,
"lng" : -4.0796176
}
},
"location" : {
"lat" : 39.8628316,
"lng" : -4.027323099999999
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 39.88605099999999,
"lng" : -3.9192423
},
"southwest" : {
"lat" : 39.8383676,
"lng" : -4.0796176
}
}
},
"place_id" : "ChIJ8f21C60Lag0R_q11auhbf8Y",
"types" : [ "locality", "political" ]
}
],
"status" : "OK"
}
Filtrowanie komponentów
W odpowiedzi Geocoding API może zwracać wyniki dotyczące adresu ograniczone do określonego obszaru. Ograniczenie możesz określić za pomocą filtra components
. Filtr składa się z listy par component:value
rozdzielonych pionową kreską (|
). Wartości filtrów obsługują te same metody poprawiania pisowni i dopasowania częściowego co inne żądania geokodowania. Jeśli geokoder znajdzie częściowe dopasowanie dla filtra komponentów, odpowiedź będzie zawierać pole partial_match
.
components
, które można filtrować:
postal_code
pasuje do wymiarówpostal_code
ipostal_code_prefix
.country
to nazwa kraju lub dwuliterowy kod kraju zgodny ze standardem ISO 3166-1. Interfejs API jest zgodny z normą ISO przy definiowaniu krajów, a filtrowanie działa najlepiej, gdy używasz odpowiedniego kodu ISO kraju.
Te reguły components
mogą być wykorzystywane do wpływania na wyniki, ale nie są wymuszane:
route
to długa lub krótka nazwa trasy.locality
pasuje do typówlocality
isublocality
.administrative_area
pasuje do wszystkich poziomów (administrative_area
).
Uwagi na temat filtrowania komponentów:
- Nie powtarzaj tych filtrów komponentów w żądaniach, bo interfejs API zwróci wartość
Invalid_request
:country
,postal_code
,route
- Jeśli żądanie zawiera powtarzające się filtry komponentów, interfejs API zinterpretuje je jako operator ORAZ, a nie LUB.
- Wyniki są zgodne z Mapami Google, co czasami powoduje nieoczekiwane odpowiedzi
ZERO_RESULTS
. W niektórych przypadkach korzystanie z autouzupełniania miejsc może przynieść lepsze wyniki. Więcej informacji znajdziesz w odpowiedziach na najczęstsze pytania. - Każdy komponent adresu określ w parametrze
address
lub w filtrzecomponents
, ale nie w obu tych komponentach. Jeśli podasz te same wartości w obu miejscach, może się zdarzyć, żeZERO_RESULTS
.
Geokod z hasłem „High St, Hastings” o wartości components=country:GB
zwraca wynik w Hastings (Anglia), a nie w Hastings-On-Hudson (USA).
Prośba:
https://maps.googleapis.com/maps/api/geocode/json?address=high+st+hasting&components=country:GB&key=YOUR_API_KEY
Odpowiedź:
{
"results" : [
{
"address_components" : [
{
"long_name" : "High Street",
"short_name" : "High St",
"types" : [ "route" ]
},
{
"long_name" : "Hastings",
"short_name" : "Hastings",
"types" : [ "postal_town" ]
},
{
"long_name" : "East Sussex",
"short_name" : "East Sussex",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "England",
"short_name" : "England",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United Kingdom",
"short_name" : "GB",
"types" : [ "country", "political" ]
},
{
"long_name" : "TN34 3EY",
"short_name" : "TN34 3EY",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "High St, Hastings TN34 3EY, UK",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 50.8601041,
"lng" : 0.5957329
},
"southwest" : {
"lat" : 50.8559061,
"lng" : 0.5906163
}
},
"location" : {
"lat" : 50.85830319999999,
"lng" : 0.5924594
},
"location_type" : "GEOMETRIC_CENTER",
"viewport" : {
"northeast" : {
"lat" : 50.8601041,
"lng" : 0.5957329
},
"southwest" : {
"lat" : 50.8559061,
"lng" : 0.5906163
}
}
},
"partial_match" : true,
"place_id" : "ChIJ-Ws929sa30cRKgsMNVkPyws",
"types" : [ "route" ]
}
],
"status" : "OK"
}
Prośba o kod geokodu dla rejonu „Santa Cruz” z firmą components=country:ES
zwraca Santa Cruz de Tenerife na hiszpańskich Wyspach Kanaryjskich.
Prośba:
https://maps.googleapis.com/maps/api/geocode/json?components=locality:santa+cruz|country:ES&key=YOUR_API_KEY
Odpowiedź:
{
"results" : [
{
"address_components" : [
{
"long_name" : "Santa Cruz de Tenerife",
"short_name" : "Santa Cruz de Tenerife",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Santa Cruz de Tenerife",
"short_name" : "TF",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Canary Islands",
"short_name" : "CN",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Spain",
"short_name" : "ES",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Santa Cruz de Tenerife, Spain",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 28.487616,
"lng" : -16.2356646
},
"southwest" : {
"lat" : 28.4280248,
"lng" : -16.3370045
}
},
"location" : {
"lat" : 28.4636296,
"lng" : -16.2518467
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 28.487616,
"lng" : -16.2356646
},
"southwest" : {
"lat" : 28.4280248,
"lng" : -16.3370045
}
}
},
"place_id" : "ChIJcUElzOzMQQwRLuV30nMUEUM",
"types" : [ "locality", "political" ]
}
],
"status" : "OK"
}
Filtrowanie komponentów zwraca odpowiedź ZERO_RESULTS
tylko wtedy, gdy określisz filtry, które wykluczają się nawzajem.
Prośba:
https://maps.googleapis.com/maps/api/geocode/json?components=administrative_area:TX|country:FR&key=YOUR_API_KEY
Odpowiedź:
{
"results" : [],
"status" : "ZERO_RESULTS"
}
Za pomocą filtra components
możesz tworzyć prawidłowe zapytania bez parametru address. W przypadku geokodowania pełnego adresu parametr address
jest wymagany, jeśli żądanie zawiera nazwy i numery budynków.
Prośba:
https://maps.googleapis.com/maps/api/geocode/json?components=route:Annankatu|administrative_area:Helsinki|country:Finland&key=YOUR_API_KEY
Odpowiedź:
{
"results" : [
{
"address_components" : [
{
"long_name" : "Annankatu",
"short_name" : "Annankatu",
"types" : [ "route" ]
},
{
"long_name" : "Helsinki",
"short_name" : "HKI",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Finland",
"short_name" : "FI",
"types" : [ "country", "political" ]
},
{
"long_name" : "00101",
"short_name" : "00101",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "Annankatu, 00101 Helsinki, Finland",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 60.168997,
"lng" : 24.9433353
},
"southwest" : {
"lat" : 60.16226160000001,
"lng" : 24.9332897
}
},
"location" : {
"lat" : 60.1657808,
"lng" : 24.938451
},
"location_type" : "GEOMETRIC_CENTER",
"viewport" : {
"northeast" : {
"lat" : 60.168997,
"lng" : 24.9433353
},
"southwest" : {
"lat" : 60.16226160000001,
"lng" : 24.9332897
}
}
},
"place_id" : "ChIJARW7C8sLkkYRgl4je4-RPUM",
"types" : [ "route" ]
}
],
"status" : "OK"
}