Wyszukaj tekst

Wyszukiwanie tekstowe zwraca informacje o zbiorze miejsc na podstawie ciągu znaków. Na przykład „pizza w Krakowie”, „sklep obuwniczy w pobliżu Warszawy” lub „ulica Główna 123”. W odpowiedzi usługa przedstawi listę miejsc pasujących do ciągu tekstowego i ustawione odchylenie do lokalizacji.

Usługa jest szczególnie przydatna do tworzenia niejednoznacznych zapytań adresowych w automatycznych systemach, a komponenty inne niż adres w ciągu znaków mogą odpowiadać zarówno firmom, jak i adresom. Przykładami niejednoznacznych zapytań adresowych są niewłaściwie sformatowany adres lub żądania zawierające komponenty niebędące adresami, takie jak nazwy firm. Żądania takie jak w 2 pierwszych przykładach mogą zwracać zero wyników, chyba że ustawisz lokalizację (np. region, ograniczenie lokalizacji lub odchylenie lokalizacji).

„ul. Główna 10, Wielka Brytania” lub „ul. Główna 123, Polska” Wiele ulic „High Street” w Wielkiej Brytanii i wiele „głównych” w Stanach Zjednoczonych. Zapytanie nie zwraca pożądanych wyników, chyba że ustawione jest ograniczenie lokalizacji.
„Sieć restauracji Warszawa” Wiele restauracji sieciowych w Nowym Jorku bez adresu i nazwy ulicy.
„ul. Główna 10, Katowice” lub „ul. Główna 123, Warszawa” Tylko jedna „Główna ulica” w mieście Escher w Wielkiej Brytanii i tylko jedna „ulica główna” w mieście Pleasanton w Kalifornii.
„Unikalna Nazwa Restauracji Warszawa” Tylko jeden obiekt z taką nazwą w Warszawie. Nie trzeba podawać adresu, aby je rozróżnić.
„pizzeria w Krakowie” To zapytanie zawiera ograniczenie lokalizacji, a „pizzeria” jest dokładnie zdefiniowanym typem miejsca. Zwraca wiele wyników.
„+1 514-670-8700”

To zapytanie zawiera numer telefonu. Zwraca wiele wyników wyszukiwania miejsc powiązanych z tym numerem telefonu.

Uzyskiwanie listy miejsc przez wyszukiwanie tekstowe

Żądanie wyszukiwania tekstu w pakiecie Places SDK na iOS (nowym) ma postać:

Swift

func testPlaceSearchByTextRequestGMPSRequestCreationWithProperties() {
  let placeProperties: [GMSPlaceProperty] = [GMSPlacePropertyName, GMSPlacePropertyPlaceID];
  let request = GMSPlaceSearchByTextRequest(textQuery:"pizza in New York" placeProperties:placeProperties)
  request.isOpenNow = true
  request.includedType = "restaurant"
  request.maxResultCount = 5
  request.minRating = 3.5
  request.rankPreference = .distance
  request.isStrictTypeFiltering = true
  request.priceLevels = [GMSPlacesPriceLevel.moderate.rawValue, GMSPlacesPriceLevel.cheap.rawValue]
  request.locationRestriction = GMSPlaceRectangularLocationOption(
       CLLocationCoordinate2D(latitude: 20, longitude: 30),
       CLLocationCoordinate2D(latitude: 40, longitude: 50)
  )
}

Objective-C

- (void)testPlaceSearchByTextRequestGMPSRequestCreationWithProperties {
GMSPlaceSearchByTextRequest *request =
    [[GMSPlaceSearchByTextRequest alloc] initWithTextQuery:@"pizza in New York" placeProperties:@[GMSPlacePropertyName, GMSPlacePropertyPlaceID]];
request.isOpenNow = YES;
request.includedType = @"restaurant";
request.maxResultCount = 5;
request.minRating = 3.5;
request.rankPreference = GMSPlaceSearchByTextRankPreferenceDistance;
request.isStrictTypeFiltering = YES;
request.priceLevels = @[ @(kGMSPlacesPriceLevelFree), @(kGMSPlacesPriceLevelCheap) ];
request.locationRestriction = GMSPlaceRectangularLocationOption(
    CLLocationCoordinate2DMake(20, 30), CLLocationCoordinate2DMake(40, 50));
request.locationBias = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(20, 30), 2.0);
}

Wymagane parametry

  • Lista pól

    Określ, które właściwości danych o miejscach mają być zwracane. Przekaż listę właściwości GMSPlace, które określają pola danych do zwrócenia. Jeśli pominiesz maskę pola, żądanie zwróci błąd.

    Listy pól to dobra metoda projektowania, która pozwala uniknąć żądania zbędnych danych, co pozwala uniknąć niepotrzebnego czasu przetwarzania i opłat.

    Określ co najmniej jedno z tych pól:

    • Poniższe pola wywołują kod SKU wyszukiwania tekstowego (tylko identyfikator):

      GMSPlacePropertyPlaceID, GMSPlacePropertyName
    • Poniższe pola wywołują kod SKU wyszukiwania tekstowego (podstawowe):

      GMSPlacePropertyAddressComponents, GMSPlacePropertyBusinessStatus, GMSPlacePropertyFormattedAddress, GMSPlacePropertyIconBackgroundColor, GMSPlacePropertyIconImageURL, GMSPlacePropertyCoordinate, GMSPlacePropertyPhotos, GMSPlacePropertyPlusCode, GMSPlacePropertyTypes, GMSPlacePropertyUTCOffsetMinutes, GMSPlacePropertyViewport, GMSPlacePropertyWheelchairAccessibleEntrance
    • Poniższe pola aktywują kod SKU wyszukiwania tekstowego (zaawansowane):

      GMSPlacePropertyCurrentOpeningHours, GMSPlacePropertySecondaryOpeningHours, GMSPlacePropertyPhoneNumber, GMSPlacePropertyPriceLevel, GMSPlacePropertyRating, GMSPlacePropertyOpeningHours, GMSPlacePropertyUserRatingsTotal, GMSPlacePropertyWebsite
    • Następujące pola wywołują kod SKU wyszukiwania tekstowego (preferowane):

      GMSPlacePropertyCurbsidePickup, GMSPlacePropertyDelivery, GMSPlacePropertyDineIn, GMSPlacePropertyEditorialSummary, GMSPlacePropertyReservable, GMSPlacePropertyServesBeer, GMSPlacePropertyServesBreakfast, GMSPlacePropertyServesBrunch, GMSPlacePropertyServesDinner, GMSPlacePropertyServesLunch, GMSPlacePropertyServesVegetarianFood, GMSPlacePropertyServesWine, GMSPlacePropertyTakeout
  • textQuery

    Ciąg tekstowy, który należy wyszukać, np. „restauracja”, „ulica Główna 123” lub „najlepsze miejsce w Krakowie”.

Parametry opcjonalne

  • includedType

    Ogranicza wyniki do miejsc pasujących do określonego typu zdefiniowanego w tabeli A. Można podać tylko jeden typ. Na przykład:

    • request.includedType = "bar"
    • request.includedType = "pharmacy"
  • isOpenNow

    Jeśli true, zwraca tylko te miejsca, które w momencie wysyłania zapytania są otwarte. Jeśli wartość to false, zwróć wszystkie firmy niezależnie od tego, czy są otwarte. Jeśli ustawisz ten parametr na false, zwracane są miejsca, które w bazie danych Miejsc Google nie mają określonych godzin otwarcia.

  • isStrictTypeFiltering

    Używana z parametrem includeType. Gdy ma wartość true, zwracane są tylko miejsca pasujące do określonych typów określonych przez includeType. Jeśli ma wartość false (fałsz), odpowiedź domyślna może zawierać miejsca, które nie pasują do określonych typów.

  • locationBias

    Określa obszar wyszukiwania. Ta lokalizacja jest odchyleniem, co oznacza, że mogą być zwracane wyniki dotyczące określonej lokalizacji, w tym wyniki spoza określonego obszaru.

    Możesz określić locationRestriction lub locationBias, ale nie obie te wartości. locationRestriction określa region, w którym muszą znajdować się wyniki, a locationBias – region, w którym wyniki muszą znajdować się w pobliżu, ale mogą być poza nim.

    Określ region jako prostokątny widoczny obszar lub okrąg.

    • Okrąg jest określony przez punkt środkowy i promień w metrach. Promień musi mieścić się w zakresie od 0,0 do 50 000,0 włącznie. Domyślny promień to 0,0. Na przykład:

      request.locationBias =  GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(latitude: 20, longitude: 30), radius: 2.0)
      
    • Prostokąt to widoczny obszar o długości i szerokości geograficznej, wyrażony jako 2 położone po przekątnej naprzeciwległości najniższego i najwyższego punktu. Najniższy punkt oznacza południowo-zachodni róg prostokąta, a najwyższy – północno-wschodni róg prostokąta.

      Widoczny obszar jest traktowany jako zamknięty obszar, co oznacza, że obejmuje swoją granicę. Granice szerokości geograficznej muszą mieścić się w zakresie od -90 do 90 stopni włącznie, a długość geograficzna – od -180 do 180 stopni włącznie:

      • Jeśli low = high, widoczny obszar składa się z tego pojedynczego punktu.
      • Jeśli low.longitude > high.longitude, zakres długości geograficznej jest odwrócony (widoczny obszar przecina linię długości 180 stopni).
      • Jeśli low.longitude = -180 stopni, high.longitude = 180 stopni, widoczny obszar obejmuje wszystkie długości geograficzne.
      • Jeśli low.longitude = 180 stopni i high.longitude = -180 stopni, zakres długości geograficznej jest pusty.
      • Jeśli low.latitude > high.latitude, zakres szerokości geograficznej jest pusty.
  • locationRestriction

    Określa obszar wyszukiwania. Wyniki spoza określonego obszaru nie są zwracane. Określ region jako prostokątny widoczny obszar. Informacje o definiowaniu widocznego obszaru znajdziesz w opisie locationBias.

    Możesz określić locationRestriction lub locationBias, ale nie obie te wartości. locationRestriction określa region, w którym muszą znajdować się wyniki, a locationBias – region, w którym wyniki muszą znajdować się w pobliżu, ale mogą być poza nim.

  • maxResultCount

    Określa maksymalną liczbę zwracanych wyników wyszukiwania miejsc. Wartość musi mieścić się w przedziale od 1 do 20 (domyślnie) włącznie.

  • minRating

    Ogranicza wyniki tylko do tych, których średnia ocena użytkowników jest większa od tego limitu lub jej równa. Wartości muszą mieścić się w zakresie od 0,0 do 5,0 (włącznie) w przyrostach co 0,5. Na przykład: 0; 0,5; 1,0; ... ; 5,0 włącznie. Wartości są zaokrąglane w górę do najbliższej wielokrotności 0,5. Na przykład wartość 0,6 eliminuje wszystkie wyniki z oceną mniejszą niż 1,0.

  • priceLevels

    Ogranicz wyszukiwanie do miejsc z określonymi cenami. Domyślnie wybrane są wszystkie poziomy cen.

    Określ tablicę zawierającą co najmniej 1 wartość określoną przez PriceLevel.

    Na przykład:

    request.priceLevels = [GMSPlacesPriceLevel.moderate.rawValue, GMSPlacesPriceLevel.cheap.rawValue]
  • rankPreference

    Określa sposób wyznaczania pozycji wyników w odpowiedzi. W stosownych przypadkach interfejs API domyślnie używa atrybutu RELEVANCE. Na przykład w przypadku zapytania „Restauracje w Nowym Jorku” domyślną wartością jest RELEVANCE. W przypadku zapytań geograficznych, np. „Mountain View, CA”, lub innego typu zapytań, wartość domyślna nie jest stosowana, a wyniki są wyświetlane w kolejności, w jakiej są zwracane przez backend.

    Dostępne wartości:

    • .distance: uporządkuj wyniki według odległości.
    • .relevance: uporządkuj wyniki według trafności.
  • regionCode

    Kod regionu używany do formatowania odpowiedzi, określony jako dwuznakowy kod CLDR. Ten parametr może też mieć wpływ na wyniki wyszukiwania. Brak wartości domyślnej.

    Jeśli nazwa kraju w polu adresu w odpowiedzi jest zgodna z kodem regionu, kod kraju jest pomijany w adresie.

    Większość kodów CLDR jest identyczna z kodami ISO 3166-1 z kilkoma wyjątkami. Na przykład domena ccTLD w Wielkiej Brytanii to „uk” (.co.uk), a kod ISO 3166-1 to „gb” (technicznie oznaczający jednostkę „Wielka Brytania i Irlandia Północna”). Parametr może wpływać na wyniki w zależności od obowiązującego prawa.

Odpowiedzi dotyczące wyszukiwania tekstu

Interfejs Text Search API zwraca tablicę dopasowań w postaci obiektów GMSPlace z jednym obiektem GMSPlace na pasujące miejsce.