टेक्स्ट से खोजें

Text Search किसी स्ट्रिंग के आधार पर, जगहों के एक सेट के बारे में जानकारी दिखाता है. उदाहरण के लिए, "दिल्ली में पिज़्ज़ा", "ओटावा के आस-पास के जूतों की दुकानें" या "123 मेन रोड". यह सेवा, टेक्स्ट स्ट्रिंग से मेल खाने वाली जगहों और जगह के किसी भी तरह के पूर्वाग्रह के साथ जवाब देती है.

यह सेवा खास तौर पर, ऑटोमेटेड सिस्टम (कार्रवाइयों को अपने-आप पूरा करने वाला सिस्टम) में पते के बारे में संदिग्ध क्वेरी करने के लिए काम की है. स्ट्रिंग के बिना पते वाले कॉम्पोनेंट, कारोबारों और पतों से मेल खा सकते हैं. पते से जुड़ी अस्पष्ट क्वेरी के उदाहरण, खराब फ़ॉर्मैट वाले पते या ऐसे अनुरोध होते हैं जिनमें पते के अलावा दूसरे कॉम्पोनेंट शामिल होते हैं, जैसे कि कारोबार के नाम. जब तक कोई जगह (जैसे कि इलाका, जगह पर लागू होने वाली पाबंदी या जगह से जुड़ा कोई मापदंड) सेट नहीं होता, तब तक हो सकता है कि पहले दो उदाहरणों जैसे अनुरोध से कोई नतीजा न मिले.

"10 हाई स्ट्रीट, यूनाइटेड किंगडम" या "123 मेन स्ट्रीट, अमेरिका" यूके में एक से ज़्यादा "हाई स्ट्रीट"; अमेरिका में कई "मुख्य सड़क". जब तक जगह की जानकारी की पाबंदी सेट नहीं हो जाती, तब तक क्वेरी से मनमुताबिक नतीजे नहीं मिलते.
"न्यूयॉर्क रेस्टोरेंट" न्यूयॉर्क में कई "चेन रेस्टोरेंट" की जगहें; सड़क का पता या सड़क का कोई नाम नहीं.
"10 हाई स्ट्रीट, एशर यूके" या "123 मेन स्ट्रीट, प्लेसेंटन यूएस" यूके के शहर एशर में सिर्फ़ एक "हाई स्ट्रीट"; अमेरिका के प्लेसेंटन सीए शहर में सिर्फ़ एक "मुख्य सड़क".
"Uniqueरेस्टोरेंटName न्यूयॉर्क" न्यूयॉर्क में इस नाम का सिर्फ़ एक संस्थान; अलग करने के लिए किसी मोहल्ले के पते की ज़रूरत नहीं है.
"दिल्ली में पिज़्ज़ा रेस्टोरेंट" इस क्वेरी में जगह की जानकारी से जुड़ी पाबंदी है और "पिज़्ज़ा रेस्टोरेंट" एक अच्छी तरह से तय की गई जगह का टाइप है. यह एक से ज़्यादा नतीजे दिखाता है.
"+1 514-670-8700"

इस क्वेरी में एक फ़ोन नंबर है. यह उस फ़ोन नंबर से जुड़ी जगहों के लिए एक से ज़्यादा नतीजे दिखाता है.

टेक्स्ट की मदद से जगहों की सूची पाएं

iOS के लिए Places SDK (नया) में एक टेक्स्ट खोज अनुरोध, इस फ़ॉर्म के बाद दिखता है:

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

ज़रूरी पैरामीटर

  • फ़ील्ड की सूची

    बताएं कि आपको कौनसी जगह की डेटा प्रॉपर्टी दिखानी है. GMSPlace प्रॉपर्टी की एक सूची पास करें. प्रॉपर्टी में, दिखाए जाने वाले डेटा फ़ील्ड की जानकारी होनी चाहिए. अगर फ़ील्ड मास्क को छोड़ दिया जाता है, तो अनुरोध करने पर गड़बड़ी दिखेगी.

    फ़ील्ड सूचियों को डिज़ाइन करने का यह एक अच्छा तरीका है कि आप बेवजह डेटा का अनुरोध न करें. इससे प्रोसेसिंग में लगने वाले गैर-ज़रूरी समय और बिलिंग शुल्क से बचा जा सकता है.

    इनमें से एक या उससे ज़्यादा फ़ील्ड शामिल करें:

    • ये फ़ील्ड, Text Search (सिर्फ़ आईडी) SKU को ट्रिगर करते हैं:

      GMSPlacePropertyPlaceID, GMSPlacePropertyName
    • नीचे दिए गए फ़ील्ड, Text Search (बेसिक) SKU को ट्रिगर करते हैं:

      GMSPlacePropertyAddressComponents, GMSPlacePropertyBusinessStatus, GMSPlacePropertyFormattedAddress, GMSPlacePropertyIconBackgroundColor, GMSPlacePropertyIconImageURL, GMSPlacePropertyCoordinate, GMSPlacePropertyPhotos, GMSPlacePropertyPlusCode, GMSPlacePropertyTypes, GMSPlacePropertyUTCOffsetMinutes, GMSPlacePropertyViewport, GMSPlacePropertyWheelchairAccessibleEntrance
    • नीचे दिए गए फ़ील्ड, Text Search (ऐडवांस) SKU को ट्रिगर करते हैं:

      GMSPlacePropertyCurrentOpeningHours, GMSPlacePropertySecondaryOpeningHours, GMSPlacePropertyPhoneNumber, GMSPlacePropertyPriceLevel, GMSPlacePropertyRating, GMSPlacePropertyOpeningHours, GMSPlacePropertyUserRatingsTotal, GMSPlacePropertyWebsite
    • ये फ़ील्ड, Text Search (पसंदीदा) SKU को ट्रिगर करते हैं:

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

    वह टेक्स्ट स्ट्रिंग जिस पर खोज करनी है. उदाहरण के लिए: "रेस्टोरेंट", "123 मुख्य सड़क" या "दिल्ली में घूमने की सबसे अच्छी जगह".

ज़रूरी नहीं पैरामीटर

  • includedType

    नतीजों को टेबल A में तय किए गए टाइप से मेल खाने वाली जगहों तक सीमित करता है. सिर्फ़ एक टाइप तय किया जा सकता है. उदाहरण के लिए:

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

    अगर true, तो सिर्फ़ उन जगहों को दिखाएं जो क्वेरी भेजते समय कारोबार के लिए खुली थीं. अगर false, खुली स्थिति पर ध्यान दिए बिना सभी कारोबार वापस करें. अगर आप इस पैरामीटर को false पर सेट करते हैं, तो Google जगहें के डेटाबेस में कारोबार के खुले होने के समय की जानकारी देने वाली जगहें नहीं दिखाई जाती हैं.

  • isStrictTypeFiltering

    इसका इस्तेमाल includeType पैरामीटर के साथ किया जाता है. अगर इसे true पर सेट किया जाता है, तो सिर्फ़ includeType में तय किए गए टाइप से मेल खाने वाली जगहें दिखाई जाती हैं. 'गलत' होने पर डिफ़ॉल्ट रूप से, रिस्पॉन्स में ऐसी जगहें शामिल हो सकती हैं जो तय किए गए टाइप से मेल न खाती हों.

  • locationBias

    खोजने के लिए जगह तय करता है. इस जगह से जुड़ी जानकारी को मापदंड से बाहर रखा गया है. इसका मतलब है कि तय की गई जगह के आस-पास के नतीजे दिखाए जा सकते हैं. इनमें, तय की गई जगह से बाहर के नतीजे भी शामिल हैं.

    आपके पास locationRestriction या locationBias बताने का विकल्प होता है, लेकिन दोनों का नहीं. locationRestriction उस क्षेत्र के बारे में बताएं जिसमें नतीजे होने चाहिए. साथ ही, locationBias उस क्षेत्र के बारे में बताएं जिसके आस-पास नतीजे होने चाहिए, लेकिन वे उस जगह के बाहर भी हो सकते हैं.

    क्षेत्र को आयताकार व्यूपोर्ट या सर्कल के रूप में तय करें.

    • एक वृत्त को केंद्र बिंदु और मीटर में त्रिज्या के आधार पर परिभाषित किया जाता है. दायरा 0.0 से 50, 000.0 के बीच होना चाहिए. डिफ़ॉल्ट रेडियस 0.0 है. उदाहरण के लिए:

      request.locationBias =  GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(latitude: 20, longitude: 30), radius: 2.0)
      
    • रेक्टैंगल, अक्षांश-देशांतर व्यूपोर्ट होता है, जिसे कम और ज़्यादा पॉइंट के सामने दो तिरछे तरीके से दिखाया जाता है. सबसे नीचे वाला पॉइंट, रेक्टैंगल के दक्षिण-पश्चिम कोने को दिखाता है. वहीं, ऊंचाई पॉइंट, रेक्टैंगल के उत्तर-पूर्वी कोने को दिखाती है.

      व्यूपोर्ट को बंद क्षेत्र माना जाता है, यानी इसमें उसकी सीमा शामिल होती है. अक्षांश की सीमाएं -90 से 90 डिग्री के बीच होनी चाहिए और देशांतर की सीमाएं -180 से 180 डिग्री के बीच होनी चाहिए:

      • अगर low = high है, तो व्यूपोर्ट में वह एक पॉइंट शामिल होता है.
      • अगर low.longitude > high.longitude है, तो देशांतर की रेंज उलटी होती है (व्यूपोर्ट 180 डिग्री देशांतर लाइन को पार करता है).
      • अगर low.longitude = -180 डिग्री और high.longitude = 180 डिग्री है, तो व्यूपोर्ट में सभी देशांतर शामिल होते हैं.
      • अगर low.longitude = 180 डिग्री और high.longitude = -180 डिग्री है, तो देशांतर की सीमा खाली होगी.
      • अगर low.latitude > high.latitude है, तो अक्षांश की रेंज खाली होती है.
  • locationRestriction

    खोजने के लिए जगह तय करता है. चुने गए इलाके से बाहर के नतीजे नहीं दिखाए जाते. क्षेत्र को आयताकार व्यूपोर्ट के रूप में तय करें. व्यूपोर्ट तय करने के बारे में जानकारी के लिए locationBias का ब्यौरा देखें.

    आपके पास locationRestriction या locationBias बताने का विकल्प होता है, लेकिन दोनों का नहीं. locationRestriction उस क्षेत्र के बारे में बताएं जिसमें नतीजे होने चाहिए. साथ ही, locationBias उस क्षेत्र के बारे में बताएं जिसके आस-पास नतीजे होने चाहिए, लेकिन वे उस जगह के बाहर भी हो सकते हैं.

  • maxResultCount

    यह बताता है कि ज़्यादा से ज़्यादा कितनी जगह के नतीजे दिखाए जाने हैं. यह वैल्यू 1 से 20 (डिफ़ॉल्ट) के बीच होनी चाहिए.

  • minRating

    नतीजों को सिर्फ़ उन लोगों को दिखाता है जिनकी औसत उपयोगकर्ता रेटिंग इस सीमा से ज़्यादा या इसके बराबर है. वैल्यू को 0.5 की बढ़ोतरी के साथ 0.0 और 5.0 के बीच होना चाहिए. उदाहरण के लिए: 0, 0.5, 1.0, ... , 5.0 के साथ. वैल्यू को सबसे करीबी 0.5 तक पूर्णांकित किया जाता है. उदाहरण के लिए, अगर वैल्यू 0.6 है, तो 1.0 से कम रेटिंग वाले सभी नतीजों को हटा दिया जाता है.

  • priceLevels

    खोज को तय कीमत लेवल पर मार्क किए गए स्थानों तक सीमित करें. डिफ़ॉल्ट रूप से, कीमत के सभी लेवल चुने जाते हैं.

    PriceLevel के ज़रिए तय की गई एक या ज़्यादा वैल्यू का कलेक्शन बनाएं.

    उदाहरण के लिए:

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

    इससे पता चलता है कि जवाब में नतीजों को कैसे रैंक किया जाता है. लागू होने पर, एपीआई डिफ़ॉल्ट रूप से RELEVANCE का इस्तेमाल करता है. उदाहरण के लिए, "न्यूयॉर्क शहर के रेस्टोरेंट" जैसी क्वेरी के लिए, RELEVANCE डिफ़ॉल्ट होगा. "माउंटेन व्यू, सीए" या दूसरी तरह की क्वेरी के लिए, कोई डिफ़ॉल्ट लागू नहीं होता है. नतीजे उसी क्रम में दिखते हैं जिस क्रम में वे बैकएंड से लौटाए जाते हैं.

    वैल्यू में ये शामिल हैं:

    • .distance: दूरी के हिसाब से नतीजों को रैंक करें.
    • .relevance: प्रासंगिकता के मुताबिक नतीजों को रैंक करें.
  • regionCode

    रिस्पॉन्स को फ़ॉर्मैट करने के लिए इस्तेमाल किया गया क्षेत्र का कोड, जिसे दो वर्ण वाले CLDR कोड की वैल्यू के तौर पर दिखाया जाता है. इस पैरामीटर की वजह से, खोज के नतीजों पर असर पड़ सकता है. कोई डिफ़ॉल्ट वैल्यू नहीं है.

    अगर जवाब में पते के फ़ील्ड में दिए गए देश का नाम, क्षेत्रीय कोड से मेल खाता है, तो पते से देश का कोड हटा दिया जाता है.

    ज़्यादातर CLDR कोड, ISO 3166-1 कोड से मेल खाते हैं. हालांकि, इसमें कुछ खास अपवाद हैं. उदाहरण के लिए, यूनाइटेड किंगडम का ccTLD "uk" (.co.uk) है, जबकि इसका ISO 3166-1 कोड "gb" है (तकनीकी रूप से "यूनाइटेड किंगडम ऑफ़ ग्रेट ब्रिटेन और नॉदर्न आयरलैंड" की इकाई के लिए). पैरामीटर, लागू कानून के आधार पर नतीजों पर असर डाल सकता है.

टेक्स्ट से की गई खोज के जवाब

Text Search API, GMSPlace ऑब्जेक्ट के रूप में, मैच का कलेक्शन दिखाता है. इसमें, हर मिलती-जुलती जगह के लिए एक GMSPlace ऑब्जेक्ट होता है.