البحث النصي يعرض معلومات حول مجموعة من الأماكن بناءً على سلسلة. على سبيل المثال، "بيتزا في القاهرة" أو "متاجر أحذية بالقرب من أوتاوا" أو "123 الشارع الرئيسي". تستجيب الخدمة بعرض قائمة بالأماكن تطابق السلسلة النصية وأي تحيز موقع محدد.
تكون الخدمة مفيدة بشكل خاص لإنشاء عنوان غامض في نظام آلي والمكونات غير العنوانية في السلسلة قد تتطابق مع الأنشطة التجارية وكذلك . ومن أمثلة طلبات البحث الغامضة العناوين ذات التنسيق الرديء. أو الطلبات التي تتضمن مكوّنات لا تشمل العناوين، مثل أسماء الأنشطة التجارية قد لا تعرض طلبات مثل أول مثالين نتائج صفرية ما لم الموقع الجغرافي (مثل المنطقة أو قيود الموقع الجغرافي أو انحياز الموقع الجغرافي).
"10 High Street, UK" أو "123 الشارع الرئيسي، الولايات المتحدة" | العديد من متاجر "هاي ستريت" في المملكة المتحدة العديد من "الشوارع الرئيسية" في الولايات المتحدة. لا يعرض طلب البحث نتائج مرغوبة ما لم يكن تقييد الموقع تعيين. |
"سلسلة مطاعم نيويورك" | "مطعم تابع لسلسلة" متعددة المختلفة في نيويورك؛ لا يوجد عنوان شارع أو حتى اسم الشارع. |
"10 High Street, Escher UK" أو "123 الشارع الرئيسي, بليسانتون الولايات المتحدة" | شارع "هاي ستريت" واحد فقط في مدينة إيشر بالمملكة المتحدة؛ "شارع رئيسي" واحد فقط في مدينة بليسانتون بولاية كاليفورنيا الأمريكية. |
"UniqueRestaurantName في نيويورك" | مؤسسة واحدة فقط بهذا الاسم في نيويورك؛ لا يوجد عنوان شارع اللازمة للتمييز. |
"مطاعم البيتزا في دبي" | يتضمن طلب البحث هذا قيود الموقع، و"مطاعم البيتزا" CANNOT TRANSLATE نوع مكان محدد جيدًا. ويؤدي إلى إرجاع نتائج متعددة. |
" +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 }
ردود البحث النصي
تعرض واجهة برمجة تطبيقات البحث النصي صفيفًا من المطابقات في
شكل
GMSPlace
مع وجود كائن GMSPlace
واحد لكل مكان مطابق.
بالإضافة إلى حقول البيانات، هناك كائن GMSPlace
في
تحتوي الاستجابة على الدوال الأعضاء التالية:
-
تحسب
isOpen
ما إذا كان المكان مفتوحًا في وقت محدّد. isOpenAtDate
لحساب ما إذا كان المكان مفتوحًا في تاريخ معين.
المعلمات المطلوبة
استخدِم الكائن GMSPlaceSearchByTextRequest
لتحديد العنصر المطلوب.
معلمات البحث.
-
قائمة الحقول
حدِّد خصائص بيانات الأماكن التي تريد عرضها. اجتياز قائمة
GMSPlace
السمات التي تحدد حقول البيانات المراد عرضها. إذا حذفت الحقل فستعرض الطلب خطأ.تُعد قوائم الحقول ممارسة جيدة في التصميم لضمان عدم طلب البيانات غير الضرورية، مما يساعد على تجنب وقت المعالجة غير الضروري رسوم الفوترة.
حدِّد حقلاً واحدًا أو أكثر من الحقول التالية:
تؤدي الحقول التالية إلى تشغيل رمز التخزين التعريفي للبحث النصي (المعرّف فقط):
GMSPlacePropertyPlaceID
وGMSPlacePropertyName
تؤدّي الحقول التالية إلى تشغيل رمز التخزين التعريفي للبحث النصي (الأساسي):
GMSPlacePropertyAddressComponents
,GMSPlacePropertyBusinessStatus
,GMSPlacePropertyFormattedAddress
,GMSPlacePropertyIconBackgroundColor
,GMSPlacePropertyIconImageURL
,GMSPlacePropertyCoordinate
,GMSPlacePropertyPhotos
,GMSPlacePropertyPlusCode
,GMSPlacePropertyTypes
,GMSPlacePropertyUTCOffsetMinutes
,GMSPlacePropertyViewport
,GMSPlacePropertyWheelchairAccessibleEntrance
تؤدي الحقول التالية إلى تشغيل رمز التخزين التعريفي للبحث النصي (المتقدّم):
GMSPlacePropertyCurrentOpeningHours
,GMSPlacePropertySecondaryOpeningHours
,GMSPlacePropertyPhoneNumber
,GMSPlacePropertyPriceLevel
,GMSPlacePropertyRating
,GMSPlacePropertyOpeningHours
,GMSPlacePropertyUserRatingsTotal
,GMSPlacePropertyWebsite
تؤدي الحقول التالية إلى تشغيل رمز التخزين التعريفي للبحث النصي (المفضَّل):
GMSPlacePropertyCurbsidePickup
,GMSPlacePropertyDelivery
,GMSPlacePropertyDineIn
,GMSPlacePropertyEditorialSummary
,GMSPlacePropertyReservable
,GMSPlacePropertyReviews
,GMSPlacePropertyServesBeer
,GMSPlacePropertyServesBreakfast
,GMSPlacePropertyServesBrunch
,GMSPlacePropertyServesDinner
,GMSPlacePropertyServesLunch
,GMSPlacePropertyServesVegetarianFood
,GMSPlacePropertyServesWine
,GMSPlacePropertyTakeout
-
textQuery
السلسلة النصية المطلوب البحث عنها، على سبيل المثال: "مطعم"، "123 Main الشارع" أو "أفضل مكان للزيارة في سان فرانسيسكو".
المعلمات الاختيارية
استخدِم الكائن GMSPlaceSearchByTextRequest
لتحديد العنصر الاختياري.
معلمات البحث.
includedType
تقصر النتائج على الأماكن المطابقة للنوع المحدد الذي تم تحديده بواسطة الجدول (أ). يمكن تحديد نوع واحد فقط. على سبيل المثال:
request.includedType = "bar"
request.includedType = "pharmacy"
isOpenNow
في حال
true
، اعرض فقط تلك الأماكن المفتوحة. في وقت إرسال الاستعلام. في حالfalse
، إرجاع جميع الأنشطة التجارية بغض النظر عن حالة الفتح. الأماكن التي لا تحدد ساعات العمل في قاعدة بيانات أماكن Google هي في حال ضبط هذه المعلَمة علىfalse
.isStrictTypeFiltering
تُستخدَم مع مَعلمة
includeType
. عند الضبط علىtrue
، فقط الأماكن التي تطابق الأنواع المحددة بواسطة يتم إرجاعincludeType
. عندما يكون false، يمكن أن يحتوي الردّ على أماكن غير متطابقة مع الخيار التلقائي. الأنواع المحددة.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.5. على سبيل المثال: 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
(ترتيب النتائج حسب المسافة) - بالنسبة إلى طلب البحث غير الفئوي مثل "Mountain View, CA"، ننصح
عند ترك
rankPreference
بدون ضبط.
- بالنسبة إلى طلب بحث فئوي مثل "مطاعم في أبو ظبي"،
يُعد
regionCode
رمز المنطقة المستخدَم لتنسيق الردّ، والذي يتم تحديده على أنّه رمز CLDR مؤلف من حرفين. يمكن أن يكون لهذه المعلمة أيضًا تأثير تحيز في نتائج البحث. لا يوجد قيمة افتراضية.
إذا تطابق اسم البلد في حقل العنوان في الرد مع كود المنطقة، فسيتم حذف رمز البلد من العنوان.
وتكون معظم رموز CLDR متطابقة مع رموز ISO 3166-1، مع بعض الاستثناءات الملحوظة. على سبيل المثال، نطاق المستوى الأعلى الذي يتم ترميزه حسب البلد (ccTLD) في المملكة المتحدة هو "uk" (co.uk.)، لكنّ رمزها وفقًا لمعيار ISO 3166-1 هو gb. (من الناحية الفنية بالنسبة كيان "المملكة المتحدة لبريطانيا العظمى وأيرلندا الشمالية"). ويمكن أن تؤثّر المَعلمة في النتائج استنادًا إلى القانون الساري.
عرض عمليات تحديد المصدر في تطبيقك
عندما يعرض تطبيقك معلومات تم الحصول عليها من
GMSPlacesClient
،
مثل الصور والمراجعات، يجب أن يعرض التطبيق أيضًا معلومات المساهمين المطلوبة.
على سبيل المثال، السمة reviews
للكائن GMSPlacesClient
يحتوي على صفيف من خمسة
GMSPlaceReview
الأخرى. يمكن أن يحتوي كل عنصر GMSPlaceReview
على السمات وسمات المؤلف.
إذا عرضت المراجعة في تطبيقك، يجب أيضًا عرض أي مصدر أو مؤلف.
الإحالة.
لمزيد من المعلومات، راجع الوثائق المتعلقة الإحالة.