خط‌مشی‌ها و ارجاع‌ها برای کیت توسعه نرم‌افزار مکان‌ها، ویژه iOS

این سند الزامات مختص همه برنامه‌های توسعه‌یافته با «کیت توسعه نرم‌افزار Places» برای iOS را فهرست می‌کند، ازجمله سرویس «تکمیل خودکار جا» که بخشی از آن میانای برنامه‌سازی کاربردی است. اطلاعات عمومی بیشتر برای توسعه‌دهندگان Google Maps را می‌توانید در شرایط خدمات Google Maps Platform پیدا کنید.

خط‌مشی‌ها

این بخش خط‌مشی‌های مربوط به «کیت توسعه نرم‌افزار مکان‌ها» برای iOS را شرح می‌دهد. خط‌مشی‌ها دستورالعمل‌ها و الزامات اجرایی کاربردی را ارائه می‌دهند تا به شما کمک کنند از «سرویس» به‌درستی و مطابق با انتظارات «پلاتفرم Google Maps» استفاده کنید.

استثنائات محدودیت‌های ذخیره کردن در حافظه نهان

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

کشورها و قلمروهای منطقه اقتصادی اروپا

این محصول برای مشتریانی که نشانی صورت‌حسابشان در منطقه اقتصادی اروپا (EEA) است، «شرایط خدمات» متفاوتی دارد و ممکن است عملکرد آن نیز متفاوت باشد. قبل‌از ساختن با Google Maps Platform، شرایط و اطلاعات زیر را که مختص منطقه اقتصادی اروپا است مرور کنید:

اگر نشانی صورت‌حساب شما در منطقه اقتصادی اروپا نیست، شرایط خدمات زیر برای شما اعمال می‌شود:

الزامات ذکر منبع Google Maps

این بخش الزامات و دستورالعمل‌های ذکر منبع را برای نمایش Google Maps و محتوا ازطریق برنامه‌های شما ارائه می‌دهد.

نمونه اسناد

در زیر نمونه‌ای از ارجاع برای «کیت میانای کاربر جاها» آورده شده است.

کیت میانای کاربر «جاها»
نمونه ارجاع در نقشه غیرGoogle
ذکر منبع الزامی برای مؤلفه فشرده «جزئیات مکان» اعمال شد. در این نقشه غیرGoogle، ارجاع Google Maps به‌وضوح قابل‌مشاهده است و محتوای Google Maps Platform ازنظر بصری از محتوای دیگر متمایز است.

نمایش ارجاع Google Maps

هنگام نمایش «محتوا» از میاناهای برنامه‌سازی کاربردی «پلاتفرم Google Maps» در برنامه یا وب‌سایتتان، باید الزامات ذکر منبع Google Maps را رعایت کنید. اگر «محتوا» در Google Map نشان داده می‌شود و ارجاع ازقبل نمایان است، نیازی به افزودن ارجاع اضافی ندارید.

ارجاع Google Maps اضافه شد

برای ارجاع Google Maps که قبلاً توسط «پلاتفرم Google Maps» در میانای کاربر ارائه شده است، مثلاً در «کیت میانای کاربر جاها»:

  • ارجاع گنجانده‌شده را صرف‌نظر از جایی که نمایش داده می‌شود برندارید. اسناد را تغییر ندهید، پنهان نکنید، یا مبهم نکنید و مطمئن شوید که به‌وضوح در پس‌زمینه قابل‌مشاهده است.
  • همیشه «محتوای Google Maps Platform» را بااستفاده از نشانه‌های میانای کاربری مانند حاشیه، رنگ پس‌زمینه، سایه، یا فضای خالی کافی به‌صورت بصری از محتوای دیگر متمایز کنید.
  • هنگام ایجاد تغییرات بصری، باید از همه الزامات ذکر منبع Google Maps پیروی کنید.

ارجاع باید هر زمان ممکن است به‌شکل نشان‌واره Google Maps باشد. در مواردی که فضا محدود است، نوشتار Google Maps قابل‌قبول است. همیشه باید برای کاربران نهایی مشخص باشد که کدام محتوا را Google Maps ارائه کرده است.

سمت راست: ارجاع نوشتاری Google Maps، سمت چپ: ارجاع نشان‌واره Google Maps
سمت راست: نمونه‌ای از ارجاع نوشتاری Google Maps، سمت چپ: نمونه‌ای از ارجاع نشان‌واره Google Maps

ارجاع نشان‌واره

برای استفاده از نشان‌واره Google Maps در برنامه یا وب‌سایتتان، این الزامات را دنبال کنید.
انواع قابل‌قبول برای ارجاع نشان‌واره Google Maps
نمونه‌هایی از انواع قابل‌قبول برای ارجاع نشان‌واره Google Maps

بارگیری نشان‌واره‌های Google Maps

از فایل‌های رسمی نشان‌واره Google Maps استفاده کنید. نشان‌واره‌های زیر را بارگیری کنید و دستورالعمل‌های این بخش را دنبال کنید.

بارگیری دارایی‌های ارجاع Google Maps

هنگام استفاده از نشان‌واره Google Maps، این دستورالعمل‌ها را دنبال کنید.

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

مشخصات اندازه نشان‌واره

برای نشان‌واره Google Maps، این مشخصات اندازه را دنبال کنید:
  • حداقل ارتفاع نشان‌واره: ۱۶ پیکسل مستقل از تراکم
  • حداکثر ارتفاع نشان‌واره: ۱۹ پیکسل مستقل از تراکم
  • حداقل فضای خالی نشان‌واره: ۱۰ پیکسل مستقل از تراکم در چپ، راست، و بالا، ۵ پیکسل مستقل از تراکم در پایین

برای آشنایی با dp، به تراکم پیکسل در وب‌سایت Material Design مراجعه کنید.

نشان‌واره Google Maps که حداقل فضای خالی و محدوده اندازه قابل‌قبول را نشان می‌دهد
نمونه‌ای از نشان‌واره Google Maps که حداقل فضای خالی و محدوده اندازه قابل‌قبول را نشان می‌دهد

دسترس‌پذیری نشان‌واره

این الزامات دسترس‌پذیری را برای نشان‌واره Google Maps دنبال کنید:
  • کنتراست دسترس‌پذیری بین نشان‌واره و پس‌زمینه را حفظ کنید.
  • برچسب دسترس‌پذیری با نوشتار Google Maps را اضافه کنید.
تغییرات غیرقابل‌قبول و مشکلات دسترس‌پذیری برای ارجاع نشان‌واره Google Maps
نمونه‌هایی از تغییرات غیرقابل‌قبول و مشکلات دسترس‌پذیری برای ارجاع نشان‌واره Google Maps

انتساب نوشتار

اگر اندازه میانای شما از استفاده از نشان‌واره Google Maps پشتیبانی نمی‌کند، می‌توانید Google Maps را به‌صورت نوشتاری بنویسید. این دستورالعمل‌ها را دنبال کنید:

انواع قابل‌قبول ارجاع نوشتاری Google Maps
نمونه‌هایی از انواع قابل‌قبول ارجاع نوشتاری Google Maps
  • نوشتار Google Maps را به هیچ وجه تغییر ندهید:
    • حروف بزرگ و کوچک Google Maps را تغییر ندهید
    • Google Maps را در چند خط ننویسید
    • Google Maps را به زبان دیگری بومی‌سازی نکنید.
    • بااستفاده از مشخصه HTML translate="no"، از ترجمه Google Maps توسط مرورگرها جلوگیری کنید.
انواع غیرقابل‌قبول ارجاع نوشتاری Google Maps
نمونه‌هایی از انواع غیرقابل‌قبول ارجاع نوشتاری Google Maps
  • نوشتار Google Maps را همان‌طور که در جدول زیر شرح داده شده است سبک‌بندی کنید:

    الزامات سبک نوشتار Google Maps
    دارایی سبک
    خانواده قلم Roboto. بار کردن قلم اختیاری است.
    خانواده قلم جایگزین هر قلم سن‌سریف نوشتار اصلی که قبلاً در محصولتان استفاده شده است یا «سن‌سریف» برای فراخوانی قلم پیش‌فرض سیستم
    سبک قلم معمولی
    وزن قلم ۴۰۰
    رنگ قلم سفید، سیاه (#1F1F1F)، یا خاکستری (#5E5E5E). کنتراست دسترس‌پذیر (۴.۵:۱) را درمقابل پس‌زمینه حفظ کنید.
    اندازه قلم حداقل اندازه قلم: ۱۲ اس‌پی
    حداکثر اندازه قلم: ۱۶ اس‌پی
    برای آشنایی با اس‌پی، به واحدهای اندازه قلم در وب‌سایت Material Design مراجعه کنید.
    فاصله حروف معمولی

نمونه CSS

CSS زیر Google Maps را با سبک و رنگ نوشتاری مناسب در پس‌زمینه سفید یا روشن ارائه می‌دهد.

@import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap');

.GMP-attribution {
font-family: Roboto, Sans-Serif;
font-style: normal;
font-weight: 400;
font-size: 1rem;
letter-spacing: normal;
white-space: nowrap;
color: #5e5e5e;
}

الزامات دیداری

این الزامات را برای نحوه نمایش ارجاع به Google Maps دنبال کنید.
  • نشان انتساب را نزدیک بالا یا پایین محتوا و در همان ظرف دیداری قرار دهید. برای محتوای تک‌خطی، ارجاع را می‌توان در سمت راست یا چپ قرار داد.

  • بااستفاده از نشانه‌های میانای کاربری مانند حاشیه، رنگ پس‌زمینه، سایه، یا فضای سفید کافی، «محتوای پلاتفرم Google Maps» را به‌صورت دیداری از محتواهای دیگر متمایز کنید.

  • با نسبت دادن Google Maps به محتوای غیر از «پلاتفرم Google Maps»، آن را به‌اشتباه معرفی نکنید.
  • مطمئن شوید که ارجاع همیشه قابل‌مشاهده و خوانا باشد. هرگز آن را حذف، پنهان، یا مبهم نکنید یا تغییر ندهید.

شکل‌های زیر نمونه‌هایی از این الزامات بصری را نشان می‌دهد.

نمونه‌ای از ارجاع Google Maps که در بالا، پایین، و کنار محتوا قرار گرفته است
نمونه‌ای از ارجاع Google Maps که در بالا، پایین، و کنار محتوا قرار گرفته است

نمونه‌ای از دو رویکرد برای متمایز کردن «محتوای Google Maps» (رده‌بندی مکان) از محتوای دیگر
نمونه‌ای از دو رویکرد برای متمایز کردن «محتوای Google Maps» (رده‌بندی مکان) از محتوای دیگر

انتساب Google Maps را پنهان نکنید یا آن را با محتوای منابع دیگر ترکیب نکنید
ارجاع Google Maps را پنهان نکنید یا آن را با محتوای منابع دیگر ترکیب نکنید

ارائه‌دهندگان داده‌های طرف سوم

برخی‌از داده‌ها و تصاویر موجود در محصولات نقشه‌برداری ما از ارائه‌دهندگانی غیراز Google دریافت می‌شود. برای برخی‌از محصولات، مانند Map Tiles API، ممکن است ارجاع لازم به ارائه‌دهنده داده‌های طرف سوم را به شما ارائه دهیم. وقتی این کار را انجام می‌دهیم، متن ارجاع شما باید نام «Google Maps» و ارائه‌دهنده(های) داده مربوطه را ذکر کند، مانند «داده‌های نقشه: Google، Maxar Technologies». وقتی Google ارجاع به طرف سوم ارائه می‌دهد، فقط گنجاندن «Google Maps» یا نشان‌واره Google ارجاع مناسبی نیست.

سایر الزامات ذکر منبع

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

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

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

بازیابی ارجاع‌ها برای یک مکان

وقتی مکانی را با دریافت مکان با شناسه بازیابی می‌کنید، می‌توانید ارجاع‌های آن مکان را از ویژگی attributions در GMSPlace بازیابی کنید.

‫attributions به‌عنوان شیء NSAttributedString ارائه می‌شود.

بازیابی ارجاع‌ها برای مجموعه‌ای از مکان‌ها

اگر برنامه‌تان اطلاعاتی را که با درخواست مکان فعلی دستگاه به‌دست آمده است نمایش می‌دهد، برنامه باید ارجاع‌های شخص ثالث را برای جزئیات مکان نمایش‌داده‌شده نشان دهد. می‌توانید ارجاع‌های همه مکان‌های بازیابی‌شده در درخواست را از ویژگی attributions در GMSPlaceLikelihoodList بازیابی کنید.

‫attributions به‌عنوان یک شیء NSAttributedString ارائه می‌شود که می‌توانید به همان روشی که برای attributions در یک مکان واحد در بالا توضیح داده شد، به آن دسترسی داشته باشید و آن را نمایش دهید.

اسناد نتایج جستجو

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

سرصفحه: درباره این نتایج

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

دکمه ۱: بیشتر بدانید
نوشتار «بیشتر بدانید» باید به مقاله «مرکز راهنمایی» پیوند داده شود.

دکمه ۲: تأیید

نمایش ارجاع‌ها برای عکس

اگر برنامه‌تان عکس نمایش می‌دهد، باید هرگونه attributions و authorAttributions را برای هر عکسی که آن‌ها را دارد نشان دهید.

  • برای دسترسی به هرگونه اِسناد، از GMSPlacePhotoMetadata.attributions استفاده کنید. این ویژگی NSAttributedString است، یا اگر اسنادی برای نمایش وجود نداشته باشد، nil است.
  • برای دسترسی به هرگونه ارجاع به نویسنده، از GMSPlacePhotoMetadata.authorAttributions استفاده کنید. این خصوصیت حاوی آرایه‌ای از اشیای GMSPlaceAuthorAttribution است.

Swift

GMSPlacesClient.sharedClient().lookUpPhotosForPlaceID(placeID) { (photos, error) -> Void in
  if let error = error {
    // TODO: handle the error.
    print("Error: \(error.description)")
  } else {
    // Get attribution for the first photo in the list.
    if let photo = photos?.results.first {
      let attributions = photo.attributions
    }
  }
}
    

آبجکتیو-سی

[[GMSPlacesClient sharedClient]
    lookUpPhotosForPlaceID:placeID
      callback:^(GMSPlacePhotoMetadataList *_Nullable photos,
                  NSError *_Nullable error) {
        if (error) {
          // TODO: handle the error.
          NSLog(@"Error: %@", [error description]);
        } else {
          // Get attribution for the first photo in the list.
          if (photos.results.count > 0) {
            GMSPlacePhotoMetadata *photo = photos.results.firstObject;
            NSAttributedString *attributions = photo.attributions;
          }
        }
      }];
    

نمایش مرور

یک شیء GMSPlace می‌تواند حداکثر پنج مرور داشته باشد که هر مرور با یک شیء GMSPlaceReview نشان داده می‌شود. می‌توانید این مرورها را به‌طور اختیاری در برنامه‌تان نمایش دهید.

هنگام نمایش مرورهای ارائه‌شده توسط کاربران Google، باید نام نویسنده را در نزدیکی آن قرار دهید. درصورت دردسترس بودن در فیلد ارجاع به نویسنده شیء GMSPlaceReview، توصیه می‌کنیم عکس نویسنده و پیوند به نمایه او را نیز اضافه کنید. تصویر زیر نمونه‌ای از مرور یک پارک را نشان می‌دهد:

نمایش ارجاع به نویسنده

Google همچنین توصیه می‌کند که نحوه مرتب‌سازی مرورها را برای کاربر نهایی نمایش دهید.

برای دسترسی به مرورها:

Swift

// Define a Place ID.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let myProperties: [GMSPlaceProperty] = [.name, .website, .reviews]

// Create the GMSFetchPlaceRequest object.
let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties)

client.fetchPlaceWithRequest(fetchPlaceRequest: fetchPlaceRequest, callback: {
  (place: GMSPlace?, error: Error?) in
  if let error = error {
    print("An error occurred: \(error.localizedDescription)")
    return
  }
  if let place = place {
    let firstReview: GMSPlaceReview = place.reviews![0]

    // Use firstReview to access review text, authorAttribution, and other fields.

  }
})

آبجکتیو-سی

// Define a Place ID.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return, including reviews.
NSArray<GMSPlaceProperty *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite,GMSPlacePropertyReviews];

GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties];

[placesClient fetchPlaceWithRequest: fetchPlaceRequest, callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) {
  if (error) {
    // TODO: handle the error.
    NSLog(@"Error: %@", [error description]);
  } else {
    // Get first review.
    GMSPlaceReview *firstReview = [place reviews][0];

    // Use firstReview to access review text, authorAttribution, and other fields.

  }
}];

نمایش ارجاع‌های طرف سوم

ارجاع‌ها به ارائه‌دهندگان طرف سوم به‌صورت اشیاء NSAttributedString ارائه می‌شوند که حاوی محتوا و پیوندهایی هستند که باید آن‌ها را حفظ کنید و به کاربر نمایش دهید.

روش توصیه‌شده برای نمایش ارجاع‌ها استفاده از UITextView است، زیرا پیوندها در ارجاع‌ها باید کار کنند. برای اطمینان از اینکه پیوندها کار می‌کنند، نماینده‌ای را در UITextView تنظیم کنید و روش shouldInteractWithURL UITextViewDelegate را برای برگرداندن YES تنظیم کنید.

Swift

...
  self.attributionTextView.delegate = self
...

// MARK: - UITextViewDelegate

func textView(textView: UITextView, shouldInteractWithURL URL: NSURL,
  inRange characterRange: NSRange) -> Bool {
  // Make links clickable.
  return true
}
    

آبجکتیو-سی

...
  self.attributionTextView.delegate = self;
...

#pragma mark - UITextViewDelegate

- (BOOL)textView:(UITextView *)textView
    shouldInteractWithURL:(NSURL *)url
                  inRange:(NSRange)characterRange {
  // Make links clickable.
  return YES;
}
    

نمونه‌ای از ارجاع طرف سوم

ارجاع طرف سوم معمولاً شامل نوشتار با پیوند است. برای مثال:

فهرستگان‌های شرکت نمونه

در مثال بالا، محدوده نوشتار Example Company با مشخصه NSLink پوشش داده شده است.

تکمیل خودکار برای نشانی‌های کاربر نهایی

وقتی کاربر نهایی از عملکرد «تکمیل خودکار» در «برنامه مشتری» شما برای تایپ کردن نشانی خیابان استفاده می‌کند و آن نشانی خیابان می‌توانست به‌طور کامل و دقیق توسط آن کاربر نهایی بدون «تکمیل خودکار» ارائه شود، نشانی انتخاب‌شده کاربر نهایی مشمول محدودیت‌های «محتوای Google Maps» در «قرارداد پلاتفرم Google Maps» شما نمی‌شود. این استثنا فقط برای نشانی خیابان انتخاب‌شده توسط کاربر نهایی و صرفاً برای تراکنش خاص آن کاربر نهایی اعمال می‌شود؛ این استثنا برای فهرست نشانی‌های پیشنهادی ارائه‌شده توسط عملکرد «تکمیل خودکار» یا سایر «محتوای Google Maps» اعمال نمی‌شود. این استثنا برای هیچ‌کدام از عملکردهای جستجوی نشانی یا نقطه موردعلاقه که توسط دیگر سرویس‌های «پلاتفرم Google Maps» ارائه می‌شود اعمال نمی‌شود.

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

در تصویر قبلی، فهرست نشانی در سمت راست همچنان مشمول محدودیت‌های «محتوای Google Maps» است. وقتی کاربر نهایی نشانی انتخابی‌اش را انتخاب می‌کند، آن نشانی صرفاً برای تراکنش قابل‌اجرای آن کاربر نهایی مشمول محدودیت‌های «محتوای Google Maps» نمی‌شود.