خط‌مشی‌های Places SDK برای Android

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

سیاست ها

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

استثناهایی از محدودیت های حافظه پنهان

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

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

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

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

الزامات اسناد Google Maps

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

نمونه اسناد

در زیر یک مثال انتساب برای Places UI Kit آمده است.

کیت UI مکان ها نمونه انتساب در نقشه غیر گوگل
انتساب لازم برای مؤلفه فشرده Place Details اعمال شد. در این نقشه غیر گوگل، انتساب نقشه های گوگل به وضوح قابل مشاهده است و محتوای پلتفرم نقشه های گوگل از نظر بصری از سایر محتواها متمایز می شود.

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

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

شامل اسناد Google Maps

برای اسناد Google Maps که قبلاً توسط Google Maps Platform در رابط کاربری ارائه شده است، مانند Places UI Kit:

  • انتساب اضافه شده را صرف نظر از جایی که نمایش داده می شود، حذف نکنید. انتساب را تغییر ندهید، پنهان یا مبهم نکنید و مطمئن شوید که به وضوح در پس زمینه قابل مشاهده است.
  • همیشه با استفاده از نشانه‌های رابط کاربری مانند حاشیه، رنگ پس‌زمینه، سایه یا فضای خالی کافی، محتوای پلتفرم 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 دنبال کنید:
  • حداقل ارتفاع لوگو: 16dp
  • حداکثر ارتفاع لوگو: 19dp
  • حداقل فضای خالی لوگو: 10dp در سمت چپ، راست و بالا، 5dp در پایین

برای آشنایی با dp، تراکم پیکسلی را در وب سایت طراحی متریال ببینید.

نشان‌واره 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
    اموال سبک
    خانواده فونت ربات . بارگیری فونت اختیاری است.
    خانواده فونت بازگشتی هر فونت بدنه sans serif که قبلاً در محصول شما استفاده شده است یا "Sans-Serif" برای فراخوانی فونت پیش‌فرض سیستم
    سبک فونت عادی
    وزن فونت 400
    رنگ فونت سفید، سیاه (#1F1F1F) یا خاکستری (#5E5E5E). کنتراست قابل دسترس (4.5:1) را در پس زمینه حفظ کنید.
    اندازه فونت حداقل اندازه فونت: 12sp
    حداکثر اندازه فونت: 16 sp
    برای آشنایی با sp، واحدهای اندازه فونت را در وب سایت طراحی متریال ببینید.
    فاصله حروف عادی

مثال 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;
}

الزامات بصری

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

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

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

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

نمونه ای از اسناد 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، انتساب مناسبی نیست.

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

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

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

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

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();

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

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

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

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

دکمه 1: بیشتر بدانید
متن "بیشتر بیاموزید" باید به مقاله مرکز راهنمایی پیوند داده شود.

دکمه 2: خوب

نمایش یک بررسی

یک شی Place می‌تواند تا پنج نظر داشته باشد که در آن هر بررسی با یک شی Review نمایش داده می‌شود. می توانید به صورت اختیاری این نظرات را در برنامه خود نمایش دهید.

هنگام نمایش نظرات ارائه شده توسط کاربران Google، باید نام نویسنده را در نزدیکی قرار دهید. وقتی در فیلد انتساب نویسنده شی 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>

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

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

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

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