Za pomocą usługi Miejsca i interfejsu Geocoding API w pakiecie SDK Map Google 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.
Dodaj usługę Miejsc i geokodowanie do aplikacji korzystających z pakietu SDK Map Google na Androida w jeden z tych sposobów:
- Pakiet SDK Miejsc na Androida to biblioteka Androida zawierająca metody zwracające informacje o miejscach.
- Places API zwraca informacje o miejscach przy użyciu żądań HTTP.
- Klasa Geocoder może dynamicznie geokodować i odwrotnie geokodować dane wejściowe użytkownika.
- Geocoding API umożliwia geokodowanie statycznych, znanych adresów.
Korzystanie z usługi Miejsca
Znajdowanie identyfikatora miejsca za pomocą wyszukiwania tekstowego (nowa wersja)
Możesz użyć interfejsu Text Search (New) API w interfejsie Places API, aby uzyskać identyfikator miejsca, który zawiera dane regionu, określając places.id
w masce pola. Korzystanie z usługi Wyszukiwanie tekstowe (nowa) 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 to wygodny sposób na umożliwienie użytkownikom wyszukiwania regionów. Aby skonfigurować usługę autouzupełniania Miejsc Google tak, aby zwracała tylko regiony, użyj parametru AutocompleteSupportFragment.setTypesFilter(List)
, aby ustawić filtr typu na PlaceTypes.REGIONS
.
Pobieranie szczegółów miejsca w regionie
Usługa Szczegóły miejsca w pakiecie SDK Miejsc na Androida zwraca dane o regionie, 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 Stanach 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 przekształcanie adresu na współrzędne geograficzne (szerokość i długość geograficzną) oraz identyfikator miejsca, a także przekształcanie współrzędnych geograficznych lub identyfikatora miejsca na adres. Te zastosowania dobrze współgrają ze stylem opartym na danych w przypadku granic:
- Użyj geokodowania, aby uzyskać widoczny obszar regionu.
- Zastosuj filtrowanie komponentów w wywołaniu Geocoding, 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, a 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. Poniższy przykład funkcji usługi Geocoding zwraca identyfikatory miejsc dla wszystkich komponentów adresu w 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 geokodowania zwrotnego z filtrowaniem komponentów, aby uzyskać komponent adresu dla co najmniej jednego z tych typów w określonej lokalizacji:
administrativeArea
country
locality
postalCode
Następna przykładowa funkcja pokazuje, jak używać usługi geokodowania, dodając ograniczenia dotyczące komponentów za pomocą geokodowania odwrotnego, 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