مهاجرت به جستجوی متن (جدید)

توسعه‌دهندگان منطقه اقتصادی اروپا (EEA)

مقدمه

API مکان‌ها (Legacy) از جستجوی متن (Legacy) پشتیبانی می‌کند. اگر با جستجوی متن (Legacy) آشنا هستید، جستجوی متن (جدید) تغییرات زیر را ایجاد می‌کند:

  • جستجوی متن (جدید) از درخواست‌های HTTP POST استفاده می‌کند. پارامترها را در بدنه درخواست یا در هدرها به عنوان بخشی از یک درخواست HTTP POST ارسال کنید. در مقابل، با جستجوی متن (قدیمی)، پارامترهای URL را با استفاده از یک درخواست HTTP GET ارسال می‌کنید.
  • ماسک کردن فیلد الزامی است. شما باید مشخص کنید که می‌خواهید کدام فیلدها در پاسخ برگردانده شوند. هیچ لیست پیش‌فرضی از فیلدهای برگردانده شده وجود ندارد. اگر این لیست را حذف کنید، متدها خطا برمی‌گردانند. برای اطلاعات بیشتر، به FieldMask مراجعه کنید.
  • جستجوی متن (جدید) از کلیدهای API و توکن‌های OAuth به عنوان مکانیزم احراز هویت پشتیبانی می‌کند.
  • فقط JSON به عنوان فرمت پاسخ در جستجوی متن (جدید) پشتیبانی می‌شود.
  • جستجوی متن (قدیمی) به شما امکان می‌دهد مختصات طول و عرض جغرافیایی را در رشته پرس‌وجو مشخص کنید. برای مثال: query=37.4239,-122.0925 . این گزینه در جستجوی متن (جدید) پشتیبانی نمی‌شود.

    از ژئوکدینگ معکوس برای جستجوی مختصات و بازگرداندن آدرس، یا جستجوی نزدیک (جدید) برای یافتن مکان‌های اطراف یک مکان خاص استفاده کنید.

  • قالب پاسخ JSON برای جستجوی متن (جدید) نسبت به قالب APIهای قدیمی تغییر کرده است. برای جزئیات بیشتر، به Migrate the Places API response مراجعه کنید.

جدول زیر پارامترهایی را در جستجوی متن (قدیمی) که به جستجوی متن (جدید) تغییر نام داده یا اصلاح شده‌اند، یا پارامترهایی را که دیگر پشتیبانی نمی‌شوند، فهرست می‌کند.

پارامتر فعلی پارامتر جدید یادداشت‌ها
evOptions پارامتر جدید.
language languageCode
location locationBias
maxprice/minprice priceLevels
opennow openNow
pagetoken pageToken
query textQuery در تمام درخواست‌ها الزامی است.
radius locationBias هنگام تعریف locationBias شعاع را مشخص کنید.
region regionCode
type includedType فقط یک مقدار واحد می‌گیرد.
strictTypeFiltering پارامتر جدید.

درخواست نمونه

مثال زیر از درخواست GET برای جستجوی متن (Legacy) استفاده می‌کند. در این مثال، شما یک پاسخ JSON حاوی اطلاعاتی در مورد "غذاهای تند گیاهی در سیدنی، استرالیا" درخواست می‌کنید و تمام پارامترها را به عنوان پارامترهای URL ارسال می‌کنید:

curl -L -X GET \
'https://maps.googleapis.com/maps/api/place/textsearch/json?query=Spicy%20Vegetarian%20Food%20in%20Sydney%20Australia&key=API_KEY

با جستجوی متنی (جدید)، شما یک درخواست POST ارسال می‌کنید و تمام پارامترها را در بدنه درخواست JSON یا در هدرها به عنوان بخشی از درخواست POST ارسال می‌کنید. این مثال همچنین از یک ماسک فیلد استفاده می‌کند، بنابراین پاسخ فقط شامل نام نمایشی و آدرس قالب‌بندی شده مکان است:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress' \
'https://places.googleapis.com/v1/places:searchText'