Pakiet Miejsca SDK na Androida w wersji 3.4.0 obsługuje 2 wersje pakietu SDK: Places SDK na Androida to istniejący pakiet SDK, a Places SDK na Androida (nowość), to nowa wersja pakietu SDK.
Po opublikowaniu pakietu SDK Miejsc Google na Androida w wersji 3.4.0 Twoim pierwszym zadaniem jest wybór odpowiedniego pakietu SDK. Dotyczy to nowych lub obecnych klientów, którzy korzystają już z pakietu SDK. Z tego przewodnika dowiesz się, jakie są główne różnice między tymi 2 pakietami SDK.
Jak wybrać wersję pakietu SDK
W backendzie pakiet Miejsca SDK na Androida korzysta z usługi Places API – Places API (nowość) lub Places API. Aby korzystać z pakietu Places SDK na Androida, musisz włączyć usługę Places API w projekcie Google Cloud.
Aby określić, których interfejsów API możesz używać w aplikacji na Androida, musisz wykonać 2 czynności:
W swoim projekcie musisz włączyć interfejs Places API (nowość), Places API lub oba te elementy na kluczu interfejsu API – w zależności od tego, czego chcesz używać w aplikacji.
Zainicjuj aplikację, wywołując metodę
Places.initializeWithNewPlacesApiEnabled()
lubPlaces.initialize()
.
Wybierz pakiet SDK
Wersja interfejsu Places API, która jest włączona, kontroluje wersję pakietu SDK używaną przez aplikację:
Oba: włącza wszystkie funkcje zarówno w pakiecie Places SDK na Androida, jak i pakietu SDK Miejsc na Androida (nowość). Użyj metod
Places.initializeWithNewPlacesApiEnabled()
iPlaces.initialize()
, aby kontrolować dostępne funkcje.Places API: włącza istniejący pakiet SDK Miejsc na Androida. Nie masz dostępu do nowych funkcji dodanych w pakiecie Places SDK na Androida w wersji 3.4.0.
Places API (nowość): włącza pakiet SDK Miejsc na Androida (nowy) i wszystkie nowe funkcje opisane w sekcji Kluczowe funkcje dodane do pakietu SDK Miejsc na Androida (nowe), ale nie włącza istniejących funkcji, takich jak Aktualne miejsce i Autouzupełnianie miejsc.
Więcej informacji o wybieraniu usługi Places API znajdziesz w artykule Konfigurowanie projektu Google Cloud.
Zainicjowanie aplikacji
Po zainicjowaniu aplikacji musisz wywołać metodę Places.initializeWithNewPlacesApiEnabled()
lub Places.initialize()
.
W tabeli poniżej pokazujemy skutki włączenia poszczególnych pakietów SDK i wywołania poszczególnych metod inicjowania. Jeśli na przykład włączysz nowy pakiet SDK Miejsc i wywołasz Places.initializeWithNewPlacesApiEnabled()
, możesz używać wszystkich nowych interfejsów API i wszystkich istniejących.
Po włączeniu pakietu Places SDK (nowość) i wywołaniu funkcji Places.initialize()
nie będziesz mieć dostępu do nowych funkcji informacji o miejscu ani do zdjęć miejsc, ale możesz będzie wywoływać nową wyszukiwarkę tekstową. Jeśli nie włączysz Places API, nie będziesz mieć dostępu do starej wersji szczegółów miejsca, ale nadal będziesz mieć możliwość wywoływania nowej funkcji wyszukiwania tekstowego.
Wersja | Interfejsy API | Pakiet SDK włączony dla klucza interfejsu API | Metoda inicjowania | ||
---|---|---|---|---|---|
Places API, | Places API (nowość) | initialize() |
initializeWithNewPlacesApiEnabled() |
||
v3.3.0 | Informacje o miejscach | ||||
Szczegóły miejsc (nowość) | |||||
Metadane zdjęć (nowe) | |||||
Wyszukiwanie tekstowe (nowość) | Dowolna metoda | ||||
v3.4.0 | Identyfikator URI zdjęcia (nowy) | ||||
Bitmapa zdjęć | Dowolna metoda | ||||
CurrentPlace | Dowolna metoda | ||||
Autouzupełnij | Dowolna metoda |
Który pakiet SDK wybierasz?
Aby zdecydować, którą wersję wybrać:
Jeśli jesteś nowym klientem i dopiero zaczynasz korzystać z pakietu SDK Miejsc na Androida, zacznij od interfejsu Places API (nowego) i nowego pakietu SDK.
Jeśli jesteś programistą Kotlin, możesz używać pakietu SDK, ale nowe funkcje pakietu SDK Miejsc na Androida (nowość) są dostępne tylko w języku Java w wersji 3.4.0.
Jeśli jesteś obecnym klientem i korzystasz z tokenów sesji, nadal korzystaj z dotychczasowego pakietu SDK. Pakiet SDK Miejsc na Androida (nowy) nie obsługuje obecnie tokenów sesji.
Jeśli jesteś obecnym klientem, możesz nadal korzystać z dotychczasowego pakietu SDK. Aby jednak korzystać z ulepszonej wydajności pakietu SDK Miejsc na Androida (nowego), możesz użyć nowej wersji pakietu SDK.
Przejście na nowy pakiet SDK nie wymaga żadnej migracji. Wystarczy, że:
- Włącz interfejs Places API (nowość) w kluczu interfejsu API używanym w Twojej aplikacji. Więcej informacji znajdziesz w artykule o używaniu kluczy interfejsu API.
W sekcji
dependencies
plikubuild.gradle
na poziomie modułu zaktualizuj zależnośćplaces
i dodaj zależnośćkotlin-bom
:dependencies { implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0")) implementation 'com.google.android.libraries.places:places:3.3.0' }
Więcej informacji na temat zależności
kotlin-bom
znajdziesz w artykule o używaniu najnowszej wersji kotlin-stdlib w zależnościach przechodnich.- Zaktualizuj istniejącą aplikację, aby wywoływała nową metodę
Places.initializeWithNewPlacesApiEnabled()
w celu zainicjowania aplikacji. Więcej informacji znajdziesz w artykule Inicjowanie klienta interfejsu Places API.
Twoje aplikacje będą nadal działać bez zmian, ale możesz korzystać ze wszystkich nowych funkcji pakietu SDK.
Najważniejsze funkcje dodane do pakietu Places SDK na Androida (nowość)
W tej sekcji omawiamy kluczowe funkcje dodane do pakietu SDK Miejsc na Androida (nowego).
Wdrożone na standardowej platformie Google Cloud
Pakiet SDK Miejsc na Androida (nowy) jest zaimplementowany w infrastrukturze usługi w Google Cloud. Taka implementacja zapewnia bezpieczną i zaufaną platformę. Ten standardowy projekt zapewnia większą spójność wszystkich pakietów SDK, co zwiększa wydajność programowania za pomocą pakietu Places SDK na Androida.
Poprawiona wydajność
Pakiet Miejsca SDK na Androida (nowy) zapewnia większą wydajność, dzięki czemu warto zastąpić aplikacje korzystające z dotychczasowego pakietu.
Nowa usługa wyszukiwania tekstowego
Wyszukiwanie tekstowe zwraca informacje o zestawie miejsc na podstawie ciągu znaków, np. „pizza w Krakowie”, „sklepy z obuwiem w pobliżu Ottawy” lub „ulica Główna 123”. W odpowiedzi usługa przedstawia listę miejsc pasujących do ciągu tekstowego i ustawione odchylenie do lokalizacji.
Nowe dane odpowiedzi zostały dodane do umieszczonych szczegółów i zdjęć miejsc
Funkcja Place Details zawiera teraz nową klasę Review w obiekcie
Place
w odpowiedzi. Klasa Place zawiera nową metodęgetReviews()
do obsługi tego pola. Zadzwoń pod numergetReviews()
, by zwrócić maksymalnie 5 opinii o danym miejscu.Zdjęcie miejsca dodaje obiekt
AuthorAttributions
do klasyPhotoMetadata
.AuthorAttributions
zawieraList
obiektówAuthorAttribution
.
Nowa odpowiedź URI do zdjęć miejsc
Za pomocą usługi Place Photos możesz teraz zwrócić identyfikator URI do bitmapy obrazu. Wcześniej można było zwracać tylko bitmapę obrazu.
Uproszczone ceny
Pakiet Miejsca SDK na Androida (nowość) upraszcza ustalanie cen, dzięki czemu płacisz tylko za dane, których użyjesz. Uproszczone ceny są wdrażane za pomocą list pól, zwanych też maskami pól.
W przypadku szczegółów miejsca i wyszukiwania tekstowego możesz używać list pól do kontrolowania listy pól, które mają być zwracane w odpowiedzi. Zapłacisz tylko za dane, których dotyczy żądanie. Korzystanie z listy pól to dobra metoda projektowania, która pozwala uniknąć żądań zbędnych danych, co pozwala uniknąć niepotrzebnego czasu przetwarzania i opłat.
Szczegółowe informacje o cenach obu pakietów SDK znajdziesz w artykule Korzystanie i płatności.
Rozszerzone typy miejsc
Nowy pakiet SDK dodaje typy miejsc wymienione w poniższej tabeli. Te typy są zwracane w odpowiedziach na żądania: szczegóły miejsca i wyniki wyszukiwania tekstowego. Tych nowych oraz dotychczasowych typów możesz też używać w wyszukiwaniu za pomocą wyszukiwarki tekstowej. Nowe typy znajdziesz w tabeli A.
Typ | |||
---|---|---|---|
american_restaurant | discount_store | ice_cream_shop | sandwich_shop |
amusement_center | dog_park | indian_restaurant | school_district |
athletic_field | electric_vehicle_charging_station | indonesian_restaurant | seafood_restaurant |
auto_parts_store | event_venue | italian_restaurant | ski_resort |
banquet_hall | extended_stay_hotel | japanese_restaurant | spanish_restaurant |
barbecue_restaurant | gospodarstwo rolne | korean_restaurant | sporting_goods_store |
barber_shop | agroturystyka | lebanese_restaurant | sports_club |
bed_and_breakfast | fast_food_restaurant | Marina | sports_complex |
brazilian_restaurant | ferry_terminal | targ | steak_house |
breakfast_restaurant | fitness_center | medical_lab | sushi_restaurant |
brunch_restaurant | french_restaurant | mediterranean_restaurant | swimming_pool |
bus_stop | gift_shop | mexican_restaurant | krawiec |
camping_cabin | golf_course | middle_eastern_restaurant | telecommunications_service_provider |
cell_phone_store | greek_restaurant | motel | thai_restaurant |
child_care_agency | grocery_store | national_park | transit_depot |
chinese_restaurant | guest_house | park_and_ride | truck_stop |
coffee_shop | hair_salon | performing_arts_theater | turkish_restaurant |
community_center | hamburger_restaurant | pizza_restaurant | vegan_restaurant |
konsultant | heliport | playground | vegetarian_restaurant |
convention_center | hiking_area | przedszkole | vietnamese_restaurant |
chata | historical_landmark | private_guest_room | visitor_center |
courier_service | home_improvement_store | ramen_restaurant | wedding_venue |
cultural_center | hostel | resort_hotel | hurtownia |
dental_clinic | hotel | rest_stop |
country
administrative_area_level_1
administrative_area_level_2
postal_code
locality