خط‌مشی‌ها و اسناد برای Places SDK برای Android

این مبحث، الزامات انتساب را برای همه برنامه‌های توسعه‌یافته با Places SDK برای اندروید، از جمله سرویس تکمیل خودکار Place که بخشی از آن API است، ارائه می‌دهد. برای شرایط بیشتر پلتفرم نقشه‌های گوگل، به شرایط خدمات پلتفرم نقشه‌های گوگل مراجعه کنید.

سیاست‌ها

این بخش سیاست‌های مربوط به Places SDK برای اندروید را شرح می‌دهد. این سیاست‌ها، دستورالعمل‌ها و الزامات پیاده‌سازی عملی را ارائه می‌دهند تا به شما در استفاده صحیح از سرویس و مطابق با انتظارات پلتفرم نقشه‌های گوگل کمک کنند.

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

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

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

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

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

الزامات انتساب نقشه‌های گوگل

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

مثال انتساب

در ادامه یک مثال از انتساب برای کیت رابط کاربری Places آورده شده است.

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

نمایش اطلاعات مربوط به نقشه گوگل

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

شامل انتساب نقشه‌های گوگل

برای انتساب نقشه‌های گوگل که از قبل توسط پلتفرم نقشه‌های گوگل در رابط کاربری ارائه شده است، مانند کیت رابط کاربری Places:

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

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

چپ: انتساب لوگوی گوگل مپ، راست: انتساب متن گوگل مپ
چپ: نمونه‌ای از انتساب لوگوی گوگل مپ، راست: نمونه‌ای از انتساب متن گوگل مپ

انتساب لوگو

برای استفاده از لوگوی گوگل مپ در برنامه یا وب‌سایت خود، این الزامات را رعایت کنید.
تغییرات قابل قبول برای انتساب لوگوی گوگل مپ
نمونه‌هایی از تغییرات قابل قبول برای انتساب لوگوی گوگل مپ

دانلود لوگوهای گوگل مپ

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

فایل‌های مربوط به اسناد گوگل مپ را دانلود کنید

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

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

مشخصات اندازه لوگو

برای لوگوی گوگل مپ، این مشخصات اندازه را دنبال کنید:
  • حداقل ارتفاع لوگو: 16dp
  • حداکثر ارتفاع لوگو: ۱۹dp
  • حداقل فضای خالی لوگو: 10dp در سمت چپ، راست و بالا، 5dp در پایین

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

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

دسترسی‌پذیری لوگو

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

انتساب متن

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

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

    الزامات مربوط به سبک‌دهی متن در نقشه گوگل
    ملک سبک
    خانواده فونت بارگذاری فونت اختیاری است.
    خانواده فونت جایگزین هر فونت بدنه‌ی سنس‌سریف که از قبل در محصول شما استفاده شده است یا "سنس‌سریف" برای فراخوانی فونت پیش‌فرض سیستم
    سبک فونت عادی
    وزن فونت ۴۰۰
    رنگ فونت سفید، مشکی (#1F1F1F) یا خاکستری (#5E5E5E). کنتراست (4.5:1) قابل قبول را نسبت به پس‌زمینه حفظ کنید.
    اندازه فونت حداقل اندازه فونت: 12sp
    حداکثر اندازه فونت: 16sp
    برای کسب اطلاعات در مورد sp، به واحدهای اندازه فونت در وب‌سایت Material Design مراجعه کنید.
    فاصله حروف عادی

مثال CSS

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

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

الزامات بصری

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

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

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

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

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

مثالی از دو رویکرد برای تمایز محتوای نقشه‌های گوگل (رتبه‌بندی مکان) از سایر محتواها
مثالی از دو رویکرد برای تمایز محتوای نقشه‌های گوگل (رتبه‌بندی مکان) از سایر محتواها

منبع گوگل مپ را مبهم نکنید یا آن را با محتوای منابع دیگر ترکیب نکنید.
منبع گوگل مپ را مبهم نکنید یا آن را با محتوای منابع دیگر ترکیب نکنید.

ارائه دهندگان داده شخص ثالث

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

سایر الزامات انتساب

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

بازیابی اسناد از یک مکان

اگر برنامه شما اطلاعات به‌دست‌آمده از طریق فراخوانی get place by ID را نمایش می‌دهد، برنامه باید اطلاعات به‌دست‌آمده از اشخاص ثالث را نیز برای جزئیات مکان نمایش دهد.

این API یک شیء Place برمی‌گرداند. برای بازیابی ویژگی‌ها از شیء Place ، متد Place.getAttributions() را فراخوانی کنید. این متد List از اشیاء String را برمی‌گرداند، یا اگر هیچ ویژگی برای نمایش وجود نداشته باشد، null برمی‌گرداند.

String placeId = "INSERT_PLACE_ID_HERE";
List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.DISPLAY_NAME);
FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);

placesClient.fetchPlace(request).addOnSuccessListener((response) -> {
  Place place = response.getPlace();
  textView.append("Place found: " + place.getName());
  List<String> attributions = place.getAttributions();
  if (attributions != null) {
    StringBuilder stringBuilder = new StringBuilder("Attributions: ");
    for (String attribution : attributions) {
      stringBuilder.append(attribution).append("\n");
    }
    textView.append(stringBuilder.toString());
  }}).addOnFailureListener((exception) -> {
    if (exception instanceof ApiException) {
      // Handle the error.
    }
  }
);

نمایش ویژگی‌های یک عکس

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

برای دریافت رشته‌های مربوط به یک عکس، تابع PhotoMetadata.getAttributions() را فراخوانی کنید. این متد یک دنباله کاراکتر HTML یا در صورت عدم وجود رشته‌ای برای نمایش، یک رشته خالی را برمی‌گرداند.

// Get the photo metadata from the Place object.
PhotoMetadata photoMetadata = place.getPhotoMetadatas().get(0);

// Get the attribution text.
String attributions = photoMetadata.getAttributions();

برای دریافت شناسه‌های نویسنده برای یک عکس، تابع PhotoMetadata.getAuthorAttributions() را فراخوانی کنید. این متد یک شیء AuthorAttributions برمی‌گرداند. این شیء شامل List از اشیاء AuthorAttribution است که به ازای هر شناسه نویسنده، یک شیء وجود دارد.

// Get the photo metadata from the Place object.
PhotoMetadata photoMetadata = place.getPhotoMetadatas().get(0);

// Get the author attributions object.
AuthorAttributions authorAttributions = photoMetadata.getAuthorAttributions();
List<AuthorAttribution> authorAttributionList = authorAttributions.asList();

انتساب نتایج جستجو

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

سربرگ: درباره این نتایج

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

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

دکمه ۲: تایید

نمایش یک نقد و بررسی

یک شیء Place می‌تواند شامل حداکثر پنج نقد و بررسی باشد که هر نقد و بررسی توسط یک شیء Review نمایش داده می‌شود. شما می‌توانید به صورت اختیاری این نقد و بررسی‌ها را در برنامه خود نمایش دهید.

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

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

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

برای دسترسی به نظرات، تابع Place.getReviews() را فراخوانی کنید:

// Specify the fields to return.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.REVIEWS);

// Construct a request object, passing the place ID and fields array.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance("INSERT_PLACE_ID_HERE", placeFields);

placesClient.fetchPlace(request).addOnSuccessListener((response) -> {
    Place place = response.getPlace();
    List<Review> reviews = place.getReviews();
    // For loop for iterating over the List
    for (int i = 0; i < reviews.size(); i++) {
      // For each review, get the Review object.
        Review placeReview = reviews.get(i);

      // Get any attribution and author attribution.
        String reviewAttribution = placeReview.getAttribution();
        AuthorAttribution authorAttribution = placeReview.getAuthorAttribution();

        // Display the review contents and attributions as necessary.
    }
}).addOnFailureListener((exception) -> {
    if (exception instanceof ApiException) {
        // Handle the error.
    }
});

نمایش اسناد شخص ثالث

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

این API برای تمام مکان‌هایی که توسط برنامه استفاده می‌شوند، نسبت‌هایی ایجاد می‌کند. این نسبت‌ها به ازای هر فراخوانی API ارائه می‌شوند، نه به ازای هر مکان.

یک راه برای نمایش ویژگی‌ها استفاده از TextView است. برای مثال:

TextView attributionsText = (TextView) findViewById(R.id.attributions);
String thirdPartyAttributions = place.getAttributions();
attributionsText.setText(thirdPartyAttributions);

نمونه‌ای از انتساب به شخص ثالث

Listings by <a href="https://www.example.com/">Example Company</a>

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

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

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

در تصویر قبلی، لیست آدرس‌های سمت چپ همچنان مشمول محدودیت‌های محتوای نقشه‌های گوگل است. هنگامی که کاربر نهایی آدرس مورد نظر خود را انتخاب می‌کند، آن آدرس صرفاً برای تراکنش مربوطه کاربر نهایی، مشمول محدودیت‌های محتوای نقشه‌های گوگل نمی‌شود.