البحث النصي (جديد)

اختيار النظام الأساسي: نظام التشغيل Android iOS JavaScript خدمة ويب

البحث النصي يعرض معلومات حول مجموعة من الأماكن بناءً على سلسلة. على سبيل المثال، "بيتزا في القاهرة" أو "متاجر أحذية بالقرب من أوتاوا" أو "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 على السمات وسمات المؤلف. إذا عرضت المراجعة في تطبيقك، يجب أيضًا عرض أي مصدر أو مؤلف. الإحالة.

لمزيد من المعلومات، راجع الوثائق المتعلقة الإحالة.