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

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

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

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

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

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

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

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

Places Service (القديمة)

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

The PlacesService returns the required author attributions as an html_attributions string containing a URL pointing to the author's Google profile page. يعرض المقتطف التالي استرداد بيانات إسناد حقوق الملكية لأول نتيجة صورة.

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

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

الفئة Place (الجديدة)

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

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