কাছাকাছি অনুসন্ধান (নতুন)

একটি কাছাকাছি অনুসন্ধান (নতুন) অনুরোধ এক বা একাধিক স্থানের ধরন নেয় এবং নির্দিষ্ট এলাকার মধ্যে মিলিত স্থানগুলির একটি তালিকা প্রদান করে। এক বা একাধিক ডেটা টাইপ নির্দিষ্ট করে একটি ফিল্ড মাস্ক প্রয়োজন। কাছাকাছি অনুসন্ধান (নতুন) শুধুমাত্র POST অনুরোধ সমর্থন করে।

API এক্সপ্লোরার আপনাকে লাইভ অনুরোধ করতে দেয় যাতে আপনি API এবং API বিকল্পগুলির সাথে পরিচিত হতে পারেন:

এটা চেষ্টা করুন!

কাছাকাছি অনুসন্ধান (নতুন) অনুরোধ

একটি কাছাকাছি অনুসন্ধান (নতুন) অনুরোধ হল ফর্মের একটি URL-এর জন্য একটি HTTP POST অনুরোধ:

https://places.googleapis.com/v1/places:searchNearby

JSON অনুরোধের বডিতে বা POST অনুরোধের অংশ হিসাবে হেডারে সমস্ত প্যারামিটার পাস করুন। উদাহরণ স্বরূপ:

curl -X POST -d '{
  "includedTypes": ["restaurant"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965},
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName" \
https://places.googleapis.com/v1/places:searchNearby

কাছাকাছি অনুসন্ধান (নতুন) প্রতিক্রিয়া

কাছাকাছি অনুসন্ধান (নতুন) একটি প্রতিক্রিয়া হিসাবে একটি JSON অবজেক্ট প্রদান করে। প্রতিক্রিয়ায়:

  • places অ্যারেতে সমস্ত মিলিত স্থান রয়েছে।
  • অ্যারের প্রতিটি স্থান একটি Place বস্তু দ্বারা প্রতিনিধিত্ব করা হয়। Place অবজেক্টে একটি একক স্থান সম্পর্কে বিস্তারিত তথ্য রয়েছে।
  • অনুরোধে পাস করা FieldMask Place অবজেক্টে ফিরে আসা ক্ষেত্রগুলির তালিকা নির্দিষ্ট করে।

সম্পূর্ণ JSON অবজেক্টটি ফর্মে রয়েছে:

{
  "places": [
    {
      object (Place)
    }
  ]
}

প্রয়োজনীয় পরামিতি

  • ফিল্ডমাস্ক

    একটি প্রতিক্রিয়া ক্ষেত্র মাস্ক তৈরি করে প্রতিক্রিয়াতে ফিরে আসার জন্য ক্ষেত্রগুলির তালিকা নির্দিষ্ট করুন। URL প্যারামিটার $fields বা fields ব্যবহার করে বা HTTP শিরোনাম X-Goog-FieldMask ব্যবহার করে পদ্ধতিতে প্রতিক্রিয়া ক্ষেত্র মাস্ক পাস করুন। প্রতিক্রিয়ায় প্রত্যাবর্তিত ক্ষেত্রগুলির কোনও ডিফল্ট তালিকা নেই। আপনি যদি ফিল্ড মাস্ক বাদ দেন, তবে পদ্ধতিটি একটি ত্রুটি প্রদান করে।

    আপনি অপ্রয়োজনীয় ডেটার অনুরোধ করবেন না তা নিশ্চিত করার জন্য ফিল্ড মাস্কিং একটি ভাল ডিজাইন অনুশীলন, যা অপ্রয়োজনীয় প্রক্রিয়াকরণের সময় এবং বিলিং চার্জ এড়াতে সহায়তা করে।

    প্রত্যাবর্তনের জন্য স্থান ডেটা প্রকারের একটি কমা-বিভক্ত তালিকা নির্দিষ্ট করুন৷ উদাহরণস্বরূপ, প্রদর্শনের নাম এবং স্থানের ঠিকানা পুনরুদ্ধার করতে।

    X-Goog-FieldMask: places.displayName,places.formattedAddress

    সমস্ত ক্ষেত্র পুনরুদ্ধার করতে * ব্যবহার করুন।

    X-Goog-FieldMask: *

    নিম্নলিখিত ক্ষেত্রগুলির মধ্যে এক বা একাধিক নির্দিষ্ট করুন:

    • নিম্নলিখিত ক্ষেত্রগুলি কাছাকাছি অনুসন্ধান (বেসিক) SKU ট্রিগার করে:

      places.accessibilityOptions , places.addressComponents , places.adrFormatAddress , places.businessStatus , places.displayName places.photos places.formattedAddress , places.googleMapsUri , places.iconBackgroundColor , places.iconMaskBaseUri places.location places.id places.name places.photos , places.plusCode , places.primaryType , places.primaryTypeDisplayName , places.shortFormattedAddress , places.subDestinations , places.types , places.utcOffsetMinutes , places.viewport

      * places.name ক্ষেত্রের ফর্মে জায়গার সম্পদের নাম রয়েছে: places/ PLACE_ID । জায়গার টেক্সট নাম অ্যাক্সেস করতে places.displayName ব্যবহার করুন।

    • নিম্নলিখিত ক্ষেত্রগুলি কাছাকাছি অনুসন্ধান (উন্নত) SKU ট্রিগার করে:

      places.currentOpeningHours , places.currentSecondaryOpeningHours , places.internationalPhoneNumber , places.nationalPhoneNumber , places.priceLevel , places.rating , places.regularOpeningHours openinghours , places.regularSecondaryOpeningHours places.userRatingCount , places.websiteUri

    • নিম্নলিখিত ক্ষেত্রগুলি কাছাকাছি অনুসন্ধান (পছন্দের) SKU ট্রিগার করে:

      places.allowsDogs , places.curbsidePickup Pickup , places.delivery , places.dineIn , places.editorialSummary , places.evChargeOptions , places.fuelOptions , places.goodForChildren , places.goodForGroups , places.goodForWatchingSports , places.menuForChildren places.liveMusic places.parkingOptions , places.paymentOptions , places.outdoorSeating , places.reservable , places.restroom , places.reviews , places.servesBeer , places.servesBreakfast places.servesDesserts , places.servesBrunch , places.servesCocktails , places.servesCoffee , places.servesDinner . places.servesLunch , places.servesVegetarianFood Vegetarian Food , places.servesWine , places.takeout

  • অবস্থান সীমাবদ্ধতা

    যে অঞ্চল অনুসন্ধান করতে হবে সেটিকে একটি বৃত্ত হিসাবে নির্দিষ্ট করা হয়েছে, কেন্দ্র বিন্দু এবং মিটারে ব্যাসার্ধ দ্বারা সংজ্ঞায়িত করা হয়েছে। ব্যাসার্ধ অবশ্যই 0.0 এবং 50000.0 এর মধ্যে হতে হবে। ডিফল্ট ব্যাসার্ধ হল 0.0। আপনার অনুরোধে এটিকে অবশ্যই 0.0-এর বেশি মান নির্ধারণ করতে হবে।

    যেমন:

    "locationRestriction": {
      "circle": {
        "center": {
          "latitude": 37.7937,
          "longitude": -122.3965
        },
        "radius": 500.0
      }
    }

ঐচ্ছিক পরামিতি

  • অন্তর্ভুক্ত প্রকার/বাদ দেওয়া প্রকার, অন্তর্ভুক্ত প্রাথমিক প্রকার/বাদ দেওয়া প্রাথমিক প্রকার

    সার্চ ফলাফল ফিল্টার করতে ব্যবহৃত সারণী A থেকে প্রকারের একটি তালিকা আপনাকে নির্দিষ্ট করতে দেয়। প্রতিটি ধরনের সীমাবদ্ধতা বিভাগে 50টি পর্যন্ত নির্দিষ্ট করা যেতে পারে।

    একটি স্থানের সাথে যুক্ত সারণী A থেকে শুধুমাত্র একটি একক প্রাথমিক প্রকার থাকতে পারে। উদাহরণস্বরূপ, প্রাথমিক প্রকার হতে পারে "mexican_restaurant" বা "steak_house" । একটি স্থানের প্রাথমিক প্রকারের ফলাফলগুলি ফিল্টার করতে includedPrimaryTypes এবং excludedPrimaryTypes ব্যবহার করুন৷

    একটি স্থানের সাথে যুক্ত সারণী A থেকে একাধিক ধরণের মান থাকতে পারে। উদাহরণস্বরূপ একটি রেস্তোরাঁর নিম্নলিখিত প্রকারগুলি থাকতে পারে: "seafood_restaurant" , "restaurant" , "food" , "point_of_interest" , "establishment" । একটি স্থানের সাথে সম্পর্কিত প্রকারের তালিকায় ফলাফলগুলি ফিল্টার করতে includedTypes এবং excludedTypes ব্যবহার করুন৷

    যদি একটি অনুসন্ধান একাধিক প্রকারের বিধিনিষেধের সাথে নির্দিষ্ট করা হয়, শুধুমাত্র সেই স্থানগুলি যা সমস্ত বিধিনিষেধ পূরণ করে ফেরত দেওয়া হয়৷ উদাহরণস্বরূপ, যদি আপনি {"includedTypes": ["restaurant"], "excludedPrimaryTypes": ["steak_house"]} উল্লেখ করেন, তবে ফেরত স্থানগুলি "restaurant" সম্পর্কিত পরিষেবা প্রদান করে কিন্তু প্রাথমিকভাবে "steak_house" হিসাবে কাজ করে না।

    অন্তর্ভুক্ত প্রকার

    অনুসন্ধান করার জন্য সারণি A থেকে স্থানের প্রকারের একটি কমা দ্বারা পৃথক করা তালিকা৷ যদি এই প্যারামিটারটি বাদ দেওয়া হয়, তাহলে সব ধরনের স্থান ফেরত দেওয়া হয়।

    বর্জিত প্রকার

    একটি অনুসন্ধান থেকে বাদ দেওয়ার জন্য সারণি A থেকে স্থানের প্রকারের একটি কমা দ্বারা পৃথক করা তালিকা৷

    আপনি যদি অনুরোধে includedTypes (যেমন "school" ) এবং excludedTypes (যেমন "primary_school" ) উভয়ই উল্লেখ করেন, তাহলে প্রতিক্রিয়াতে এমন স্থানগুলি অন্তর্ভুক্ত থাকে যেগুলিকে "school" হিসাবে শ্রেণীবদ্ধ করা হয়েছে কিন্তু "primary_school" হিসাবে নয়। প্রতিক্রিয়ার মধ্যে এমন স্থানগুলি অন্তর্ভুক্ত রয়েছে যেগুলি includedTypes মধ্যে অন্তত একটির সাথে মেলে এবং excludedTypes একটির সাথেও মেলে না৷

    যদি কোনো পরস্পরবিরোধী প্রকার থাকে, যেমন একটি প্রকার includedTypes এবং excludedTypes উভয় ক্ষেত্রে প্রদর্শিত হয়, একটি INVALID_REQUEST ত্রুটি ফেরত দেওয়া হয়৷

    প্রাইমারি টাইপস অন্তর্ভুক্ত

    একটি অনুসন্ধানে অন্তর্ভুক্ত করার জন্য সারণি A থেকে প্রাথমিক স্থানের প্রকারের একটি কমা দ্বারা পৃথক করা তালিকা৷

    বাদ দেওয়া প্রাথমিক প্রকার

    একটি অনুসন্ধান থেকে বাদ দেওয়ার জন্য সারণি A থেকে প্রাথমিক স্থানের প্রকারের একটি কমা দ্বারা পৃথক করা তালিকা৷

    যদি কোনো বিরোধপূর্ণ প্রাথমিক প্রকার থাকে, যেমন একটি প্রকার includedPrimaryTypes এবং excludedPrimaryTypes টাইপস উভয়েই প্রদর্শিত হয়, একটি INVALID_ARGUMENT ত্রুটি ফেরত দেওয়া হয়৷

  • ভাষা কোড

    যে ভাষায় ফলাফল দিতে হবে।

    • সমর্থিত ভাষার তালিকা দেখুন। Google প্রায়ই সমর্থিত ভাষা আপডেট করে, তাই এই তালিকাটি সম্পূর্ণ নাও হতে পারে।
    • languageCode সরবরাহ করা না হলে, API ডিফল্ট en তে। আপনি যদি একটি অবৈধ ভাষা কোড নির্দিষ্ট করেন, API একটি INVALID_ARGUMENT ত্রুটি প্রদান করে৷
    • API একটি রাস্তার ঠিকানা প্রদান করার জন্য যথাসাধ্য চেষ্টা করে যা ব্যবহারকারী এবং স্থানীয় উভয়ের জন্যই পাঠযোগ্য। সেই লক্ষ্য অর্জনের জন্য, এটি স্থানীয় ভাষায় রাস্তার ঠিকানা ফেরত দেয়, পছন্দের ভাষা পর্যবেক্ষণ করে প্রয়োজনে ব্যবহারকারীর দ্বারা পাঠযোগ্য একটি স্ক্রিপ্টে প্রতিলিপি করা হয়। অন্য সব ঠিকানা পছন্দের ভাষায় ফেরত দেওয়া হয়। ঠিকানার উপাদানগুলি একই ভাষায় ফেরত দেওয়া হয়, যা প্রথম উপাদান থেকে বেছে নেওয়া হয়।
    • পছন্দের ভাষায় একটি নাম উপলব্ধ না হলে, API সবচেয়ে কাছের মিল ব্যবহার করে।
    • পছন্দের ভাষাটির ফলাফলের সেটের উপর একটি ছোট প্রভাব রয়েছে যা API ফেরত দিতে বেছে নেয় এবং যে ক্রমে সেগুলি ফেরত দেওয়া হয়। জিওকোডার ভাষার উপর নির্ভর করে সংক্ষেপণগুলিকে ভিন্নভাবে ব্যাখ্যা করে, যেমন রাস্তার প্রকারের সংক্ষিপ্ত রূপ, বা প্রতিশব্দ যা এক ভাষায় বৈধ হতে পারে কিন্তু অন্য ভাষায় নয়।
  • maxResultCount

    ফেরত দেওয়ার জন্য সর্বাধিক সংখ্যক স্থানের ফলাফল নির্দিষ্ট করে। 1 এবং 20 এর মধ্যে হতে হবে (ডিফল্ট) অন্তর্ভুক্ত।

  • র‍্যাঙ্ক পছন্দ

    ব্যবহার করার জন্য র‌্যাঙ্কিংয়ের ধরন। যদি এই প্যারামিটারটি বাদ দেওয়া হয়, ফলাফলগুলি জনপ্রিয়তার ভিত্তিতে র‌্যাঙ্ক করা হয়। নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:

    • POPULARITY (ডিফল্ট) তাদের জনপ্রিয়তার উপর ভিত্তি করে ফলাফল বাছাই করে।
    • DISTANCE বাছাই করে নির্দিষ্ট অবস্থান থেকে তাদের দূরত্ব অনুসারে ক্রমবর্ধমান ক্রম হয়।
  • অঞ্চল কোড

    উত্তর ফর্ম্যাট করতে ব্যবহৃত অঞ্চল কোড, একটি দুই-অক্ষরের CLDR কোড মান হিসাবে নির্দিষ্ট করা হয়েছে। এর কোন পূর্ব মূল্য নেই।

    উত্তরে formattedAddress ক্ষেত্রের দেশের নাম যদি regionCode সাথে মেলে, তাহলে দেশের কোডটি formattedAddress থেকে বাদ দেওয়া হয়। এই পরামিতিটি adrFormatAddress এ কোন প্রভাব নেই, যা সর্বদা দেশের নাম অন্তর্ভুক্ত করে, অথবা shortFormattedAddress এ, যা কখনই এটি অন্তর্ভুক্ত করে না।

    কিছু উল্লেখযোগ্য ব্যতিক্রম সহ বেশিরভাগ CLDR কোডগুলি ISO 3166-1 কোডগুলির সাথে অভিন্ন৷ উদাহরণস্বরূপ, ইউনাইটেড কিংডমের ccTLD হল "uk" (.co.uk) যেখানে এর ISO 3166-1 কোড হল "gb" (প্রযুক্তিগতভাবে "The United Kingdom of Great Britain and Northern Ireland" এর সত্তার জন্য)। প্যারামিটার প্রযোজ্য আইনের উপর ভিত্তি করে ফলাফলকে প্রভাবিত করতে পারে।

কাছাকাছি অনুসন্ধান (নতুন) উদাহরণ

এক ধরনের জায়গা খুঁজুন

নিম্নলিখিত উদাহরণটি circle দ্বারা সংজ্ঞায়িত 500-মিটার ব্যাসার্ধের মধ্যে সমস্ত রেস্তোরাঁর প্রদর্শন নামের জন্য কাছাকাছি অনুসন্ধান (নতুন) অনুরোধ দেখায়:

curl -X POST -d '{
  "includedTypes": ["restaurant"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965},
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName" \
https://places.googleapis.com/v1/places:searchNearby

মনে রাখবেন যে X-Goog-FieldMask শিরোনামটি নির্দিষ্ট করে যে প্রতিক্রিয়াটিতে নিম্নলিখিত ডেটা ক্ষেত্রগুলি রয়েছে: places.displayNameপ্রতিক্রিয়াটি তখন ফর্মটিতে রয়েছে:

{
  "places": [
    {
      "displayName": {
        "text": "La Mar Cocina Peruana",
        "languageCode": "en"
      }
    },
    {
      "displayName": {
        "text": "Kokkari Estiatorio",
        "languageCode": "en"
      }
    },
    {
      "displayName": {
        "text": "Harborview Restaurant & Bar",
        "languageCode": "en"
      }
    },
...
}

অতিরিক্ত তথ্য ফেরত দিতে ফিল্ড মাস্কে আরও ডেটা প্রকার যোগ করুন। উদাহরণ স্বরূপ, রেস্তোরাঁর ঠিকানা, প্রকার এবং প্রতিক্রিয়ায় ওয়েব ঠিকানা অন্তর্ভুক্ত করতে places.formattedAddress,places.types,places.websiteUri যোগ করুন:

curl -X POST -d '{
  "includedTypes": ["restaurant"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965},
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName,places.formattedAddress,places.types,places.websiteUri" \
https://places.googleapis.com/v1/places:searchNearby

প্রতিক্রিয়া এখন ফর্মে আছে:

{
  "places": [
    {
      "types": [
        "seafood_restaurant",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "formattedAddress": "PIER 1 1/2 The Embarcadero N, San Francisco, CA 94105, USA",
      "websiteUri": "http://lamarsf.com/",
      "displayName": {
        "text": "La Mar Cocina Peruana",
        "languageCode": "en"
      }
    },
    {
      "types": [
        "greek_restaurant",
        "meal_takeaway",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "formattedAddress": "200 Jackson St, San Francisco, CA 94111, USA",
      "websiteUri": "https://kokkari.com/",
      "displayName": {
        "text": "Kokkari Estiatorio",
        "languageCode": "en"
      }
    },
...
}

একাধিক ধরনের স্থান খুঁজুন

নিম্নলিখিত উদাহরণটি নির্দিষ্ট circle 1000-মিটার ব্যাসার্ধের মধ্যে সমস্ত সুবিধার দোকান এবং মদের দোকানের প্রদর্শন নামের জন্য কাছাকাছি অনুসন্ধান (নতুন) অনুরোধ দেখায়:

curl -X POST -d '{
  "includedTypes": ["liquor_store", "convenience_store"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965
      },
      "radius": 1000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName,places.primaryType,places.types" \
https://places.googleapis.com/v1/places:searchNearby
এই উদাহরণটি places.primaryType এবং places.types ফিল্ড মাস্কে যোগ করে যাতে প্রতিক্রিয়াতে প্রতিটি স্থান সম্পর্কে টাইপ তথ্য অন্তর্ভুক্ত থাকে, ফলে ফলাফল থেকে উপযুক্ত স্থান নির্বাচন করা সহজ হয়।

নিম্নোক্ত উদাহরণটি "primary_school" "school" " টাইপের সমস্ত জায়গার জন্য কাছাকাছি অনুসন্ধান (নতুন) অনুরোধ দেখায়, দূরত্ব অনুসারে ফলাফলের র‌্যাঙ্কিং:

curl -X POST -d '{
  "includedTypes": ["school"],
  "excludedTypes": ["primary_school"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965
      },
      "radius": 1000.0
    }
  },
  "rankPreference": "DISTANCE"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName" \
https://places.googleapis.com/v1/places:searchNearby

দূরত্ব অনুসারে র‌্যাঙ্কিং করে একটি এলাকার কাছাকাছি সব জায়গা খুঁজুন

নিম্নলিখিত উদাহরণটি সান ফ্রান্সিসকো শহরের কেন্দ্রস্থলে একটি বিন্দুর কাছাকাছি স্থানগুলির জন্য কাছাকাছি অনুসন্ধান (নতুন) অনুরোধ দেখায়৷ এই উদাহরণে, আপনি দূরত্ব অনুসারে ফলাফলগুলি র্যাঙ্ক করতে rankPreference প্যারামিটারটি অন্তর্ভুক্ত করেছেন:

curl -X POST -d '{
  "maxResultCount": 10,
  "rankPreference": "DISTANCE",
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965
      },
      "radius": 1000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName" \
https://places.googleapis.com/v1/places:searchNearby

এটা চেষ্টা করুন!

API এক্সপ্লোরার আপনাকে নমুনা অনুরোধ করতে দেয় যাতে আপনি API এবং API বিকল্পগুলির সাথে পরিচিত হতে পারেন।

  1. API আইকন নির্বাচন করুন, API এক্সপ্লোরার প্রসারিত করুন। , পৃষ্ঠার ডানদিকে।
  2. ঐচ্ছিকভাবে প্রসারিত করুন স্ট্যান্ডার্ড প্যারামিটার দেখান এবং ফিল্ড মাস্কে fields প্যারামিটার সেট করুন।
  3. ঐচ্ছিকভাবে রিকোয়েস্ট বডি এডিট করুন।
  4. এক্সিকিউট বোতাম নির্বাচন করুন। পপ-আপে, আপনি অনুরোধ করতে যে অ্যাকাউন্টটি ব্যবহার করতে চান সেটি বেছে নিন।
  5. API এক্সপ্লোরার প্যানেলে, প্রসারিত আইকন নির্বাচন করুন, API এক্সপ্লোরার প্রসারিত করুন। , API এক্সপ্লোরার উইন্ডো প্রসারিত করতে।