Geokodowanie to proces przekształcania adresów (np. adresów) na współrzędne geograficzne (szerokość i długość geograficzną), których możesz użyć do umieszczenia znaczników na mapie lub jej położenia. W tym dokumencie skupimy się na kwestiach, które należy wziąć pod uwagę podczas geokodowania adresów. Dowiesz się z niego, kiedy najlepiej korzystać z interfejsu Geocoding API i kiedy warto skorzystać z usługi autouzupełniania tego interfejsu Places API.
Ogólnie używaj interfejsu Geocoding API podczas geokodowania pełnych adresów (np. „48 Pirrama Rd, Pyrmont, NSW, Australia”). Używaj usługi autouzupełniania Places API do geokodowania niejednoznacznych (niepełnych) adresów lub aplikacji wrażliwych na opóźnienia, np. gdy odpowiadasz 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 | |
---|---|
Odpowiadanie w czasie rzeczywistym na działania użytkowników (w tym niejednoznaczne, niepełne, źle sformatowane lub błędnie wpisane adresy wpisane przez użytkowników) | Aby uzyskać identyfikator miejsca, skorzystaj z usługi autouzupełniania interfejsu Places API, a potem użyj interfejsu Geocoding API, aby przetworzyć identyfikator miejsca na współrzędne geograficzne. |
Pełne, jednoznaczne przetwarzanie automatycznych systemów (np. „48 Pirrama Rd, Pyrmont, NSW, Australia”) | Użyj usługi sieciowej Geocoding API. |
Automatyczne systemy przetwarzające niejednoznaczne zapytania (np. adresy niekompletne, źle sformatowane lub z błędną pisownią) | Zaleca się, aby automatyczne systemy korzystały z usługi sieciowej Geocoding API. Automatyczne systemy z dużą liczbą niejednoznacznych, niepełnych lub błędnie wpisanych zapytań pochodzących z danych wejściowych użytkownika mogą jednak skorzystać z zastosowania interaktywnego widżetu autouzupełniania miejsc. Dzięki temu użytkownicy będą mogli wybrać wynik, a tym samym uniknąć literówki w adresie. |
Problemy z czasem oczekiwania korzystające z interfejsu Directions API lub Distance Matrix API, gdzie miejsca początkowe, miejsca docelowe lub punkty na trasie są określone jako ciągi adresu | Aby zmniejszyć opóźnienie geokodowania, użyj usługi autouzupełniania Place API, aby uzyskać identyfikatory miejsc, a następnie przekaż te identyfikatory do interfejsu Directions API lub Distance Matrix API. |
Reagowanie 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:
- Dane wprowadzane przez użytkowników zwykle wymagają stopniowego wpisywania adresu (np. „ulica Główna 123”), więc możliwość przetworzenia niepełnej, niejednoznacznej wartości geograficznej adresów jest korzystna, ponieważ pozwala szybciej uzyskać wynik.
- Aplikacje, które reagują na dane wejściowe użytkownika, są bardzo wrażliwe na opóźnienia.
Dzięki tym 2 czynnikom usługa autouzupełniania miejsc w interfejsie Places API jest idealna do odpowiadania na dane wejściowe użytkownika. Autouzupełnianie miejsc zwraca wiele możliwych opcji i pozwala użytkownikowi wybrać jedną z nich. Interfejs Places API może zostać ograniczony do wyszukiwania tylko geokodów lub adresów, z wyłączeniem firm. Ponadto funkcja wyszukiwania autouzupełniania może mieć tendencję do zwracania wyników związanych z konkretną lokalizacją. Interfejs Places API zwraca identyfikator miejsca, który można przekazać jako w pełni jednoznaczną lokalizację do usługi sieciowej Geocoding API, która zwraca pełne szczegóły adresu i geokoduje adres na długość geograficzną. Identyfikatory miejsc można też przekazywać do innych interfejsów API, takich jak Directions API i Distance Matrix API (patrz niżej).
Geokodowanie w interfejsie Geocoding API ma znacznie większe opóźnienie, a w przypadku zapytań niekompletnych lub niejednoznacznych generuje mniej dokładne wyniki. Dlatego nie zalecamy tego rozwiązania w przypadku aplikacji, które muszą odpowiadać w czasie rzeczywistym na dane wejściowe użytkownika.
Dowiedz się więcej o usłudze autouzupełniania miejsc na Androida, iOS, JavaScript i interfejs Places API.
Automatyczne systemy
Pełne, jednoznaczne przetwarzanie automatycznych systemów: zapytania niejednoznaczne, takie jak pełne ciągi znaków adresu pocztowego (np. „48 Pyrrama Rd, Pyrmont, NSW, Australia”), najlepiej obsługuje usługa internetowa interfejsu 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 kompletnych, jednoznacznych zapytań tego typu.
Automatyczne przetwarzanie przez system niejednoznacznych zapytań: zapytania niejednoznaczne to takie, które zawierają źle sformatowane adresy, niekompletne adresy lub błędy ortograficzne. W przypadku systemów automatycznych zalecamy korzystanie z usługi internetowej Geocoding API. Interfejs Geocoding API nie jest jednak zaprojektowany tak, aby radził sobie z niejednoznacznymi zapytaniami i może generować mniej dokładne wyniki lub zerowy wynik w odpowiedzi na niejednoznaczne zapytania. Jeśli Twój automatyczny system przetwarza dużą liczbę niejednoznacznych zapytań pochodzących z danych wejściowych użytkownika, warto dodać do aplikacji interaktywny element za pomocą usługi autouzupełniania miejsc w interfejsie Places API, ponieważ zaprojektowano ją tak, aby zwracała wiele możliwych opcji i pozwalała użytkownikowi wybrać jedną z nich. Interfejs Places API zwraca identyfikator miejsca, który można przekazać jako w pełni jednoznaczną lokalizację do usługi sieciowej Geocoding API, która zwraca pełne szczegóły adresu i geokoduje adres na długość geograficzną. Dowiedz się więcej o usłudze autouzupełniania miejsc na Androida, iOS, JavaScript i interfejs Places API.
Skrócenie czasu oczekiwania w interfejsach Directions API i Distance Matrix API
Gdy miejsca początkowe, miejsca docelowe lub punkty na trasie są określone jako ciągi adresu, interfejsy Directions API i Distance Matrix API używają tego samego backendu co interfejs Geocoding API do przetwarzania danych geograficznych przed obliczeniem wskazówek dojazdu. Znacznie wydłuża to czas oczekiwania w porównaniu z określaniem tych samych lokalizacji co za pomocą długości i identyfikatorów miejsc.
Jeśli Twoja aplikacja korzysta z interfejsu Directions API lub Distance Matrix API w sytuacjach, w których czas oczekiwania jest wrażliwy na czas oczekiwania, np. gdy odpowiada na dane wejściowe użytkownika, a miejsca początkowe, miejsca docelowe lub punkty na trasie są początkowo określone jako ciągi adresów, zalecamy zminimalizowanie czasu oczekiwania przez użycie usługi autouzupełniania tego interfejsu Places API do konwersji adresów na identyfikatory miejsc, a następnie przekazania identyfikatorów miejsc do interfejsu Directions API lub Distance Matrix API. Dowiedz się więcej o usłudze autouzupełniania miejsc na Androida, iOS, JavaScript i interfejs Places API. Zobacz też przykład zastosowania autouzupełniania miejsc i wskazówek dojazdu w języku JavaScript.
Podsumowanie
W zależności od konkretnego przypadku użycia, gdy do geokodowania adresów, używając interfejsu Geocoding API lub usługi autouzupełniania w połączeniu z interfejsem Geocoding API, możesz tworzyć aplikacje, które zapewniają użytkownikom dokładne wyniki geokodowania oraz skracają czas oczekiwania.
Zarządzanie błędami i ponownymi próbami
Jeśli otrzymasz odpowiedzi UNKNOWN_ERROR
, są one spowodowane błędami przejściowymi. Aby im zaradzić, spróbuj ponownie z krótkim opóźnieniem. Zalecamy korzystanie z
bibliotek klienta usług internetowych Google Maps Platform, które zawierają logikę ponawiania i obsługują uwierzytelnianie w ramach abonamentu Premium w Google Maps Platform.
Klient Java, Klient Pythona, 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 udostępnić na GitHubie. Znajdziesz tam również 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.