«عکسهای مکان» به شما امکان میدهد محتوای عکاسی با کیفیت بالا به صفحههای وب خود اضافه کنید.
این صفحه تفاوتهای بین ویژگیهای عکسهای مکان را در کلاس Place (جدید) و PlacesService (قدیمی) توضیح میدهد و چند تکهکد برای مقایسه ارائه میدهد.
PlacesService(قدیمی) آرایهای از حداکثر ۱۰PlacePhotoشیء را بهعنوان بخشی از شیءPlaceResultبرای هر درخواستgetDetails()برمیگرداند اگر فیلدphotosدر درخواست مشخص شده باشد. درموردtextSearch()وnearbySearch()، عکس مکان اول بهطور پیشفرض برگردانده میشود (درصورت وجود).- کلاس
Placeآرایهای از حداکثر ۱۰ شیءPhotoرا بهعنوان بخشی از درخواستfetchFields()برمیگرداند، اگر فیلدphotosدر درخواست مشخص شده باشد.
جدول زیر برخیاز تفاوتهای اصلی در استفاده از عکسهای مکان بین کلاس Place و PlacesService را فهرست میکند:
PlacesService (قدیمی) |
Place (جدید) |
|---|---|
میانای PlacePhoto |
کلاس Photo |
PlacePhoto
html_attributions را بهصورت رشته برمیگرداند. |
Photo نمونه
AuthorAttribution را برمیگرداند. |
روشها برای مدیریت شیء نتایج و پاسخ google.maps.places.PlacesServiceStatus به استفاده از فراخوانی برگشتی نیاز دارند. |
از Promises استفاده میکند و بهصورت ناهمگام کار میکند. |
روشها به بررسی PlacesServiceStatus نیاز دارند. |
بررسی وضعیت لازم نیست، میتوان از رسیدگی به خطای استاندارد استفاده کرد. بیشتر بدانید. |
PlacesService باید بااستفاده از نقشه یا عنصر
div نمونهسازی شود. |
Place را میتوان هرجا که لازم باشد بدون ارجاع به نقشه یا عنصر صفحه نمونهسازی کرد. |
مقایسه کد
این بخش کد عکسهای مکان را مقایسه میکند تا تفاوتهای بین «سرویس مکانها» و کلاس «مکان» را نشان دهد. تکهکدها کد لازم برای درخواست عکسهای مکان را در هر میانای برنامهسازی کاربردی مربوطه نشان میدهند.
سرویس مکانها (قدیمی)
گزیده زیر برگرداندن عکسها بااستفاده از 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
برمیگرداند که حاوی نشانی وبی است که به صفحه نمایه 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
برمیگرداند که شامل نام نویسنده، شناسه منبع یکسان برای صفحه نمایه Google نویسنده، و شناسه منبع یکسان برای عکس نمایه نویسنده است. قطعه کد زیر بازیابی دادههای ارجاع را برای اولین نتیجه عکس نشان میدهد.
let name = place.photos[0].authorAttributions[0].displayName;
let attributionUrl = place.photos[0].authorAttributions[0].uri;
let photoUrl = place.photos[0].authorAttributions[0].photoUri;