Geokodowanie to proces przekształcania adresów (np. adresu pocztowego) we współrzędne geograficzne (szerokość i długość geograficzną), których można używać do umieszczania znaczników na mapie lub do pozycjonowania mapy. W tym dokumencie wyjaśniamy kwestie związane z geokodowaniem adresów. Opisujemy, kiedy najlepiej używać interfejsu Geocoding API, a kiedy korzystne jest używanie usługi autouzupełniania miejsc w interfejsie Places API.
Zasadniczo używaj interfejsu Geocoding API do geokodowania pełnych adresów (np. „48 Pirrama Rd, Pyrmont, NSW, Australia”). Używaj usługi autouzupełniania miejsc interfejsu Places API podczas geokodowania niejednoznacznych (niekompletnych) adresów lub w przypadku aplikacji wrażliwych na opóźnienia, np. podczas reagowania na dane wejściowe użytkownika.
Przypadki użycia i rekomendacje dotyczące interfejsów API
| Przypadki użycia i rekomendacje dotyczące interfejsów API | |
|---|---|
| fizyczne dotarcie do celu, zaawansowany wybór miejsca docelowego, dostawa na ostatnim odcinku, odbiór/wysiadanie w przypadku przejazdów współdzielonych, wejścia do budynków lub nawigacja po kampusie. | Użyj metody Search for destinations (SearchDestinations) w interfejsie Geocoding API w wersji 4, aby pobrać wejścia do budynków, punkty nawigacyjne, obrysy budynków i pobliskie punkty orientacyjne. Zobacz Wybieranie metody geokodowania. |
| odpowiadać w czasie rzeczywistym na dane wprowadzane przez użytkownika (w tym niejednoznaczne, niekompletne, nieprawidłowo sformatowane lub błędnie wpisane adresy); | Użyj usługi autouzupełniania miejsc w interfejsie Places API, aby uzyskać identyfikator miejsca, a następnie wywołaj SearchDestinations (aby uzyskać szczegółowe informacje hiperlokalne) lub GeocodePlace (aby uzyskać podstawowe współrzędne). |
| Automatyczne systemy przetwarzające pełne, jednoznaczne adresy pocztowe (np. „48 Pirrama Rd, Pyrmont, NSW, Australia”). | Użyj usługi internetowej Geocoding API w wersji 4 (SearchDestinations, aby uzyskać szczegółowe informacje hiperlokalne, lub GeocodeAddress, aby wyszukać współrzędne). |
| Automatyczne systemy przetwarzające niejednoznaczne zapytania (np. niekompletne, nieprawidłowo sformatowane lub zawierające błędy pisowni adresy). | Zalecamy, aby systemy automatyczne korzystały z usługi internetowej Geocoding API. Jednak w przypadku automatycznych systemów, które otrzymują od użytkowników wiele niejednoznacznych, niekompletnych lub błędnie napisanych zapytań, warto dodać interaktywny widżet Autouzupełniania miejsc, aby umożliwić użytkownikom wybór wyniku i uniknąć błędnego wpisania adresu. |
| Problemy z opóźnieniami podczas korzystania z interfejsu Directions API (starsza wersja) lub Distance Matrix API (starsza wersja) z miejscami rozpoczęcia, miejscami docelowymi lub punktami orientacyjnymi określonymi jako ciągi adresów. | Aby zmniejszyć opóźnienie geokodowania, użyj usługi autouzupełniania miejsc w interfejsie Places API do uzyskiwania identyfikatorów miejsc, a następnie przekazuj te identyfikatory do interfejsu Directions API (starsza wersja) lub Distance Matrix API (starsza wersja). |
Odpowiadanie na dane wejściowe użytkownika
Aplikacje, które reagują w czasie rzeczywistym na dane wejściowe użytkownika, mają 2 główne kwestie, które wpływają na wybór interfejsu API:
- Użytkownik zwykle wpisuje adres stopniowo (np. „ul. Główna 123”), więc możliwość geokodowania niekompletnych, niejednoznacznych adresów jest korzystna, ponieważ pozwala użytkownikowi szybciej uzyskać wynik.
- Aplikacje, które reagują na dane wejściowe użytkownika, są bardzo wrażliwe na opóźnienia.
Te 2 czynniki sprawiają, że usługa autouzupełniania miejsc w Places API idealnie nadaje się do reagowania na dane wprowadzane przez użytkownika. Autouzupełnianie miejsc ma na celu zwrócenie wielu możliwych opcji i umożliwienie użytkownikowi wyboru między nimi. Interfejs Places API można ograniczyć do wyszukiwania tylko kodów geograficznych lub adresów, z wyłączeniem firm. Dodatkowo funkcja wyszukiwania autouzupełniania może być ukierunkowana na zwracanie wyników dotyczących konkretnej lokalizacji. Interfejs Places API zwraca identyfikator miejsca, który można przekazać jako w pełni uściśloną lokalizację do usługi internetowej Geocoding API. Ta usługa zwraca następnie pełne dane adresowe i koduje adres geograficznie jako współrzędne geograficzne. Identyfikatory miejsc można też przekazywać do innych interfejsów API, takich jak Directions API (starsza wersja) i Distance Matrix API (starsza wersja) (patrz Zmniejszanie opóźnienia).
Geokodowanie adresów w interfejsie Geocoding API ma znacznie większe opóźnienie i daje mniej dokładne wyniki w przypadku niepełnych lub niejednoznacznych zapytań, dlatego nie jest zalecane w aplikacjach, które muszą reagować na dane wejściowe użytkownika w czasie rzeczywistym.
Więcej informacji o usłudze autouzupełniania miejsc na Android, iOS, JavaScript i Places API.
Automatyczne systemy
Automatyczne systemy przetwarzające pełne, jednoznaczne adresy pocztowe: jednoznaczne zapytania, takie jak pełne ciągi adresów pocztowych (np. „48 Pirrama Rd, Pyrmont, NSW, Australia”), najlepiej obsługuje usługa internetowa Geocoding API. Backend geokodowania adresów zapewnia większy zasięg adresów na całym świecie i jest zoptymalizowany pod kątem wysokiej jakości wyników w przypadku tego typu kompletnych i jednoznacznych zapytań.
Automatyczny system przetwarzający niejednoznaczne zapytania: niejednoznaczne zapytania to takie, które zawierają nieprawidłowo sformatowane adresy, niekompletne adresy lub błędy pisowni. W przypadku automatycznych systemów zalecamy korzystanie z usługi internetowej Geocoding API. Interfejs Geocoding API nie jest jednak przeznaczony do obsługi niejednoznacznych zapytań i może generować mniej dokładne wyniki lub nie zwracać żadnych wyników w odpowiedzi na takie zapytania. Jeśli Twój automatyczny system przetwarza dużą liczbę niejednoznacznych zapytań pochodzących od użytkowników, możesz dodać do aplikacji element interaktywny, korzystając z usługi autouzupełniania miejsc w interfejsie Places API. Jest ona zaprojektowana tak, aby zwracać wiele możliwych opcji i umożliwiać użytkownikowi wybór między nimi. Interfejs Places API zwraca identyfikator miejsca, który można przekazać jako w pełni uściśloną lokalizację do usługi internetowej Geocoding API. Ta usługa zwraca następnie pełne dane adresowe i koduje adres geograficznie, podając szerokość i długość geograficzną. Więcej informacji o usłudze autouzupełniania miejsc na Android, iOS, JavaScript i Places API.
Zmniejszanie czasu oczekiwania w przypadku interfejsów Directions API (starsza wersja) i Distance Matrix API (starsza wersja)
Gdy miejsca początkowe, miejsca docelowe lub punkty pośrednie są określone jako ciągi adresowe, interfejsy Directions API (starsza wersja) i Distance Matrix API (starsza wersja) używają tego samego backendu co interfejs Geocoding API do geokodowania tych adresów przed obliczeniem wskazówek dojazdu. Znacznie zwiększa to czas oczekiwania w porównaniu z podaniem tych samych lokalizacji jako współrzędnych geograficznych lub identyfikatorów miejsc.
Jeśli Twoja aplikacja używa interfejsu Directions API (starsza wersja) lub Distance Matrix API (starsza wersja) w sytuacji, gdy czas oczekiwania jest istotny, np. podczas odpowiadania na dane wejściowe użytkownika, a miejsca początkowe, docelowe lub punkty pośrednie są początkowo określone jako ciągi adresów, zalecamy zminimalizowanie czasu oczekiwania przez użycie usługi autouzupełniania miejsc w interfejsie Places API do konwertowania ciągów adresów na identyfikatory miejsc, a następnie przekazanie identyfikatorów miejsc do interfejsu Directions API (starsza wersja) lub Distance Matrix API (starsza wersja). Dowiedz się więcej o usłudze autouzupełniania miejsc na Android, iOS, JavaScript i Places API. Zobacz też przykład autouzupełniania miejsc i wskazówek dojazdu w języku JavaScript.
Podsumowanie
W zależności od przypadku użycia możesz korzystać z samego interfejsu Geocoding API lub połączyć go z usługą autouzupełniania miejsc. Dzięki temu możesz tworzyć aplikacje, które oferują dokładne wyniki geokodowania i krótszy czas oczekiwania.
Zarządzanie błędami i ponownymi próbami
Jeśli otrzymasz odpowiedzi UNKNOWN_ERROR, są one spowodowane błędami przejściowymi i najlepiej jest spróbować ponownie po krótkiej przerwie. Zalecamy korzystanie z
bibliotek klienta usług internetowych Google Maps Platform, które zawierają logikę ponawiania prób i obsługują uwierzytelnianie w abonamencie Premium Google Maps Platform.
Klient Java, klient Python, klient Go i klient Node.js dla usług Map Google to biblioteki klienta obsługiwane przez społeczność, które można pobrać i których rozwój można wspierać na GitHubie. Znajdziesz tam też instrukcje instalacji i przykładowy kod.
Jeśli w odpowiedzi otrzymasz kod stanu OVER_QUERY_LIMIT, oznacza to, że przekroczono limity wykorzystania interfejsu API. Zalecamy wypróbowanie tych
strategii optymalizacji wykorzystania.