مهاجرت به عکس‌های مکان جدید، مهاجرت به عکس‌های مکان جدید

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

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

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

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

مقایسه کدها

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

خدمات مکان‌ها (قدیمی)

قطعه زیر بازگشت عکس ها با استفاده از 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 حاوی یک URL که به صفحه نمایه 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 شامل نام نویسنده، یک URI برای صفحه نمایه Google نویسنده و یک URI برای عکس نمایه نویسنده برمی‌گرداند. قطعه زیر بازیابی داده های انتساب را برای اولین نتیجه عکس نشان می دهد.

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

بیشتر بدانید