নতুন 'স্থান সম্পর্কিত বিবরণ' পৃষ্ঠায় মাইগ্রেট করা

ইউরোপীয় অর্থনৈতিক অঞ্চল (EEA)-এর ডেভেলপার

Places API নির্দিষ্ট কোনও জায়গা সম্পর্কে বিস্তারিত তথ্য দেখাতে পারে। এই পৃষ্ঠায় Place ক্লাস (নতুন) এবং PlacesService (পুরনো)-এ ব্যবহৃত জায়গার বিবরণের মধ্যে পার্থক্য ব্যাখ্যা করা হয়েছে এবং তুলনা করার জন্য কিছু কোড স্নিপেট দেওয়া হয়েছে। নিচের সারণীতে Place ক্লাস ও PlacesService-এর মধ্যে জায়গার বিবরণ ব্যবহারের ক্ষেত্রে কিছু প্রধান পার্থক্য তালিকাভুক্ত করা হয়েছে:

PlacesService (লিগ্যাসি) Place (নতুন)
getDetails() fetchFields()
PlaceDetailsRequest FetchFieldsRequest
ফলাফল অবজেক্ট এবং উত্তর ম্যানেজ করার জন্য google.maps.places.PlacesServiceStatus পদ্ধতিতে কলব্যাক ব্যবহার করতে হয়। প্রমিস ব্যবহার করে এবং অ্যাসিঙ্ক্রোনাস পদ্ধতিতে কাজ করে।
পদ্ধতিগুলির জন্য একটি PlacesServiceStatus চেক প্রয়োজন। স্ট্যাটাস চেক করার প্রয়োজন নেই, স্ট্যান্ডার্ড সমস্যা সমাধান ব্যবহার করা যাবে। আরও জানুন।
প্লেস ডেটা ফিল্ড স্নেক কেস ব্যবহার করে ফর্ম্যাট করা হয়। জায়গা সংক্রান্ত ডেটা ফিল্ড ক্যামেল কেস ব্যবহার করে ফর্ম্যাট করা হয়।
নির্দিষ্ট সেট করা জায়গার ধরন এবং জায়গা সংক্রান্ত ডেটা ফিল্ড-এর মধ্যে সীমাবদ্ধ। নিয়মিত আপডেট করা জায়গার ধরন ও জায়গা সংক্রান্ত ডেটা ফিল্ডের একটি বর্ধিত নির্বাচন প্রদান করে।

কোড তুলনা করা

এই বিভাগে, Places Service এবং Place ক্লাসের মধ্যে পার্থক্য বোঝাতে দুটি একই ধরনের কোডের তুলনা করা হয়েছে। কোড স্নিপেটে, কোনও জায়গার বিবরণ সংক্রান্ত অনুরোধ করার জন্য প্রতিটি API-তে প্রয়োজনীয় কোড দেখানো হয় এবং তারপরে ম্যাপে মার্কার যোগ করার জন্য ফলাফল হিসেবে পাওয়া জায়গার ডেটা ব্যবহার করা হয়।

Places Service (লিগ্যাসি)

নিম্নলিখিত সংক্ষিপ্ত কোড স্নিপেট 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,
  });
}

আরও জানুন