جستجوی متن (جدید)

پلتفرم را انتخاب کنید: سرویس وب جاوا اسکریپت اندروید iOS

جستجوی متن اطلاعات مجموعه ای از مکان ها را بر اساس یک رشته برمی گرداند. به عنوان مثال، "پیتزا در نیویورک"، "فروشگاه های کفش در نزدیکی اتاوا"، یا "خیابان اصلی 123". این سرویس با لیستی از مکان‌های مطابق با رشته متن و هر گونه سوگیری مکان تنظیم شده پاسخ می‌دهد.

این سرویس به ویژه برای ایجاد پرس و جوهای آدرس مبهم در یک سیستم خودکار مفید است و اجزای غیر آدرسی رشته ممکن است با مشاغل و همچنین آدرس ها مطابقت داشته باشند. نمونه‌هایی از جستارهای مبهم آدرس، آدرس‌ها یا درخواست‌هایی با قالب‌بندی ضعیف هستند که شامل اجزای غیرآدرس مانند نام‌های کسب‌وکار هستند. درخواست‌هایی مانند دو مثال اول ممکن است نتیجه صفر را برگردانند مگر اینکه یک مکان (مانند منطقه، محدودیت مکان، یا تعصب مکان) تنظیم شده باشد.

"10 High Street, UK" یا "123 Main Street, US" چندین "های استریت" در بریتانیا؛ چندین "خیابان اصلی" در ایالات متحده پرس و جو نتایج مطلوبی را بر نمی گرداند مگر اینکه محدودیت مکانی تعیین شده باشد.
"رستوران زنجیره ای نیویورک" چندین مکان "رستوران زنجیره ای" در نیویورک. بدون آدرس خیابان یا حتی نام خیابان.
"10 High Street, Escher UK" یا "123 Main Street, Pleasanton US" تنها یک «خیابان بالا» در شهر اسچر بریتانیا. تنها یک "خیابان اصلی" در شهر Pleasanton CA ایالات متحده.
"UniqueRestaurantName New York" تنها یک موسسه با این نام در نیویورک. هیچ آدرس خیابانی برای تفکیک لازم نیست.
"رستوران های پیتزا در نیویورک" این پرس و جو شامل محدودیت مکان آن است و "رستوران پیتزا" یک نوع مکان کاملاً تعریف شده است. چندین نتیجه را برمی گرداند.
"8700-670-514 1+"

این درخواست شامل یک شماره تلفن است. چندین نتیجه را برای مکان‌های مرتبط با آن شماره تلفن برمی‌گرداند.

لیستی از مکان ها را با جستجوی متنی دریافت کنید

یک درخواست جستجوی متن با فراخوانی GMSPlacesClient searchByTextWithRequest: ارسال یک شیء GMSPlaceSearchByTextRequest که پارامترهای درخواست و یک روش برگشت را تعریف می کند، از نوع GMSPlaceSearchByTextResultCallback ، برای رسیدگی به پاسخ.

شی GMSPlaceSearchByTextRequest تمام پارامترهای مورد نیاز و اختیاری را برای درخواست مشخص می کند. پارامترهای مورد نیاز عبارتند از:

  • فهرست فیلدهایی که باید در شی GMSPlace برگردند، که فیلد ماسک نیز نامیده می شود، همانطور که توسط GMSPlaceProperty تعریف شده است. اگر حداقل یک فیلد را در لیست فیلد مشخص نکنید، یا اگر لیست فیلد را حذف کنید، تماس یک خطا برمی‌گرداند.
  • پرس و جو متن .

این مثال درخواست جستجوی متنی مشخص می کند که اشیاء پاسخ GMSPlace حاوی نام مکان و شناسه مکان برای هر شی GMSPlace در نتایج جستجو هستند. همچنین پاسخ را فقط به مکان های برگشتی از نوع "رستوران" فیلتر می کند.

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

پاسخ های جستجوی متن

API جستجوی متن، آرایه‌ای از منطبق‌ها را در قالب اشیاء GMSPlace ، با یک شی GMSPlace در هر مکان منطبق، برمی‌گرداند.

وضعیت باز را دریافت کنید

شی GMSPlacesClient حاوی تابع عضوی به نام isOpenWithRequest ( isOpenRequest در Swift و isPlaceOpenRequest در GooglePlacesSwift) است که بر اساس زمان مشخص شده در تماس، پاسخی را نشان می دهد که نشان می دهد مکان در حال حاضر باز است یا خیر.

این روش یک آرگومان واحد از نوع GMSPlaceIsOpenWithRequest می گیرد که حاوی:

  • یک شی GMSPlace یا رشته ای که شناسه مکان را مشخص می کند. برای اطلاعات بیشتر در مورد ایجاد شی Place با فیلدهای لازم، جزئیات مکان را ببینید.
  • یک شیء اختیاری NSDate (Obj-C) یا Date (Swift) که زمانی را که می‌خواهید بررسی کنید مشخص می‌کند. اگر زمان مشخص نشده باشد، پیش فرض اکنون است.
  • یک روش GMSPlaceOpenStatusResponseCallback برای رسیدگی به پاسخ.
  • >

متد GMSPlaceIsOpenWithRequest به فیلدهای زیر نیاز دارد که در شی GMSPlace تنظیم شوند:

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

اگر این فیلدها در شیء Place ارائه نشده باشند، یا اگر شناسه مکان را ارسال کنید، این روش از GMSPlacesClient GMSFetchPlaceRequest: برای واکشی آنها استفاده می کند.

پاسخ isOpenWithRequest

isOpenWithRequest یک شی GMSPlaceIsOpenResponse حاوی یک مقدار بولی به نام status را برمی گرداند که نشان می دهد کسب و کار باز است، بسته است یا وضعیت ناشناخته است.

زبان ارزش در صورت باز بودن ارزش در صورت بسته شدن در صورت ناشناخته بودن وضعیت، مقدار را تعیین کنید
سویفت .open .closed .unknown
هدف-C GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown
GooglePlacesSwift (پیش نمایش) true false nil

صورت‌حساب برای isOpenWithRequest

  • فیلدهای GMSPlacePropertyUTCOffsetMinutes و GMSPlacePropertyBusinessStatus تحت عنوان Basic Data SKU شارژ می شوند. مابقی ساعات کار تحت SKU شرکت جزئیات مکان محاسبه می شود.
  • اگر شی GMSPlace شما قبلاً دارای این فیلدها از درخواست قبلی است، دیگر هزینه ای از شما کسر نخواهد شد.

مثال: یک درخواست GMSPlaceIsOpenWithRequest ایجاد کنید

مثال زیر نشان می دهد که چگونه یک GMSPlaceIsOpenWithRequest را در یک شی GMSPlace موجود مقداردهی کنید.
    let isOpenRequest = GMSPlaceIsOpenRequest(place: place, date: nil)
      GMSPlacesClient.shared().isOpen(with: isOpenRequest) { response, error in
        if let error = error {
          // Handle Error
        }
        switch response.status {
          case .open:
            // Handle open
          case .closed:
            // Handle closed
          case .unknown:
            // Handle unknown
        }
      }
        
          GMSPlaceIsOpenRequest *isOpenRequest = [[GMSPlaceIsOpenRequest alloc] initWithPlace:place date:nil];

          [[GMSPlacesClient sharedClient] isOpenWithRequest:isOpenRequest callback:^(GMSPlaceIsOpenResponse response, NSError *_Nullable error) {
            if (error) {
              // Handle error
            }

            switch (response.status) {
              case GMSPlaceOpenStatusOpen:
                // Handle open
              case GMSPlaceOpenStatusClosed:
                // Handle closed
              case GMSPlaceOpenStatusUnknown:
                // Handle unknown
            }
          }];
          
          let isOpenRequest = IsPlaceOpenRequest(place: place)
          switch await placesClient.isPlaceOpen(with: isOpenRequest) {
            case .success(let isOpenResponse):
              switch isOpenResponse.status {
                case true:
                  // Handle open
                case false:
                  // Handle closed
                case nil:
                  // Handle unknown
            case .failure(let placesError):
              // Handle error
          }
          

پارامترهای مورد نیاز

از شی GMSPlaceSearchByTextRequest برای تعیین پارامترهای مورد نیاز برای جستجو استفاده کنید.

  • لیست زمینه

    مشخص کنید که کدام ویژگی داده مکان را برگرداند. فهرستی از ویژگی‌های GMSPlace را ارسال کنید و فیلدهای داده را برای بازگشت مشخص کنید. اگر ماسک فیلد را حذف کنید، درخواست یک خطا برمی‌گرداند.

    فهرست‌های فیلد یک روش طراحی خوب برای اطمینان از عدم درخواست داده‌های غیرضروری است، که به جلوگیری از زمان پردازش غیر ضروری و هزینه‌های صورت‌حساب کمک می‌کند.

    یک یا چند مورد از فیلدهای زیر را مشخص کنید:

    • فیلدهای زیر شناسه جستجوی متن فقط SKU را فعال می‌کنند:

      GMSPlacePropertyPlaceID
      GMSPlacePropertyName
    • فیلدهای زیر Text Search Pro SKU را فعال می کنند:

      GMSPlacePropertyAddressComponents
      GMSPlacePropertyBusinessStatus
      GMSPlacePropertyFormattedAddress
      GMSPlacePropertyIconBackgroundColor
      GMSPlacePropertyIconImageURL
      GMSPlacePropertyCoordinate
      GMSPlacePropertyPhotos
      GMSPlacePropertyPlusCode
      GMSPlacePropertyTypes
      GMSPlacePropertyUTCOffsetMinutes
      GMSPlacePropertyViewport
      GMSPlacePropertyWheelchairAccessibleEntrance
    • فیلدهای زیر Text Search Enterprise SKU را فعال می کنند:

      GMSPlacePropertyCurrentOpeningHours
      GMSPlacePropertySecondaryOpeningHours
      GMSPlacePropertyPhoneNumber
      GMSPlacePropertyPriceLevel
      GMSPlacePropertyRating
      GMSPlacePropertyOpeningHours
      GMSPlacePropertyUserRatingsTotal
      GMSPlacePropertyWebsite
    • فیلدهای زیر Text Search Enterprise Plus SKU را فعال می کنند:

      GMSPlacePropertyCurbsidePickup
      GMSPlacePropertyDelivery
      GMSPlacePropertyDineIn
      GMSPlacePropertyEditorialSummary
      GMSPlacePropertyReservable
      GMSPlacePropertyReviews
      GMSPlacePropertyServesBeer
      GMSPlacePropertyServesBreakfast
      GMSPlacePropertyServesBrunch
      GMSPlacePropertyServesDinner
      GMSPlacePropertyServesLunch
      GMSPlacePropertyServesVegetarianFood
      GMSPlacePropertyServesWine
      GMSPlacePropertyTakeout
  • متن پرس و جو

    رشته متنی که در آن جستجو می شود، به عنوان مثال: "رستوران"، "خیابان اصلی 123"، یا "بهترین مکان برای بازدید در سانفرانسیسکو".

پارامترهای اختیاری

از شی GMSPlaceSearchByTextRequest برای تعیین پارامترهای اختیاری برای جستجو استفاده کنید.

  • شامل نوع

    نتایج را به مکان هایی محدود می کند که با نوع مشخص شده توسط جدول A مطابقت دارند. فقط یک نوع ممکن است مشخص شود. به عنوان مثال:

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

    اگر true ، فقط مکان‌هایی را برگردانید که در زمان ارسال درخواست برای کسب و کار باز هستند. اگر false ، همه مشاغل را بدون در نظر گرفتن وضعیت باز بازگردانید. مکان‌هایی که ساعات کار را در پایگاه داده Google Places مشخص نمی‌کنند، اگر این پارامتر را روی false تنظیم کنید، برگردانده می‌شوند.

  • isStrictTypeFiltering

    با پارامتر includeType استفاده می شود. وقتی روی true تنظیم شود، فقط مکان هایی که با انواع مشخص شده توسط includeType مطابقت دارند، برگردانده می شوند. هنگامی که نادرست، پیش‌فرض، پاسخ می‌تواند حاوی مکان‌هایی باشد که با انواع مشخص‌شده مطابقت ندارند.

  • تعصب موقعیت

    منطقه ای را برای جستجو مشخص می کند. این مکان به عنوان یک سوگیری عمل می کند که به این معنی است که نتایج در اطراف مکان مشخص شده می توانند برگردانده شوند، از جمله نتایج خارج از منطقه مشخص شده.

    شما می توانید locationRestriction یا locationBias را مشخص کنید، اما نه هر دو را. locationRestriction را به عنوان مشخص کننده منطقه ای که نتایج باید در آن باشد، و locationBias به عنوان تعیین منطقه ای که نتایج باید نزدیک باشد اما می تواند خارج از منطقه باشد، در نظر بگیرید.

    منطقه را به صورت یک Viewport مستطیلی یا به صورت دایره مشخص کنید.

    • دایره با نقطه مرکزی و شعاع بر حسب متر تعریف می شود. شعاع باید بین 0.0 تا 50000.0 باشد. شعاع پیش فرض 0.0 است. به عنوان مثال:

      request.locationBias =  GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(40.7, -74.0), 200.0)
    • مستطیل یک نمای عرض-طول جغرافیایی است که به صورت دو نقطه پایین و بالا به صورت مورب در مقابل هم نمایش داده می شود. نقطه پایین گوشه جنوب غربی مستطیل را نشان می دهد و نقطه بالا نمایانگر گوشه شمال شرقی مستطیل است.

      یک viewport یک منطقه بسته در نظر گرفته می شود، به این معنی که شامل مرز آن می شود. محدوده عرض جغرافیایی باید بین 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 ، محدوده عرض جغرافیایی خالی است.
  • محدودیت مکان

    منطقه ای را برای جستجو مشخص می کند. نتایج خارج از منطقه مشخص شده برگردانده نمی شوند. منطقه را به عنوان یک Viewport مستطیلی مشخص کنید. برای اطلاعات در مورد تعریف Viewport به توضیحات locationBias مراجعه کنید.

    شما می توانید locationRestriction یا locationBias را مشخص کنید، اما نه هر دو را. locationRestriction را به عنوان مشخص کننده منطقه ای که نتایج باید در آن باشد، و locationBias به عنوان تعیین منطقه ای که نتایج باید نزدیک باشد اما می تواند خارج از منطقه باشد، در نظر بگیرید.

  • maxResultCount

    حداکثر تعداد نتایج مکان برای بازگشت را مشخص می کند. باید بین 1 تا 20 (پیش‌فرض) باشد.

  • امتیاز مین

    نتایج را فقط به کسانی محدود می‌کند که میانگین رتبه‌بندی کاربران آنها بیشتر یا مساوی این حد باشد. مقادیر باید بین 0.0 و 5.0 (شامل) با افزایش 0.5 باشد. به عنوان مثال: 0، 0.5، 1.0، ...، 5.0 شامل. مقادیر به نزدیکترین 0.5 گرد می شوند. به عنوان مثال، مقدار 0.6 تمام نتایج با رتبه بندی کمتر از 1.0 را حذف می کند.

  • سطوح قیمت

    جستجو را به مکان‌هایی که در سطوح قیمت مشخصی علامت‌گذاری شده‌اند محدود کنید. پیش فرض این است که تمام سطوح قیمت را انتخاب کنید.

    آرایه ای از یک یا چند مقدار تعریف شده توسط PriceLevel را مشخص کنید.

    به عنوان مثال:

    request.priceLevels = [GMSPlacesPriceLevel.moderate.rawValue, GMSPlacesPriceLevel.cheap.rawValue]
  • رتبه اولویت

    نحوه رتبه بندی نتایج در پاسخ بر اساس نوع پرس و جو را مشخص می کند:

    • برای یک جستار طبقه بندی شده مانند "رستوران ها در شهر نیویورک"، .relevance (رتبه بندی نتایج بر اساس ارتباط جستجو) پیش فرض است. می توانید rankPreference روی .relevance یا .distance تنظیم کنید (نتایج را بر اساس فاصله رتبه بندی کنید).
    • برای یک جستار غیر دسته بندی مانند "Mountain View, CA"، توصیه می کنیم که rankPreference را تنظیم نشده بگذارید.
  • منطقه کد

    کد منطقه ای که برای قالب بندی پاسخ استفاده می شود، به عنوان مقدار کد CLDR دو کاراکتری مشخص شده است. این پارامتر همچنین می تواند یک اثر سوگیری در نتایج جستجو داشته باشد. هیچ مقدار پیش فرض وجود ندارد.

    اگر نام کشور فیلد آدرس در پاسخ با کد منطقه مطابقت داشته باشد، کد کشور از آدرس حذف می شود.

    اکثر کدهای CLDR با کدهای ISO 3166-1 یکسان هستند، با برخی استثناهای قابل توجه. برای مثال، ccTLD بریتانیا "uk" (.co.uk) است در حالی که کد ISO 3166-1 آن "gb" است (از لحاظ فنی برای نهاد "پادشاهی متحده بریتانیای کبیر و ایرلند شمالی"). این پارامتر می تواند بر نتایج بر اساس قانون قابل اجرا تأثیر بگذارد.

اسناد را در برنامه خود نمایش دهید

هنگامی که برنامه شما اطلاعات به دست آمده از GMSPlacesClient را نمایش می دهد، مانند عکس ها و نظرات، برنامه باید اسناد مورد نیاز را نیز نمایش دهد.

برای مثال، ویژگی reviews شی GMSPlacesClient حاوی آرایه ای از حداکثر پنج شی GMSPlaceReview است. هر شیء GMSPlaceReview می‌تواند حاوی اسناد و اعتبارات نویسنده باشد. اگر نظر را در برنامه خود نمایش دهید، باید هر گونه انتساب یا منبع نویسنده را نیز نمایش دهید.

برای اطلاعات بیشتر، به اسناد مربوط به اسناد مراجعه کنید.

،
پلتفرم را انتخاب کنید: سرویس وب جاوا اسکریپت اندروید iOS

جستجوی متن اطلاعات مجموعه ای از مکان ها را بر اساس یک رشته برمی گرداند. به عنوان مثال، "پیتزا در نیویورک"، "فروشگاه های کفش در نزدیکی اتاوا"، یا "خیابان اصلی 123". این سرویس با لیستی از مکان‌های مطابق با رشته متن و هر گونه سوگیری مکان تنظیم شده پاسخ می‌دهد.

این سرویس به ویژه برای ایجاد پرس و جوهای آدرس مبهم در یک سیستم خودکار مفید است و اجزای غیر آدرسی رشته ممکن است با مشاغل و همچنین آدرس ها مطابقت داشته باشند. نمونه‌هایی از جستارهای مبهم آدرس، آدرس‌ها یا درخواست‌هایی با قالب‌بندی ضعیف هستند که شامل اجزای غیرآدرس مانند نام‌های کسب‌وکار هستند. درخواست‌هایی مانند دو مثال اول ممکن است نتیجه صفر را برگردانند مگر اینکه یک مکان (مانند منطقه، محدودیت مکان، یا تعصب مکان) تنظیم شده باشد.

"10 High Street, UK" یا "123 Main Street, US" چندین "های استریت" در بریتانیا؛ چندین "خیابان اصلی" در ایالات متحده پرس و جو نتایج مطلوبی را بر نمی گرداند مگر اینکه محدودیت مکانی تعیین شده باشد.
"رستوران زنجیره ای نیویورک" چندین مکان "رستوران زنجیره ای" در نیویورک. بدون آدرس خیابان یا حتی نام خیابان.
"10 High Street, Escher UK" یا "123 Main Street, Pleasanton US" تنها یک «خیابان بالا» در شهر اسچر بریتانیا. تنها یک "خیابان اصلی" در شهر Pleasanton CA ایالات متحده.
"UniqueRestaurantName New York" تنها یک موسسه با این نام در نیویورک. هیچ آدرس خیابانی برای تفکیک لازم نیست.
"رستوران های پیتزا در نیویورک" این پرس و جو شامل محدودیت مکان آن است و "رستوران پیتزا" یک نوع مکان کاملاً تعریف شده است. چندین نتیجه را برمی گرداند.
"8700-670-514 1+"

این درخواست شامل یک شماره تلفن است. چندین نتیجه را برای مکان‌های مرتبط با آن شماره تلفن برمی‌گرداند.

لیستی از مکان ها را با جستجوی متنی دریافت کنید

یک درخواست جستجوی متن با فراخوانی GMSPlacesClient searchByTextWithRequest: ارسال یک شیء GMSPlaceSearchByTextRequest که پارامترهای درخواست و یک روش برگشت را تعریف می کند، از نوع GMSPlaceSearchByTextResultCallback ، برای رسیدگی به پاسخ.

شی GMSPlaceSearchByTextRequest تمام پارامترهای مورد نیاز و اختیاری را برای درخواست مشخص می کند. پارامترهای مورد نیاز عبارتند از:

  • فهرست فیلدهایی که باید در شی GMSPlace برگردند، که فیلد ماسک نیز نامیده می شود، همانطور که توسط GMSPlaceProperty تعریف شده است. اگر حداقل یک فیلد را در لیست فیلد مشخص نکنید، یا اگر لیست فیلد را حذف کنید، تماس یک خطا برمی‌گرداند.
  • پرس و جو متن .

این مثال درخواست جستجوی متنی مشخص می کند که اشیاء پاسخ GMSPlace حاوی نام مکان و شناسه مکان برای هر شی GMSPlace در نتایج جستجو هستند. همچنین پاسخ را فقط به مکان های برگشتی از نوع "رستوران" فیلتر می کند.

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

پاسخ های جستجوی متن

API جستجوی متن، آرایه‌ای از منطبق‌ها را در قالب اشیاء GMSPlace ، با یک شی GMSPlace در هر مکان منطبق، برمی‌گرداند.

وضعیت باز را دریافت کنید

شی GMSPlacesClient حاوی تابع عضوی به نام isOpenWithRequest ( isOpenRequest در Swift و isPlaceOpenRequest در GooglePlacesSwift) است که بر اساس زمان مشخص شده در تماس، پاسخی را نشان می دهد که نشان می دهد مکان در حال حاضر باز است یا خیر.

این روش یک آرگومان واحد از نوع GMSPlaceIsOpenWithRequest می گیرد که حاوی:

  • یک شی GMSPlace یا رشته ای که شناسه مکان را مشخص می کند. برای اطلاعات بیشتر در مورد ایجاد شی Place با فیلدهای لازم، جزئیات مکان را ببینید.
  • یک شیء اختیاری NSDate (Obj-C) یا Date (Swift) که زمانی را که می‌خواهید بررسی کنید مشخص می‌کند. اگر زمان مشخص نشده باشد، پیش فرض اکنون است.
  • یک روش GMSPlaceOpenStatusResponseCallback برای رسیدگی به پاسخ.
  • >

متد GMSPlaceIsOpenWithRequest به فیلدهای زیر نیاز دارد که در شی GMSPlace تنظیم شوند:

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

اگر این فیلدها در شیء Place ارائه نشده باشند، یا اگر شناسه مکان را ارسال کنید، این روش از GMSPlacesClient GMSFetchPlaceRequest: برای واکشی آنها استفاده می کند.

پاسخ isOpenWithRequest

isOpenWithRequest یک شی GMSPlaceIsOpenResponse حاوی یک مقدار بولی به نام status را برمی گرداند که نشان می دهد کسب و کار باز است، بسته است یا وضعیت ناشناخته است.

زبان ارزش در صورت باز بودن ارزش در صورت بسته شدن در صورت ناشناخته بودن وضعیت، مقدار را تعیین کنید
سویفت .open .closed .unknown
هدف-C GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown
GooglePlacesSwift (پیش نمایش) true false nil

صورت‌حساب برای isOpenWithRequest

  • فیلدهای GMSPlacePropertyUTCOffsetMinutes و GMSPlacePropertyBusinessStatus تحت عنوان Basic Data SKU شارژ می شوند. مابقی ساعات کار تحت SKU شرکت جزئیات مکان محاسبه می شود.
  • اگر شی GMSPlace شما قبلاً دارای این فیلدها از درخواست قبلی است، دیگر هزینه ای از شما کسر نخواهد شد.

مثال: یک درخواست GMSPlaceIsOpenWithRequest ایجاد کنید

مثال زیر نشان می دهد که چگونه یک GMSPlaceIsOpenWithRequest را در یک شی GMSPlace موجود مقداردهی کنید.
    let isOpenRequest = GMSPlaceIsOpenRequest(place: place, date: nil)
      GMSPlacesClient.shared().isOpen(with: isOpenRequest) { response, error in
        if let error = error {
          // Handle Error
        }
        switch response.status {
          case .open:
            // Handle open
          case .closed:
            // Handle closed
          case .unknown:
            // Handle unknown
        }
      }
        
          GMSPlaceIsOpenRequest *isOpenRequest = [[GMSPlaceIsOpenRequest alloc] initWithPlace:place date:nil];

          [[GMSPlacesClient sharedClient] isOpenWithRequest:isOpenRequest callback:^(GMSPlaceIsOpenResponse response, NSError *_Nullable error) {
            if (error) {
              // Handle error
            }

            switch (response.status) {
              case GMSPlaceOpenStatusOpen:
                // Handle open
              case GMSPlaceOpenStatusClosed:
                // Handle closed
              case GMSPlaceOpenStatusUnknown:
                // Handle unknown
            }
          }];
          
          let isOpenRequest = IsPlaceOpenRequest(place: place)
          switch await placesClient.isPlaceOpen(with: isOpenRequest) {
            case .success(let isOpenResponse):
              switch isOpenResponse.status {
                case true:
                  // Handle open
                case false:
                  // Handle closed
                case nil:
                  // Handle unknown
            case .failure(let placesError):
              // Handle error
          }
          

پارامترهای مورد نیاز

از شی GMSPlaceSearchByTextRequest برای تعیین پارامترهای مورد نیاز برای جستجو استفاده کنید.

  • لیست زمینه

    مشخص کنید که کدام ویژگی داده مکان را برگرداند. فهرستی از ویژگی‌های GMSPlace را ارسال کنید و فیلدهای داده را برای بازگشت مشخص کنید. اگر ماسک فیلد را حذف کنید، درخواست یک خطا برمی‌گرداند.

    فهرست‌های فیلد یک روش طراحی خوب برای اطمینان از عدم درخواست داده‌های غیرضروری است، که به جلوگیری از زمان پردازش غیر ضروری و هزینه‌های صورت‌حساب کمک می‌کند.

    یک یا چند مورد از فیلدهای زیر را مشخص کنید:

    • فیلدهای زیر شناسه جستجوی متن فقط SKU را فعال می‌کنند:

      GMSPlacePropertyPlaceID
      GMSPlacePropertyName
    • فیلدهای زیر Text Search Pro SKU را فعال می کنند:

      GMSPlacePropertyAddressComponents
      GMSPlacePropertyBusinessStatus
      GMSPlacePropertyFormattedAddress
      GMSPlacePropertyIconBackgroundColor
      GMSPlacePropertyIconImageURL
      GMSPlacePropertyCoordinate
      GMSPlacePropertyPhotos
      GMSPlacePropertyPlusCode
      GMSPlacePropertyTypes
      GMSPlacePropertyUTCOffsetMinutes
      GMSPlacePropertyViewport
      GMSPlacePropertyWheelchairAccessibleEntrance
    • فیلدهای زیر Text Search Enterprise SKU را فعال می کنند:

      GMSPlacePropertyCurrentOpeningHours
      GMSPlacePropertySecondaryOpeningHours
      GMSPlacePropertyPhoneNumber
      GMSPlacePropertyPriceLevel
      GMSPlacePropertyRating
      GMSPlacePropertyOpeningHours
      GMSPlacePropertyUserRatingsTotal
      GMSPlacePropertyWebsite
    • فیلدهای زیر Text Search Enterprise Plus SKU را فعال می کنند:

      GMSPlacePropertyCurbsidePickup
      GMSPlacePropertyDelivery
      GMSPlacePropertyDineIn
      GMSPlacePropertyEditorialSummary
      GMSPlacePropertyReservable
      GMSPlacePropertyReviews
      GMSPlacePropertyServesBeer
      GMSPlacePropertyServesBreakfast
      GMSPlacePropertyServesBrunch
      GMSPlacePropertyServesDinner
      GMSPlacePropertyServesLunch
      GMSPlacePropertyServesVegetarianFood
      GMSPlacePropertyServesWine
      GMSPlacePropertyTakeout
  • متن پرس و جو

    رشته متنی که در آن جستجو می شود، به عنوان مثال: "رستوران"، "خیابان اصلی 123"، یا "بهترین مکان برای بازدید در سانفرانسیسکو".

پارامترهای اختیاری

از شی GMSPlaceSearchByTextRequest برای تعیین پارامترهای اختیاری برای جستجو استفاده کنید.

  • شامل نوع

    نتایج را به مکان هایی محدود می کند که با نوع مشخص شده توسط جدول A مطابقت دارند. فقط یک نوع ممکن است مشخص شود. به عنوان مثال:

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

    اگر true ، فقط مکان‌هایی را برگردانید که در زمان ارسال درخواست برای کسب و کار باز هستند. اگر false ، همه مشاغل را بدون در نظر گرفتن وضعیت باز بازگردانید. مکان‌هایی که ساعات کار را در پایگاه داده Google Places مشخص نمی‌کنند، اگر این پارامتر را روی false تنظیم کنید، برگردانده می‌شوند.

  • isStrictTypeFiltering

    با پارامتر includeType استفاده می شود. وقتی روی true تنظیم شود، فقط مکان هایی که با انواع مشخص شده توسط includeType مطابقت دارند، برگردانده می شوند. هنگامی که نادرست، پیش‌فرض، پاسخ می‌تواند حاوی مکان‌هایی باشد که با انواع مشخص‌شده مطابقت ندارند.

  • تعصب موقعیت

    منطقه ای را برای جستجو مشخص می کند. این مکان به عنوان یک سوگیری عمل می کند که به این معنی است که نتایج در اطراف مکان مشخص شده می توانند برگردانده شوند، از جمله نتایج خارج از منطقه مشخص شده.

    شما می توانید locationRestriction یا locationBias را مشخص کنید، اما نه هر دو را. locationRestriction را به عنوان مشخص کننده منطقه ای که نتایج باید در آن باشد، و locationBias به عنوان تعیین منطقه ای که نتایج باید نزدیک باشد اما می تواند خارج از منطقه باشد، در نظر بگیرید.

    منطقه را به صورت یک Viewport مستطیلی یا به صورت دایره مشخص کنید.

    • دایره با نقطه مرکزی و شعاع بر حسب متر تعریف می شود. شعاع باید بین 0.0 تا 50000.0 باشد. شعاع پیش فرض 0.0 است. به عنوان مثال:

      request.locationBias =  GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(40.7, -74.0), 200.0)
    • مستطیل یک نمای عرض-طول جغرافیایی است که به صورت دو نقطه پایین و بالا به صورت مورب در مقابل هم نمایش داده می شود. نقطه پایین گوشه جنوب غربی مستطیل را نشان می دهد و نقطه بالا نمایانگر گوشه شمال شرقی مستطیل است.

      یک viewport یک منطقه بسته در نظر گرفته می شود، به این معنی که شامل مرز آن می شود. محدوده عرض جغرافیایی باید بین 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 ، محدوده عرض جغرافیایی خالی است.
  • محدودیت مکان

    منطقه ای را برای جستجو مشخص می کند. نتایج خارج از منطقه مشخص شده برگردانده نمی شوند. منطقه را به عنوان یک Viewport مستطیلی مشخص کنید. برای اطلاعات در مورد تعریف Viewport به توضیحات locationBias مراجعه کنید.

    شما می توانید locationRestriction یا locationBias را مشخص کنید، اما نه هر دو را. locationRestriction را به عنوان مشخص کننده منطقه ای که نتایج باید در آن باشد، و locationBias به عنوان تعیین منطقه ای که نتایج باید نزدیک باشد اما می تواند خارج از منطقه باشد، در نظر بگیرید.

  • maxResultCount

    حداکثر تعداد نتایج مکان برای بازگشت را مشخص می کند. باید بین 1 تا 20 (پیش‌فرض) باشد.

  • امتیاز مین

    نتایج را فقط به کسانی محدود می‌کند که میانگین رتبه‌بندی کاربران آنها بیشتر یا مساوی این حد باشد. مقادیر باید بین 0.0 و 5.0 (شامل) با افزایش 0.5 باشد. به عنوان مثال: 0، 0.5، 1.0، ...، 5.0 شامل. مقادیر به نزدیکترین 0.5 گرد می شوند. به عنوان مثال، مقدار 0.6 تمام نتایج با رتبه بندی کمتر از 1.0 را حذف می کند.

  • سطوح قیمت

    جستجو را به مکان‌هایی که در سطوح قیمت مشخصی علامت‌گذاری شده‌اند محدود کنید. پیش فرض این است که تمام سطوح قیمت را انتخاب کنید.

    آرایه ای از یک یا چند مقدار تعریف شده توسط PriceLevel را مشخص کنید.

    به عنوان مثال:

    request.priceLevels = [GMSPlacesPriceLevel.moderate.rawValue, GMSPlacesPriceLevel.cheap.rawValue]
  • رتبه اولویت

    نحوه رتبه بندی نتایج در پاسخ بر اساس نوع پرس و جو را مشخص می کند:

    • برای یک جستار طبقه بندی شده مانند "رستوران ها در شهر نیویورک"، .relevance (رتبه بندی نتایج بر اساس ارتباط جستجو) پیش فرض است. می توانید rankPreference روی .relevance یا .distance تنظیم کنید (نتایج را بر اساس فاصله رتبه بندی کنید).
    • برای یک جستار غیر دسته بندی مانند "Mountain View, CA"، توصیه می کنیم که rankPreference را تنظیم نشده بگذارید.
  • منطقه کد

    کد منطقه ای که برای قالب بندی پاسخ استفاده می شود، به عنوان مقدار کد CLDR دو کاراکتری مشخص شده است. این پارامتر همچنین می تواند یک اثر سوگیری در نتایج جستجو داشته باشد. هیچ مقدار پیش فرض وجود ندارد.

    اگر نام کشور فیلد آدرس در پاسخ با کد منطقه مطابقت داشته باشد، کد کشور از آدرس حذف می شود.

    اکثر کدهای CLDR با کدهای ISO 3166-1 یکسان هستند، با برخی استثناهای قابل توجه. برای مثال، ccTLD بریتانیا "uk" (.co.uk) است در حالی که کد ISO 3166-1 آن "gb" است (از لحاظ فنی برای نهاد "پادشاهی متحده بریتانیای کبیر و ایرلند شمالی"). این پارامتر می تواند بر نتایج بر اساس قانون قابل اجرا تأثیر بگذارد.

اسناد را در برنامه خود نمایش دهید

هنگامی که برنامه شما اطلاعات به دست آمده از GMSPlacesClient را نمایش می دهد، مانند عکس ها و نظرات، برنامه باید اسناد مورد نیاز را نیز نمایش دهد.

برای مثال، ویژگی reviews شی GMSPlacesClient حاوی آرایه ای از حداکثر پنج شی GMSPlaceReview است. هر شیء GMSPlaceReview می‌تواند حاوی اسناد و اعتبارات نویسنده باشد. اگر نظر را در برنامه خود نمایش دهید، باید هر گونه انتساب یا منبع نویسنده را نیز نمایش دهید.

برای اطلاعات بیشتر، به اسناد مربوط به اسناد مراجعه کنید.

،
پلتفرم را انتخاب کنید: سرویس وب جاوا اسکریپت اندروید iOS

جستجوی متن اطلاعات مجموعه ای از مکان ها را بر اساس یک رشته برمی گرداند. به عنوان مثال، "پیتزا در نیویورک"، "فروشگاه های کفش در نزدیکی اتاوا"، یا "خیابان اصلی 123". این سرویس با لیستی از مکان‌های مطابق با رشته متن و هر گونه سوگیری مکان تنظیم شده پاسخ می‌دهد.

این سرویس به ویژه برای ایجاد پرس و جوهای آدرس مبهم در یک سیستم خودکار مفید است و اجزای غیر آدرسی رشته ممکن است با مشاغل و همچنین آدرس ها مطابقت داشته باشند. نمونه‌هایی از جستارهای مبهم آدرس، آدرس‌ها یا درخواست‌هایی با قالب‌بندی ضعیف هستند که شامل اجزای غیرآدرس مانند نام‌های کسب‌وکار هستند. درخواست‌هایی مانند دو مثال اول ممکن است نتیجه صفر را برگردانند مگر اینکه یک مکان (مانند منطقه، محدودیت مکان، یا تعصب مکان) تنظیم شده باشد.

"10 High Street, UK" یا "123 Main Street, US" چندین "های استریت" در بریتانیا؛ چندین "خیابان اصلی" در ایالات متحده پرس و جو نتایج مطلوبی را بر نمی گرداند مگر اینکه محدودیت مکانی تعیین شده باشد.
"رستوران زنجیره ای نیویورک" چندین مکان "رستوران زنجیره ای" در نیویورک. بدون آدرس خیابان یا حتی نام خیابان.
"10 High Street, Escher UK" یا "123 Main Street, Pleasanton US" تنها یک «خیابان بالا» در شهر اسچر بریتانیا. تنها یک "خیابان اصلی" در شهر Pleasanton CA ایالات متحده.
"UniqueRestaurantName New York" تنها یک موسسه با این نام در نیویورک. هیچ آدرس خیابانی برای تفکیک لازم نیست.
"رستوران های پیتزا در نیویورک" این پرس و جو شامل محدودیت مکان آن است و "رستوران پیتزا" یک نوع مکان کاملاً تعریف شده است. چندین نتیجه را برمی گرداند.
"8700-670-514 1+"

این درخواست شامل یک شماره تلفن است. چندین نتیجه را برای مکان‌های مرتبط با آن شماره تلفن برمی‌گرداند.

لیستی از مکان ها را با جستجوی متنی دریافت کنید

یک درخواست جستجوی متن با فراخوانی GMSPlacesClient searchByTextWithRequest: ارسال یک شیء GMSPlaceSearchByTextRequest که پارامترهای درخواست و یک روش برگشت را تعریف می کند، از نوع GMSPlaceSearchByTextResultCallback ، برای رسیدگی به پاسخ.

شی GMSPlaceSearchByTextRequest تمام پارامترهای مورد نیاز و اختیاری را برای درخواست مشخص می کند. پارامترهای مورد نیاز عبارتند از:

  • فهرست فیلدهایی که باید در شی GMSPlace برگردند، که فیلد ماسک نیز نامیده می شود، همانطور که توسط GMSPlaceProperty تعریف شده است. اگر حداقل یک فیلد را در لیست فیلد مشخص نکنید، یا اگر لیست فیلد را حذف کنید، تماس یک خطا برمی‌گرداند.
  • پرس و جو متن .

این مثال درخواست جستجوی متنی مشخص می کند که اشیاء پاسخ GMSPlace حاوی نام مکان و شناسه مکان برای هر شی GMSPlace در نتایج جستجو هستند. همچنین پاسخ را فقط به مکان های برگشتی از نوع "رستوران" فیلتر می کند.

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

پاسخ های جستجوی متن

API جستجوی متن، آرایه‌ای از منطبق‌ها را در قالب اشیاء GMSPlace ، با یک شی GMSPlace در هر مکان منطبق، برمی‌گرداند.

وضعیت باز را دریافت کنید

شی GMSPlacesClient حاوی تابع عضوی به نام isOpenWithRequest ( isOpenRequest در Swift و isPlaceOpenRequest در GooglePlacesSwift) است که بر اساس زمان مشخص شده در تماس، پاسخی را نشان می دهد که نشان می دهد مکان در حال حاضر باز است یا خیر.

این روش یک آرگومان واحد از نوع GMSPlaceIsOpenWithRequest می گیرد که حاوی:

  • یک شی GMSPlace یا رشته ای که شناسه مکان را مشخص می کند. برای اطلاعات بیشتر در مورد ایجاد شی Place با فیلدهای لازم، جزئیات مکان را ببینید.
  • یک شیء اختیاری NSDate (Obj-C) یا Date (Swift) که زمانی را که می‌خواهید بررسی کنید مشخص می‌کند. اگر زمان مشخص نشده باشد، پیش فرض اکنون است.
  • یک روش GMSPlaceOpenStatusResponseCallback برای رسیدگی به پاسخ.
  • >

متد GMSPlaceIsOpenWithRequest به فیلدهای زیر نیاز دارد که در شی GMSPlace تنظیم شوند:

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

اگر این فیلدها در شیء Place ارائه نشده باشند، یا اگر شناسه مکان را ارسال کنید، این روش از GMSPlacesClient GMSFetchPlaceRequest: برای واکشی آنها استفاده می کند.

پاسخ isOpenWithRequest

isOpenWithRequest یک شی GMSPlaceIsOpenResponse حاوی یک مقدار بولی به نام status را برمی گرداند که نشان می دهد کسب و کار باز است، بسته است یا وضعیت ناشناخته است.

زبان ارزش در صورت باز بودن ارزش در صورت بسته شدن در صورت ناشناخته بودن وضعیت، مقدار را تعیین کنید
سویفت .open .closed .unknown
هدف-C GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown
GooglePlacesSwift (پیش نمایش) true false nil

صورت‌حساب برای isOpenWithRequest

  • فیلدهای GMSPlacePropertyUTCOffsetMinutes و GMSPlacePropertyBusinessStatus تحت عنوان Basic Data SKU شارژ می شوند. مابقی ساعات کار تحت SKU شرکت جزئیات مکان محاسبه می شود.
  • اگر شی GMSPlace شما قبلاً دارای این فیلدها از درخواست قبلی است، دیگر هزینه ای از شما کسر نخواهد شد.

مثال: یک درخواست GMSPlaceIsOpenWithRequest ایجاد کنید

مثال زیر نشان می دهد که چگونه یک GMSPlaceIsOpenWithRequest را در یک شی GMSPlace موجود مقداردهی کنید.
    let isOpenRequest = GMSPlaceIsOpenRequest(place: place, date: nil)
      GMSPlacesClient.shared().isOpen(with: isOpenRequest) { response, error in
        if let error = error {
          // Handle Error
        }
        switch response.status {
          case .open:
            // Handle open
          case .closed:
            // Handle closed
          case .unknown:
            // Handle unknown
        }
      }
        
          GMSPlaceIsOpenRequest *isOpenRequest = [[GMSPlaceIsOpenRequest alloc] initWithPlace:place date:nil];

          [[GMSPlacesClient sharedClient] isOpenWithRequest:isOpenRequest callback:^(GMSPlaceIsOpenResponse response, NSError *_Nullable error) {
            if (error) {
              // Handle error
            }

            switch (response.status) {
              case GMSPlaceOpenStatusOpen:
                // Handle open
              case GMSPlaceOpenStatusClosed:
                // Handle closed
              case GMSPlaceOpenStatusUnknown:
                // Handle unknown
            }
          }];
          
          let isOpenRequest = IsPlaceOpenRequest(place: place)
          switch await placesClient.isPlaceOpen(with: isOpenRequest) {
            case .success(let isOpenResponse):
              switch isOpenResponse.status {
                case true:
                  // Handle open
                case false:
                  // Handle closed
                case nil:
                  // Handle unknown
            case .failure(let placesError):
              // Handle error
          }
          

پارامترهای مورد نیاز

از شی GMSPlaceSearchByTextRequest برای تعیین پارامترهای مورد نیاز برای جستجو استفاده کنید.

  • لیست زمینه

    مشخص کنید که کدام ویژگی داده مکان را برگرداند. فهرستی از ویژگی‌های GMSPlace را ارسال کنید و فیلدهای داده را برای بازگشت مشخص کنید. اگر ماسک فیلد را حذف کنید، درخواست یک خطا برمی‌گرداند.

    فهرست‌های فیلد یک روش طراحی خوب برای اطمینان از عدم درخواست داده‌های غیرضروری است، که به جلوگیری از زمان پردازش غیر ضروری و هزینه‌های صورت‌حساب کمک می‌کند.

    یک یا چند مورد از فیلدهای زیر را مشخص کنید:

    • فیلدهای زیر شناسه جستجوی متن فقط SKU را فعال می‌کنند:

      GMSPlacePropertyPlaceID
      GMSPlacePropertyName
    • فیلدهای زیر Text Search Pro SKU را فعال می کنند:

      GMSPlacePropertyAddressComponents
      GMSPlacePropertyBusinessStatus
      GMSPlacePropertyFormattedAddress
      GMSPlacePropertyIconBackgroundColor
      GMSPlacePropertyIconImageURL
      GMSPlacePropertyCoordinate
      GMSPlacePropertyPhotos
      GMSPlacePropertyPlusCode
      GMSPlacePropertyTypes
      GMSPlacePropertyUTCOffsetMinutes
      GMSPlacePropertyViewport
      GMSPlacePropertyWheelchairAccessibleEntrance
    • فیلدهای زیر Text Search Enterprise SKU را فعال می کنند:

      GMSPlacePropertyCurrentOpeningHours
      GMSPlacePropertySecondaryOpeningHours
      GMSPlacePropertyPhoneNumber
      GMSPlacePropertyPriceLevel
      GMSPlacePropertyRating
      GMSPlacePropertyOpeningHours
      GMSPlacePropertyUserRatingsTotal
      GMSPlacePropertyWebsite
    • فیلدهای زیر Text Search Enterprise Plus SKU را فعال می کنند:

      GMSPlacePropertyCurbsidePickup
      GMSPlacePropertyDelivery
      GMSPlacePropertyDineIn
      GMSPlacePropertyEditorialSummary
      GMSPlacePropertyReservable
      GMSPlacePropertyReviews
      GMSPlacePropertyServesBeer
      GMSPlacePropertyServesBreakfast
      GMSPlacePropertyServesBrunch
      GMSPlacePropertyServesDinner
      GMSPlacePropertyServesLunch
      GMSPlacePropertyServesVegetarianFood
      GMSPlacePropertyServesWine
      GMSPlacePropertyTakeout
  • متن پرس و جو

    رشته متنی که در آن جستجو می شود، به عنوان مثال: "رستوران"، "خیابان اصلی 123"، یا "بهترین مکان برای بازدید در سانفرانسیسکو".

پارامترهای اختیاری

برای مشخص کردن پارامترهای اختیاری برای جستجو از GMSPlaceSearchByTextRequest استفاده کنید.

  • نوع

    نتایج را به مکانهایی که مطابق با نوع مشخص شده توسط جدول A است محدود می کند. فقط یک نوع ممکن است مشخص شود. به عنوان مثال:

    • request.includedType = "bar"
    • request.includedType = "pharmacy"
  • ایزوپن

    اگر true ، فقط مکانهایی را که در زمان ارسال پرس و جو برای تجارت باز هستند ، برگردانید. اگر false ، همه مشاغل را بدون توجه به وضعیت باز برگردانید. اگر این پارامتر را روی false تنظیم کنید ، مکانهایی که ساعات کار را در پایگاه داده Google Places مشخص نمی کنند ، بازگردانده می شوند.

  • isstricttypefiltering

    مورد استفاده با پارامتر includeType . هنگامی که روی true تنظیم شده است ، فقط مکانهایی که با انواع مشخص شده مشخص شده توسط includeType مطابقت دارند ، بازگردانده می شوند. در صورت دروغ بودن ، پیش فرض ، پاسخ می تواند شامل مکانهایی باشد که با انواع مشخص شده مطابقت ندارند.

  • مکان یابی

    منطقه ای را برای جستجو مشخص می کند. این مکان به عنوان یک تعصب عمل می کند ، به این معنی که می توان نتایج اطراف مکان مشخص شده را بازگرداند ، از جمله نتایج خارج از منطقه مشخص شده.

    شما می توانید 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 ، دامنه طول جغرافیایی معکوس است (نمای Viewport از خط طول جغرافیایی 180 درجه عبور می کند).
      • اگر low.longitude = -180 درجه و high.longitude = 180 درجه باشد ، Viewport شامل تمام طول ها است.
      • اگر low.longitude = 180 درجه و high.longitude = -180 درجه ، محدوده طول جغرافیایی خالی است.
      • اگر low.latitude > high.latitude ، محدوده عرض جغرافیایی خالی است.
  • محل کار

    منطقه ای را برای جستجو مشخص می کند. نتایج خارج از منطقه مشخص شده بازگردانده نمی شود. منطقه را به عنوان یک نمای مستطیل شکل مشخص کنید. برای اطلاعات در مورد تعریف نمای ، به توضیحات locationBias مراجعه کنید.

    شما می توانید locationRestriction یا locationBias را مشخص کنید ، اما هر دو نیست. فکر کردن به locationRestriction به عنوان مشخص کردن منطقه ای که باید نتایج در آن باشد ، فکر کنید و locationBias به عنوان منطقه مشخص کنید که نتایج باید نزدیک باشد اما می تواند خارج از منطقه باشد.

  • حداکثر

    حداکثر تعداد نتایج مکان را برای بازگشت مشخص می کند. باید بین 1 تا 20 (پیش فرض) باشد.

  • مینی

    نتایج را فقط به مواردی محدود می کند که میانگین آنها رتبه بندی کاربر بیشتر از یا مساوی با این حد است. مقادیر باید بین 0.0 تا 5.0 (فراگیر) در افزایش 0.5 باشد. به عنوان مثال: 0 ، 0.5 ، 1.0 ، ... ، 5.0 فراگیر. مقادیر تا نزدیکترین 0.5 گرد می شوند. به عنوان مثال ، مقدار 0.6 تمام نتایج را با رتبه کمتر از 1.0 از بین می برد.

  • پریسولز

    جستجو را به مکانهایی که در سطح خاصی از قیمت مشخص شده اند محدود کنید. پیش فرض انتخاب تمام سطح قیمت است.

    مجموعه ای از یک یا چند مقادیر تعریف شده توسط PriceLevel را مشخص کنید.

    به عنوان مثال:

    request.priceLevels = [GMSPlacesPriceLevel.moderate.rawValue, GMSPlacesPriceLevel.cheap.rawValue]
  • پیشران

    چگونگی رتبه بندی نتایج در پاسخ را بر اساس نوع پرس و جو مشخص می کند:

    • برای یک پرس و جو طبقه بندی شده مانند "رستوران ها در شهر نیویورک" ، .relevance (رتبه بندی نتایج با اهمیت جستجو) پیش فرض است. شما می توانید rankPreference برای .relevance یا .distance تنظیم کنید (نتایج را از راه دور).
    • برای یک پرس و جو غیر گروهی مانند "Mountain View ، CA" ، توصیه می کنیم rankPreference Unet را ترک کنید.
  • کد منطقه

    کد منطقه ای که برای قالب بندی پاسخ استفاده می شود ، به عنوان مقدار کد CLDR دو کاراکتر مشخص شده است. این پارامتر همچنین می تواند تأثیر تعصب در نتایج جستجو داشته باشد. هیچ مقدار پیش فرض وجود ندارد.

    اگر نام کشور قسمت آدرس در پاسخ با کد منطقه مطابقت داشته باشد ، کد کشور از آدرس حذف می شود.

    بیشتر کدهای CLDR با کدهای ISO 3166-1 یکسان هستند و برخی از استثنائات قابل توجه دارند. به عنوان مثال ، CCTLD انگلستان "انگلستان" (.co.uk) است در حالی که کد ISO 3166-1 آن "GB" است (از نظر فنی برای موجودیت "انگلستان انگلیس و ایرلند شمالی"). این پارامتر می تواند بر اساس قانون قابل اجرا بر نتایج تأثیر بگذارد.

انتساب را در برنامه خود نمایش دهید

هنگامی که برنامه شما اطلاعات به دست آمده از GMSPlacesClient ، مانند عکس ها و بررسی ها را نشان می دهد ، برنامه نیز باید ویژگی های مورد نیاز را نشان دهد.

به عنوان مثال ، خاصیت reviews از شیء GMSPlacesClient شامل مجموعه ای از حداکثر پنج اشیاء GMSPlaceReview است. هر شیء GMSPlaceReview می تواند حاوی ویژگی ها و ویژگی های نویسنده باشد. اگر بررسی را در برنامه خود نمایش می دهید ، باید هرگونه انتساب یا انتساب نویسنده را نیز نمایش دهید.

برای اطلاعات بیشتر ، به مستندات مربوط به ویژگی ها مراجعه کنید.

،
پلتفرم را انتخاب کنید: سرویس وب جاوا اسکریپت اندروید iOS

جستجوی متن اطلاعات مربوط به مجموعه ای از مکان ها را بر اساس یک رشته باز می گرداند. به عنوان مثال ، "پیتزا در نیویورک" ، "فروشگاه های کفش در نزدیکی اتاوا" یا "خیابان 123 اصلی". این سرویس با لیستی از مکان هایی که مطابق با رشته متن و هر تعصب موقعیت مکانی تنظیم شده است ، پاسخ می دهد.

این سرویس به ویژه برای ایجاد پرس و جوهای آدرس مبهم در یک سیستم خودکار مفید است و اجزای غیر آدرس این رشته ممکن است با مشاغل و همچنین آدرس مطابقت داشته باشد. نمونه هایی از نمایش داده های آدرس مبهم آدرس ها یا درخواست هایی با فرمت ضعیف است که شامل اجزای غیر آدرس مانند نام تجاری است. درخواست هایی مانند دو مثال اول ممکن است نتایج صفر را بازگرداند مگر اینکه مکانی (مانند منطقه ، محدودیت مکان یا تعصب مکان) تنظیم شود.

"10 خیابان عالی ، انگلستان" یا "خیابان اصلی 123 ، ایالات متحده" چندین "خیابان عالی" در انگلستان ؛ چندین "خیابان اصلی" در ایالات متحده. پرس و جو نتایج مطلوب را باز نمی گرداند مگر اینکه محدودیت مکان تعیین شود.
"رستوران زنجیره ای نیویورک" چندین مکان "رستوران زنجیره ای" در نیویورک ؛ بدون آدرس خیابان یا حتی نام خیابان.
"10 خیابان عالی ، Escher UK" یا "خیابان 123 اصلی ، Pleasanton Us" فقط یک "خیابان عالی" در شهر انگلستان اسچر ؛ فقط یک "خیابان اصلی" در شهر ایالات متحده از Pleasanton CA.
"UniquerestaurantName New York" فقط یک موسسه با این نام در نیویورک ؛ هیچ آدرس خیابانی برای تمایز لازم نیست.
"رستوران های پیتزا در نیویورک" این پرس و جو حاوی محدودیت موقعیت مکانی آن است و "رستوران های پیتزا" یک نوع مکانی کاملاً تعریف شده است. این نتایج متعدد را برمی گرداند.
"+1 514-670-8700"

این پرس و جو حاوی شماره تلفن است. این نتایج را برای مکان های مرتبط با آن شماره تلفن بازمی گرداند.

با جستجوی متن لیستی از مکان ها را دریافت کنید

با فراخوانی GMSPlacesClient searchByTextWithRequest: ، با عبور از یک شیء GMSPlaceSearchByTextRequest که پارامترهای درخواست و یک روش پاسخ به تماس را تعریف می کند ، از نوع GMSPlaceSearchByTextResultCallback ، برای پاسخگویی به پاسخ.

شیء GMSPlaceSearchByTextRequest تمام پارامترهای مورد نیاز و اختیاری را برای درخواست مشخص می کند. پارامترهای مورد نیاز عبارتند از:

  • لیست زمینه هایی برای بازگشت در شیء GMSPlace ، همچنین به عنوان ماسک میدانی نیز گفته می شود ، همانطور که توسط GMSPlaceProperty تعریف شده است. اگر حداقل یک قسمت در لیست فیلد را مشخص نکنید ، یا اگر لیست فیلد را حذف نمی کنید ، تماس یک خطا را برمی گرداند.
  • پرس و جو متن

این مثال درخواست جستجوی متن مشخص می کند که اشیاء پاسخ GMSPlace حاوی نام مکان و شناسه مکان برای هر شیء GMSPlace در نتایج جستجو هستند. همچنین پاسخ فقط به مکانهای بازگشت از نوع "رستوران" را فیلتر می کند.

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

پاسخ های جستجوی متن

API جستجوی متن مجموعه ای از مسابقات را به شکل اشیاء GMSPlace باز می گرداند ، با یک شیء GMSPlace در هر مکان تطبیق.

وضعیت باز کنید

شیء GMSPlacesClient شامل یک تابع عضو به نام isOpenWithRequest ( isOpenRequest in swift و isPlaceOpenRequest در googleplacesswift) است که پاسخ می دهد که نشان می دهد آیا این مکان در حال حاضر باز است ، بر اساس زمان مشخص شده در تماس.

این روش یک آرگومان واحد از نوع GMSPlaceIsOpenWithRequest را شامل می شود که شامل:

  • یک شیء GMSPlace یا یک رشته که شناسه مکان را مشخص می کند. برای اطلاعات بیشتر در مورد ایجاد شیء مکان با زمینه های لازم ، به جزئیات مکان مراجعه کنید.
  • یک شیء NSDate اختیاری (OBJ-C) یا Date (Swift) که زمان مورد نظر برای بررسی را مشخص می کند. اگر زمان مشخص نشده باشد ، پیش فرض اکنون است.
  • یک روش GMSPlaceOpenStatusResponseCallback برای رسیدگی به پاسخ.
  • >

روش GMSPlaceIsOpenWithRequest به زمینه های زیر نیاز دارد تا در شیء GMSPlace تنظیم شود:

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

اگر این زمینه ها در شیء مکان ارائه نشده باشد ، یا اگر یک شناسه مکانی را منتقل کنید ، این روش GMSPlacesClient GMSFetchPlaceRequest: برای واکشی آنها.

پاسخ isOpenWithRequest

isOpenWithRequest یک شیء GMSPlaceIsOpenResponse حاوی یک مقدار بولی به نام status را برمی گرداند که نشان می دهد تجارت باز ، بسته است یا اینکه وضعیت ناشناخته است.

زبان اگر باز شود در صورت بسته شدن مقدار اگر وضعیت ناشناخته باشد
سویفت .open .closed .unknown
هدف-C GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown
GooglePlacessWift (پیش نمایش) true false nil

صورتحساب برای isOpenWithRequest

  • زمینه های GMSPlacePropertyUTCOffsetMinutes و GMSPlacePropertyBusinessStatus تحت داده های اصلی SKU شارژ می شوند. بقیه ساعات کار در زیر جزئیات محل شرکت SKU شارژ می شود.
  • اگر شیء GMSPlace شما قبلاً این زمینه ها را از درخواست قبلی داشته باشد ، دیگر به شما پرداخت نمی شود.

مثال: درخواست GMSPlaceIsOpenWithRequest را ایجاد کنید

مثال زیر نشان می دهد که چگونه می توان یک GMSPlaceIsOpenWithRequest را در یک شیء GMSPlace موجود آغاز کرد.
    let isOpenRequest = GMSPlaceIsOpenRequest(place: place, date: nil)
      GMSPlacesClient.shared().isOpen(with: isOpenRequest) { response, error in
        if let error = error {
          // Handle Error
        }
        switch response.status {
          case .open:
            // Handle open
          case .closed:
            // Handle closed
          case .unknown:
            // Handle unknown
        }
      }
        
          GMSPlaceIsOpenRequest *isOpenRequest = [[GMSPlaceIsOpenRequest alloc] initWithPlace:place date:nil];

          [[GMSPlacesClient sharedClient] isOpenWithRequest:isOpenRequest callback:^(GMSPlaceIsOpenResponse response, NSError *_Nullable error) {
            if (error) {
              // Handle error
            }

            switch (response.status) {
              case GMSPlaceOpenStatusOpen:
                // Handle open
              case GMSPlaceOpenStatusClosed:
                // Handle closed
              case GMSPlaceOpenStatusUnknown:
                // Handle unknown
            }
          }];
          
          let isOpenRequest = IsPlaceOpenRequest(place: place)
          switch await placesClient.isPlaceOpen(with: isOpenRequest) {
            case .success(let isOpenResponse):
              switch isOpenResponse.status {
                case true:
                  // Handle open
                case false:
                  // Handle closed
                case nil:
                  // Handle unknown
            case .failure(let placesError):
              // Handle error
          }
          

پارامترهای مورد نیاز

برای مشخص کردن پارامترهای مورد نیاز برای جستجو ، از GMSPlaceSearchByTextRequest استفاده کنید.

  • لیست میدانی

    مشخص کنید که کدام ویژگی های داده را برای بازگشت. لیستی از خصوصیات GMSPlace را که قسمتهای داده را برای بازگشت مشخص می کند ، منتقل کنید. اگر ماسک فیلد را حذف کنید ، درخواست خطایی را برمی گرداند.

    لیست های فیلد یک روش طراحی مناسب برای اطمینان از درخواست داده های غیر ضروری است ، که به جلوگیری از زمان پردازش غیر ضروری و هزینه های صورتحساب کمک می کند.

    یک یا چند قسمت زیر را مشخص کنید:

    • زمینه های زیر باعث می شود متن Essentials ID ID فقط SKU :

      GMSPlacePropertyPlaceID
      GMSPlacePropertyName
    • زمینه های زیر باعث می شود متن SEARCH PRO SKU :

      GMSPlacePropertyAddressComponents
      GMSPlacePropertyBusinessStatus
      GMSPlacePropertyFormattedAddress
      GMSPlacePropertyIconBackgroundColor
      GMSPlacePropertyIconImageURL
      GMSPlacePropertyCoordinate
      GMSPlacePropertyPhotos
      GMSPlacePropertyPlusCode
      GMSPlacePropertyTypes
      GMSPlacePropertyUTCOffsetMinutes
      GMSPlacePropertyViewport
      GMSPlacePropertyWheelchairAccessibleEntrance
    • زمینه های زیر باعث می شود متن جستجوی متن SKU :

      GMSPlacePropertyCurrentOpeningHours
      GMSPlacePropertySecondaryOpeningHours
      GMSPlacePropertyPhoneNumber
      GMSPlacePropertyPriceLevel
      GMSPlacePropertyRating
      GMSPlacePropertyOpeningHours
      GMSPlacePropertyUserRatingsTotal
      GMSPlacePropertyWebsite
    • زمینه های زیر باعث می شود متن جستجوی متن به علاوه SKU :

      GMSPlacePropertyCurbsidePickup
      GMSPlacePropertyDelivery
      GMSPlacePropertyDineIn
      GMSPlacePropertyEditorialSummary
      GMSPlacePropertyReservable
      GMSPlacePropertyReviews
      GMSPlacePropertyServesBeer
      GMSPlacePropertyServesBreakfast
      GMSPlacePropertyServesBrunch
      GMSPlacePropertyServesDinner
      GMSPlacePropertyServesLunch
      GMSPlacePropertyServesVegetarianFood
      GMSPlacePropertyServesWine
      GMSPlacePropertyTakeout
  • تنیس

    رشته متنی که در آن جستجو شود ، به عنوان مثال: "رستوران" ، "خیابان 123 اصلی" یا "بهترین مکان برای بازدید در سانفرانسیسکو".

پارامترهای اختیاری

برای مشخص کردن پارامترهای اختیاری برای جستجو از GMSPlaceSearchByTextRequest استفاده کنید.

  • نوع

    نتایج را به مکانهایی که مطابق با نوع مشخص شده توسط جدول A است محدود می کند. فقط یک نوع ممکن است مشخص شود. به عنوان مثال:

    • request.includedType = "bar"
    • request.includedType = "pharmacy"
  • ایزوپن

    اگر true ، فقط مکانهایی را که در زمان ارسال پرس و جو برای تجارت باز هستند ، برگردانید. اگر false ، همه مشاغل را بدون توجه به وضعیت باز برگردانید. اگر این پارامتر را روی false تنظیم کنید ، مکانهایی که ساعات کار را در پایگاه داده Google Places مشخص نمی کنند ، بازگردانده می شوند.

  • isstricttypefiltering

    مورد استفاده با پارامتر includeType . هنگامی که روی true تنظیم شده است ، فقط مکانهایی که با انواع مشخص شده مشخص شده توسط includeType مطابقت دارند ، بازگردانده می شوند. در صورت دروغ بودن ، پیش فرض ، پاسخ می تواند شامل مکانهایی باشد که با انواع مشخص شده مطابقت ندارند.

  • مکان یابی

    منطقه ای را برای جستجو مشخص می کند. این مکان به عنوان یک تعصب عمل می کند ، به این معنی که می توان نتایج اطراف مکان مشخص شده را بازگرداند ، از جمله نتایج خارج از منطقه مشخص شده.

    شما می توانید 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 ، دامنه طول جغرافیایی معکوس است (نمای Viewport از خط طول جغرافیایی 180 درجه عبور می کند).
      • اگر low.longitude = -180 درجه و high.longitude = 180 درجه باشد ، Viewport شامل تمام طول ها است.
      • اگر low.longitude = 180 درجه و high.longitude = -180 درجه ، محدوده طول جغرافیایی خالی است.
      • اگر low.latitude > high.latitude ، محدوده عرض جغرافیایی خالی است.
  • محل کار

    منطقه ای را برای جستجو مشخص می کند. نتایج خارج از منطقه مشخص شده بازگردانده نمی شود. منطقه را به عنوان یک نمای مستطیل شکل مشخص کنید. برای اطلاعات در مورد تعریف نمای ، به توضیحات locationBias مراجعه کنید.

    شما می توانید locationRestriction یا locationBias را مشخص کنید ، اما هر دو نیست. فکر کردن به locationRestriction به عنوان مشخص کردن منطقه ای که باید نتایج در آن باشد ، فکر کنید و locationBias به عنوان منطقه مشخص کنید که نتایج باید نزدیک باشد اما می تواند خارج از منطقه باشد.

  • حداکثر

    حداکثر تعداد نتایج مکان را برای بازگشت مشخص می کند. باید بین 1 تا 20 (پیش فرض) باشد.

  • مینی

    نتایج را فقط به مواردی محدود می کند که میانگین آنها رتبه بندی کاربر بیشتر از یا مساوی با این حد است. مقادیر باید بین 0.0 تا 5.0 (فراگیر) در افزایش 0.5 باشد. به عنوان مثال: 0 ، 0.5 ، 1.0 ، ... ، 5.0 فراگیر. مقادیر تا نزدیکترین 0.5 گرد می شوند. به عنوان مثال ، مقدار 0.6 تمام نتایج را با رتبه کمتر از 1.0 از بین می برد.

  • پریسولز

    جستجو را به مکانهایی که در سطح خاصی از قیمت مشخص شده اند محدود کنید. پیش فرض انتخاب تمام سطح قیمت است.

    مجموعه ای از یک یا چند مقادیر تعریف شده توسط PriceLevel را مشخص کنید.

    به عنوان مثال:

    request.priceLevels = [GMSPlacesPriceLevel.moderate.rawValue, GMSPlacesPriceLevel.cheap.rawValue]
  • پیشران

    چگونگی رتبه بندی نتایج در پاسخ را بر اساس نوع پرس و جو مشخص می کند:

    • برای یک پرس و جو طبقه بندی شده مانند "رستوران ها در شهر نیویورک" ، .relevance (رتبه بندی نتایج با اهمیت جستجو) پیش فرض است. شما می توانید rankPreference برای .relevance یا .distance تنظیم کنید (نتایج را از راه دور).
    • برای یک پرس و جو غیر گروهی مانند "Mountain View ، CA" ، توصیه می کنیم rankPreference Unet را ترک کنید.
  • کد منطقه

    کد منطقه ای که برای قالب بندی پاسخ استفاده می شود ، به عنوان مقدار کد CLDR دو کاراکتر مشخص شده است. این پارامتر همچنین می تواند تأثیر تعصب در نتایج جستجو داشته باشد. هیچ مقدار پیش فرض وجود ندارد.

    اگر نام کشور قسمت آدرس در پاسخ با کد منطقه مطابقت داشته باشد ، کد کشور از آدرس حذف می شود.

    بیشتر کدهای CLDR با کدهای ISO 3166-1 یکسان هستند و برخی از استثنائات قابل توجه دارند. به عنوان مثال ، CCTLD انگلستان "انگلستان" (.co.uk) است در حالی که کد ISO 3166-1 آن "GB" است (از نظر فنی برای موجودیت "انگلستان انگلیس و ایرلند شمالی"). این پارامتر می تواند بر اساس قانون قابل اجرا بر نتایج تأثیر بگذارد.

انتساب را در برنامه خود نمایش دهید

هنگامی که برنامه شما اطلاعات به دست آمده از GMSPlacesClient ، مانند عکس ها و بررسی ها را نشان می دهد ، برنامه نیز باید ویژگی های مورد نیاز را نشان دهد.

به عنوان مثال ، خاصیت reviews از شیء GMSPlacesClient شامل مجموعه ای از حداکثر پنج اشیاء GMSPlaceReview است. هر شیء GMSPlaceReview می تواند حاوی ویژگی ها و ویژگی های نویسنده باشد. اگر بررسی را در برنامه خود نمایش می دهید ، باید هرگونه انتساب یا انتساب نویسنده را نیز نمایش دهید.

برای اطلاعات بیشتر ، به مستندات مربوط به ویژگی ها مراجعه کنید.