নতুন স্থান অনুসন্ধানে স্থানান্তর করুন, নতুন স্থান অনুসন্ধানে স্থানান্তর করুন, নতুন স্থান অনুসন্ধানে স্থানান্তর করুন, নতুন স্থান অনুসন্ধানে স্থানান্তর করুন

এই পৃষ্ঠাটি Place ক্লাস (নতুন) এবং PlacesService (লেগেসি) টেক্সট-ভিত্তিক স্থান অনুসন্ধান বৈশিষ্ট্যগুলির মধ্যে পার্থক্য ব্যাখ্যা করে এবং তুলনা করার জন্য কিছু কোড স্নিপেট প্রদান করে।

লিগ্যাসি PlacesService নিম্নলিখিত পাঠ্য-ভিত্তিক অনুসন্ধান পদ্ধতি রয়েছে:

  • findPlaceFromQuery() পদ্ধতি যা একটি পাঠ্য ক্যোয়ারী নেয় এবং একটি একক স্থানের ফলাফল প্রদান করে এবং স্থান ডেটা ক্ষেত্রগুলির ব্যবহার সমর্থন করে।
  • findPlaceFromPhoneNumber() পদ্ধতি যা আপনাকে একটি ফোন নম্বর ব্যবহার করে একটি স্থান অনুসন্ধান করতে দেয় এবং স্থান ডেটা ক্ষেত্রগুলির ব্যবহার সমর্থন করে৷
  • textSearch() পদ্ধতি যা একটি টেক্সট কোয়েরি নেয় এবং স্থানের ফলাফলের একটি তালিকা প্রদান করে। textSearch() পুরানো, এবং স্থান ডেটা ক্ষেত্র ব্যবহার সমর্থন করে না।

নতুন Place ক্লাস Place.searchByText() পদ্ধতি অফার করে, যা আপনাকে একটি পাঠ্য ক্যোয়ারী বা ফোন নম্বর ব্যবহার করে স্থানগুলি অনুসন্ধান করতে দেয় এবং নিয়মিত আপডেট করা স্থান ডেটা ক্ষেত্র এবং স্থানের প্রকারগুলির একটি বর্ধিত নির্বাচন ব্যবহার করে আপনার অনুসন্ধানগুলিকে কাস্টমাইজ করতে দেয়৷

নিম্নলিখিত সারণী Place ক্লাস এবং PlacesService মধ্যে স্থান অনুসন্ধান পদ্ধতির কিছু প্রধান পার্থক্য তালিকাভুক্ত করে:

PlacesService (উত্তরাধিকার) Place (নতুন)
findPlaceFromQuery()
findPlaceFromPhoneNumber()
searchByText()
FindPlaceFromQueryRequest
FindPlaceFromPhoneNumberRequest
SearchByTextRequest
সীমিত ক্যোয়ারী অপশন. আরও বিস্তৃত ক্যোয়ারী বিকল্প।
ফলাফল বস্তু এবং google.maps.places.PlacesServiceStatus প্রতিক্রিয়া পরিচালনা করতে একটি কলব্যাক ব্যবহারের প্রয়োজন৷ প্রতিশ্রুতি ব্যবহার করে, এবং অ্যাসিঙ্ক্রোনাসভাবে কাজ করে।
একটি PlacesServiceStatus চেক প্রয়োজন। কোন প্রয়োজনীয় স্থিতি পরীক্ষা, মান ত্রুটি হ্যান্ডলিং ব্যবহার করতে পারেন.
শুধুমাত্র অবস্থান পক্ষপাত সমর্থন করে। অবস্থান পক্ষপাত এবং অবস্থান সীমাবদ্ধতা সমর্থন করে।
স্থান তথ্য ক্ষেত্র সাপের কেস ব্যবহার করে বিন্যাস করা হয়. স্থান ডেটা ক্ষেত্র উটের কেস ব্যবহার করে ফর্ম্যাট করা হয়।
একটি একক স্থান ফলাফল প্রদান করে। 20টি স্থান পর্যন্ত ফলাফল প্রদান করে।
স্থানের ধরন এবং স্থান ডেটা ক্ষেত্রগুলির একটি নির্দিষ্ট সেটের মধ্যে সীমাবদ্ধ। নিয়মিত আপডেট করা স্থানের ধরন এবং স্থান ডেটা ক্ষেত্রগুলির একটি প্রসারিত নির্বাচন প্রদান করে৷
textSearch()
searchByText()
সমস্ত উপলব্ধ ডেটা ক্ষেত্র ফেরত দেয় ( সমর্থিত ক্ষেত্রের একটি উপসেট ); নির্দিষ্ট ক্ষেত্রে সীমাবদ্ধ করা যাবে না। শুধুমাত্র অনুরোধ করা স্থানের ডেটা ক্ষেত্র ফেরত দেয়।

কোড তুলনা

এই বিভাগটি টেক্সট সার্চ পদ্ধতির কোড তুলনা করে প্লেসেস সার্ভিস এবং প্লেস ক্লাসের মধ্যে পার্থক্য তুলে ধরতে। কোড স্নিপেট একটি পাঠ্য-ভিত্তিক অনুসন্ধান অনুরোধ করতে প্রতিটি সংশ্লিষ্ট API-এ প্রয়োজনীয় কোড দেখায়।

স্থান পরিষেবা (উত্তরাধিকার)

নিম্নলিখিত কোড স্নিপেট একটি জায়গা অনুসন্ধান করার জন্য findPlaceFromQuery() পদ্ধতি ব্যবহার করে দেখায়। অনুরোধটি সিঙ্ক্রোনাস, এবং PlacesServiceStatus এ একটি শর্তসাপেক্ষ চেক অন্তর্ভুক্ত করে। প্রয়োজনীয় স্থান ডেটা ক্ষেত্রগুলি অনুরোধের বডিতে নির্দিষ্ট করা হয়, যা প্রকৃত অনুরোধ করার আগে সংজ্ঞায়িত করা হয়।

function findPlaces() {
  const request = {
    query: "Museum of Contemporary Art Australia",
    fields: ["name", "geometry"],
  };

  // Create an instance of PlacesService.
  service = new google.maps.places.PlacesService(map);

  // Make a findPlaceFromQuery request.
  service.findPlaceFromQuery(request, (results, status) => {
    let place = results[0];
    if (status === google.maps.places.PlacesServiceStatus.OK && results) {
      if (!place.geometry || !place.geometry.location) return;

      const marker = new google.maps.Marker({
        map,
        position: place.geometry.location,
      });
      map.setCenter(place.geometry.location);
    }
  });
}

আরও জানুন

পাঠ্য অনুসন্ধান (নতুন)

নিম্নলিখিত কোড স্নিপেট স্থান অনুসন্ধান করতে searchByText() পদ্ধতি ব্যবহার করে দেখায়। অনুরোধটি অ্যাসিঙ্ক্রোনাস, এবং স্ট্যাটাস চেকের প্রয়োজন নেই (স্ট্যান্ডার্ড ত্রুটি হ্যান্ডলিং ব্যবহার করা যেতে পারে)। এই উদাহরণে, অনুরোধে 8-এর maxResultCount অন্তর্ভুক্ত রয়েছে (মান অবশ্যই 1 থেকে 20 এর মধ্যে হতে হবে)। এই ফাংশনটি ফলাফলের মাধ্যমে লুপ করে এবং প্রতিটির জন্য একটি মার্কার যোগ করে, মার্কারগুলির অবস্থানের উপর ভিত্তি করে মানচিত্রের সীমানা সামঞ্জস্য করে। কারণ searchByText() পদ্ধতিটি await অপারেটর ব্যবহার করে এটি শুধুমাত্র একটি async ফাংশনের ভিতরে ব্যবহার করা যেতে পারে।

async function findPlaces() {
  // Define a request.
  // The `fields` property is required; all others are optional.
  const request = {
    fields: ["displayName", "location", "businessStatus"],
    textQuery: "Tacos in Mountain View",
    includedType: "restaurant",
    locationBias: { lat: 37.4161493, lng: -122.0812166 },
    isOpenNow: true,
    language: "en-US",
    maxResultCount: 8,
    minRating: 3.2,
    region: "us",
    useStrictTypeFiltering: false,
  };

  // Call searchByText passing the request.
  const { places } = await google.maps.places.Place.searchByText(request);

  // Add a marker for each result.
  if (places.length) {
    const bounds = new google.maps.LatLngBounds();

    places.forEach((place) => {
      const markerView = new google.maps.marker.AdvancedMarkerElement({
        map,
        position: place.location,
        title: place.displayName,
      });

      bounds.extend(place.location);
      console.log(place);
    });
    map.fitBounds(bounds);
  } else {
    console.log("No results");
  }
}

searchByText() পদ্ধতি পূর্ববর্তী সংস্করণের তুলনায় আরও অনেক অনুরোধ বিকল্প সমর্থন করে, যার মধ্যে রয়েছে:

  • includedType যা আপনাকে একটি নির্দিষ্ট স্থানের প্রকারে অনুসন্ধানগুলিকে সীমাবদ্ধ করতে দেয়।
  • isOpenNow যা আপনাকে অনুসন্ধানগুলিকে শুধুমাত্র খোলা জায়গাগুলি ফেরাতে সীমাবদ্ধ করতে দেয়৷
  • minRating যা আপনাকে নির্দিষ্ট সীমার নিচে ফলাফলগুলিকে ফিল্টার করতে দেয় (উদাহরণস্বরূপ, শুধুমাত্র তিনটি তারা বা তার বেশি দিয়ে স্থান ফেরত দেয়)।
  • locationRestriction যা নির্দিষ্ট অবস্থানের বাইরে ফলাফল বাদ দেয় ( locationBias সমর্থিত)।

আরও জানুন