Wyszukiwanie tekstowe (nowość) zwraca informacje o zbiorze miejsca na podstawie ciągu znaków — na przykład „pizza w Krakowie” lub „sklep obuwniczy w pobliżu Ottawy” lub „ulica Główna 123”. W odpowiedzi usługa przesyła listę miejsc. zgodne z ciągiem tekstowym i dostosowane do lokalizacji.
Usługa jest szczególnie przydatna do tworzenia niejednoznacznych adresów w zautomatyzowanym systemie, i inne niż adresowe mogą być dopasowane do adresów. Przykłady niejednoznacznych zapytań dotyczących adresu to źle sformatowane adresy lub żądań zawierających składniki niezwiązane z adresem, np. nazwy firm. Prośby np. dwa pierwsze przykłady mogą nie zwrócić żadnych wyników, chyba że lokalizacja – takich jak region, ograniczenie lokalizacji czy promowanie lokalizacji.
Wyszukiwanie tekstowe (nowość) jest podobne do wyszukiwania w pobliżu (Nowość). Główny Różnica między nimi polega na tym, że wyszukiwarka tekstowa (nowa) pozwala określić dowolny ciąg wyszukiwania, natomiast Wyszukiwanie w pobliżu (nowość) wymaga określonego obszaru do wyszukiwania.
„ul. Główna 10, Wielka Brytania” lub „ul. Główna 123, USA” | wiele numerów „High Street” w Wielkiej Brytanii; przy „Main Street” w USA. Zapytanie nie zwraca pożądanych wyników, chyba że jest ograniczenie lokalizacji ustawiony. |
„Restauracja sieciowa Warszawa” | Wiele „Sieć Restauracja” lokalizacje w Nowym Jorku; brak adresu lub nawet nazwę ulicy. |
„ul. Rybaki 10, Warszawa” lub „123 Main Street, Pleasanton PL” | Tylko jedna „ulica główna” w mieście Escher w Wielkiej Brytanii; tylko jedna „ulica Główna” w amerykańskim mieście Pleasanton, Kalifornia. |
„UniqueRestaurantName Warszawa” | tylko jeden obiekt o takiej nazwie w Nowym Jorku; brak adresu które są niezbędne do rozróżniania. |
„pizzerie w Warszawie” | Zapytanie zawiera ograniczenie lokalizacji i „pizzerie”. to precyzyjnie zdefiniowany typ miejsca. Zwraca wiele wyników. |
„+1 514-670-8700” | To zapytanie zawiera numer telefonu. Zwraca wiele wyników dla: miejsc powiązanych z tym numerem telefonu. |
Żądania wyszukiwania tekstowego
Żądanie wyszukiwania tekstowego ma postać:
// Specify the list of fields to return. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME); // Define latitude and longitude coordinates of the search area. LatLng southWest = new LatLng(37.38816277477739, -122.08813770258874); LatLng northEast = new LatLng(37.39580487866437, -122.07702325966572); // Use the builder to create a SearchByTextRequest object. final SearchByTextRequest searchByTextRequest = SearchByTextRequest.builder("Spicy Vegetarian Food", placeFields) .setMaxResultCount(10) .setLocationRestriction(RectangularBounds.newInstance(southWest, northEast)).build(); // Call PlacesClient.searchByText() to perform the search. // Define a response handler to process the returned List of Place objects. placesClient.searchByText(searchByTextRequest) .addOnSuccessListener(response -> { List<Place> places = response.getPlaces(); });
W tym przykładzie:
Ustaw listę pól tak, aby zawierała tylko pola
Place.Field.ID
iPlace.Field.NAME
. Oznacza to, że obiektyPlace
w odpowiedzi reprezentujące poszczególne dopasowania zawiera tylko te 2 pola.Użyj formatu
SearchByTextRequest.Builder
aby utworzyćSearchByTextRequest
definiujący wyszukiwanie.Ustaw ciąg zapytania „pikantne potrawy wegetariańskie”.
Ustaw maksymalną liczbę miejsc z wynikami na 10. Wartości domyślne i maksymalna liczba to 20.
Ogranicz obszar wyszukiwania do prostokąta zdefiniowanego przez szerokość i szerokość geograficzną długości geograficznej. Dopasowania spoza tego obszaru nie są zwracane.
Dodaj
OnSuccessListener
i znajdź pasujące miejsca zSearchByTextResponse
obiektu.
Odpowiedzi na wyszukiwanie tekstowe
SearchByTextResponse
reprezentuje odpowiedź z żądania wyszukiwania. SearchByTextResponse
obiekt zawiera:
Lista
Place
obiektów reprezentujących wszystkie pasujące miejsca, w tym jedenPlace
obiekt na pasujące miejsce.Każdy obiekt
Place
zawiera tylko pola zdefiniowane przez listę pól które zostały przekazane do żądania.
Na przykład w żądaniu zdefiniowano listę pól jako:
// Specify the list of fields to return. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);
Ta lista pól oznacza, że każdy obiekt Place
w odpowiedzi zawiera tylko
identyfikator i nazwę każdego pasującego miejsca. Następnie możesz użyć usługi Place.getId()
i Place.getName()
, aby uzyskać dostęp do tych pól w każdym obiekcie Place
.
Więcej przykładów uzyskiwania dostępu do danych w obiekcie Place
znajdziesz w sekcji Dostęp do miejsc
pól danych obiektów
Wymagane parametry
Parametry wymagane dla
SearchByTextRequest
to:
-
Lista pól
Określ pola danych o miejscach, które mają być zwracane. Prześlij listę
Place.Field
określające pola danych do zwrócenia. Nie ma domyślnej listy zwrócone pola w odpowiedzi.Listy pól to dobry sposób na ich projektowanie, by uniknąć zbędnych danych, co pozwala uniknąć niepotrzebnego czasu przetwarzania opłaty rozliczeniowe.
Wypełnij co najmniej jedno z tych pól:
Następujące pola aktywują kod SKU wyszukiwania tekstowego (tylko identyfikator):
Place.Field.ID
,Place.Field.NAME
Te pola aktywują kod SKU wyszukiwania tekstowego (podstawowego):
Place.Field.ADDRESS_COMPONENTS
,Place.Field.BUSINESS_STATUS
,Place.Field.ADDRESS
,Place.Field.ICON_BACKGROUND_COLOR
,Place.Field.ICON_URL
,Place.Field.LAT_LNG
,Place.Field.PHOTO_METADATAS
,Place.Field.PLUS_CODE
,Place.Field.TYPES
,Place.Field.UTC_OFFSET
,Place.Field.VIEWPORT
,Place.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE
Te pola aktywują kod SKU wyszukiwania tekstowego (zaawansowane):
Place.Field.CURRENT_OPENING_HOURS
,Place.Field.SECONDARY_OPENING_HOURS
,Place.Field.PHONE_NUMBER
,Place.Field.PRICE_LEVEL
,Place.Field.RATING
,Place.Field.OPENING_HOURS
,Place.Field.USER_RATINGS_TOTAL
,Place.Field.WEBSITE_URI
Te pola aktywują kod SKU wyszukiwania tekstowego (preferowany):
Place.Field.CURBSIDE_PICKUP
,Place.Field.DELIVERY
,Place.Field.DINE_IN
,Place.Field.EDITORIAL_SUMMARY
,Place.Field.RESERVABLE
,Place.Field.REVIEWS
,Place.Field.SERVES_BEER
,Place.Field.SERVES_BREAKFAST
,Place.Field.SERVES_BRUNCH
,Place.Field.SERVES_DINNER
,Place.Field.SERVES_LUNCH
,Place.Field.SERVES_VEGETARIAN_FOOD
,Place.Field.SERVES_WINE
,Place.Field.TAKEOUT
Aby ustawić parametr listy pól, wywołaj metodę
setPlaceFields()
podczas tworzenia obiektuSearchByTextRequest
. -
Zapytanie tekstowe
Ciąg tekstowy, który ma zostać wyszukany, na przykład: „restauracja”, „ul. Główna 123” lub „najlepsze miejsce, które warto zwiedzić we Wrocławiu”. Interfejs API zwraca dopasowania kandydatów na podstawie tego ciągu i porządkuje wyniki na podstawie na ich postrzeganą trafność.
Aby ustawić tekstowy parametr zapytania, wywołaj metodę
setTextQuery()
podczas tworzenia obiektuSearchByTextRequest
.
Parametry opcjonalne
Użyj
SearchByTextRequest
, aby określić opcjonalne parametry żądania.
Uwzględniony typ
Ogranicza wyniki do miejsc pasujących do określonego typu zdefiniowanego przez Tabela A. Można podać tylko jeden typ. Na przykład:
setIncludedType("bar")
setIncludedType("pharmacy")
Aby ustawić uwzględniony typ parametru, wywołaj metodę
setIncludedType()
podczas tworzenia obiektuSearchByTextRequest
.Korekta lokalizacji
Określa obszar wyszukiwania. Ta lokalizacja działa dyskryminująco, co oznacza, że wyniki dotyczące określonej lokalizacji, w tym wyniki poza określonym obszarem.
Możesz określić ograniczenie lokalizacji lub tendencyjności, ale nie w obu przypadkach. Ograniczenie lokalizacji to określenie regionu, w którym muszą się znajdować wyniki, oraz efektu lokalizacji określenie regionu, w którym wyniki muszą znajdować się w pobliżu, ale mogą się znajdować poza regionem. w pobliżu.
Określ region jako prostokątny widoczny lub okrągły obszar.
Okrąg jest wyznaczany przez punkt środkowy i promień w metrach. Promień musi mieścić się w zakresie od 0,0 do 50 000,0 włącznie. Na przykład:
// Define latitude and longitude coordinates of the center of the search area. LatLng searchCenter = new LatLng(37.38816277477739, -122.08813770258874); // Use the builder to create a SearchByTextRequest object. // Set the radius of the search area to 500.0 meters. final SearchByTextRequest searchByTextRequest = SearchByTextRequest.builder("Spicy Vegetarian Food", placeFields) .setMaxResultCount(10) .setLocationBias(CircularBounds.newInstance(searchCenter, 500.0)).build();
Prostokąt to widoczny obszar o długości i szerokości szerokości geograficznej, reprezentowany przez dwa elementy. na przekątnej i na przekątnej. Najniższy punkt wskazuje południowy zachód róg prostokąta, a najwyższy punkt reprezentuje północny wschód w prawym górnym rogu prostokąta.
Widoczny obszar jest uważany za obszar zamknięty, co oznacza, że obejmuje jego granicę. Granice szerokości geograficznej musi mieścić się w przedziale od -90 do 90 stopni włącznie i musi mieścić się w granicach długości geograficznej musi mieścić się w zakresie od -180 do 180 stopni włącznie:
- Jeśli
low
=high
, widoczny obszar składa się z: ten pojedynczy punkt. - Jeśli
low.longitude
>high.longitude
, zakres długości geograficznej jest odwrócony (widoczny obszar przecina 180 stopni linii długości geograficznej). - Jeśli
low.longitude
= -180 stopni ihigh.longitude
= 180 stopni, widoczny obszar obejmuje wszystkie długości geograficznej. - Jeśli
low.longitude
= 180 stopni ihigh.longitude
= -180 stopni, zakres długości geograficznej to puste. - Jeśli
low.latitude
>high.latitude
, zakres szerokości geograficznej jest pusty.
Musi być wypełnione zarówno niska, jak i wysoka, a reprezentowane pole nie może być puste. Gdy to zrobisz, pojawi się błąd.
Na przykład prostokątnego widocznego obszaru zobacz Żądania wyszukiwania tekstowego.
Aby ustawić parametr odchylenia lokalizacji, wywołaj metodę
setLocationBias()
podczas tworzenia obiektuSearchByTextRequest
.- Jeśli
Ograniczenie dotyczące lokalizacji
Określa obszar wyszukiwania. Wyniki spoza określonego obszaru nie są . Wskaż region jako prostokątny widoczny obszar. Zobacz opis uderzenia lokalizacji, .
Możesz określić ograniczenie lokalizacji lub tendencyjności, ale nie w obu przypadkach. Ograniczenie lokalizacji to określenie regionu, w którym muszą się znajdować wyniki, oraz efektu lokalizacji określenie regionu, w którym wyniki muszą znajdować się w pobliżu, ale mogą znajdować się poza regionem. w pobliżu.
Aby ustawić parametr ograniczenia lokalizacji, wywołaj metodę
setLocationRestriction()
podczas tworzenia obiektuSearchByTextRequest
.-
Maksymalna liczba wyników
Określa maksymalną liczbę wyników miejsc do zwrócenia. Wymagana wartość z zakresu 1 i 20 (domyślnie) włącznie.
Aby ustawić parametr maksymalnej liczby wyników, wywołaj metodę
setMaxResultCount()
podczas tworzenia obiektuSearchByTextRequest
. Minimalna ocena
Ogranicza wyniki tylko do tych, których średnia ocena użytkowników jest wyższa niż lub jej równy. Wartości muszą mieścić się w zakresie od 0,0 do 5.0 (włącznie) przyrosty co 0,5. Na przykład: 0, 0,5, 1,0, ... , 5,0 włącznie. Wartości to w górę do najbliższej 0,5. Na przykład wartość 0, 6 eliminuje wszystkie wyników z oceną niższą niż 1,0.
Aby ustawić parametr minimalnej oceny, podczas tworzenia obiektu
SearchByTextRequest
wywołaj metodęsetMinRating()
.Teraz otwarte
Jeśli
true
, zwróć tylko te miejsca, które są otwarte w momencie wysyłania zapytania. Jeślifalse
, zwróć wszystkie firmy bez względu na to, czy są otwarte. Miejsca, które nie określają godzin otwarcia w bazie danych Miejsc Google, zwracany, jeśli ustawisz ten parametr nafalse
.Aby ustawić parametr Otwórz teraz, wywołaj metodę
setOpenNow()
podczas tworzenia obiektuSearchByTextRequest
.-
Poziomy cen
Domyślnie wyniki obejmują miejsca, które świadczą usługi na wszystkich poziomach cen. Aby ograniczyć aby uwzględnić tylko miejsca o określonych poziomach cen, możesz przesłać wartości całkowitych odpowiadających poziomom cen miejsc, które chcesz zwrócić:
1
– firma świadczy niedrogie usługi.2
– miejsce świadczy usługi w umiarkowanych cenach.3
– firma świadczy drogie usługi.4
– miejsce świadczy bardzo drogie usługi.
Aby ustawić parametr poziomów cen, wywołaj metodę
setPriceLevels()
podczas tworzenia obiektuSearchByTextRequest
. Preferencja rankingu
Określa kolejność wyników w odpowiedzi na podstawie typu wartości zapytanie:
- W przypadku zapytania kategorialnego, np. „Restauracje w Warszawie”,
Ustawienie domyślne to
SearchByTextRequest.RankPreference.RELEVANCE
(ranking wyników według trafności wyszukiwania). Możesz ustawić preferencję pozycji naSearchByTextRequest.RankPreference.RELEVANCE
lubSearchByTextRequest.RankPreference.DISTANCE
(ranking wyników według odległości). - W przypadku zapytań niezwiązanych z kategorią, np. „Warszawa”, zalecamy pozostawiania nieskonfigurowanego parametru preferencji pozycji.
Aby ustawić parametr preferencji pozycji, podczas tworzenia obiektu
SearchByTextRequest
wywołaj metodęsetRankPreference()
.- W przypadku zapytania kategorialnego, np. „Restauracje w Warszawie”,
Ustawienie domyślne to
Kod regionu
Kod regionu używany do formatowania odpowiedzi podany jako dwuznakową wartość kodu CLDR. Ten parametr może również powodować odchylenie w wynikach wyszukiwania. Nie ma wartości domyślnej.
Jeśli nazwa kraju w polu adresu w odpowiedzi jest zgodna z kodu regionu, kod kraju został pominięty w adresie.
Większość kodów CLDR jest identyczna z kodami ISO 3166-1. z kilkoma istotnymi wyjątkami. Na przykład domena ccTLD Wielkiej Brytanii to „uk” (co.uk), natomiast kod ISO 3166-1 to „gb”. (technicznie dla funkcji podmiotu „Wielkiej Brytanii i Irlandii Północnej”). Ten parametr może wpływać na wyniki w zależności od obowiązującego prawa.
Aby ustawić parametr kodu regionu, wywołaj metodę
setRegionCode()
podczas tworzenia obiektuSearchByTextRequest
.Ścisłe filtrowanie typów
Używana z parametrem typu uwzględniania. Po ustawieniu na
true
, tylko miejsca pasujące do typów określonych przez . Jeśli wartością domyślną jestfalse
, odpowiedź może zawierać miejsca, w których nie pasują do określonych typów.Aby ustawić parametr filtrowania typu ścisłego, wywołaj metodę
setStrictTypeFiltering()
podczas tworzenia obiektuSearchByTextRequest
.