Metin Arama

Metin Arama, bir dizeye dayalı olarak bir yer kümesi hakkında bilgi döndürür. Örneğin, "İstanbul'da pizza", "Karşıyaka'daki ayakkabı mağazaları" veya "Ana Cadde No: 123". Hizmet, metin dizesiyle eşleşen yerlerin bir listesiyle ve ayarlanan konum sapmasıyla yanıt verir.

Hizmet, özellikle otomatik bir sistemde belirsiz adres sorguları oluşturmak için yararlıdır ve dizenin adres olmayan bileşenleri, işletmelerle ve adreslerle eşleşebilir. Belirsiz adres sorgularına örnek olarak kötü biçimlendirilmiş adresler veya işletme adları gibi adres olmayan bileşenler içeren istekler verilebilir. İlk iki örnek gibi istekler bir konum (bölge, konum kısıtlaması veya konum önyargısı gibi) ayarlanmamışsa sıfır sonuç döndürebilir.

"Taksim Mahallesi, Hasbahçe Sokak, Üsküdar, 34110" İngiltere'de birden fazla "High Street", ABD'de birden fazla "Ana Cadde". Sorgu, konum kısıtlaması ayarlanmadıkça istenen sonuçları döndürmüyor.
"İstanbul'daki zincir restoran" New York'ta birden fazla "Zincir restoran" konumu; açık adres, hatta sokak adı yok.
"10. Cadde, Escher UK" veya "123 Main Street, Pleasanton ABD" İngiltere'nin Escher şehrinde yalnızca bir "High Street"; ABD'nin Pleasanton CA şehrinde yalnızca bir "Ana Cadde".
"BenzersizRestoranAdi İstanbul" New York'ta bu ada sahip yalnızca bir işletme; ayırt etmek için açık adres gerekmez.
"İstanbul'daki pizza restoranları" Bu sorgu, konum kısıtlamasını içeriyor ve "pizza restoranları" iyi tanımlanmış bir yer türüdür. Birden çok sonuç döndürür.
"+1 514-670-8700"

Bu sorgu bir telefon numarası içeriyor. Bu telefon numarasıyla ilişkilendirilmiş yerler için birden fazla sonuç döndürür.

Metin aramaya göre yer listesi alın

iOS için Yerler SDK'sındaki (Yeni) Metin Arama isteği şu şekildedir:

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

Gerekli parametreler

  • Alan listesi

    Döndürülecek yer verisi özelliklerini belirtin. Döndürülecek veri alanlarını belirten GMSPlace özelliklerinin listesini iletin. Alan maskesini çıkarırsanız istek bir hata döndürür.

    Alan listeleri, gereksiz veri isteğinde bulunmamanız için iyi bir tasarım uygulamasıdır. Böylece gereksiz işleme süresi ve faturalandırma ücretlerinin önüne geçilir.

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

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

      GMSPlacePropertyPlaceID, GMSPlacePropertyName
    • Aşağıdaki alanlar Metin Arama (Temel) SKU'sunu tetikler:

      GMSPlacePropertyAddressComponents, GMSPlacePropertyBusinessStatus, GMSPlacePropertyFormattedAddress, GMSPlacePropertyIconBackgroundColor, GMSPlacePropertyIconImageURL, GMSPlacePropertyCoordinate, GMSPlacePropertyPhotos, GMSPlacePropertyPlusCode, GMSPlacePropertyTypes, GMSPlacePropertyUTCOffsetMinutes, GMSPlacePropertyViewport, GMSPlacePropertyWheelchairAccessibleEntrance
    • Aşağıdaki alanlar Metin Arama (Gelişmiş) SKU'sunu tetikler:

      GMSPlacePropertyCurrentOpeningHours, GMSPlacePropertySecondaryOpeningHours, GMSPlacePropertyPhoneNumber, GMSPlacePropertyPriceLevel, GMSPlacePropertyRating, GMSPlacePropertyOpeningHours, GMSPlacePropertyUserRatingsTotal, GMSPlacePropertyWebsite
    • Aşağıdaki alanlar Metin Arama (Tercih Edilen) SKU'sunu tetikler:

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

    Arama yapılacak metin dizesi. Örneğin: "restoran", "Ana Cadde No: 123" veya "İstanbul'da ziyaret edilecek en iyi yer".

İsteğe bağlı parametreler

  • includedType

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

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

    true ise yalnızca sorgu gönderildiği sırada açık olan yerleri döndürür. false ise açık durumundan bağımsız olarak tüm işletmeleri iade edin. Bu parametreyi false olarak ayarlarsanız Google Rehber veritabanında çalışma saatleri belirtilmeyen yerler döndürülür.

  • isStrictTypeFiltering

    includeType parametresiyle kullanılır. true olarak ayarlandığında, yalnızca includeType tarafından belirtilen türlerle eşleşen yerler döndürülür. Yanlış değerine ayarlanırsa yanıt, belirtilen türlerle eşleşmeyen yerler içerebilir.

  • locationBias

    Aranacak alanı belirtir. Bu konum bir ön yargı görevi görür. Yani belirtilen alanın dışındaki sonuçlar da dahil olmak üzere, belirtilen konumun çevresindeki sonuçların döndürülebileceği anlamına gelir.

    locationRestriction veya locationBias değerlerini belirtebilirsiniz, ancak ikisini birden belirtemezsiniz. locationRestriction özelliğini sonuçların içinde olması gereken bölgeyi, locationBias de sonuçların yakınında olması gereken ancak alanın dışında da olabileceği bölgeyi belirtmek olarak düşünün.

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

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

      request.locationBias =  GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(latitude: 20, longitude: 30), radius: 2.0)
      
    • Dikdörtgen, düşük ve yüksek noktaların çapraz olarak karşısında iki nokta olarak gösterilen enlem-boylam görüntü alanıdır. Alçak nokta, dikdörtgenin güneybatı köşesini, yüksek nokta ise dikdörtgenin kuzeydoğu köşesini temsil eder.

      Görüntü alanı, kapalı bir bölge olarak kabul edilir, yani sınırlarını içerir. Enlem sınırları -90 ile 90 derece dahil, boylam sınırları ise -180 ile 180 derece (bu değerler dahil) arasında olmalıdır:

      • low = high ise görüntü alanı o tek noktadan oluşur.
      • low.longitude > high.longitude ise boylam aralığı ters çevrilir (görüntü alanı, 180 derecelik boylam çizgisini geçer).
      • low.longitude = -180 derece ve high.longitude = 180 dereceyse görüntü alanı tüm boylamları içerir.
      • low.longitude = 180 derece ve high.longitude = -180 derece ise boylam aralığı boş olur.
      • low.latitude > high.latitude ise enlem aralığı boştur.
  • locationRestriction

    Aranacak alanı belirtir. Belirtilen alanın dışındaki sonuçlar döndürülmez. Bölgeyi dikdörtgen Görünüm olarak belirtin. Görünümü tanımlamayla ilgili bilgi edinmek için locationBias açıklamasına göz atın.

    locationRestriction veya locationBias değerlerini belirtebilirsiniz, ancak ikisini birden belirtemezsiniz. locationRestriction özelliğini sonuçların içinde olması gereken bölgeyi, locationBias de sonuçların yakınında olması gereken ancak alanın dışında da olabileceği bölgeyi belirtmek olarak düşünün.

  • maxResultCount

    Döndürülecek maksimum yer sonucu sayısını belirtir. 1 ile 20 (varsayılan) arasında olmalıdır.

  • minRating

    Sonuçları yalnızca ortalama kullanıcı puanı bu sınırdan yüksek veya bu sınıra eşit olanlarla kısıtlar. Değerler, 0,5'lik artışlarla 0,0 ile 5,0 (dahil) arasında olmalıdır. Örneğin: 0, 0,5, 1,0, ... , 5,0 dahil. Değerler en yakın 0,5'e yuvarlanır. Örneğin, 0,6 değeri 1,0'dan küçük bir puana sahip tüm sonuçları eler.

  • priceLevels

    Aramayı belirli fiyat düzeylerinde işaretlenen yerlerle sınırlandırın. Varsayılan olarak tüm fiyat seviyeleri seçilir.

    PriceLevel tarafından tanımlanan bir veya daha fazla değerden oluşan bir dizi belirtin.

    Örneğin:

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

    Sonuçların yanıtta nasıl sıralandığını belirtir. API, geçerli olduğunda varsayılan olarak RELEVANCE kullanır. Örneğin, "İstanbul'daki restoranlar" gibi bir sorgu için RELEVANCE varsayılan değerdir. "Mountain View, CA" gibi coğrafi sorgular veya diğer sorgu türleri için hiçbir varsayılan ayar uygulanmaz ve sonuçlar arka uç tarafından döndürüldükleri sırayla gösterilir.

    Olası değerlere örnekler:

    • .distance: Sonuçları mesafeye göre sıralayın.
    • .relevance: Sonuçları alaka düzeyine göre sıralayın.
  • regionCode

    Yanıtı biçimlendirmek için kullanılan, iki karakterli CLDR kodu değeri olarak belirtilen bölge kodu. Bu parametrenin arama sonuçları üzerinde de önyargı etkisi olabilir. Varsayılan değer yoktur.

    Yanıttaki adres alanının ülke adı bölge koduyla eşleşirse ülke kodu adresten çıkarılır.

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

Metin Arama yanıtları

Text Search API, eşleşen yer başına bir GMSPlace nesnesi olacak şekilde GMSPlace nesneleri biçiminde bir eşleşme dizisi döndürür.