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 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 SDK Map Google na Androida na te sposoby:
- Pakiet SDK Miejsca na Androida to biblioteka 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 geokodować i wykonywać odwrotne geokodowanie na podstawie danych wejściowych użytkownika.
- Interfejs Geocoding API umożliwia geokodowanie statycznych, znanych adresów.
Korzystanie z usługi Miejsca
Używanie wyszukiwania tekstowego (nowego) do znajdowania identyfikatorów miejsc
Aby uzyskać identyfikator miejsca, który zawiera dane regionu, możesz użyć wyszukiwania tekstowego (nowy) w interfejsie REST Places API, podając w masce pola 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 użyć tego wywołania 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
.
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 granicznych na podstawie nazw miejsc.
- Pobierz widoczny obszar, aby powiększyć do granicy.
- Uzyskaj typ funkcji dla granicy (np.
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.
Korzystanie z 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.
- 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 znaków w adresie 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 współrzędnych szerokości i długości geograficznej podanych w danych:
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