Najczęstsze pytania o geokodowanie

Ten dokument z najczęstszymi pytaniami zawiera odpowiedzi na pytania dotyczące interfejsu Geocoding API. Odpowiedzi na pytania dotyczące wszystkich usług Google Maps Platform znajdziesz w Najczęstszych pytaniach dotyczących Google Maps Platform. Zobacz też Sprawdzone metody geokodowania adresów.

Rozwiązywanie problemów

Rozwiązywanie problemów

Otrzymuję więcej zapytań, które zwracają ZERO_RESULTS w przypadku geokodera. Co się dzieje?

W geokoderze niejednoznaczne, niekompletne i źle sformatowane zapytania, np. zawierające błędy ortograficzne lub nieistniejące adresy, mogą zwracać wartość ZERO_RESULTS. Jeśli adresu nie można znaleźć, lepszy jest kod ZERO_RESULTS niż częściowy wynik (np. zwrócenie tylko dzielnicy zamiast adresu).

Jeśli Twoja aplikacja przetwarza dane wejściowe użytkownika w postaci adresów, funkcja Autouzupełnianie miejsc w interfejsie Places API może generować wyniki o wyższej jakości. Autouzupełnianie miejsc umożliwia użytkownikom wybór spośród zestawu wyników na podstawie wpisanego tekstu. Dzięki temu mogą oni wybierać spośród wyników o podobnych nazwach i poprawiać zapytanie, jeśli błędnie wpiszą adres.

Jeśli masz aplikację, która obsługuje niejednoznaczne lub niekompletne zapytania albo zapytania, które mogą zawierać błędy, zalecamy używanie funkcji Autouzupełnianie miejsc w interfejsie Places API zamiast geokodera wyprzedzającego dostępnego w interfejsie Geocoding API. Więcej informacji znajdziesz w artykułach Sprawdzone metody geokodowania adresów i  Geokodowanie adresów w interfejsach Google Maps API na blogu Google Maps API.

Potrzebuję szybkich odpowiedzi, a geokoder jest zbyt wolny dla mojej aplikacji. Czego mogę użyć, aby szybciej odpowiadać?

Aplikacjom, które reagują na dane wejściowe użytkownika, a tym samym są bardzo wrażliwe na opóźnienia, zalecamy korzystanie z funkcji Autouzupełnianie miejsc w interfejsie Places API (dostępnej też w JavaScript, Android i iOS) zamiast geokodowania adresów. Usługa autouzupełniania miejsc jest zoptymalizowana pod kątem interaktywnego użytkowania, dlatego ma bardzo małe opóźnienie.

Geokodowanie adresów w interfejsie Geocoding API jest zoptymalizowane pod kątem używania z pełnymi, jednoznacznymi i prawidłowo sformatowanymi adresami, takimi jak adresy dostawy wpisywane w formularzach online. Dlatego ma większe opóźnienie niż autouzupełnianie miejsc. Geokoder przekształcający adresy na współrzędne geograficzne ma większy zasięg i lepszą jakość wyników, ale nieco większe opóźnienie.

Jak mogę zmniejszyć opóźnienie w przypadku interfejsu Directions API (starsza wersja) i Distance Matrix API (starsza wersja)?

Zamiast adresów używaj identyfikatorów miejsc, aby określić punkty pośrednie, miejsce rozpoczęcia i miejsce docelowe. Identyfikatory miejsc najlepiej uzyskać za pomocą funkcji autouzupełniania miejsc w interfejsie Places API lub biblioteki Miejsc w interfejsie Maps JavaScript API. Zobacz też informacje o opcji placeIdOnly, której można użyć, aby obniżyć koszty Autouzupełniania miejsc.

Gdy do interfejsu Directions API (starszego) lub Distance Matrix API (starszego) wysyłane jest zapytanie z ciągiem adresu zamiast identyfikatora miejsca lub współrzędnych geograficznych, interfejsy te używają tego samego backendu co Geocoding API, aby przekonwertować adres na identyfikator miejsca przed obliczeniem trasy. Autouzupełnianie miejsc jest szybsze niż geokodowanie adresu. W przypadku aplikacji, które używają interfejsu Directions API (starsza wersja) lub Distance Matrix API (starsza wersja) w sytuacjach, w których opóźnienie ma duże znaczenie, np. podczas reagowania na dane wejściowe użytkownika, zalecamy używanie autouzupełniania miejsc, aby uzyskać identyfikatory miejsc odpowiadające tym adresom, i przekazywanie identyfikatorów miejsc do interfejsu Directions API (starsza wersja) lub Distance Matrix API (starsza wersja). Takie podejście znacznie zmniejsza opóźnienia. Więcej informacji znajdziesz w naszej dokumentacji, w której znajdziesz przykład użycia Autouzupełniania miejsc z wyznaczaniem trasy.

Jak zgłaszać błędy w geokoderze?

Jeśli masz zgłoszenia błędów lub prośby o dodanie funkcji do usługi geokodowania do przodu, daj nam znać za pomocą naszego publicznego narzędzia Issue Tracker.

Geokoder nie daje dobrych wyników w moim przypadku użycia. Skorzystaj z pomocy

Poinformuj nas o tym, korzystając z naszego publicznego narzędzia do śledzenia problemów. Podaj kilka konkretnych zapytań, abyśmy mogli sprawdzić, czy nie ma błędów lub problemów systemowych, które powodują problemy z jakością wyników, albo czy możemy wprowadzić jakieś zmiany w przewodniku po sprawdzonych metodach, aby pomóc deweloperom uzyskiwać lepsze wyniki.

Jak uzyskać najlepsze wyniki z geokodera za pomocą filtrowania komponentów?

W geokoderze filtrowanie komponentów wymusza tylko ograniczenia postal_code i country. Poniższe przykłady pokazują, jak najlepiej używać filtrowania komponentów w zależności od potrzebnych wyników. W przykładowych adresach URL żądań zastąp ciąg `YOUR_API_KEY` swoim kluczem interfejsu API.

  • Aby ograniczyć kody pocztowe do określonego kraju, podaj ograniczenia związane z krajem za pomocą kodu kraju w formacie ISO 3166-2. Na przykład: components=country:CH|postal_code:8000 zwraca „8000 Zurych, 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, podaj ograniczenie związane z krajem, używając kodu kraju w formacie ISO 3166-2. Nazwy krajów i inne skróty mogą nie dawać takich samych wyników jak kody krajów.

    Przykłady:

    • Geokodowanie dla components=country:FRA|locality:gallus zwraca podlokalizację Gallus we Frankfurcie nad Menem w Niemczech. Dzieje się tak, ponieważ 3-literowy kod kraju dla Francji (FRA) nie jest obsługiwany, więc dozwolone są wyniki w dowolnym kraju, a wynik we Frankfurcie jest lepiej dopasowany niż jakikolwiek wynik we Francji.
      https://maps.googleapis.com/maps/api/geocode/json?components=country:FRA%7Clocality:gallus&key=YOUR_API_KEY
  • Geocoding API nie musi zwracać wielu wyników w przypadku niejednoznacznych zapytań. Takie zapytania lepiej obsługuje autouzupełnianie miejsc.

    Przykłady:

    • Geokodowanie dla components=country:US|locality:madrid zwraca „Madrid, NM 87010, USA”, ale nie dla żadnego innego miasta w USA o nazwie „Madrid”.
      https://maps.googleapis.com/maps/api/geocode/json?components=country:US%7Clocality:madrid&key=YOUR_API_KEY
    • Użycie autouzupełniania miejsc w przypadku input=madrid&components=country:us&types=(regions), a także określenie obszaru widoku za pomocą location i radius w celu wpływania na wyniki 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