Możesz wyszukiwać regiony i uzyskiwać więcej informacji o miejscach za pomocą usługi Miejsca oraz interfejsu Geocoding API w pakiecie Maps SDK for Android. Usługa Places i interfejs 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 ramach stylizacji opartej na danych.
Dodaj usługę Miejsca i geokodowanie do aplikacji z pakietu Maps SDK na Androida na te sposoby:
- SDK Miejsc na Androida to biblioteka Androida zawierająca metody zwracania informacji o miejscach.
- Interfejs Places API zwraca informacje o miejscach korzystających z żądań HTTP.
- Klasa geokodera może dynamicznie geokodować i odwracać geokodowanie na podstawie danych wejściowych użytkownika.
- Interfejs Geocoding API umożliwia geokodowanie statycznych, znanych adresów.
Korzystanie z usługi Miejsca
Użyj wyszukiwania tekstowego (nowego) do znalezienia identyfikatora miejsca
Możesz użyć interfejsu API typu Text Search (nowość) w interfejsie Places API, aby uzyskać identyfikator miejsca zawierający dane regionu, podając places.id
w masce pola. Korzystanie z funkcji wyszukiwania tekstowego (nowej) do żądania identyfikatorów miejsc jest bezpłatne. Więcej informacji
Aby np. uzyskać identyfikator miejsca dla Trynidadu w województwie pomorskim, możesz wywołać to polecenie 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 wyszukiwania przez użytkowników 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
.
Pobieranie szczegółów miejsca w regionie
Usługa Szczegóły miejsca w pakiecie SDK Miejsc na Androida zwraca dane o regionie, co może być bardzo przydatne. Możesz na przykład:
- Szukaj identyfikatorów miejsc na podstawie ich nazw.
- Pobierz widoczny obszar, aby powiększyć do granicy.
- Pobierz typ cechy granicy (na przykład
locality
). - Uzyskaj sformatowany adres, który w Stanach Zjednoczonych jest interpretowany jako „Nazwa miejsca, stan, kraj” (np. „Ottumwa, IA, USA”).
- Pobierać inne przydatne dane, takie jak zdjęcia.
Używanie interfejsu Geocoding API
Interfejs Geocoding API umożliwia konwertowanie adresu na współrzędne geograficzne i identyfikator miejsca lub konwertowanie współrzędnych geograficznych lub identyfikatora miejsca na adres. Poniższe zastosowania dobrze łączą się 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 użyto adresu (z eskapażem 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
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 w przypadku co najmniej jednego z tych typów w wybranej lokalizacji:
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