Geokodowanie ze zwiększoną dokładnością

Deweloperzy z Europejskiego Obszaru Gospodarczego (EOG)

Metody GeocodeAddress i SearchDestinations obsługują opcjonalny parametr effort, który pozwala kontrolować kompromis między czasem oczekiwania na odpowiedź a dokładnością rozpoznawania adresów.

Standardowe geokodowanie obsługuje prawidłowo sformatowane adresy pocztowe z opóźnieniem poniżej sekundy, ale dane wejściowe w rzeczywistych warunkach są często niekompletne, nieformalne lub złożone (np. "Flat 4B, Sunrise Apartments, opposite Central Mall, Andheri West, Mumbai" lub "where the warriors play, sf"). Konfigurując wyższy poziom effort, możesz poinstruować interfejs Geocoding API, aby stosował rozszerzone wnioskowanie i uściślanie w celu rozpoznawania trudnych adresów.

Poziomy nakładu pracy

Podaj jedną z tych wartości parametru effort:

Poziom nakładu pracy Opis Typowy czas oczekiwania Zalecane przypadki użycia
EFFORT_UNSPECIFIED Wartość domyślna. Działa tak samo jak poziom LOW. Ułamek sekundy Domyślne standardowe geokodowanie.
LOW Optymalizuje pod kątem najkrótszego czasu odpowiedzi. Nie przeprowadza rozszerzonego wyszukiwania ani uściślania w przypadku trudnych adresów. Ułamek sekundy Interaktywne wyszukiwanie w czasie rzeczywistym, standardowa weryfikacja adresów na dużą skalę.
MEDIUM Zapewnia równowagę między szybkością a dokładnością. Większość żądań jest zwracana ze standardowym krótkim czasem oczekiwania. W przypadku niejednoznacznych lub trudnych adresów usługa stosuje dodatkowe przetwarzanie, aby zwiększyć dokładność, co może potrwać do kilku sekund. Ułamek sekundy w przypadku standardowych adresów; do kilku sekund (≤ 4 sekundy) w przypadku niejednoznacznych adresów interaktywne procesy użytkownika (np. potwierdzenie adresu podczas płatności), w których użytkownicy mogą zaakceptować krótką przerwę;
HIGH Maksymalizuje dokładność rozpoznawania adresów w przypadku niekompletnych, nieformalnych lub złożonych adresów. Czas odpowiedzi może być znacznie dłuższy. Do 20 sekund w przypadku złożonych adresów Przetwarzanie w tle, przetwarzanie danych geograficznych, wysyłka logistyczna lub asynchroniczne uściślanie adresu po dokonaniu płatności.

Przykłady żądań

Wyszukiwanie miejsc docelowych (SearchDestinations)

Uwzględnij pole effort w treści żądania JSON w żądaniu POST do https://geocode.googleapis.com/v4alpha/geocode/destinations. Parametr effort wpływa głównie na rozdzielczość addressQuery:

curl -X POST -d '{
  "addressQuery": {
    "addressQuery": "Flat 4B, Sunrise Apartments, opposite Central Mall, Andheri West, Mumbai"
  },
  "effort": "HIGH"
}' \
-H 'Content-Type: application/json' \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: *" \
https://geocode.googleapis.com/v4alpha/geocode/destinations

Geokodowanie adresu (GeocodeAddress)

Przekaż parametr effort jako parametr zapytania w adresie URL w żądaniu GET do punktu końcowego /v4alpha/:

curl -X GET -H 'Content-Type: application/json' \
-H "X-Goog-Api-Key: API_KEY" \
"https://geocode.googleapis.com/v4alpha/geocode/address/where+the+warriors+play,+sf?effort=MEDIUM"

Minimalizowanie wpływu na czas oczekiwania

Jeśli w aplikacji używasz trybu MEDIUM lub HIGH, wysłanie żądania jednoprzebiegowego jest najprostszą integracją, ale żądania w tych trybach mogą powodować większe opóźnienia, co może opóźniać synchroniczne, widoczne dla użytkownika i wrażliwe na opóźnienia przepływy pracy.

Aby zmniejszyć wpływ opóźnienia na interaktywne wzorce przeglądania (np. płatność lub rezerwację), możesz użyć wieloetapowego przepływu pracy:

  1. Etap 1 (interaktywny): wyślij żądanie synchroniczne z parametrem effort=LOW (lub domyślnym), aby natychmiast zweryfikować adres z opóźnieniem poniżej sekundy.
  2. Etap 2 (w tle): wyślij asynchroniczne żądanie dodatkowe z parametrem effort=MEDIUM lub effort=HIGH (np. po dokonaniu płatności lub przed wysyłką), aby przekształcić złożone adresy we współrzędne o wysokiej precyzji, wejścia i punkty nawigacyjne bez blokowania użytkownika.

Limity wykorzystania

Na etapie uruchamiania eksperymentalnego (v4alpha) żądania z parametrem effort ustawionym na MEDIUM lub HIGH podlegają bardziej rygorystycznemu ograniczaniu liczby żądań niż żądania standardowe (LOW). Jeśli aplikacja przekroczy te limity, interfejs API zwróci błąd RESOURCE_EXHAUSTED (HTTP 429). Jeśli wystąpią błędy HTTP 429 lub potrzebujesz większego limitu na potrzeby swojego przypadku użycia, skontaktuj się z nami przez kanał opinii.

Prześlij opinię

To jest eksperymentalna funkcja interfejsu Geocoding API. Będziemy wdzięczni za opinie przesłane na adres geocoding-feedback-channel@google.com.