Places API একটি নির্দিষ্ট স্থান সম্পর্কে বিস্তারিত তথ্য ফেরত দিতে পারে। এই পৃষ্ঠাটি Place
ক্লাস (নতুন) এবং PlacesService
(লেগেসি) এ ব্যবহৃত স্থানের বিবরণের মধ্যে পার্থক্য ব্যাখ্যা করে এবং তুলনা করার জন্য কিছু কোড স্নিপেট প্রদান করে। নিম্নলিখিত সারণীতে Place
ক্লাস এবং PlacesService
মধ্যে স্থানের বিশদ ব্যবহারের কিছু প্রধান পার্থক্য তালিকাভুক্ত করা হয়েছে:
PlacesService (উত্তরাধিকার) | Place (নতুন) |
---|---|
getDetails() | fetchFields() |
PlaceDetailsRequest | FetchFieldsRequest |
ফলাফল বস্তু এবং google.maps.places.PlacesServiceStatus প্রতিক্রিয়া পরিচালনা করতে পদ্ধতিগুলির জন্য একটি কলব্যাক ব্যবহার করা প্রয়োজন৷ | প্রতিশ্রুতি ব্যবহার করে, এবং অ্যাসিঙ্ক্রোনাসভাবে কাজ করে। |
পদ্ধতিগুলির জন্য একটি PlacesServiceStatus চেক প্রয়োজন৷ | কোন প্রয়োজনীয় স্থিতি পরীক্ষা, মান ত্রুটি হ্যান্ডলিং ব্যবহার করতে পারেন. |
স্থান তথ্য ক্ষেত্র সাপের কেস ব্যবহার করে বিন্যাস করা হয়. | স্থান ডেটা ক্ষেত্র উটের কেস ব্যবহার করে ফর্ম্যাট করা হয়। |
স্থানের ধরন এবং স্থান ডেটা ক্ষেত্রগুলির একটি নির্দিষ্ট সেটের মধ্যে সীমাবদ্ধ। | নিয়মিত আপডেট করা স্থানের ধরন এবং স্থান ডেটা ক্ষেত্রগুলির একটি প্রসারিত নির্বাচন প্রদান করে৷ |
কোড তুলনা
এই বিভাগটি প্লেস সার্ভিস এবং প্লেস ক্লাসের মধ্যে পার্থক্য বোঝাতে কোডের দুটি অনুরূপ টুকরো তুলনা করে। কোড স্নিপেটগুলি একটি স্থানের বিবরণের অনুরোধ করার জন্য প্রতিটি সংশ্লিষ্ট API-এ প্রয়োজনীয় কোড দেখায় এবং তারপর মানচিত্রে একটি মার্কার যোগ করতে ফলাফল স্থানের ডেটা ব্যবহার করে।
স্থান পরিষেবা (উত্তরাধিকার)
নিম্নলিখিত ঘনীভূত কোড স্নিপেট দেখায় 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,
});
}