Metin Arama (Yeni)

Platform seçin: Android iOS JavaScript Web Hizmeti

Metin Arama (Yeni), bir dizi bir dizeye göre yer alır. Örneğin, "İstanbul'da pizza" veya "ayakkabı mağazaları Ottawa yakınında" veya "Ana Cadde No: 123". Hizmet, bir yer listesiyle yanıt verir Böylece, metin dizesiyle ve ayarlanan konum yanlılığıyla eşleşir.

Bu hizmet özellikle, muğlak adresler sorguları dizenin adres olmayan bileşenleri, işletmelerle aynı zamanda adres. Belirsiz adres sorgusu örnekleri, kötü biçimlendirilmiş adreslerdir veya işletme adları gibi adres dışı bileşenleri içeren istekler. İstek sayısı Örneğin ilk iki örnek, bir konum şöyle değilse sıfır sonuç döndürebilir: (ör. bölge, konum kısıtlaması veya konum ön yargısı) ayarlanmış olmalıdır.

Metin Arama (Yeni), Yakındaki Arama'ya benzer (Yeni). Ana ikisi arasındaki fark Metin Arama (Yeni) rastgele bir arama dizesi belirtmenize olanak tanırken, Yakındaki Arama (Yeni) için bir belirli bir alan adı içinde arama yapabilirsiniz.

"10 High Street, Birleşik Krallık" veya "Ana Cadde No: 123, Türkiye" Birleşik Krallık'ta birden fazla "High Street"s; ABD'de birden fazla "Ana Cadde" var. Konum kısıtlaması geçerli değilse sorgu, istenen sonuçları döndürmüyor. ayarlandı.
"Restoran Zincir Restoran İstanbul" Birden çok "ChainRestaurant" New York'taki konumlar; açık adres yok veya Hatta sokak adı bile olabilir.
"İstiklal Caddesi 10, İstanbul" veya "İstiklal Caddesi No:123, İstanbul" Yalnızca bir tane "Ana Cadde" İngiltere'nin Escher şehrinde; sadece bir tane "Ana Cadde" bir e-posta alırsınız.
"Benzersiz RestoranAdı İstanbul" New York'ta bu ada sahip yalnızca bir işletme; açık adres yok gerekli olduğu anlamına gelir.
"İstanbul'daki pizza restoranları" Bu sorgu, konum kısıtlaması ve "pizza restoranları" ifadesini içeriyor : iyi tanımlanmış bir yer türü olabilir. Birden fazla sonuç döndürür.
"+1 514-670-8700"

Bu sorgu bir telefon numarası içeriyor. Şunun için birden fazla sonuç döndürür: yer alır.

Metin Arama istekleri

Metin Arama isteği şu biçimde olur:

// 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();
    });

Bu örnekte:

  • Alan listesini yalnızca Place.Field.ID ve Place.Field.NAME içerecek şekilde ayarlayın. Bu, yanıtta yer alan ve her bir eşleşmeyi temsil eden Place nesne anlamına gelir yer yalnızca bu iki alanı içermelidir.

  • SearchByTextRequest.Builder kullanın oluşturmak için SearchByTextRequest nesnesini ifade eder.

    • Metin sorgu dizesini "Acı Vejetaryen Yemek" olarak ayarlayın.

    • Maksimum sonuç sayısı sayısını 10 olarak ayarlayın. Varsayılan ve üst sınır 20'dir.

    • Arama alanını enlem ve boylam değerleriyle tanımlanan dikdörtgenle sınırlayın boylam koordinatları. Bu alanın dışındaki eşleşmeler döndürülmez.

  • Bir OnSuccessListener ekleyin ve eşleşen yerleri şuradan alın: SearchByTextResponse nesnesini tanımlayın.

Metin Arama yanıtları

İlgili içeriği oluşturmak için kullanılan SearchByTextResponse class , bir arama isteğinden gelen yanıtı temsil eder. SearchByTextResponse nesne şunu içerir:

  • Eşleşen tüm yerleri temsil eden Place nesne listesi ve bir tane Eşleşen yer başına Place nesne.

  • Her Place nesnesi yalnızca alan listesinde tanımlanan alanları içerir emin olun.

Örneğin, istekte bir alan listesini şu şekilde tanımladınız:

// Specify the list of fields to return.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);

Bu alan listesi, yanıttaki her Place nesnesinin yalnızca eşleşen her yerin yer kimliğini ve adını girin. Ardından, Place.getId() ve her Place nesnesinde bu alanlara erişmek için Place.getName() yöntem.

Bir Place nesnesindeki verilere erişme ile ilgili daha fazla örnek için Yere Erişme konusuna bakın nesne veri alanları

Gerekli parametreler

Şunun için gerekli parametreler: SearchByTextRequest şunlardır:

  • Alan listesi

    Döndürülecek yer verisi alanlarını belirtin. Şunlardan oluşan bir listeyi iletin: Place.Field değer, döndürülecek veri alanlarını belirten Varsayılan bir döndüren alan adları belirleyebilirsiniz.

    Alan listeleri, bir istek gönderen kullanıcı için Böylece, gereksiz işlem süresini ve faturalandırma ücretleri.

    Aşağıdaki alanlardan birini veya daha fazlasını belirtin:

    • Aşağıdaki alanlar Metin Arama (Yalnızca Kimlik) SKU'sunu tetikler:

      Place.Field.ID, Place.Field.NAME
    • Aşağıdaki alanlar Metin Arama (Temel) SKU'sunu tetikler:

      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
    • Aşağıdaki alanlar Metin Arama (Gelişmiş) SKU'sunu tetikler:

      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
    • Aşağıdaki alanlar Metin Arama (Tercih Edilen) SKU'sunu tetikler:

      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

    Alan listesi parametresini ayarlamak için SearchByTextRequest nesnesini oluştururken setPlaceFields() yöntemini çağırın.

  • Metin sorgusu

    Aranacak metin dizesi, örneğin: "restoran", "İstiklal Caddesi No:123" ya da "İstanbul'da ziyaret edilecek en iyi yer". API bu dizeye dayalı aday eşleşmeleri döndürür ve sonuçları şunlara göre sıralar: alaka düzeyi temel alınır.

    Metin sorgusu parametresini ayarlamak için SearchByTextRequest nesnesini oluştururken setTextQuery() yöntemini çağırın.

İsteğe bağlı parametreler

Şunu kullanın: SearchByTextRequest nesnesini tanımlayın.

  • Dahil edilen tür

    Sonuçları, tarafından tanımlanan belirtilen türle eşleşen yerlerle kısıtlar Tablo A. Yalnızca bir tür belirtilebilir. Örneğin:

    • setIncludedType("bar")
    • setIncludedType("pharmacy")

    Dahil edilen tür parametresini ayarlamak için SearchByTextRequest nesnesini oluştururken setIncludedType() yöntemini çağırın.

  • Konum ön yargısı

    Aranacak alanı belirtir. Bu konum, belirli bir belirtilen konumun etrafındaki sonuçlar, şunun sonuçları da dahil olmak üzere döndürülebilir: belirtilen alanın dışına çıktı.

    Konum kısıtlaması veya konum sapması ancak her ikisi birden değil. Konum kısıtlamasını, kullanıcının olması gereken bölge ve konum sapması sonuçların yakınında olması gereken ancak dışında olabilecek bölgeyi belirtmek inceleyeceğiz.

    Bölgeyi dikdörtgen görünüm veya daire olarak belirtin.

    • Bir daire, merkez noktası ve metre cinsinden yarıçapla tanımlanır. Yarıçap 0,0 ile 50000,0 (her ikisi de dahil) arasında olmalıdır. Örneğin:

      // 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();
      
    • Dikdörtgen, iki şekilde gösterilen enlem-boylam görünümüdür alt ve yüksek noktaların karşısında çapraz olarak çapraz çizgi bulunur. En düşük nokta güneybatıyı işaret eder dikdörtgenin köşesi, yüksek nokta ise kuzeydoğuyu köşesine dokunun.

      Görüntü alanı, yani kendi sınırını içerir. Enlem sınırları -90 ile 90 derece (her ikisi de dahil) arasında olmalı ve boylam sınırları -180 ile 180 derece (her iki değer dahil) arasında olmalıdır:

      • low = high olursa görüntü alanı şunları içerir: tek bir noktaya parmak bastınız.
      • Eğer low.longitude > high.longitude, boylam aralığı ters çevrilmiş (görüntü alanı 180 dereceyi geçiyor boylam çizgisi) içerir.
      • low.longitude = -180 derece ve high.longitude = 180 derece, görüntü alanı tüm boylamlar.
      • low.longitude = 180 derece ve high.longitude = -180 derece, boylam aralığı boştur.
      • Eğer low.latitude > high.latitude, enlem aralığı boş.

      Hem düşük hem de yüksek alanları doldurulmalı, gösterilen kutu kullanılamaz boştur. Boş görüntü alanı hatayla sonuçlanır.

      Örneğin, dikdörtgen görüntü alanı için Metin Arama istekleri.

      Konum yanlılığı parametresini ayarlamak için SearchByTextRequest nesnesini oluştururken setLocationBias() yöntemini çağırın.

  • Konum kısıtlaması

    Aranacak alanı belirtir. Belirtilen alanın dışındaki sonuçlar geri döndü. Bölgeyi dikdörtgen görünüm alanı olarak belirtin. Açıklamayı göster Konum yanlılığı yüzdesi bölümünü tanımlama hakkında bilgi edinin.

    Konum kısıtlaması veya konum sapması ancak her ikisi birden değil. Konum kısıtlamasını, kullanıcının olması gereken bölge ve konum sapması sonuçların yakınında olması gereken ancak dışında olabilecek bölgeyi belirtmek inceleyeceğiz.

    Konum kısıtlaması parametresini ayarlamak için SearchByTextRequest nesnesini oluştururken setLocationRestriction() yöntemini çağırın.

  • Maksimum sonuç sayısı

    Döndürülecek maksimum yer sonucu sayısını belirtir. Şu değerler arasında olmalıdır: 1 ve 20 (varsayılan) değerleri dahil.

    Maksimum sonuç sayısı parametresini ayarlamak için SearchByTextRequest nesnesini oluştururken setMaxResultCount() yöntemini çağırın.

  • Minimum kullanıcı oyu

    Sonuçları, yalnızca ortalama kullanıcı puanı şundan yüksek olanlarla kısıtlar: veya eşit olabilir. Değerler, 0,0 ile 5,0 (dahil) arasında olmalıdır 0,5'lik artışlar olacaktır. Örneğin: 0, 0,5, 1,0, ... , 5,0 dahil bu sayılar. Değerler 0,5'e yuvarlanır. Örneğin, 0,6 değeri, sonuç 1,0'ın altındadır.

    Minimum derecelendirme parametresini ayarlamak için SearchByTextRequest nesnesini oluştururken setMinRating() yöntemini çağırın.

  • Şu anda açık

    true ise yalnızca faaliyette olan yerleri döndürün sorgu gönderilir. false ise tüm işletmeleri döndürün açık durumundan bağımsız olarak sağlayın. Google Rehber veritabanında çalışma saatleri belirtilmeyen yerler bu parametreyi false olarak ayarlarsanız döndürülür.

    "Şimdi aç" parametresini ayarlamak için SearchByTextRequest nesnesini oluştururken setOpenNow() yöntemini çağırın.

  • Fiyat seviyeleri

    Sonuçlar, varsayılan olarak tüm fiyat düzeylerinde hizmet sunan yerleri içerir. Kısıtlamak için sadece belirli fiyat düzeylerindeki yerleri eklemek istiyorsanız, Döndürmek istediğiniz yerlerin fiyat seviyelerine karşılık gelen tam sayı değerleri:

    • 1 - Yer, pahalı olmayan hizmetler sunuyor.
    • 2 - Yer, orta fiyatlı hizmetler sunuyor.
    • 3 - Yer, pahalı hizmetler sunuyor.
    • 4 - Yer çok pahalı hizmetler sunuyor.

    Fiyat düzeyleri parametresini ayarlamak için SearchByTextRequest nesnesini oluştururken setPriceLevels() yöntemini çağırın.

  • Sıralama tercihi

    Sonuçların yanıtta türüne göre nasıl sıralandığını belirtir. sorgu:

    • "İstanbul'daki Restoranlar" gibi bir kategorik sorgu için SearchByTextRequest.RankPreference.RELEVANCE (sonuçları arama alaka düzeyine göre sıralama) varsayılan değerdir. Sıralama tercihini SearchByTextRequest.RankPreference.RELEVANCE veya SearchByTextRequest.RankPreference.DISTANCE (sonuçları mesafeye göre sırala).
    • "Mountain View, CA" gibi kategorik olmayan bir sorgu için sıralama tercihi parametresini ayarlamadan bırakmanız da mümkündür.

    Sıralama tercihi parametresini ayarlamak için SearchByTextRequest nesnesini oluştururken setRankPreference() yöntemini çağırın.

  • Bölge kodu

    Yanıtı biçimlendirmek için kullanılan bölge kodu, CLDR kodu değerini girin. Bu parametrenin yanlılık etkisi de olabilir daha fazla bilgi edineceksiniz. Varsayılan bir değer yok.

    Yanıttaki adres alanının ülke adı bölge kodundan ülke kodu atlanır.

    Çoğu CLDR kodu ISO 3166-1 kodlarıyla aynıdır. bazı önemli istisnalarla birlikte. Örneğin, Birleşik Krallık'ın ccTLD'si "uk" (.co.uk), ISO 3166-1 kodu "gb" ise (teknik olarak "Büyük Britanya ve Kuzey İrlanda Birleşik Krallığı"). Parametre, geçerli yasalara göre sonuçları etkileyebilir.

    Bölge kodu parametresini ayarlamak için SearchByTextRequest nesnesini oluştururken setRegionCode() yöntemini çağırın.

  • Katı tür filtreleme

    Dahil etme türü parametresiyle kullanılır. Şuna ayarlandığında true, yalnızca içerir. false durumunda, yanıt varsayılan olarak belirtilen türlerle eşleşmiyor.

    Katı tür filtreleme parametresini ayarlamak için, SearchByTextRequest nesnesini oluştururken setStrictTypeFiltering() yöntemini çağırın.