टेक्स्ट खोज की मदद से, जगहों के किसी सेट के बारे में जानकारी दिखती है जो कि. उदाहरण के लिए, "दिल्ली में पिज़्ज़ा", "आस-पास के जूते की दुकान ओटावा" या "123 Main Street". सेवा, जगहों की सूची के साथ जवाब देती है का मिलान होता है.
यह सेवा खास तौर पर तब काम आती है, जब पते की जानकारी साफ़ तौर पर न दी गई हो एक ऑटोमेटेड सिस्टम में क्वेरी करता है, स्ट्रिंग के बिना पते वाले कॉम्पोनेंट कारोबारों से मैच कर सकते हैं. साथ ही, पते. पते से जुड़ी ऐसी क्वेरी के उदाहरण जिनमें साफ़ तौर पर जानकारी नहीं दी गई है, खराब फ़ॉर्मैट वाले पते हैं या ऐसे अनुरोध जिनमें कारोबार के नाम जैसे बिना पते वाले कॉम्पोनेंट शामिल हों. पहले दो उदाहरणों जैसे अनुरोध शून्य नतीजे दिखा सकते हैं, जब तक कि जगह की जानकारी (जैसे कि क्षेत्र, जगह की पाबंदी या जगह के हिसाब से पूर्वाग्रह) सेट हो.
"10 हाई स्ट्रीट, यूनाइटेड किंगडम" या "123 Main Street, US" | यूके के कई "हाई स्ट्रीट"; यूएस में कई "मुख्य सड़क". क्वेरी से मनमुताबिक नतीजे तब तक नहीं मिलते, जब तक कि जगह की जानकारी की पाबंदी नहीं होती सेट. |
"न्यूयॉर्क में चेन रेस्टोरेंट" | कई "चेन रेस्टोरेंट" दिल्ली में जगहें; मोहल्ले का पता नहीं है या यहां तक कि सड़क का नाम भी. |
"10 हाई स्ट्रीट, एशर यूके" या "123 मेन स्ट्रीट, प्लेसेंटन यूएस" | सिर्फ़ एक "हाई स्ट्रीट" यूके के शहर ईशर में; केवल एक "मुख्य सड़क" एक अमेरिकी शहर प्लेसेंटन सीए (कैलिफ़ोर्निया के लिए) में. |
"यूनिक रेस्टोरेंट का नाम न्यूयॉर्क" | न्यूयॉर्क में इस नाम का सिर्फ़ एक होटल; मोहल्ले का पता नहीं है जिन्हें पहचान करने की ज़रूरत होती है. |
"दिल्ली में पिज़्ज़ा रेस्टोरेंट" | इस क्वेरी में, जगह की जानकारी से जुड़ी पाबंदी और "पिज़्ज़ा रेस्टोरेंट" जैसी क्वेरी शामिल हैं इससे मेल खाता है आपके पास जगह की सटीक जानकारी होनी चाहिए. यह कई नतीजे दिखाता है. |
"+1 514-670-8700" | इस क्वेरी में फ़ोन नंबर शामिल है. यह उस फ़ोन नंबर से जुड़ी जगहें हैं. |
टेक्स्ट से खोज के हिसाब से जगहों की सूची पाएं
GMSPlacesClient
searchByTextWithRequest:
पर कॉल करके टेक्स्ट खोज का अनुरोध करें.
पास
GMSPlaceSearchByTextRequest
ऑब्जेक्ट है, जो अनुरोध पैरामीटर और कॉलबैक मेथड को तय करता है.
GMSPlaceSearchByTextResultCallback
,
का इस्तेमाल करें.
GMSPlaceSearchByTextRequest
ऑब्जेक्ट
ज़रूरी है और ज़रूरी नहीं पैरामीटर
. ज़रूरी पैरामीटर में ये शामिल हैं:
GMSPlace
ऑब्जेक्ट में दिखाए जाने वाले फ़ील्ड की सूची भी जिसे फ़ील्ड मास्क कहा जाता है, जैसा किGMSPlaceProperty
. अगर आप फ़ील्ड सूची में कम से कम एक फ़ील्ड को शामिल नहीं करते हैं या अगर आप फ़ील्ड को छोड़ देते हैं फ़ील्ड सूची का इस्तेमाल करने देता है, तो कॉल एक गड़बड़ी दिखाता है.- टेक्स्ट क्वेरी.
टेक्स्ट खोजने के अनुरोध के इस उदाहरण में बताया गया है कि रिस्पॉन्स GMSPlace
ऑब्जेक्ट
खोज में हर GMSPlace
ऑब्जेक्ट के लिए, जगह का नाम और जगह का आईडी शामिल हो
नतीजे. यह रिस्पॉन्स को सिर्फ़ टाइप की जगहें दिखाने के लिए भी फ़िल्टर करता है
"रेस्टोरेंट".
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 }
टेक्स्ट से जुड़े खोज के जवाब
Text Search API,
इसका रूप
GMSPlace
ऑब्जेक्ट हैं, जिनमें मेल खाने वाली हर जगह की एक GMSPlace
ऑब्जेक्ट है.
डेटा फ़ील्ड के साथ, इसमें GMSPlace
ऑब्जेक्ट
रिस्पॉन्स में ये मेंबर फ़ंक्शन शामिल होते हैं:
-
isOpen
यह हिसाब लगाता है कि कोई जगह दिए गए समय पर खुली है या नहीं. isOpenAtDate
यह कैलकुलेट करता है कि दी गई तारीख पर कोई जगह खुली है या नहीं.
ज़रूरी पैरामीटर
ज़रूरी जानकारी देने के लिए, GMSPlaceSearchByTextRequest
ऑब्जेक्ट का इस्तेमाल करें
पैरामीटर का इस्तेमाल करें.
-
फ़ील्ड की सूची
बताएं कि जगह की कौनसी डेटा प्रॉपर्टी दिखानी है. की एक सूची पास करें
GMSPlace
प्रॉपर्टी, जो दिए जाने वाले डेटा फ़ील्ड का विवरण देते हैं. अगर आप इस फ़ील्ड को छोड़ देते हैं मास्क नहीं देते, तो अनुरोध एक गड़बड़ी दिखाएगा.फ़ील्ड की सूचियां डिज़ाइन का एक अच्छा तरीका है. इससे यह पक्का किया जाता है कि आप अनुरोध न करें. डेटा की ज़रूरत नहीं होती, जिससे प्रोसेसिंग में लगने वाले ज़्यादा समय को कम करने और शुल्क नहीं लिया जाएगा.
इनमें से एक या ज़्यादा फ़ील्ड चुनें:
ये फ़ील्ड Text Search (सिर्फ़ आईडी) SKU को ट्रिगर करते हैं:
GMSPlacePropertyPlaceID
,GMSPlacePropertyName
ये फ़ील्ड टेक्स्ट सर्च (बेसिक) 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
,GMSPlacePropertyReviews
,GMSPlacePropertyServesBeer
,GMSPlacePropertyServesBreakfast
,GMSPlacePropertyServesBrunch
,GMSPlacePropertyServesDinner
,GMSPlacePropertyServesLunch
,GMSPlacePropertyServesVegetarianFood
,GMSPlacePropertyServesWine
,GMSPlacePropertyTakeout
-
textQuery
वह टेक्स्ट स्ट्रिंग जिस पर खोजना है. उदाहरण के लिए: "रेस्टोरेंट", "123 मुख्य सड़क" या "सैन फ़्रांसिस्को में घूमने की सबसे अच्छी जगह".
ज़रूरी नहीं पैरामीटर
विकल्प के बारे में बताने के लिए, GMSPlaceSearchByTextRequest
ऑब्जेक्ट का इस्तेमाल करें
पैरामीटर का इस्तेमाल करें.
includedType
इससे नतीजों को उन जगहों तक सीमित करता है जो इसके बताए गए टाइप से मेल खाते हैं टेबल A. सिर्फ़ एक टाइप चुना जा सकता है. उदाहरण के लिए:
request.includedType = "bar"
request.includedType = "pharmacy"
isOpenNow
अगर
true
है, तो सिर्फ़ उन जगहों को दिखाएं जो कारोबार के लिए खुली हैं क्वेरी भेजते समय. अगर यहfalse
है, तो सभी कारोबारों को वापस करें चाहे ओपन स्टेटस कुछ भी हो. वे स्थान जो Google स्थल डेटाबेस में खुले होने का समय दर्ज नहीं करते हैं अगर इस पैरामीटर कोfalse
पर सेट किया जाता है, तो यह फ़ंक्शन दिखता है.isStrictTypeFiltering
includeType
पैरामीटर के साथ इस्तेमाल किया जाता है. जब इस पर सेट किया गया होtrue
, सिर्फ़ वे जगहें जो इसके बताए गए प्रकारों से मेल खाती हैंincludeType
लौटाए गए हैं. 'गलत' होने पर, डिफ़ॉल्ट तौर पर जवाब में ऐसी जगहें शामिल हो सकती हैं जो मेल नहीं खातीं दर्ज करें.locationBias
इस नीति से, खोजे जाने वाले किसी इलाके के बारे में पता चलता है. इस जगह की जानकारी पूर्वाग्रह के तौर पर है जिसका मतलब है बताई गई जगह के आस-पास के नतीजे दिखाए जा सकते हैं. इनमें, नतीजे भी शामिल हैं का इस्तेमाल करें.
आपके पास
locationRestriction
याlocationBias
बताने का विकल्प है, लेकिन दोनों नहीं.locationRestriction
के बारे में सोचें कि वह क्षेत्र जिसमें परिणाम होने चाहिए औरlocationBias
इस रूप में वह क्षेत्र तय करते हुए जिसमें नतीजे इसके पास होने चाहिए, लेकिन उसके बाहर भी हो सकते हैं का इस्तेमाल करें.इलाके की जानकारी एक आयताकार व्यूपोर्ट या सर्कल के तौर पर दें.
सर्कल को सेंटर पॉइंट और मीटर में रेडियस से तय किया जाता है. दायरा यह 0.0 और 50000.0 के बीच होना चाहिए. डिफ़ॉल्ट दायरा 0.0 है. उदाहरण के लिए:
request.locationBias = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(40.7, -74.0), 200.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.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
(खोज प्रासंगिकता के आधार पर रैंक नतीजे) डिफ़ॉल्ट है.rankPreference
को.relevance
पर सेट किया जा सकता है या.distance
(दूरी के हिसाब से नतीजों को रैंक करें). - हमारा सुझाव है कि आप "माउंटेन व्यू, सीए" जैसी कैटगरी से जुड़ी अन्य क्वेरी के लिए जवाब दें
सेट न करें,
rankPreference
को सेट न करें.
- कैटगरी से जुड़ी क्वेरी के लिए, जैसे कि "रेस्टोरेंट इन न्यू यॉर्क सिटी" के लिए,
regionCode
जवाब को फ़ॉर्मैट करने के लिए इस्तेमाल किया जाने वाला क्षेत्रीय कोड, जिसे दो वर्ण वाले CLDR कोड की वैल्यू. इस पैरामीटर का पक्षपात भी हो सकता है खोज के नतीजों में दिखने वाला है. कोई डिफ़ॉल्ट मान नहीं है.
अगर जवाब में पता फ़ील्ड में देश का नाम मेल खाता है क्षेत्रीय कोड, पते में देश का कोड शामिल नहीं किया गया है.
ज़्यादातर CLDR कोड, ISO 3166-1 कोड से मेल खाते हैं. इसमें कुछ अहम अपवाद शामिल हैं. उदाहरण के लिए, यूनाइटेड किंगडम का ccTLD "यूके" (.co.uk) है, जबकि इसका ISO 3166-1 कोड "gb" है (तकनीकी तौर पर, इकाई "यूनाइटेड किंगडम ऑफ़ ग्रेट ब्रिटेन ऐंड नॉर्दर्न आयरलैंड" है. पैरामीटर, लागू कानून के आधार पर नतीजों पर असर डाल सकता है.
अपने ऐप्लिकेशन में एट्रिब्यूशन दिखाएं
जब आपका ऐप्लिकेशन इनसे मिली जानकारी को दिखाता है
GMSPlacesClient
जैसे कि फ़ोटो और समीक्षाएं, ऐप्लिकेशन को ज़रूरी एट्रिब्यूशन भी दिखाने चाहिए.
उदाहरण के लिए, GMSPlacesClient
ऑब्जेक्ट की reviews
प्रॉपर्टी
में ज़्यादा से ज़्यादा पाँच डेटा का अरे होता है
GMSPlaceReview
ऑब्जेक्ट हैं. हर GMSPlaceReview
ऑब्जेक्ट में एट्रिब्यूशन और लेखक के एट्रिब्यूशन शामिल हो सकते हैं.
अगर आपके ऐप्लिकेशन में समीक्षा दिखाई जाती है, तो आपको कोई एट्रिब्यूशन या लेखक भी दिखाना होगा
एट्रिब्यूशन.
ज़्यादा जानकारी के लिए, यहां दिया गया दस्तावेज़ देखें: एट्रिब्यूशन.