تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
المطوّرون في المنطقة الاقتصادية الأوروبية
تتيح لك ميزة "الصور في الأماكن" إضافة محتوى فوتوغرافي عالي الجودة إلى صفحات الويب.
توضّح هذه الصفحة الاختلافات بين ميزات صور الأماكن في الفئة Place (الجديدة) والفئة PlacesService (القديمة)، وتقدّم بعض مقتطفات الرموز للمقارنة.
تعرض PlacesService (قديم) مصفوفة تتضمّن ما يصل إلى 10 عناصر PlacePhoto كجزء من العنصر PlaceResult لأي طلب getDetails() إذا تم تحديد الحقل photos في الطلب. في حالة textSearch()
وnearbySearch()، يتم عرض صورة المكان الأول تلقائيًا إذا كانت متاحة.
تعرض الفئة Place مصفوفة تتضمّن ما يصل إلى 10 كائنات Photo كجزء من طلب fetchFields() إذا تم تحديد الحقل photos في الطلب.
يسرد الجدول التالي بعض الاختلافات الرئيسية في استخدام صور الأماكن بين الفئة Place والفئة PlacesService:
تتطلّب الطرق استخدام دالة ردّ الاتصال للتعامل مع عنصر النتائج والاستجابة google.maps.places.PlacesServiceStatus.
يستخدم Promises ويعمل بشكل غير متزامن.
تتطلّب الطرق إجراء عملية تحقّق PlacesServiceStatus.
لا يلزم التحقّق من الحالة، ويمكن استخدام معالجة الأخطاء العادية.
مزيد من المعلومات
يجب إنشاء مثيل PlacesService باستخدام خريطة أو عنصر div.
يمكن إنشاء مثيل Place في أي مكان عند الحاجة، بدون الحاجة إلى مرجع لخريطة أو عنصر صفحة.
مقارنة الرموز
يقارن هذا القسم بين الرموز البرمجية لصور الأماكن لتوضيح الاختلافات بين "خدمة الأماكن" وفئة Place. تعرض مقتطفات الرموز البرمجية الرمز البرمجي المطلوب لطلب صور الأماكن على كل واجهة برمجة تطبيقات ذات صلة.
خدمة "الأماكن" (الإصدار القديم)
يعرض المقتطف التالي كيفية عرض الصور التي تم إرجاعها باستخدام PlacesService،
وكيفية عرض نتيجة الصورة الأولى على الصفحة. في هذا المثال، يحدّد طلب تفاصيل المكان رقم تعريف المكان، بالإضافة إلى الحقلَين name وphotos.
بعد ذلك، يتم عرض الصورة الأولى على الصفحة بعد التحقّق من حالة الخدمة.
عند إنشاء مثيل PlacesService، يجب تحديد خريطة أو عنصر div، وبما أنّ هذا المثال لا يتضمّن خريطة، يتم استخدام عنصر div.
functiongetPhotos(){// Construct the Place Details request.constrequest={placeId:"ChIJydSuSkkUkFQRsqhB-cEtYnw",fields:["name","photos"],};// Create an instance of PlacesService.constattributionDiv=document.getElementById("attribution-div");constservice=newgoogle.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){constphotoImg=document.getElementById('image-container');photoImg.src=place.photos[0].getUrl({maxHeight:400});}});}
إشارات إلى المؤلفين في PlacesService
تعرض السمة PlacesService معلومات تحديد المصدر المطلوبة الخاصة بالمؤلف على شكل
html_attributions
سلسلة تتضمّن عنوان URL يؤدي إلى صفحة الملف الشخصي للمؤلف على Google. يعرض المقتطف التالي كيفية استرداد بيانات تحديد المصدر الخاصة بنتيجة الصورة الأولى.
تعرض المقتطفة التالية استخدام طريقة
fetchFields()
لعرض تفاصيل المكان، بما في ذلك الاسم المعروض وصور المكان.
يتم أولاً إنشاء مثيل جديد لكائن Place باستخدام معرّف مكان، ثم يتم إجراء طلب إلى fetchFields() يتم فيه تحديد الحقلَين displayName وphotos.
بعد ذلك، يتم عرض الصورة التي تحتلّ المرتبة الأولى على الصفحة. ليس عليك التحقّق من حالة الخدمة عند استخدام الفئة Place، لأنّ ذلك يتم تلقائيًا.
asyncfunctiongetPhotos(){// Use a place ID to create a new Place instance.constplace=newgoogle.maps.places.Place({id:'ChIJydSuSkkUkFQRsqhB-cEtYnw',// Woodland Park Zoo, Seattle WA});// Call fetchFields, passing the needed data fields.awaitplace.fetchFields({fields:['displayName','photos']});console.log(place.displayName);console.log(place.photos[0]);// Add the first photo to an img element.constphotoImg=document.getElementById('image-container');photoImg.src=place.photos[0].getURI({maxHeight:400});}
إشارات إلى المؤلفين في الصف Place
تعرض الفئة Place معلومات تحديد المصدر الخاصة بالمؤلفين كعنصر AuthorAttribution يتضمّن اسم المؤلف ومعرّف الموارد المنتظم (URI) الخاص بصفحة ملفه الشخصي على Google ومعرّف الموارد المنتظم (URI) الخاص بصورة ملفه الشخصي. تعرض المقتطفة التالية عملية استرداد بيانات تحديد المصدر الخاصة بنتيجة الصورة الأولى.
تاريخ التعديل الأخير: 2025-09-05 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-09-05 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Migrate to the new Place Photos\n\n\u003cbr /\u003e\n\n**European Economic Area (EEA) developers** If your billing address is in the European Economic Area, effective on 8 July 2025, the [Google Maps Platform EEA Terms of Service](https://cloud.google.com/terms/maps-platform/eea) will apply to your use of the Services. Functionality varies by region. [Learn more](/maps/comms/eea/faq).\n\nPlace photos lets you add high quality photographic content to your web pages.\nThis page explains the differences between place photos features in the `Place`\nclass (new) and `PlacesService` (legacy), and provides some code snippets for\ncomparison.\n\n- `PlacesService` (legacy) returns an array of up to 10 [`PlacePhoto`](/maps/documentation/javascript/reference/places-service#PlacePhoto) objects as part of the `PlaceResult` object for any `getDetails()` request if the `photos` field is specified in the request. In the case of `textSearch()` and `nearbySearch()` the first place photo is returned by default if available.\n- The `Place` class returns an array of up to 10 [`Photo`](/maps/documentation/javascript/reference/place#Photo) objects as part of a `fetchFields()` request if the `photos` field is specified in the request.\n\nThe following table lists some of the main differences in the use of place\nphotos between the `Place` class and `PlacesService`:\n\n| [`PlacesService`](/maps/documentation/javascript/reference/places-service) (Legacy) | [`Place`](/maps/documentation/javascript/reference/place) (New) |\n|-----------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|\n| [`PlacePhoto`](/maps/documentation/javascript/reference/places-service#PlacePhoto) interface | [`Photo`](/maps/documentation/javascript/reference/place#Photo) class |\n| `PlacePhoto` returns [`html_attributions`](/maps/documentation/javascript/reference/places-service#PlacePhoto.html_attributions) as a string. | `Photo` returns an [`AuthorAttribution`](/maps/documentation/javascript/reference/place#AuthorAttribution) instance. |\n| Methods require the use of a callback to handle the results object and `google.maps.places.PlacesServiceStatus` response. | Uses Promises, and works asynchronously. |\n| Methods require a `PlacesServiceStatus` check. | No required status check, can use standard error handling. [Learn more](/maps/documentation/javascript/reference/errors). |\n| `PlacesService` must be instantiated using a map or a div element. | `Place` can be instantiated wherever needed, without a reference to a map or page element. |\n\nCode comparison\n---------------\n\nThis section compares code for place photos to illustrate the differences\nbetween the Places Service and the\nPlace class. The code snippets show the code\nrequired to request place photos on each respective API.\n\n### Places service (legacy)\n\nThe following snippet shows returning photos using `PlacesService`, and\ndisplaying the first photo result on the page. In this example, the place\ndetails request specifies a place ID, along with the `name` and `photos` fields.\nThe first photo is then displayed on the page after checking service status.\nWhen instantiating the `PlacesService`, a map or a `div` element must be\nspecified; since this example does not feature a map, a `div` element is used. \n\n function getPhotos() {\n // Construct the Place Details request.\n const request = {\n placeId: \"ChIJydSuSkkUkFQRsqhB-cEtYnw\",\n fields: [\"name\", \"photos\"],\n };\n\n // Create an instance of PlacesService.\n const attributionDiv = document.getElementById(\"attribution-div\");\n const service = new google.maps.places.PlacesService(attributionDiv);\n\n // Check status and display the first photo in an img element.\n service.getDetails(request, (place, status) =\u003e {\n if (\n status === google.maps.places.PlacesServiceStatus.OK && place\n ) {\n const photoImg = document.getElementById('image-container');\n photoImg.src = place.photos[0].getUrl({maxHeight: 400});\n }\n });\n }\n\n#### Author attributions in `PlacesService`\n\nThe `PlacesService` returns the required author attributions as an\n[`html_attributions`](/maps/documentation/javascript/reference/places-service#PlacePhoto.html_attributions)\nstring containing a URL pointing to the author's Google profile page. The\nfollowing snippet shows retrieving attribution data for the first photo result. \n\n let attributionUrl = place.photos[0].html_attributions;\n\n#### Learn more\n\n- [See the documentation](/maps/documentation/javascript/places#places_photos)\n- [`getDetails` reference](/maps/documentation/javascript/reference/places-service#PlacesService.getDetails)\n- [`PlacePhoto` interface reference](/maps/documentation/javascript/reference/places-service#PlacePhoto)\n\n### Place class (new)\n\nThe following snippet shows using the\n[`fetchFields()`](/maps/documentation/javascript/reference/place#Place.fetchFields)\nmethod to return place details including the display name and place photos.\nFirst a new `Place` object is instantiated using a place ID, followed by a call\nto `fetchFields()` where the `displayName` and `photos` fields are specified.\nThe first place photo is then displayed on the page. There is no need to check\nservice status when using the `Place` class, as this is handled automatically. \n\n async function getPhotos() {\n // Use a place ID to create a new Place instance.\n const place = new google.maps.places.Place({\n id: 'ChIJydSuSkkUkFQRsqhB-cEtYnw', // Woodland Park Zoo, Seattle WA\n });\n\n // Call fetchFields, passing the needed data fields.\n await place.fetchFields({ fields: ['displayName','photos'] });\n\n console.log(place.displayName);\n console.log(place.photos[0]);\n // Add the first photo to an img element.\n const photoImg = document.getElementById('image-container');\n photoImg.src = place.photos[0].getURI({maxHeight: 400});\n }\n\n#### Author attributions in the `Place` class\n\nThe `Place` class returns author attributions as an\n[`AuthorAttribution`](/maps/documentation/javascript/reference/place#AuthorAttribution)\ninstance including the author's name, a URI for the author's Google profile\npage, and a URI for the author's profile photo. The following snippet shows\nretrieving attribution data for the first photo result. \n\n let name = place.photos[0].authorAttributions[0].displayName;\n let attributionUrl = place.photos[0].authorAttributions[0].uri;\n let photoUrl = place.photos[0].authorAttributions[0].photoUri;\n\n#### Learn more\n\n- [See the full example](/maps/documentation/javascript/examples/place-photos)\n- [See the documentation](/maps/documentation/javascript/place-photos)\n- [`fetchFields()` reference](/maps/documentation/javascript/reference/place#Place.fetchFields)\n- [`Photo` class reference](/maps/documentation/javascript/reference/place#Photo)"]]