انتقال به Place Photos جدید

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

«عکس‌های مکان» به شما امکان می‌دهد محتوای عکاسی با کیفیت بالا به صفحه‌های وب خود اضافه کنید. این صفحه تفاوت‌های بین ویژگی‌های عکس‌های مکان را در کلاس Place (جدید) و PlacesService (قدیمی) توضیح می‌دهد و چند تکه‌کد برای مقایسه ارائه می‌دهد.

  • PlacesService (قدیمی) آرایه‌ای از حداکثر ۱۰ PlacePhoto شیء را به‌عنوان بخشی از شیء PlaceResult برای هر درخواست getDetails() برمی‌گرداند اگر فیلد photos در درخواست مشخص شده باشد. درمورد textSearch() و nearbySearch()، عکس مکان اول به‌طور پیش‌فرض برگردانده می‌شود (درصورت وجود).
  • کلاس Place آرایه‌ای از حداکثر ۱۰ شیء Photo را به‌عنوان بخشی از درخواست fetchFields() برمی‌گرداند، اگر فیلد photos در درخواست مشخص شده باشد.

جدول زیر برخی‌از تفاوت‌های اصلی در استفاده از عکس‌های مکان بین کلاس Place و PlacesService را فهرست می‌کند:

PlacesService (قدیمی) Place (جدید)
میانای PlacePhoto کلاس Photo
PlacePhoto html_attributions را به‌صورت رشته برمی‌گرداند. Photo نمونه AuthorAttribution را برمی‌گرداند.
روش‌ها برای مدیریت شیء نتایج و پاسخ google.maps.places.PlacesServiceStatus به استفاده از فراخوانی برگشتی نیاز دارند. از Promises استفاده می‌کند و به‌صورت ناهمگام کار می‌کند.
روش‌ها به بررسی PlacesServiceStatus نیاز دارند. بررسی وضعیت لازم نیست، می‌توان از رسیدگی به خطای استاندارد استفاده کرد. بیشتر بدانید.
PlacesService باید بااستفاده از نقشه یا عنصر div نمونه‌سازی شود. Place را می‌توان هرجا که لازم باشد بدون ارجاع به نقشه یا عنصر صفحه نمونه‌سازی کرد.

مقایسه کد

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

سرویس مکان‌ها (قدیمی)

گزیده زیر برگرداندن عکس‌ها بااستفاده از PlacesService و نمایش اولین نتیجه عکس در صفحه را نشان می‌دهد. در این مثال، درخواست جزئیات جا شناسه جا را به‌همراه فیلدهای name و photos مشخص می‌کند. سپس اولین عکس پس‌از بررسی وضعیت سرویس در صفحه نمایش داده می‌شود. هنگام نمونه‌سازی PlacesService، باید نقشه یا عنصر div مشخص شود؛ چون این نمونه نقشه ندارد، از عنصر div استفاده می‌شود.

function getPhotos() {
  // Construct the Place Details request.
  const request = {
    placeId: "ChIJydSuSkkUkFQRsqhB-cEtYnw",
    fields: ["name", "photos"],
  };

  // Create an instance of PlacesService.
  const attributionDiv = document.getElementById("attribution-div");
  const service = new google.maps.places.PlacesService(attributionDiv);

  // Check status and display the first photo in an img element.
  service.getDetails(request, (place, status) => {
    if (
      status === google.maps.places.PlacesServiceStatus.OK && place
    ) {
      const photoImg = document.getElementById('image-container');
      photoImg.src = place.photos[0].getUrl({maxHeight: 400});
    }
  });
}

انتساب‌های نویسنده در PlacesService

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

let attributionUrl = place.photos[0].html_attributions;

بیشتر بدانید

کلاس مکان (جدید)

قطعه کد زیر استفاده از روش fetchFields() را برای برگرداندن جزئیات مکان، ازجمله نام نمایشی و عکس‌های مکان، نشان می‌دهد. ابتدا یک شیء Place جدید بااستفاده از شناسه مکان نمونه‌سازی می‌شود، سپس تماسی با fetchFields() برقرار می‌شود که در آن فیلدهای displayName و photos مشخص شده‌اند. سپس اولین عکس مکان در صفحه نمایش داده می‌شود. هنگام استفاده از کلاس Place، نیازی به بررسی وضعیت سرویس نیست، زیرا این کار به‌طور خودکار انجام می‌شود.

async function getPhotos() {
  // Use a place ID to create a new Place instance.
  const place = new google.maps.places.Place({
      id: 'ChIJydSuSkkUkFQRsqhB-cEtYnw', // Woodland Park Zoo, Seattle WA
  });

  // Call fetchFields, passing the needed data fields.
  await place.fetchFields({ fields: ['displayName','photos'] });

  console.log(place.displayName);
  console.log(place.photos[0]);
  // Add the first photo to an img element.
  const photoImg = document.getElementById('image-container');
  photoImg.src = place.photos[0].getURI({maxHeight: 400});
}

انتساب‌های نویسنده در کلاس Place

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

let name = place.photos[0].authorAttributions[0].displayName;
let attributionUrl = place.photos[0].authorAttributions[0].uri;
let photoUrl = place.photos[0].authorAttributions[0].photoUri;

بیشتر بدانید