Metin Arama (Yeni)

Platform seçin: Android iOS JavaScript Web Hizmeti

Metin Arama, bir dizi yer hakkında bilgi döndürür seçim yapabilirsiniz. Örneğin, "İstanbul'da pizza", "yakınındaki ayakkabı mağazaları" Ottawa" veya "Ana Cadde No: 123". Hizmet, bir yer listesiyle yanıt verir eşleşmesini ifade eder.

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şenler içeren istekler. İlk iki örnek gibi istekler, konum (bölge, konum kısıtlaması veya konum sapması gibi) ayarlanmış olmalıdır.

"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ı.
"İstanbul'da restoran zinciri" Birden çok "Zincir restoran" 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 tek bir işletme var. Ayrıştırmak için sokak adresi gerekmiyor.
"New York'ta 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 ile yer listesini alın

GMSPlacesClient searchByTextWithRequest: numaralı telefonu arayarak bir Metin Arama isteğinde bulunun. doğru GMSPlaceSearchByTextRequest Türündeki istek parametrelerini ve bir geri çağırma yöntemini tanımlayan nesne GMSPlaceSearchByTextResultCallback, biraz zaman alabilir.

GMSPlaceSearchByTextRequest nesnesi, zorunlu ve isteğe bağlı parametreler belirtin. Gerekli parametreler şunları içerir:

  • GMSPlace nesnesinde döndürülecek alanların listesi, ayrıca tarafından tanımlanan alan maskesi adı verilen GMSPlaceProperty. Alan listesinde en az bir alan belirtmezseniz veya alan adını sonra çağrı, bir hata döndürür.
  • Metin sorgusu.

Bu örnek metin arama isteği, yanıt GMSPlace nesnelerinin aramadaki her GMSPlace nesnesi için yer adını ve yer kimliğini içermelidir sonuç. Ayrıca, yanıtı yalnızca şu türdeki yerleri döndürecek şekilde filtreler: "restoran".

Swift

// Create the GMSPlaceSearchByTextRequest object.
let myProperties = [GMSPlaceProperty.name, GMSPlaceProperty.placeID].map {$0.rawValue}
let request = GMSPlaceSearchByTextRequest(textQuery:"pizza in New York", placeProperties:myProperties)
request.isOpenNow = true
request.includedType = "restaurant"
request.maxResultCount = 5
request.minRating = 3.5
request.rankPreference = .distance
request.isStrictTypeFiltering = true
request.locationBias =  GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(40.7, -74.0), 200.0)

// Array to hold the places in the response
var placeResults: [GMSPlace] = []

let callback: GMSPlaceSearchByTextResultCallback = { [weak self] results, error in
  guard let self, error == nil else {
    if let error {
      print(error.localizedDescription)
    }
    return
  }
  guard let results = results as? [GMSPlace] else {
    return
  }
  placeResults = results
}

GMSPlacesClient.shared().searchByText(with: request, callback: callback)

Objective-C

// Create the GMSPlaceSearchByTextRequest object.
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.locationBias = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(40.7, -74.0), 200.0);

// Array to hold the places in the response
_placeResults = [NSArray array];

// Create the GMSPlaceSearchByTextRequest object.
[_placesClient searchByTextWithRequest:request
    callback:^(NSArray<GMSPlace *> *_Nullable placeResults, NSError * _Nullable error) {
      if (error != nil) {
        NSLog(@"An error occurred %@", [error localizedDescription]);
        return;
      } else {
        if (placeResults.count > 0) {
          // Get list of places.
          _placeResults = placeResults;
      }
    }
  }
];

iOS için Yerler Swift SDK'sı (Önizleme)

let restriction = RectangularLocationRestriction(
      northEast: CLLocationCoordinate2D(latitude: 20, longitude: 30),
      southWest: CLLocationCoordinate2D(latitude: 40, longitude: 50)
)
let searchByTextRequest = SearchByTextRequest(
        textQuery: "pizza in New York",
        placeProperties: [ .name, .placeID ],
        locationRestriction: restriction,
        includedType: .restaurant,
        maxResultCount: 5,
        minRating: 3.5,
        priceLevels: [ .moderate, .inexpensive ],
        isStrictTypeFiltering: true
)
switch await placesClient.searchByText(with: searchByTextRequest) {
case .success(let places):
  // Handle places
case .failure(let placesError):
  // Handle error
}

Metin Arama yanıtları

Metin Arama API'si, eşleşen her yer için bir GMSPlace nesnesi içeren GMSPlace nesneleri biçiminde bir eşleşme dizisi döndürür.

Açık durumunu al

GMSPlacesClient nesnesi, isOpenWithRequest (Swift'te isOpenRequest ve GooglePlacesSwift'te isPlaceOpenRequest) adlı üye işlevi içerir. Bu işlev, çağrıda belirtilen saate göre söz konusu yerin o anda açık olup olmadığını belirten bir yanıt döndürür.

Bu yöntem, aşağıdakileri içeren GMSPlaceIsOpenWithRequest türündeki tek bir bağımsız değişken alır:

  • Bir GMSPlace nesnesi veya yer kimliğini belirten bir dize. Gerekli alanlarla Yer nesnesinin oluşturulması hakkında daha fazla bilgi için Yer ayrıntıları'na bakın.
  • Kontrol etmek istediğiniz zamanı belirten isteğe bağlı bir NSDate (Obj-C) veya Date (Swift) nesnesi. Herhangi bir saat belirtilmezse varsayılan olarak şu an kullanılır.
  • Yanıtı işlemek için GMSPlaceOpenStatusResponseCallback yöntemi.
  • &gt;

GMSPlaceIsOpenWithRequest yöntemi, aşağıdaki alanların GMSPlace nesnesinde ayarlanmasını gerektirir:

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

Bu alanlar Place nesnesinde sağlanmazsa veya bir yer kimliği iletiyorsanız yöntem bunları almak için GMSPlacesClient GMSFetchPlaceRequest: kullanır.

isOpenWithRequest yanıt

isOpenWithRequest, işletmenin açık mı kapalı mı olduğunu veya durumun bilinmiyor olduğunu belirten status adlı boole değerini içeren bir GMSPlaceIsOpenResponse nesnesi döndürür.

Dil Açıksa değer Kapalıysa değer Durum bilinmiyorsa değer
Swift .open .closed .unknown
Objective-C GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown
GooglePlacesSwift (Önizleme) true false nil

isOpenWithRequest için faturalandırma

  • GMSPlacePropertyUTCOffsetMinutes ve GMSPlacePropertyBusinessStatus alanları, Temel Veri SKU'su kapsamında ücretlendirilir. Çalışma Saatlerinin geri kalanı için Yer Ayrıntıları (Gelişmiş) SKU altında ödeme alınır.
  • GMSPlace nesnenizde önceki bir istekte zaten bu alanlar varsa sizden tekrar ücret alınmaz.

Örnek: GMSPlaceIsOpenWithRequest isteğinde bulunma

Aşağıdaki örnekte, mevcut bir GMSPlace nesnesi içinde bir GMSPlaceIsOpenWithRequest işleminin nasıl başlatılacağı gösterilmektedir.

Swift

    let isOpenRequest = GMSPlaceIsOpenRequest(place: place, date: nil)
      GMSPlacesClient.shared().isOpen(with: isOpenRequest) { response, error in
        if let error = error {
          // Handle Error
        }
        switch response.status {
          case .open:
            // Handle open
          case .closed:
            // Handle closed
          case .unknown:
            // Handle unknown
        }
      }
        

Objective-C

          GMSPlaceIsOpenRequest *isOpenRequest = [[GMSPlaceIsOpenRequest alloc] initWithPlace:place date:nil];
  
          [[GMSPlacesClient sharedClient] isOpenWithRequest:isOpenRequest callback:^(GMSPlaceIsOpenResponse response, NSError *_Nullable error) {
            if (error) {
              // Handle error
            }
  
            switch (response.status) {
              case GMSPlaceOpenStatusOpen:
                // Handle open
              case GMSPlaceOpenStatusClosed:
                // Handle closed
              case GMSPlaceOpenStatusUnknown:
                // Handle unknown
            }
          }];
          

GooglePlacesSwift

          let isOpenRequest = IsPlaceOpenRequest(place: place)
          switch await placesClient.isPlaceOpen(with: isOpenRequest) {
            case .success(let isOpenResponse):
              switch isOpenResponse.status {
                case true:
                  // Handle open
                case false:
                  // Handle closed
                case nil:
                  // Handle unknown
            case .failure(let placesError):
              // Handle error
          }
          

Gerekli parametreler

Gerekli olduğunu belirtmek için GMSPlaceSearchByTextRequest nesnesini kullanın parametreleridir.

  • Alan listesi

    Döndürülecek yer verisi özelliklerini belirtin. Şunlardan oluşan bir listeyi iletin: GMSPlace özellikleri ile birlikte döndürülecek veri alanlarını belirtin. Alanı atlarsanız isteği bir hata döndürür.

    Alan listeleri, gereksiz veri istememenizi sağlamak için iyi bir tasarım uygulamasıdır. Bu sayede gereksiz işlem süresi ve faturalandırma ücretlerinden kaçınabilirsiniz.

    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, GMSPlacePropertyReviews, GMSPlacePropertyServesBeer, GMSPlacePropertyServesBreakfast, GMSPlacePropertyServesBrunch, GMSPlacePropertyServesDinner, GMSPlacePropertyServesLunch, GMSPlacePropertyServesVegetarianFood, GMSPlacePropertyServesWine, GMSPlacePropertyTakeout
  • textQuery

    Aranacak metin dizesi, örneğin: "restoran", "123 Ana "İstanbul'da gidilecek en iyi yer".

İsteğe bağlı parametreler

İsteğe bağlı olanı belirtmek için GMSPlaceSearchByTextRequest nesnesini kullanın parametreleridir.

  • includedType

    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:

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

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

  • isStrictTypeFiltering

    includeType parametresiyle kullanılır. Şuna ayarlandığında true, yalnızca includeType döndürüldü. False (yanlış) değerine ayarlandığında varsayılan, yanıtta eşleşmeyen yerler olabilir belirtilen türlerde.

  • locationBias

    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ı.

    locationRestriction veya locationBias ikilisinden birini belirtebilirsiniz; ikisini birden belirtmeyin. locationRestriction, sonuçların içinde olması gereken bölge ve locationBias olarak 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ıçapıyla tanımlanır. Yarıçap, 0,0 ile 50000,0 arasında (bu değerler dahil) olmalıdır. Varsayılan yarıçap 0,0'dır. Örneğin:

      request.locationBias =  GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(40.7, -74.0), 200.0)
    • Dikdörtgen, iki çapraz karşıt düşük ve yüksek nokta olarak temsil edilen bir enlem-boylam görüntü alanıdır. 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ı şunlardan oluşur: 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ş.
  • locationRestriction

    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 / locationBias bölümünü tanımlama hakkında bilgi edinin.

    locationRestriction veya locationBias, ancak ikisi birden değil. locationRestriction, sonuçların içinde olması gereken bölge ve locationBias olarak sonuçların yakınında olması gereken ancak dışında olabilecek bölgeyi belirtmek inceleyeceğiz.

  • maxResultCount

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

  • minRating

    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.

  • priceLevels

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

    PriceLevel ile tanımlanan bir veya daha fazla değer dizisi belirtin.

    Örneğin:

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

    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 .relevance (sonuçları arama alaka düzeyine göre sıralama) varsayılan değerdir. rankPreference öğesini .relevance olarak ayarlayabilir veya .distance (sonuçları mesafeye göre sırala).
    • "Mountain View, CA" gibi kategorik olmayan bir sorgu için rankPreference politikasını ayarlamadan bırakın.
  • regionCode

    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) iken ISO 3166-1 kodu "gb"dir (teknik olarak "Büyük Britanya ve Kuzey İrlanda Birleşik Krallığı" tüzel kişiliği için). Parametre, geçerli yasalara göre sonuçları etkileyebilir.

İlişkilendirmeleri uygulamanızda gösterme

Uygulamanız, GMSPlacesClient (ör. fotoğraflar ve yorumlar) uygulamada, gerekli ilişkilendirmeler de gösterilmelidir.

Örneğin, GMSPlacesClient nesnesinin reviews özelliği en fazla beşten oluşan bir dizi içerir GMSPlaceReview nesneler'i tıklayın. Her GMSPlaceReview nesnesi atıflar ve yazar atıfları içerebilir. Yorumu uygulamanızda gösteriyorsanız atıfı veya yazarı da göstermeniz gerekir ilişkilendirmesine yardımcı olur.

Daha fazla bilgi için ilişkilendirmeler hakkındaki dokümanları inceleyin.