جستجوی نوشتار (جدید)

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

توسعه‌دهندگان منطقه اقتصادی اروپا (EEA)

«جستجوی نوشتار» (جدید) اطلاعاتی درباره مجموعه‌ای از مکان‌ها براساس رشته‌ای (برای مثال، «پیتزا در نیویورک» یا «کفش‌فروشی‌های نزدیک اتاوا» یا «خیابان اصلی ۱۲۳») برمی‌گرداند. سرویس با فهرستی از مکان‌های منطبق با رشته نوشتاری و هرگونه سوگیری مکانی که تنظیم شده است پاسخ می‌دهد.

علاوه‌بر پارامترهای الزامی، «جستجوی نوشتار» (جدید) از پالایش پُرسمان‌ها بااستفاده از پارامترهای اختیاری برای نتایج بهتر پشتیبانی می‌کند.

دریافت فهرست مکان‌ها با جستجوی نوشتاری

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

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

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

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

کیت توسعه نرم‌افزار Places Swift

let restriction = GMSPlaceRectangularLocationOption(
      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
}

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)

آبجکتیو-سی

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

پاسخ‌های «جستجوی نوشتار»

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

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

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

این روش یک متغیر مستقل از نوع GMSPlaceIsOpenWithRequest را می‌گیرد که حاوی موارد زیر است:

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

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

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

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

isOpenWithRequest پاسخ

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

زبان مقدار درصورت باز بودن مقدار درصورت بسته بودن مقدار درصورت نامشخص بودن وضعیت
Places Swift true false nil
Swift .open .closed .unknown
آبجکتیو-سی GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown

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

مثال: درخواست GMSPlaceIsOpenWithRequest

مثال زیر نشان می‌دهد که چگونه می‌توان یک GMSPlaceIsOpenWithRequest را در یک شیء GMSPlace موجود مقداردهی اولیه کرد.

کیت توسعه نرم‌افزار Places Swift

        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
        }
        

Swift

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

شماره‌گذاری صفحات

«جستجوی نوشتار» یک شیء صفحه‌بندی، یعنی بولی hasNextPage، ارائه می‌دهد که در اولین پاسخ به فراخوانی «جستجوی نوشتار» برگردانده می‌شود. اگر صفحه بعدی دردسترس باشد، می‌توانید از تابع fetchNextPage() برای بار کردن آن استفاده کنید.

مثال زیر نشان می‌دهد که چگونه می‌توان بررسی کرد که آیا صفحه بعدی دردسترس است یا نه، و سپس صفحه را بار کرد.

Swift

public struct PlaceSearchPagination {
  public var pageSize: Int
  public var hasNextPage: Bool
  public func fetchNextPage() async -> SearchByTextResponse
}

public struct SearchByTextResponse {
  public var pagination: PlaceSearchPagination?
  public var places: [Place]?
  public var error: PlaceError?
}

PlacesClient.swift
public func searchByText(with request: SearchByTextRequest) async -> SearchByTextResponse

let searchByTextRequest = SearchByTextRequest(textQuery: "restaurants",
    placeProperties: [PlaceProperty.displayName],
    locationBias: CircularCoordinateRegion(center: CLLocationCoordinate2D(latitude: 0, longitude: 0), radius: 100))

searchByTextRequest.maxResultCount = 10

var searchByTextResponse = await PlacesClient.shared.searchByText(with: searchByTextRequest)
print("Found \(searchByTextResponse.places.count) places")

searchByTextResponse.pagination.pageSize = 20

// Continue making requests until no more results are found in pagination object
while searchByTextResponse.pagination.hasNextPage {
    searchByTextResponse = await searchByTextResponse.pagination.fetchNextPage()
    print("Found \(searchByTextResponse.places.count) places")
}
    

آبجکتیو-سی

GMSPlaceSearchByTextRequest *searchByTextRequest = [[GMSPlaceSearchByTextRequest alloc]
    initWithTextQuery: @"restaurants"
    placeProperties: @[GMSPlacePropertyAll]];

searchByTextRequest.maxResultCount = 10;

__block void (^recursiveCallback)(GMSPlaceSearchByTextResponse *, NSError *);
recursiveCallback = ^(GMSPlaceSearchByTextResponse * response, NSError* error) {
    NSLog(@"Found %d places", response.places.count);
    if (response.pagination.hasNextPage) {
      [response.pagination fetchNextPageWithCompletion:recursiveCallback];
   }
};
[GMSPlacesClient.sharedClient searchByTextWithRequest:searchByTextRequest  
                                           completion:recursiveCallback];
    

پارامترهای الزامی

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

  • فهرست فیلدها

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

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

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

    • فیلدهای زیر شناسه SKU فقط شناسه Text Search Essentials را راه‌اندازی می‌کنند:

      GMSPlacePropertyPlaceID

      برای مشاهده فهرست کامل فیلدها و SKUهای مرتبط با آن‌ها، به فیلدهای داده مکان (جدید) مراجعه کنید.

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

      GMSPlacePropertyAddressComponents
      GMSPlacePropertyBusinessStatus
      GMSPlacePropertyCoordinate
      GMSPlacePropertyFormattedAddress
      GMSPlacePropertyIconBackgroundColor
      GMSPlacePropertyIconImageURL
      GMSPlacePropertyName
      GMSPlacePropertyPhotos
      GMSPlacePropertyPlusCode
      GMSPlacePropertyTypes
      GMSPlacePropertyUTCOffsetMinutes
      GMSPlacePropertyViewport
      GMSPlacePropertyWheelchairAccessibleEntrance

      برای مشاهده فهرست کامل فیلدها و SKUهای مرتبط با آن‌ها، به فیلدهای داده مکان (جدید) مراجعه کنید.

    • فیلدهای زیر شناسه محصول سازمانی جستجوی نوشتار را راه‌اندازی می‌کنند:

      GMSPlacePropertyCurrentOpeningHours
      GMSPlacePropertySecondaryOpeningHours
      GMSPlacePropertyPhoneNumber
      GMSPlacePropertyPriceLevel
      GMSPlacePropertyRating
      GMSPlacePropertyOpeningHours
      GMSPlacePropertyUserRatingsTotal
      GMSPlacePropertyWebsite

      برای مشاهده فهرست کامل فیلدها و SKUهای مرتبط با آن‌ها، به فیلدهای داده مکان (جدید) مراجعه کنید.

    • فیلدهای زیر شناسه محصول Text Search Enterprise Plus را فعال می‌کنند:

      GMSPlacePropertyCurbsidePickup
      GMSPlacePropertyDelivery
      GMSPlacePropertyDineIn
      GMSPlacePropertyEditorialSummary
      GMSPlacePropertyReservable
      GMSPlacePropertyReviews
      GMSPlacePropertyServesBeer
      GMSPlacePropertyServesBreakfast
      GMSPlacePropertyServesBrunch
      GMSPlacePropertyServesDinner
      GMSPlacePropertyServesLunch
      GMSPlacePropertyServesVegetarianFood
      GMSPlacePropertyServesWine
      GMSPlacePropertyTakeout

      برای مشاهده فهرست کامل فیلدها و SKUهای مرتبط با آن‌ها، به فیلدهای داده مکان (جدید) مراجعه کنید.

  • textQuery

    رشته نوشتاری که باید جستجو شود، برای مثال: «رستوران»، «خیابان اصلی ۱۲۳»، یا «بهترین مکان برای بازدید در سان‌فرانسیسکو».

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

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

  • includedType

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

    • let request = SearchByTextRequest()
      request.includedType = "bar"
    • let request = SearchByTextRequest()
      request.includedType = "pharmacy"
  • isOpenNow

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

  • isStrictTypeFiltering

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

  • locationBias

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

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

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

    • دایره با نقطه مرکزی و شعاع به متر تعریف می‌شود. شعاع باید بین ۰٫۰ و ۵۰۰۰۰٫۰ باشد. شعاع پیش‌فرض ۰٫۰ است. برای مثال:

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

      ناحیه نمایش به‌عنوان یک منطقه بسته درنظر گرفته می‌شود، یعنی مرزهای آن را شامل می‌شود. محدوده عرض جغرافیایی باید بین ۹۰- تا ۹۰ درجه باشد و محدوده طول جغرافیایی باید بین ۱۸۰- تا ۱۸۰ درجه باشد:

      • اگر low = high، ناحیه نمایش از آن نقطه تکی تشکیل می‌شود.
      • اگر low.longitude > high.longitude، محدوده طول جغرافیایی معکوس می‌شود (نمای جغرافیایی از خط طول جغرافیایی ۱۸۰ درجه عبور می‌کند).
      • اگر low.longitude = ۱۸۰- درجه و high.longitude = ۱۸۰ درجه باشد، نمای دید شامل همه طول‌های جغرافیایی می‌شود.
      • اگر low.longitude = ۱۸۰ درجه و high.longitude = ۱۸۰- درجه باشد، محدوده طول جغرافیایی خالی است.
      • اگر low.latitude > high.latitude، محدوده عرض جغرافیایی خالی است.
  • locationRestriction

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

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

  • maxResultCount

    حداکثر تعداد نتایج مکان را برای برگرداندن مشخص می‌کند. باید بین ۱ و ۲۰ (پیش‌فرض) باشد.

  • minRating

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

  • priceLevels

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

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

    برای مثال:

        let request = SearchByTextRequest()
        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» است (ازنظر فنی برای نهاد «پادشاهی متحد بریتانیای کبیر و ایرلند شمالی»). این پارامتر می‌تواند بر نتایج براساس قانون ذی‌ربط تأثیر بگذارد.

  • shouldIncludePureServiceAreaBusinesses

    اگر true باشد، کسب‌وکارهای منطقه خدماتی خالص را در نتایج جستجو برمی‌گرداند. کسب‌وکار با منطقه خدماتی خالص کسب‌وکاری است که مستقیماً از مشتریان بازدید می‌کند یا به آن‌ها کالا ارسال می‌کند ولی در نشانی کسب‌وکار به مشتریان خدمات‌رسانی نمی‌کند.

    برای مثال:

    کیت توسعه نرم‌افزار Places Swift

    let request = SearchByTextRequest()
    request.shouldIncludePureServiceAreaBusinesses = true

    Swift

    let request = SearchByTextRequest()
    request.shouldIncludePureServiceAreaBusinesses: true

    آبجکتیو-سی

    GMSPlaceSearchByTextRequest *request =
        [[GMSPlaceSearchByTextRequest alloc] initWithTextQuery:@"pizza in New York" placeProperties:@[GMSPlacePropertyAll]];
    request.shouldIncludePureServiceAreaBusinesses = YES;

نمایش ارجاع‌ها در برنامه

وقتی برنامه‌تان اطلاعات به‌دست‌آمده از GMSPlacesClient را نمایش می‌دهد، مثلاً عکس‌ها و مرورها، برنامه باید ارجاع‌های لازم را نیز نمایش دهد.

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

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