প্লেস ফটোস আপনাকে আপনার ওয়েব পেজগুলিতে উচ্চ মানের ফটোগ্রাফিক কন্টেন্ট যোগ করার সুযোগ দেয়। এই পেজটিতে Place ক্লাস (নতুন) এবং PlacesService (পুরানো)-এর প্লেস ফটোস ফিচারগুলোর মধ্যে পার্থক্য ব্যাখ্যা করা হয়েছে এবং তুলনার জন্য কিছু কোড স্নিপেট দেওয়া হয়েছে।
-
PlacesService(লেগ্যাসি) যেকোনোgetDetails()অনুরোধের জন্যPlaceResultঅবজেক্টের অংশ হিসেবে সর্বোচ্চ ১০টিPlacePhotoঅবজেক্টের একটি অ্যারে ফেরত দেয়, যদি অনুরোধেphotosফিল্ডটি নির্দিষ্ট করা থাকে।textSearch()এবংnearbySearch()এর ক্ষেত্রে, উপলব্ধ থাকলে ডিফল্টরূপে প্রথম স্থানের ছবিটি ফেরত দেওয়া হয়। - যদি অনুরোধে
photosফিল্ডটি নির্দিষ্ট করা থাকে, তাহলেPlaceক্লাসটিfetchFields()অনুরোধের অংশ হিসেবে সর্বোচ্চ ১০টিPhotoঅবজেক্টের একটি অ্যারে রিটার্ন করে।
নিম্নলিখিত সারণিতে Place ক্লাস এবং PlacesService মধ্যে স্থানের ছবি ব্যবহারের কিছু প্রধান পার্থক্য তালিকাভুক্ত করা হলো:
PlacesService (লেগ্যাসি) | Place (নতুন) |
|---|---|
PlacePhoto ইন্টারফেস | Photo ক্লাস |
PlacePhoto html_attributions একটি স্ট্রিং হিসেবে ফেরত দেয়। | Photo একটি AuthorAttribution ইনস্ট্যান্স ফেরত দেয়। |
results অবজেক্ট এবং google.maps.places.PlacesServiceStatus রেসপন্স হ্যান্ডেল করার জন্য মেথডগুলোতে একটি কলব্যাক ব্যবহার করা আবশ্যক। | এটি প্রমিস ব্যবহার করে এবং অ্যাসিঙ্ক্রোনাসভাবে কাজ করে। |
পদ্ধতিগুলোর জন্য PlacesServiceStatus যাচাই করা প্রয়োজন। | স্ট্যাটাস চেক করার প্রয়োজন নেই, স্ট্যান্ডার্ড এরর হ্যান্ডলিং ব্যবহার করা যেতে পারে। আরও জানুন । |
PlacesService অবশ্যই একটি map অথবা একটি 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 স্ট্রিং হিসেবে ফেরত দেয়, যেটিতে লেখকের গুগল প্রোফাইল পেজের একটি URL থাকে। নিচের কোড স্নিপেটটি প্রথম ছবির ফলাফলের জন্য অ্যাট্রিবিউশন ডেটা পুনরুদ্ধারের পদ্ধতি দেখাচ্ছে।
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 এবং লেখকের প্রোফাইল ছবির একটি 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;