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, konuma (bölge, konum kısıtlaması veya konum sapması gibi) göre belirlendiğinden emin olun.

"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 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 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;
      }
    }
  }
];

GooglePlacesSwift

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ı

Text Search API, biçimi GMSPlace nesnelerinde, eşleşen yer başına bir GMSPlace nesnesi bulunur.

Veri alanlarıyla birlikte, GMSPlace yanıt aşağıdaki üye işlevlerini içerir:

  • isOpen, bir yerin belirli bir saatte açık olup olmadığını hesaplar.
  • isOpenAtDate bir yerin belirli bir tarihte açık olup olmadığını hesaplar.

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, 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:

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

  • 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, ancak her 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.

    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. Varsayılan yarıçap 0,0'dır. Örneğin:

      request.locationBias =  GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(40.7, -74.0), 200.0)
      
    • 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ş.
  • 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 her 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. Şu değerler arasında olmalıdır: 1 ve 20 (varsayılan) değerleri dahil.

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

    Tanımlayıcılı olarak bir veya daha fazla değerden oluşan bir dizi belirtin: PriceLevel.

    Ö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), 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.

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