Sprawdzone metody dotyczące geokodowania adresów

Geokodowanie to proces konwertowania adresów (np. adresu ulicy) na współrzędne geograficzne (szerokość i długość geograficzną), których można używać do umieszczania znaczników na mapie lub do jej pozycjonowania. W tym dokumencie wyjaśniamy, na co zwracać uwagę podczas geokodowania adresów. Pokazuje, kiedy warto używać interfejsu Geocoding API, a kiedy – usługi Autocomplete API Places.

Zazwyczaj do geokodowania pełnych adresów (np. „48 Pirrama Rd, Pyrmont, NSW, Australia”) używaj interfejsu Geocoding API. Używaj Places API usługi Autouzupełnianie miejsc podczas geokodowania niejednoznacznych (niepełnych) adresów lub w przypadku aplikacji wrażliwych na opóźnienia, np. podczas przetwarzania danych wejściowych użytkownika.

Przypadki użycia i zalecenia dotyczące interfejsu API

Przypadki użycia i zalecenia dotyczące interfejsu API
Reagować w czasie rzeczywistym na dane wprowadzane przez użytkownika (w tym na niejednoznaczne, niekompletne, źle sformatowane lub niepoprawnie zapisane adresy); Użyj usługi Autocomplete API Places, aby uzyskać identyfikator miejsca, a potem interfejsu Geocoding API, aby zgeokodować identyfikator miejsca na współrzędne latlng.
automatyczne systemy przetwarzające pełne, jednoznaczne adresy pocztowe (np. „48 Pirrama Rd, Pyrmont, NSW, Australia”), Użyj usługi internetowej Geokodowania API.
Automatyczne systemy przetwarzające niejednoznaczne zapytania(np. niepełne, źle sformatowane lub błędnie zaadresowane) Zalecamy, aby systemy automatyczne korzystały z usługi sieciowej Geokodowania API. Automatyczne systemy, w których przypadku od użytkowników pochodzą niejednoznaczne, niepełne lub źle zapisane zapytania, mogą jednak skorzystać z dodania interaktywnego widżetu Autouzupełnianie miejsc, aby umożliwić użytkownikom wybór wyniku i uniknięcie błędów w adresie.
Problemy z opóźnieniami podczas korzystania z interfejsu Directions API lub interfejsu Distance Matrix API, gdy punkty początkowe, docelowe lub pośrednie są określone jako ciągi adresów. Zmniejsz opóźnienie geokodowania, korzystając z usługi autouzupełniania interfejsu Places API do pobierania identyfikatorów miejsc, a potem przekazując te identyfikatory do interfejsu Directions API lub Distance Matrix API.

Odpowiedzi na dane wejściowe użytkownika

Aplikacje, które reagują w czasie rzeczywistym na dane wejściowe użytkownika, muszą uwzględnić 2 główne kwestie, które wpływają na wybór interfejsu API:

  1. Dane wprowadzane przez użytkownika zwykle obejmują adresy podawane stopniowo (np. „123 Ulica Główna”), dlatego możliwość geokodowania niepełnych, niejednoznacznych adresów jest korzystna, ponieważ pozwala użytkownikowi szybciej uzyskać wynik.
  2. Aplikacje, które reagują na działania użytkownika, są bardzo wrażliwe na opóźnienia.

Te 2 kryteria sprawiają, że usługa autouzupełniania miejsc w interfejsie Places API jest idealna do reagowania na dane wprowadzane przez użytkownika. Autouzupełnianie miejsc zwraca wiele możliwych opcji i pozwala użytkownikowi wybrać jedną z nich. Interfejs Places API może być ograniczony do wyszukiwania tylko kodów geograficznych lub adresów, a nie firm. Ponadto funkcja wyszukiwania autouzupełniania może być ukierunkowana na wyniki dotyczące konkretnej lokalizacji. Interfejs Places API zwraca identyfikator miejsca, który można przekazać jako w pełni jednoznaczne położenie do usługi internetowej Geocoding API, która zwraca pełne dane adresu i koduje adres w formacie latlng. Identyfikatory miejsc można też przekazywać do innych interfejsów API, takich jak Directions API i Distance Matrix API (patrz poniżej).

Geokodowanie adresów w interfejsie Geocoding API powoduje znacznie większe opóźnienia i daje mniej dokładne wyniki w przypadku niepełnych lub niejednoznacznych zapytań. Nie zalecamy więc korzystania z niego w przypadku aplikacji, które muszą reagować na dane wejściowe użytkownika w czasie rzeczywistym.

Dowiedz się więcej o usłudze Autouzupełnianie miejsc na Android, iOS, JavaScript Places API.

Automatyczne systemy

Automatyczne systemy przetwarzające pełne, jednoznaczne adresy pocztowe: jednoznaczne zapytania, takie jak pełne ciągi znaków adresu pocztowego (np. „48 Pirama Rd, Pyrmont, NSW, Australia”), są najlepiej obsługiwane przez usługę internetową Geokodowania API. Backend do geokodowania adresów zapewnia większą liczbę adresów na całym świecie oraz jest zoptymalizowany pod kątem wysokiej jakości wyników w przypadku tego typu kompletnych, jednoznacznych zapytań.

Automatyczny system przetwarzający niejednoznaczne zapytania: niejednoznaczne zapytania to takie, które zawierają źle sformatowane adresy, niekompletne adresy lub błędy ortograficzne. W przypadku systemów zautomatyzowanych zalecamy korzystanie z  usługi internetowej Geocoding API. Interfejs Geocoding API nie jest jednak przystosowany do obsługi niejednoznacznych zapytań i może zwracać mniej dokładne wyniki lub w ogóle nie zwracać wyników w odpowiedzi na niejednoznaczne zapytania. Jeśli Twój system automatyczny przetwarza dużą liczbę niejednoznacznych zapytań pochodzących z danych wprowadzanych przez użytkownika, możesz dodać do aplikacji interaktywny element za pomocą usługi Autouzupełnianie miejsc w interfejsie Places API, która została zaprojektowana tak, aby zwracać wiele możliwych opcji i umożliwiać użytkownikowi wybór spośród nich. Interfejs Places API zwraca identyfikator miejsca, który można przekazać jako w pełni jednoznaczną lokalizację do usługi internetowej Geokodowania API, która zwraca pełne dane adresowe i geokoduje adres na współrzędne latlng. Dowiedz się więcej o usłudze Autouzupełnianie miejsc na Android, iOS, JavaScript Places API.

Zmniejsz czas oczekiwania w przypadku interfejsów Directions API i Distance Matrix API

Gdy punkty początkowe, docelowe lub pośrednie są określone jako ciągi adresów, interfejs Directions API i interfejs Distance Matrix API używają tego samego backendu co interfejs Geocoding API, aby przeprowadzić geokodowanie tych adresów przed obliczeniem trasy. To znacznie zwiększa opóźnienie w porównaniu ze wskazaniem tych samych lokalizacji za pomocą współrzędnych lub identyfikatorów miejsc.

Jeśli Twoja aplikacja korzysta z interfejsu Directions API lub Distance Matrix API w sytuacji, w której czas reakcji jest istotny (np. podczas reagowania na dane wejściowe użytkownika), a miejsca docelowe lub pośrednie są początkowo określone jako ciągi adresów, zalecamy zminimalizowanie opóźnienia za pomocą usługi automatycznego uzupełniania adresu w interfejsie Places API, aby konwertować ciągi adresów na identyfikatory miejsc, a następnie przekazywać te identyfikatory do interfejsu Directions API lub Distance Matrix API. Dowiedz się więcej o usłudze Autouzupełnianie miejsc na Android, iOS, JavaScript Places API. Zobacz też przykład JavaScripta z autouzupełnianiem miejsc i uzyskaniem wskazówek dojazdu.

Podsumowanie

W zależności od przypadku użycia, geokodowanie adresów za pomocą interfejsu Geocoding API lub użycie usługi Autocomplete Miejsc w połączeniu z interfejsem Geocoding API umożliwia tworzenie aplikacji, które zapewniają użytkownikom dokładne wyniki geokodowania oraz zmniejszają opóźnienia.

Zarządzanie błędami i powtórzeniami

Jeśli otrzymasz odpowiedzi UNKNOWN_ERROR, są one spowodowane przejściowymi błędami. Najlepiej jest wtedy ponownie spróbować po krótkim czasie. Zalecamy korzystanie z  bibliotek klienta usług internetowych Google Maps Platform, które zawierają logikę ponownego próbowania i obsługują uwierzytelnianie w ramach abonamentu Premium w Google Maps Platform. Klient Java, klient Python, klient Goklient Node.js do usług Map Google to biblioteki klienta obsługiwane przez społeczność, które można pobrać i w których można też publikować swoje rozwiązania na GitHub. Znajdziesz tam też instrukcje instalacji i przykładowy kod.

Jeśli w odpowiedzi otrzymasz kod stanu OVER_QUERY_LIMIT, oznacza to, że przekroczyłeś limity korzystania z interfejsu API. Zalecamy wypróbowanie tych strategii optymalizacji wykorzystania.