Używanie usługi Places i interfejsu Geocoding API z stylem opartym na danych do wyznaczania granic

Wybierz platformę: Android iOS JavaScript

Aby wyszukiwać regiony i uzyskiwać więcej informacji o miejscach, możesz używać usługi Places i interfejsu Geocoding API z pakietem Maps SDK na Androida. Usługa Places i interfejs Geocoding API to wydajne i stabilne alternatywy do uzyskiwania identyfikatorów miejsc. Jeśli używasz już identyfikatorów miejsc, możesz ich używać ponownie ze stylami opartymi na danych w przypadku granic.

Usługę Places i geokodowanie możesz dodać do aplikacji korzystających z pakietu Maps SDK na Androida na te sposoby:

Korzystanie z usługi Places

Znajdowanie identyfikatora miejsca za pomocą wyszukiwania tekstowego (nowość)

Aby uzyskać identyfikator miejsca, który zawiera dane regionu, możesz użyć interfejsu Text Search (New) REST API w interfejsie Places API. W tym celu określ places.id w masce pola. Korzystanie z wyszukiwania tekstowego (nowość) w celu wysyłania żądań identyfikatorów miejsc nie wiąże się z żadnymi opłatami. Więcej informacji.

Aby na przykład uzyskać identyfikator miejsca dla Trinidad w Kalifornii, możesz wykonać to wywołanie interfejsu API:

curl -X POST -d '{
  "textQuery" : "Trinidad, CA"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.id' \
'https://places.googleapis.com/v1/places:searchText'

Znajdowanie regionów za pomocą autouzupełniania miejsc

Usługa autouzupełniania miejsc w pakiecie SDK Miejsc na Androida umożliwia użytkownikom wygodne wyszukiwanie regionów. Aby skonfigurować usługę autouzupełniania miejsc tak, aby zwracała tylko regiony, użyj AutocompleteSupportFragment.setTypesFilter(List) aby ustawić filtr typu na PlaceTypes.REGIONS.

Pobieranie szczegółów miejsca w regionie

Usługa informacji o miejscu w pakiecie SDK Miejsc na Androida zwraca dane regionu, które mogą być bardzo przydatne. Możesz na przykład:

  • Wyszukiwać identyfikatory miejsc granic na podstawie nazw miejsc.
  • Pobierać widoczny obszar, aby powiększyć granicę.
  • Pobierać typ funkcji dla granicy (np. locality).
  • Pobierać sformatowany adres, który w regionie Stanów Zjednoczonych jest tłumaczony na „Nazwa miejsca, Stan, Kraj” (np. „Ottumwa, IA, USA”).
  • Pobierać inne przydatne dane, takie jak zdjęcia.

Korzystanie z interfejsu Geocoding API

Interfejs Geocoding API umożliwia przekształcanie adresu na współrzędne geograficzne i identyfikator miejsca lub przekształcanie współrzędnych geograficznych lub identyfikatora miejsca na adres. Te funkcje dobrze współpracują ze stylami opartymi na danych w przypadku granic:

  • Użyj geokodowania, aby uzyskać widoczny obszar regionu.
  • Zastosuj filtrowanie komponentów do wywołania geokodowania, aby uzyskać identyfikatory miejsc dla obszarów administracyjnych 1–4, miejscowości lub kodu pocztowego.
  • Użyj odwrotnego geokodowania, aby znaleźć identyfikatory miejsc według współrzędnych geograficznych, lub nawet zwrócić identyfikatory miejsc dla wszystkich komponentów w określonej lokalizacji.

W tym przykładzie użyto adresu (z kodowaniem URL) do wysłania żądania do interfejsu Geocoding API:

https://maps.googleapis.com/maps/api/geocode/json?address=1600%20Amphitheatre%20Pkwy%20Mountain%20View%20CA&key=YOUR_API_KEY

Do znajdowania identyfikatorów miejsc możesz używać odwrotnego geokodowania. Ta przykładowa funkcja usługi geokodowania zwraca identyfikatory miejsc dla wszystkich komponentów adresu o określonych współrzędnych geograficznych:

https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&key=YOUR_API_KEY

Użyj odwrotnego geokodowania z filtrowaniem komponentów, aby uzyskać komponent adresu dla co najmniej 1 z tych typów w określonej lokalizacji:

  • administrativeArea
  • country
  • locality
  • postalCode

Poniższa przykładowa funkcja pokazuje, jak używać usługi geokodowania, dodając ograniczenia komponentów za pomocą odwrotnego geokodowania, aby uzyskać wszystkie komponenty adresu w określonej lokalizacji tylko dla typu locality:

https://maps.googleapis.com/maps/api/geocode/json?latlng=41.864182,-87.676930&result_type=locality&key=YOUR_API_KEY