Aby wyszukiwać regiony i uzyskiwać więcej informacji o miejscach, możesz używać usługi Places i interfejsu Geocoding API z pakietem Maps SDK na Androida. 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 używać ponownie ze stylami opartymi na danych w przypadku granic.
Usługę Places i geokodowanie możesz dodać do aplikacji korzystających z pakietu Maps SDK na Androida na te sposoby:
- Pakiet SDK Miejsc na Androida to biblioteka na 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 odwrotnie geokodować dane wprowadzane przez użytkownika.
- Interfejs Geocoding API umożliwia geokodowanie statycznych, znanych adresów.
Korzystanie z usługi Places
Znajdowanie identyfikatora miejsca za pomocą wyszukiwania tekstowego (nowość)
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 określ places.id w masce pola. Korzystanie z wyszukiwania tekstowego (nowość) 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 umożliwia
użytkownikom wygodne wyszukiwanie regionów. Aby skonfigurować usługę autouzupełniania miejsc tak, aby
zwracała tylko regiony, użyj
AutocompleteSupportFragment.setTypesFilter(List)
aby ustawić filtr typu na PlaceTypes.REGIONS.
Pobieranie szczegółów miejsca w regionie
Usługa informacji o miejscu w pakiecie SDK Miejsc na Androida zwraca dane regionu, które mogą być bardzo przydatne. Możesz na przykład:
- Wyszukiwać identyfikatory miejsc granic na podstawie nazw miejsc.
- Pobierać widoczny obszar, aby powiększyć granicę.
- Pobierać typ funkcji dla granicy (np.
locality). - Pobierać sformatowany adres, który w regionie Stanów Zjednoczonych jest tłumaczony na „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 przekształcanie adresu na współrzędne geograficzne i identyfikator miejsca lub przekształcanie współrzędnych geograficznych lub identyfikatora miejsca na adres. Te funkcje dobrze współpracują ze stylami opartymi na danych w przypadku granic:
- Użyj geokodowania, aby uzyskać widoczny obszar regionu.
- Zastosuj filtrowanie komponentów do wywołania geokodowania, aby uzyskać identyfikatory miejsc dla obszarów administracyjnych 1–4, miejscowości lub kodu pocztowego.
- Użyj odwrotnego geokodowania, aby znaleźć identyfikatory miejsc według 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 interfejsu Geocoding API:
https://maps.googleapis.com/maps/api/geocode/json?address=1600%20Amphitheatre%20Pkwy%20Mountain%20View%20CA&key=YOUR_API_KEYDo znajdowania identyfikatorów miejsc możesz używać odwrotnego geokodowania. Ta przykładowa funkcja 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_KEYUżyj odwrotnego geokodowania z filtrowaniem komponentów, aby uzyskać komponent adresu dla co najmniej 1 z tych typów w określonej lokalizacji:
administrativeAreacountrylocalitypostalCode
Poniższa przykładowa funkcja pokazuje, jak używać 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