نقل البيانات إلى ميزة "صور الأماكن" الجديدة

المطوّرون في المنطقة الاقتصادية الأوروبية

تتيح لك ميزة "صور الأماكن" إضافة محتوى فوتوغرافي عالي الجودة إلى صفحات الويب. توضّح هذه الصفحة الاختلافات بين ميزات صور الأماكن في الفئة Place (الجديدة) وPlacesService (القديمة)، وتقدّم بعض مقتطفات الرموز للمقارنة.

  • تعرض السمة PlacesService (القديمة) مصفوفة تتضمّن ما يصل إلى 10 عناصر PlacePhoto كجزء من الكائن PlaceResult لأي طلب getDetails() إذا تم تحديد الحقل photos في الطلب. في حال استخدام textSearch() وnearbySearch()، يتم عرض صورة المكان الأولى تلقائيًا إذا كانت متاحة.
  • تعرض فئة Place مصفوفة من كائنات Photo يصل عددها إلى 10 كجزء من طلب fetchFields() إذا تم تحديد حقل photos في الطلب.

يسرد الجدول التالي بعض الاختلافات الرئيسية في استخدام صور الأماكن بين فئة Place وPlacesService:

PlacesService (قديم) Place (جديد)
واجهة PlacePhoto صف Photo
تعرض الدالة PlacePhoto القيمة html_attributions كسلسلة. يعرض Photo مثيل AuthorAttribution.
تتطلّب الطرق استخدام دالة ردّ اتصال لمعالجة عنصر النتائج واستجابة google.maps.places.PlacesServiceStatus. تستخدم Promises وتعمل بشكل غير متزامن.
تتطلّب الطرق إجراء فحص PlacesServiceStatus. لا حاجة إلى التحقّق من الحالة، ويمكن استخدام معالجة الأخطاء المعيارية. مزيد من المعلومات
يجب إنشاء مثيل PlacesService باستخدام خريطة أو عنصر div. يمكن إنشاء مثيل Place أينما دعت الحاجة، بدون مرجع إلى خريطة أو عنصر صفحة.

مقارنة الرموز

يقارن هذا القسم بين الرموز البرمجية لصور الأماكن لتوضيح الاختلافات بين خدمة "الأماكن" وفئة "المكان". تعرض مقتطفات الرمز البرمجي الرمز المطلوب لطلب صور الأماكن على كل واجهة برمجة تطبيقات.

خدمة Places (الإصدار القديم)

يعرض المقتطف التالي الصور التي تم عرضها باستخدام 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;

مزيد من المعلومات