Places API একটি নির্দিষ্ট স্থান সম্পর্কে বিস্তারিত তথ্য প্রদান করতে পারে। এই পৃষ্ঠাটি Place ক্লাস (নতুন) এবং PlacesService (পুরানো)-তে ব্যবহৃত স্থানের বিবরণের মধ্যেকার পার্থক্য ব্যাখ্যা করে এবং তুলনার জন্য কিছু কোড স্নিপেট প্রদান করে। নিম্নলিখিত সারণিতে Place ক্লাস এবং PlacesService মধ্যে স্থানের বিবরণ ব্যবহারের কিছু প্রধান পার্থক্য তালিকাভুক্ত করা হলো:
PlacesService (লেগ্যাসি) | Place (নতুন) |
|---|---|
getDetails() | fetchFields() |
PlaceDetailsRequest | FetchFieldsRequest |
results অবজেক্ট এবং google.maps.places.PlacesServiceStatus রেসপন্স হ্যান্ডেল করার জন্য মেথডগুলোতে একটি কলব্যাক ব্যবহার করা আবশ্যক। | এটি প্রমিস ব্যবহার করে এবং অ্যাসিঙ্ক্রোনাসভাবে কাজ করে। |
পদ্ধতিগুলোর জন্য PlacesServiceStatus যাচাই করা প্রয়োজন। | স্ট্যাটাস চেক করার প্রয়োজন নেই, স্ট্যান্ডার্ড এরর হ্যান্ডলিং ব্যবহার করা যেতে পারে। আরও জানুন । |
| স্থানের ডেটা ফিল্ডগুলো স্নেক কেস ব্যবহার করে ফরম্যাট করা হয়। | স্থানের ডেটা ফিল্ডগুলো ক্যামেল কেস ব্যবহার করে ফরম্যাট করা হয়। |
| একটি নির্দিষ্ট সংখ্যক স্থানের ধরণ এবং স্থানের তথ্য ক্ষেত্রের মধ্যে সীমাবদ্ধ। | নিয়মিতভাবে হালনাগাদকৃত স্থানের প্রকারভেদ এবং স্থানের তথ্য ক্ষেত্রের একটি বর্ধিত নির্বাচন প্রদান করে। |
কোড তুলনা
এই বিভাগে প্লেসেস সার্ভিস এবং প্লেস ক্লাসের মধ্যে পার্থক্য তুলে ধরতে দুটি একই ধরনের কোডের তুলনা করা হয়েছে। কোডের অংশগুলোতে দেখানো হয়েছে, কীভাবে প্রতিটি এপিআই-তে একটি স্থানের বিবরণের জন্য অনুরোধ করতে হয় এবং তারপর প্রাপ্ত স্থানের ডেটা ব্যবহার করে মানচিত্রে একটি মার্কার যোগ করতে হয়।
স্থান পরিষেবা (উত্তরাধিকার)
নিম্নলিখিত সংক্ষিপ্ত কোড স্নিপেটটি PlacesService ব্যবহার করে একটি স্থানের বিবরণের জন্য অনুরোধ করার পদ্ধতি দেখাচ্ছে। এই অনুরোধে একটি কলব্যাক ব্যবহৃত হয়েছে এবং এতে PlacesServiceStatus উপর একটি আবশ্যিক শর্তসাপেক্ষ যাচাই অন্তর্ভুক্ত রয়েছে। প্রয়োজনীয় স্থানের ডেটা ফিল্ডগুলো অনুরোধের মূল অংশে নির্দিষ্ট করা হয়েছে।
function getPlaceDetails() {
// Instantiate the Places Service.
const service = new google.maps.places.PlacesService(map);
// Make a request using the Place ID.
const request = {
placeId: "ChIJN1t_tDeuEmsRUsoyG83frY4",
fields: ["name", "formatted_address", "place_id", "geometry"],
};
// Request place details.
service.getDetails(request, (place, status) => {
// Check whether PlacesServiceStatus is OK.
if (
status === google.maps.places.PlacesServiceStatus.OK &&
place &&
place.geometry &&
place.geometry.location
) {
// Log the result.
console.log(place.name);
console.log(place.formatted_address);
// Add a marker for the place.
const marker = new google.maps.Marker({
map,
position: place.geometry.location,
title: place.name,
});
}
});
}
আরও জানুন
স্থান শ্রেণী (নতুন)
নিম্নলিখিত সংক্ষিপ্ত কোড স্নিপেটটি Place ক্লাস ব্যবহার করে একটি স্থানের বিবরণের জন্য অনুরোধ করার পদ্ধতি দেখাচ্ছে। অনুরোধটি অ্যাসিঙ্ক্রোনাস, এবং এতে কোনো স্ট্যাটাস চেক অন্তর্ভুক্ত নেই (সাধারণ এরর হ্যান্ডলিং ব্যবহার করা যেতে পারে)। একটি নতুন Place ইনস্ট্যান্স তৈরি করতে একটি প্লেস আইডি ব্যবহার করা হয়, যা অনুরোধটি ( fetchFields() ) করার জন্য ব্যবহৃত হয়। fetchFields() কল না করা পর্যন্ত প্রয়োজনীয় স্থানের ডেটা ফিল্ডগুলো পাস করা হয় না, যা অধিকতর নমনীয়তা প্রদান করে। যেহেতু fetchFields() মেথডটি await অপারেটর ব্যবহার করে, তাই এটি শুধুমাত্র একটি async ফাংশনের ভিতরেই ব্যবহার করা যায়।
async function getPlaceDetails() {
// Use place ID to create a new Place instance.
const place = new google.maps.places.Place({
id: "ChIJN5Nz71W3j4ARhx5bwpTQEGg",
requestedLanguage: "en", // optional
});
// Call fetchFields, passing the needed data fields.
await place.fetchFields({
fields: ["displayName", "formattedAddress", "location"],
});
// Log the result.
console.log(place.displayName);
console.log(place.formattedAddress);
// Add an Advanced Marker.
const marker = new google.maps.marker.AdvancedMarkerElement({
map,
position: place.location,
title: place.displayName,
});
}