Wskazówki dotyczące Geocoding API Aby uzyskać odpowiedzi na pytania dotyczące wszystkich usług Google Maps Platform, zapoznaj się z najczęstszymi pytaniami dotyczącymi Google Maps Platform. Zobacz też sprawdzone metody geokodowania adresów.
Rozwiązywanie problemów
- Otrzymuje więcej zapytań, które zwracają ZERO_RESULTS za pomocą geokodera. Co się dzieje?
- Potrzebuję szybkich odpowiedzi, a geokodowanie jest zbyt wolne dla mojej aplikacji. Co mogę zrobić, aby uzyskać szybsze odpowiedzi?
- Jak mogę zmniejszyć opóźnienie w interfejsach Directions API i Distance Matrix API?
- Jestem użytkownikiem abonamentu Premium, a interfejs Places API jest za drogi. Co mogę zrobić, aby obniżyć koszty?
- Jak zgłaszać błędy w geokodierze?
- W moim przypadku geokodowanie nie przynosi dobrych wyników. Jaka pomoc jest dostępna?
- Jak uzyskać najlepsze wyniki za pomocą geokodera przy użyciu filtrowania komponentów?
Rozwiązywanie problemów
- Otrzymuje więcej zapytań, które zwracają ZERO_RESULTS za pomocą geokodera. Co się dzieje?
-
W geokodierze niejednoznaczne, niepełne i źle sformatowane zapytania, takie jak niepoprawnie napisane lub nieistniejące adresy, często dają wynik ZERO_RESULTS. Jeśli nie można znaleźć adresu, warto użyć parametru ZERO_RESULTS zamiast częściowego wyniku (np. zwracania tylko nazwy przedmieścia zamiast adresu).
Jeśli Twoja aplikacja obsługuje wprowadzanie adresów przez użytkownika, funkcja Autouzupełnianie miejsc w interfejsie Places API może zapewnić lepsze wyniki. Autouzupełnianie miejsc pozwala użytkownikom wybierać spośród zestawu wyników na podstawie tego, co wpisali. Dzięki temu mogą wybierać spośród wyników o podobnych nazwach, a także dostosowywać zapytanie, jeśli popełnią błąd w adresie.
Jeśli Twoja aplikacja obsługuje niejednoznaczne lub niekompletne zapytania albo zapytania, które mogą zawierać błędy, zalecamy użycie funkcji autouzupełniania miejsc w interfejsie Places API zamiast geokodowania wyprzedzającego dostępnego w interfejsie Geocoding API. Więcej informacji znajdziesz w artykule Sprawdzone metody geokodowania adresów oraz w poście na blogu interfejsów API Map Google poświęconym geokodowaniu adresów.
- Potrzebuję szybkich odpowiedzi, a geokodowanie jest zbyt wolne dla mojej aplikacji. Co mogę zrobić, aby uzyskać szybsze odpowiedzi?
-
Zalecamy, aby aplikacje, które reagują na dane wprowadzane przez użytkownika i są w wypadku opóźnień bardzo czułe, korzystały z funkcji Autouzupełniania miejsc w interfejsie Places API (dostępnej też w JavaScript, Android i iOS) zamiast geokodowania adresów. Autouzupełnianie miejsc jest zoptymalizowane pod kątem interakcji, dzięki czemu ma bardzo małe opóźnienie.
Geokodowanie adresów w interfejsie Geocoding API jest zoptymalizowane pod kątem pełnych, jednoznacznych i prawidłowo sformatowanych adresów, np. adresów dostawy wpisywanych w formularzach online. W związku z tym czas oczekiwania jest dłuższy niż w przypadku autouzupełniania miejsc. Geokodowanie do przodu zapewnia większy zasięg i lepszą jakość wyników, ale z nieco większym opóźnieniem.
- Jak mogę zmniejszyć opóźnienia w interfejsach Directions API i Distance Matrix API?
-
Zamiast adresów użyj identyfikatorów miejsc, aby określić punkty pośrednie, punkt początkowy i docelowy. Identyfikatory miejsc najlepiej pobrać z funkcji Autouzupełnianie miejsc w interfejsie Places API lub z biblioteki Miejsca w interfejsie Maps JavaScript API. Zapoznaj się też z informacjami o opcji
placeIdOnly
, która może pomóc w obniżeniu kosztów autouzupełniania miejsc.Gdy interfejsy Directions API lub Distance Matrix API otrzymują zapytanie z adresem w postaci ciągu znaków zamiast identyfikatora miejsca docelowego lub współrzędnych geograficznych, korzystają z tego samego zaplecza co interfejs Geocoding API, aby przed obliczeniem trasy przekonwertować ten adres na identyfikator miejsca docelowego. Autouzupełnianie miejsc jest szybsze niż geokodowanie adresów. W przypadku aplikacji, które korzystają z interfejsu Directions API lub Distance Matrix API w sytuacjach bardzo wrażliwych na czas oczekiwania, np. w reakcji na dane wprowadzane przez użytkownika, zalecamy użycie autouzupełniania miejsc do wyszukiwania identyfikatorów miejsc odpowiadających tym adresom i przekazanie tych identyfikatorów do interfejsu Directions API lub Distance Matrix API. Dzięki temu opóźnienia są znacznie mniejsze. Więcej informacji znajdziesz w dokumentacji, w której znajdziesz przykład użycia Autouzupełniania miejsc w połączeniu z trasą.
- Jak zgłaszać błędy w geokodierze?
-
Jeśli masz jakiekolwiek zgłaszane błędy lub prośby o dodanie funkcji dotyczące usługi forward geocoder, daj nam znać, korzystając z publicznego narzędzia do śledzenia problemów.
- W moim przypadku geokoder nie daje dobrych wyników. Jaka pomoc jest dostępna?
-
Poinformuj nas o tym, korzystając z publicznego śledzenia problemów, podając kilka konkretnych zapytań, abyśmy mogli sprawdzić, czy występują błędy lub problemy systemowe, które powodują problemy z jakością wyników, lub czy możemy wprowadzić jakieś zmiany w przewodniku po sprawdzonych metodach, aby pomóc deweloperom uzyskać lepsze wyniki.
- Jak uzyskać najlepsze wyniki za pomocą geokodera przy użyciu filtrowania komponentów?
-
W geokodierze filtrowanie komponentów wymusza tylko ograniczenia
postal_code
icountry
. Poniższe przykłady pokazują, jak najlepiej stosować filtrowanie komponentów w zależności od potrzebnych wyników. W przykladowych adresach URL żądań zastąp ciąg „YOUR_API_KEY” swoim kluczem API.- Aby ograniczyć kody pocztowe do konkretnego kraju, określ ograniczenie kraju za pomocą kodu kraju w formacie ISO 3166-2.
Na przykład:
components=country:CH|postal_code:8000
zwraca „8000 Zürich, Szwajcaria”.https://maps.googleapis.com/maps/api/geocode/json?components=country:CH%7Cpostal_code:8000&key=YOUR_API_KEY
- Aby ograniczyć zapytania do konkretnego kraju, określ ograniczenie kraju za pomocą kodu kraju w formacie ISO 3166-2. Nazwy krajów i inne skróty nie dają gwarancji uzyskania takich samych wyników co kody krajów.
Przykłady:
- Geokodowanie adresu
components=country:FRA|locality:gallus
zwraca dzielnicę Gallus we Frankfurcie nad Menem w Niemczech. Dzieje się tak, ponieważ 3-literowy kod kraju Francji (FRA) nie jest obsługiwany, więc wyniki z dowolnego kraju są dozwolone, a wynik z Frankfurtu jest lepszy niż cokolwiek we Francji.https://maps.googleapis.com/maps/api/geocode/json?components=country:FRA%7Clocality:gallus&key=YOUR_API_KEY
- Geokodowanie adresu
- Interfejs Geocoding API niekoniecznie zwróci wielu wyników w przypadku niejednoznacznych zapytań. Takie zapytania lepiej odpowiadają autouzupełnianiu miejsc.
Przykłady:
- Geokodowanie dla
components=country:US|locality:madrid
zwraca „Madrid, NM 87010, USA”, ale nie żadne inne miasto w USA o nazwie „Madrid”.https://maps.googleapis.com/maps/api/geocode/json?components=country:US%7Clocality:madrid&key=YOUR_API_KEY
- Korzystając z autouzupełniania miejsc w przypadku
input=madrid&components=country:us&types=(regions)
oraz określając widok za pomocąlocation
iradius
, aby ustawić preferencje dotyczące wyników lokalizacji, generuje odpowiedź z kilkoma miastami w USA o nazwie „Madrid”.https://maps.googleapis.com/maps/api/place/autocomplete/json?location=37.386052,-122.083851&radius=10000&input=madrid&components=country:us&types=(regions)&key=YOUR_API_KEY
- Geokodowanie dla
- Aby ograniczyć kody pocztowe do konkretnego kraju, określ ograniczenie kraju za pomocą kodu kraju w formacie ISO 3166-2.
Na przykład: