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

Wybierz platformę: Android iOS JavaScript

Za pomocą usługi Miejsca i interfejsu Geocoding API w pakiecie Maps SDK na Androida możesz wyszukiwać regiony i uzyskiwać więcej informacji o miejscach. Usługa Miejsca 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żyć ponownie w przypadku stylów opartych na danych dotyczących granic.

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

Korzystanie z usługi Miejsca

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

Aby uzyskać identyfikator miejsca, który zawiera dane regionu, możesz użyć interfejsu Wyszukaj tekst (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.

Uzyskiwanie 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 w granicach na podstawie nazw miejsc.
  • Uzyskiwać widoczny obszar, aby powiększać granice.
  • Uzyskiwać typ funkcji dla granicy (np. locality).
  • Uzyskiwać sformatowany adres, który w regionie Stanów Zjednoczonych jest tłumaczony na „Nazwa miejsca, Stan, Kraj” (np. „Ottumwa, IA, USA”).
  • Uzyskiwać 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 (szerokość i długość) i identyfikator miejsca lub przekształcanie współrzędnych geograficznych (szerokość i długość) lub identyfikatora miejsca na adres. Poniższe elementy dobrze współdziałają ze stylami opartymi na danych dotyczących 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 danej lokalizacji.

W tym przykładzie użyto adresu (z pominięciem znaków specjalnych w adresie URL), aby wysłać żądanie 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 podanych 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