Za pomocą usługi Miejsca i interfejsu Geokodowanie API w pakiecie SDK Mapy na Androida możesz wyszukiwać regiony oraz uzyskiwać więcej informacji o miejscach. Usługa Places oraz Geocoding API to zaawansowane i stabilne rozwiązania, które pozwalają uzyskać identyfikatory miejsc. Jeśli używasz już identyfikatorów miejsc, możesz użyć ich ponownie w stylu opartym na danych na potrzeby granic.
Dodaj usługę Miejsca i Geokodowanie do pakietu Maps SDK dla aplikacji na Androida na następujące 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 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
Używanie wyszukiwania tekstowego (nowego) do znajdowania identyfikatorów miejsc
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. Skorzystanie z wyszukiwania tekstowego (nowego) do wysyłania zapytań o identyfikatory miejsc jest bezpłatne. Więcej informacji
Aby na przykład uzyskać identyfikator miejsca Trinidad w Kanadzie, możesz wykonać taki 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łniania 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:
- Wyszukuj identyfikatory miejsc przy granicach na podstawie nazw miejsc.
- Pobierz widoczny obszar, aby powiększyć do granicy 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. Te elementy dobrze współgrają ze stylem opartym na danych:
- 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.
- Odwrotne geokodowanie pozwala znaleźć identyfikatory miejsc według współrzędnych szerokości i długości geograficznej. Możesz nawet wyświetlić identyfikatory miejsc dla wszystkich komponentów w konkretnej 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