পাঠ্য অনুসন্ধান (নতুন) একটি পাঠ্য ক্যোয়ারী নেয় এবং মিলিত স্থানগুলির একটি তালিকা প্রদান করে।
পাঠ্য অনুসন্ধান (নতুন) একটি স্ট্রিংয়ের উপর ভিত্তি করে স্থানগুলির একটি সেট সম্পর্কে তথ্য প্রদান করে — যেমন "নিউ ইয়র্কের পিজা" বা "অটোয়ার কাছে জুতার দোকান" বা "123 প্রধান রাস্তা"। পরিষেবাটি পাঠ্য স্ট্রিংয়ের সাথে মেলে এমন স্থানগুলির একটি তালিকা এবং সেট করা যেকোন অবস্থানের পক্ষপাতের সাথে প্রতিক্রিয়া জানায়৷ টেক্সট সার্চ (নতুন) আপনাকে টাইপ, ব্যবসার সময় এবং রেটিং এর মতো মানদণ্ড ব্যবহার করে ফিল্টার এবং একটি নির্দিষ্ট অবস্থানে ফলাফল সীমাবদ্ধ বা পক্ষপাতিত্ব অনুসারে স্থানগুলি অনুসন্ধান করতে দেয়৷
পাঠ্য অনুসন্ধান (নতুন) ব্যবহার করতে, আপনাকে অবশ্যই আপনার Google ক্লাউড প্রকল্পে "স্থানীয় API (নতুন)" সক্ষম করতে হবে৷ বিস্তারিত জানার জন্য শুরু করুন দেখুন।
টেক্সট ক্যোয়ারী দ্বারা স্থান খুঁজুন
একটি পাঠ্য ক্যোয়ারী বা ফোন নম্বর থেকে স্থানগুলির একটি তালিকা ফেরত দিতে searchByText
কল করুন৷ একটি অনুরোধ ব্যবহার করে অনুসন্ধান পরামিতি নির্দিষ্ট করুন, এবং তারপর searchByText()
কল করুন। ফলাফলগুলি Place
অবজেক্টের একটি তালিকা হিসাবে ফেরত দেওয়া হয়, যেখান থেকে আপনি স্থানের বিবরণ পেতে পারেন। নিম্নলিখিত স্নিপেট একটি অনুরোধের একটি উদাহরণ দেখায় এবং searchByText
এ কল করুন:
টাইপস্ক্রিপ্ট
const request = { textQuery: query, fields: ['displayName', 'location', 'businessStatus'], includedType: '', // Restrict query to a specific type (leave blank for any). useStrictTypeFiltering: true, locationBias: map.center, isOpenNow: true, language: 'en-US', maxResultCount: 8, minRating: 1, // Specify a minimum rating. region: 'us', }; const { places } = await Place.searchByText(request);
জাভাস্ক্রিপ্ট
const request = { textQuery: query, fields: ['displayName', 'location', 'businessStatus'], includedType: '', // Restrict query to a specific type (leave blank for any). useStrictTypeFiltering: true, locationBias: map.center, isOpenNow: true, language: 'en-US', maxResultCount: 8, minRating: 1, // Specify a minimum rating. region: 'us', }; const { places } = await Place.searchByText(request);
-
textQuery
প্যারামিটার দিয়ে অনুসন্ধান করার জন্য একটি পাঠ্য ক্যোয়ারী বা ফোন নম্বর নির্দিষ্ট করুন। - উটের ক্ষেত্রে এক বা একাধিক ডেটা ক্ষেত্রের কমা দ্বারা পৃথক করা তালিকা নির্দিষ্ট করতে
fields
প্যারামিটার (প্রয়োজনীয়) ব্যবহার করুন। - শুধুমাত্র নির্দিষ্ট ধরনের ফলাফল ফেরত দিতে
includedType
প্যারামিটার ব্যবহার করুন। - পক্ষপাতের জন্য
locationBias
বাlocationRestriction
ব্যবহার করুন বা আপনার পাঠ্য অনুসন্ধানের ফলাফলগুলি একটি নির্দিষ্ট অঞ্চলে সীমাবদ্ধ করুন।
ক্যোয়ারীতে একটি ফোন নম্বর থাকলে, অঞ্চলের প্যারামিটার সেট করা উচিত। উদাহরণস্বরূপ, আপনি যদি জাপানে একটি স্থান অনুসন্ধান করতে একটি ফোন নম্বর ব্যবহার করেন এবং অনুরোধকারী ডোমেনটি হয় jp
, তাহলে আপনাকে অবশ্যই region
প্যারামিটারটি 'jp'-এ সেট করতে হবে। যদি অনুরোধ থেকে region
বাদ দেওয়া হয়, তবে API ডিফল্ট হবে মার্কিন যুক্তরাষ্ট্র ('us') অঞ্চলে।
Place
অবজেক্টের একটি তালিকা হিসাবে ফেরত দেওয়া হয়, যেখান থেকে আপনি স্থানের বিবরণ পেতে পারেন।উদাহরণ
নিম্নলিখিত উদাহরণটি প্রদত্ত ক্যোয়ারী টেক্সট সহ searchByText
কল করে এবং তারপরে ফলাফলগুলি দেখানোর জন্য ক্লিকযোগ্য মার্কার সহ একটি মানচিত্র তৈরি করে৷
টাইপস্ক্রিপ্ট
let map; let markers = {}; let infoWindow; async function initMap() { const { Map, InfoWindow } = await google.maps.importLibrary("maps") as google.maps.MapsLibrary; const center = { lat: 37.4161493, lng: -122.0812166 }; map = new Map(document.getElementById('map') as HTMLElement, { center: center, zoom: 11, mapTypeControl: false, mapId: 'DEMO_MAP_ID', }); const textInput = document.getElementById('text-input') as HTMLInputElement; const textInputButton = document.getElementById('text-input-button') as HTMLButtonElement; const card = document.getElementById('text-input-card') as HTMLElement; map.controls[google.maps.ControlPosition.TOP_LEFT].push(card); textInputButton.addEventListener('click', () => { findPlaces(textInput.value); }); textInput.addEventListener('keydown', (event) => { if (event.key === 'Enter') { findPlaces(textInput.value); } }); infoWindow = new google.maps.InfoWindow(); } async function findPlaces(query) { const { Place } = await google.maps.importLibrary("places") as google.maps.PlacesLibrary; const { AdvancedMarkerElement } = await google.maps.importLibrary("marker") as google.maps.MarkerLibrary; const request = { textQuery: query, fields: ['displayName', 'location', 'businessStatus'], includedType: '', // Restrict query to a specific type (leave blank for any). useStrictTypeFiltering: true, locationBias: map.center, isOpenNow: true, language: 'en-US', maxResultCount: 8, minRating: 1, // Specify a minimum rating. region: 'us', }; const { places } = await Place.searchByText(request); if (places.length) { const { LatLngBounds } = await google.maps.importLibrary("core") as google.maps.CoreLibrary; const bounds = new LatLngBounds(); // First remove all existing markers. for (const id in markers) { markers[id].map = null; }; markers = {}; // Loop through and get all the results. places.forEach(place => { const marker = new AdvancedMarkerElement({ map, position: place.location, title: place.displayName, }); markers[place.id] = marker; marker.addListener('gmp-click', () => { map.panTo(place.location); updateInfoWindow(place.displayName, place.id, marker); }); if (place.location != null) { bounds.extend(place.location); } }); map.fitBounds(bounds); } else { console.log('No results'); } } // Helper function to create an info window. async function updateInfoWindow(title, content, anchor) { infoWindow.setContent(content); infoWindow.setHeaderContent(title); infoWindow.open({ map, anchor, shouldFocus: false, }); } initMap();
জাভাস্ক্রিপ্ট
let map; let markers = {}; let infoWindow; async function initMap() { const { Map, InfoWindow } = await google.maps.importLibrary("maps"); const center = { lat: 37.4161493, lng: -122.0812166 }; map = new Map(document.getElementById('map'), { center: center, zoom: 11, mapTypeControl: false, mapId: 'DEMO_MAP_ID', }); const textInput = document.getElementById('text-input'); const textInputButton = document.getElementById('text-input-button'); const card = document.getElementById('text-input-card'); map.controls[google.maps.ControlPosition.TOP_LEFT].push(card); textInputButton.addEventListener('click', () => { findPlaces(textInput.value); }); textInput.addEventListener('keydown', (event) => { if (event.key === 'Enter') { findPlaces(textInput.value); } }); infoWindow = new google.maps.InfoWindow(); } async function findPlaces(query) { const { Place } = await google.maps.importLibrary("places"); const { AdvancedMarkerElement } = await google.maps.importLibrary("marker"); const request = { textQuery: query, fields: ['displayName', 'location', 'businessStatus'], includedType: '', // Restrict query to a specific type (leave blank for any). useStrictTypeFiltering: true, locationBias: map.center, isOpenNow: true, language: 'en-US', maxResultCount: 8, minRating: 1, // Specify a minimum rating. region: 'us', }; const { places } = await Place.searchByText(request); if (places.length) { const { LatLngBounds } = await google.maps.importLibrary("core"); const bounds = new LatLngBounds(); // First remove all existing markers. for (const id in markers) { markers[id].map = null; } ; markers = {}; // Loop through and get all the results. places.forEach(place => { const marker = new AdvancedMarkerElement({ map, position: place.location, title: place.displayName, }); markers[place.id] = marker; marker.addListener('gmp-click', () => { map.panTo(place.location); updateInfoWindow(place.displayName, place.id, marker); }); if (place.location != null) { bounds.extend(place.location); } }); map.fitBounds(bounds); } else { console.log('No results'); } } // Helper function to create an info window. async function updateInfoWindow(title, content, anchor) { infoWindow.setContent(content); infoWindow.setHeaderContent(title); infoWindow.open({ map, anchor, shouldFocus: false, }); } initMap();
সিএসএস
/* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; } #text-input-card { width: 25%; background-color: #fff; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px; margin: 10px; padding: 5px; font-family: Roboto, sans-serif; font-size: large; font-weight: bold; } #text-input { width: 100%; padding: 10px; margin: 0; box-sizing: border-box; } #text-input-button { display: inline-block; margin-top: .5rem; width: auto; padding: .6rem .75rem; font-size: .875rem; font-weight: 500; color: #fff; background-color: #2563eb; border: none; border-radius: .375rem; cursor: pointer; transition: background-color .15s ease-in-out; text-align: center }
এইচটিএমএল
<html> <head> <title>Text Search</title> <link rel="stylesheet" type="text/css" href="./style.css" /> <script type="module" src="./index.js"></script> </head> <body> <div id="text-input-card"> <input type="text" id="text-input" placeholder="Search for a place"></input> <input type="button" id="text-input-button" value="Search"></input> </div> <div id="map"></div> <!-- prettier-ignore --> <script>(g=>{var h,a,k,p="The Google Maps JavaScript API",c="google",l="importLibrary",q="__ib__",m=document,b=window;b=b[c]||(b[c]={});var d=b.maps||(b.maps={}),r=new Set,e=new URLSearchParams,u=()=>h||(h=new Promise(async(f,n)=>{await (a=m.createElement("script"));e.set("libraries",[...r]+"");for(k in g)e.set(k.replace(/[A-Z]/g,t=>"_"+t[0].toLowerCase()),g[k]);e.set("callback",c+".maps."+q);a.src=`https://maps.${c}apis.com/maps/api/js?`+e;d[q]=f;a.onerror=()=>h=n(Error(p+" could not load."));a.nonce=m.querySelector("script[nonce]")?.nonce||"";m.head.append(a)}));d[l]?console.warn(p+" only loads once. Ignoring:",g):d[l]=(f,...n)=>r.add(f)&&u().then(()=>d[l](f,...n))}) ({key: "AIzaSyA6myHzS10YXdcazAFalmXvDkrYCp5cLc8", v: "weekly"});</script> </body> </html>