مقدمه
API مکانها از جستجوی نزدیک (قدیمی) پشتیبانی میکند. اگر با جستجوی نزدیک (قدیمی) آشنا هستید، جستجوی نزدیک (جدید) تغییرات زیر را ایجاد میکند:
- جستجوی نزدیک (جدید) از درخواستهای HTTP POST استفاده میکند. پارامترها را در بدنه درخواست یا در هدرها به عنوان بخشی از یک درخواست HTTP POST ارسال کنید. در مقابل، با جستجوی نزدیک (قدیمی)، پارامترهای URL را با استفاده از یک درخواست HTTP GET ارسال میکنید.
- ماسک کردن فیلد الزامی است. شما باید مشخص کنید که میخواهید کدام فیلدها در پاسخ برگردانده شوند. هیچ لیست پیشفرضی از فیلدهای برگردانده شده وجود ندارد. اگر این لیست را حذف کنید، متدها خطا برمیگردانند. برای اطلاعات بیشتر، به FieldMask مراجعه کنید.
- جستجوی نزدیک (جدید) از کلیدهای API و توکنهای OAuth به عنوان مکانیزم احراز هویت پشتیبانی میکند.
- فقط JSON به عنوان فرمت پاسخ در جستجوی نزدیک (جدید) پشتیبانی میشود.
- تمام درخواستهایی که شامل یک پرسوجوی متنی هستند، اکنون باید از جستجوی متنی (جدید) استفاده کنند زیرا جستجوی نزدیک (جدید) از ورودی متن پشتیبانی نمیکند.
- قالب پاسخ JSON برای جستجوی نزدیک (جدید) نسبت به قالب APIهای قدیمی تغییر کرده است. برای جزئیات بیشتر، به Migrate the Places API response مراجعه کنید.
جدول زیر پارامترهایی را در جستجوی نزدیک (قدیمی) که به جستجوی نزدیک (جدید) تغییر نام داده یا اصلاح شدهاند، یا پارامترهایی را که دیگر پشتیبانی نمیشوند، فهرست میکند.
| پارامتر فعلی | پارامتر جدید | یادداشتها |
|---|---|---|
keyword | پشتیبانی نمیشود. به جای آن از جستجوی متنی (جدید) استفاده کنید. | |
language | languageCode | |
location | locationRestriction | الزامی است. |
maxprice/minprice | | پشتیبانی نمیشود. |
maxResultCount | پارامتر جدید. | |
opennow | | پشتیبانی نمیشود. |
pagetoken | پشتیبانی نمیشود. | |
radius | | همین حالا از locationRestriction استفاده کنید. |
rankby | rankPreference | |
regionCode | پارامتر جدید. | |
type | includedTypesexcludedTypesincludedPrimaryTypesexcludedPrimaryTypes | پارامترهای جدید همچنین چندین نوع مقدار را میپذیرند. API قدیمی فقط یک مقدار واحد را میپذیرفت. |
درخواست نمونه
مثال زیر از درخواست GET برای جستجوی نزدیک (Legacy) استفاده میکند. در این مثال، شما یک پاسخ JSON حاوی اطلاعاتی در مورد مکانهایی از نوع restaurant درخواست میکنید و همه پارامترها را به عنوان پارامترهای URL ارسال میکنید:
curl -L -X GET \ 'https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=37.7937%2C-122.3965&radius=500&type=restaurant&key=API_KEY'
با جستجوی نزدیک (جدید)، شما یک درخواست POST ارسال میکنید و تمام پارامترها را در بدنه درخواست JSON یا در هدرها به عنوان بخشی از درخواست POST ارسال میکنید. این مثال همچنین از یک ماسک فیلد استفاده میکند، بنابراین پاسخ فقط شامل نام نمایشی و آدرس قالببندی شده مکان است:
curl -X POST -d '{
"includedTypes": ["restaurant"],
"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" \
https://places.googleapis.com/v1/places:searchNearby