تتيح لك ميزة "صور الأماكن" إضافة محتوى فوتوغرافي عالي الجودة إلى صفحات الويب.
توضّح هذه الصفحة الاختلافات بين ميزات "صور الأماكن" في الفئة Place (الجديدة) وPlacesService (القديمة)، وتقدّم بعض مقتطفات الرموز للمقارنة.
PlacesService(القديمة) تعرض مصفوفة تضم ما يصل إلى 10PlacePhotoعناصر كجزء من العنصرPlaceResultلأي طلبgetDetails()إذا تم تحديد الحقلphotosفي الطلب. في حالتَيtextSearch()وnearbySearch()، يتم عرض أول صورة للمكان تلقائيًا إذا كانت متوفّرة.- تعرض الفئة
Placeمصفوفة تضم ما يصل إلى 10Photoعناصر كجزء من طلب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;