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 Places i interfejsu Geocoding API z pakietem SDK Mapy na Androida możesz wyszukiwać regiony i uzyskiwać więcej informacji o miejscach. Interfejsy Places Service i Geocoding API to wydajne i stabilne alternatywy dla uzyskiwania identyfikatorów miejsc. Jeśli używasz już identyfikatorów miejsc, możesz ich używać ponownie w przypadku stylizacji opartej na danych w przypadku granic.

Dodaj usługę Miejsca i geokodowanie do pakietu SDK Map na Androida na te sposoby:

  • Pakiet SDK Miejsca na Androida to biblioteka na Androida zawierająca metody zwracające informacje o miejscach.
  • Interfejs Places API zwraca informacje o miejscach przy użyciu żądań HTTP.
  • Klasa Geocoder może dynamicznie kodować i odwrotnie kodować dane geograficzne na podstawie danych wejściowych użytkownika.
  • Interfejs Geocoding API umożliwia geokodowanie statycznych, znanych adresów.

Korzystanie z usługi Places

Znajdowanie identyfikatora miejsca za pomocą wyszukiwania tekstowego (nowego)

Możesz użyć wyszukiwania tekstowego (nowa wersja) interfejsu REST API w interfejsie Places API, aby uzyskać identyfikator miejsca, który zawiera dane o regionie. W tym celu w masce pola podaj wartość places.id. Korzystanie z funkcji wyszukiwania tekstowego (nowej) do żądania identyfikatorów miejsc jest bezpłatne. Więcej informacji

Aby na przykład uzyskać identyfikator miejsca Trinidad w Kanadzie, możesz wykonać takie 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'

Używanie autouzupełniania miejsc do znajdowania regionów

Usługa Autouzupełnianie miejsc w pakiecie SDK Miejsc na Androida zapewnia wygodny sposób na umożliwienie użytkownikom wyszukiwania regionów. Aby skonfigurować usługę autouzupełniania Miejsca tak, aby zwracała tylko regiony, użyj wartości AutocompleteSupportFragment.setTypesFilter(List), aby ustawić filtr typu na PlaceTypes.REGIONS.

Wyświetlanie szczegółów miejsca w regionie

Usługa Szczegóły miejsca w pakiecie Places SDK na Androida zwraca dane o regionie, co może być bardzo przydatne. Możesz na przykład:

  • Wyszukaj identyfikatory miejsc na podstawie nazw miejsc.
  • Pobierz widoczny obszar, aby powiększyć do granicy.
  • Uzyskaj typ elementu dla granicy (na przykład locality).
  • Uzyskaj sformatowany adres, który w Stanach Zjednoczonych jest interpretowany jako „Nazwa miejsca, stan, kraj” (np. „Ottumwa, IA, USA”).
  • uzyskiwać inne przydatne dane, takie jak zdjęcia.

Korzystanie z Geocoding API

Interfejs Geokodowanie API umożliwia konwertowanie adresu na współrzędne geograficzne i identyfikator miejsca lub konwertowanie współrzędnych geograficznych lub identyfikatora miejsca na adres. Te elementy dobrze współpracują ze stylem opartym na danych w przypadku granic:

  • Użyj geokodowania, aby uzyskać widok dla regionu.
  • Zastosuj filtrowanie komponentów do wywołania geokodowania, aby uzyskać identyfikatory miejsc dla obszarów administracyjnych 1–4, miejscowości lub kodu pocztowego.
  • Za pomocą odwrotnego geokodowania możesz znaleźć identyfikatory miejsc na podstawie współrzędnych geograficznych lub nawet zwrócić identyfikatory miejsc dla wszystkich komponentów w danej lokalizacji.

W tym przykładzie do wysłania żądania do interfejsu Geocoding API użyto adresu (z escapowaniem znaków w adresie URL):

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

Aby znaleźć identyfikatory miejsc, możesz użyć odwrotnego geokodowania. W tym przykładzie funkcja usługi geokodowania zwraca identyfikatory miejsc dla wszystkich elementó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 jednego lub więcej z tych typów w wybranym miejscu:

  • administrativeArea
  • country
  • locality
  • postalCode

Następująca przykładowa funkcja korzysta z 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