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 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 ponownie użyć w przypadku stylów opartych na danych dla granic.

Usługę Miejsc 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 (nowa wersja)

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 w masce pola określ places.id. Korzystanie z usługi Wyszukiwanie tekstowe (nowa) w celu wysyłania żądań dotyczących 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łnianie miejsc w pakiecie SDK Miejsc na Androida to wygodny sposób na umożliwienie użytkownikom wyszukiwania regionów. Aby skonfigurować usługę autouzupełniania miejsc tak, aby zwracała tylko regiony, użyj parametru AutocompleteSupportFragment.setTypesFilter(List), aby ustawić filtr typu na PlaceTypes.REGIONS.

Pobieranie szczegółowych informacji o miejscach w regionie

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

  • Wyszukiwanie identyfikatorów miejsc granicznych na podstawie nazw miejsc.
  • Pobierz widoczny obszar, aby powiększyć go do granicy.
  • Pobierz typ funkcji dla granicy (np. locality).
  • Uzyskaj sformatowany adres, który w regionie Stanów Zjednoczonych będzie miał postać „Nazwa miejsca, Stan, Kraj” (np. „Ottumwa, IA, USA”).
  • uzyskiwać inne przydatne dane, takie jak zdjęcia.

Korzystanie z interfejsu Geocoding API

Geocoding API umożliwia konwertowanie adresu na współrzędne geograficzne i identyfikator miejsca lub konwertowanie współrzędnych geograficznych bądź identyfikatora miejsca na adres. Te zastosowania dobrze sprawdzają się w połączeniu ze stylem opartym na danych w przypadku granic:

  • Użyj geokodowania, aby uzyskać widok regionu.
  • Zastosuj filtrowanie komponentów w wywołaniu interfejsu Geocoding API, aby uzyskać identyfikatory miejsc dla obszarów administracyjnych 1–4, miejscowości lub kodu pocztowego.
  • Użyj odwrotnego geokodowania, aby znaleźć identyfikatory miejsc na podstawie 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 Geocoding API:

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. Ten przykład funkcji 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

W następnym przykładzie funkcji pokazujemy, jak używać usługi geokodowania, dodając ograniczenia dotyczące 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