جستجوی متن (جدید) اطلاعات مجموعهای از مکانها را بر اساس یک رشته برمیگرداند - برای مثال «پیتزا در نیویورک» یا «فروشگاههای کفش در نزدیکی اتاوا» یا «خیابان اصلی ۱۲۳». این سرویس با فهرستی از مکانهای منطبق با رشته متن و هرگونه سوگیری مکان تنظیم شده پاسخ میدهد.
این سرویس به ویژه برای ایجاد پرس و جوهای آدرس مبهم در یک سیستم خودکار مفید است و اجزای غیر آدرسی رشته ممکن است با مشاغل و همچنین آدرس ها مطابقت داشته باشند. نمونههایی از جستارهای مبهم آدرس، آدرسها یا درخواستهایی با قالببندی ضعیف هستند که شامل اجزای غیرآدرس مانند نامهای تجاری میشوند. درخواستهایی مانند دو مثال اول در جدول زیر ممکن است نتیجه صفر را برگردانند مگر اینکه یک مکان - مانند منطقه، محدودیت مکان، یا تعصب مکان - تنظیم شده باشد.
"10 High Street, UK" یا "123 Main Street, US" | چندین "های استریت" در بریتانیا؛ چندین "خیابان اصلی" در ایالات متحده پرس و جو نتایج مطلوبی را بر نمی گرداند مگر اینکه محدودیت مکانی تعیین شده باشد. |
رستوران زنجیره ای نیویورک | چندین مکان "ChainRestaurant" در نیویورک. بدون آدرس خیابان یا حتی نام خیابان. |
"10 High Street, Escher UK" یا "123 Main Street, Pleasanton US" | تنها یک «خیابان بالا» در شهر اسچر بریتانیا. تنها یک "خیابان اصلی" در شهر Pleasanton CA ایالات متحده. |
"UniqueRestaurantName New York" | تنها یک موسسه با این نام در نیویورک. هیچ آدرس خیابانی برای تفکیک لازم نیست. |
"رستوران های پیتزا در نیویورک" | این پرس و جو شامل محدودیت مکان آن است و "رستوران پیتزا" یک نوع مکان کاملاً تعریف شده است. چندین نتیجه را برمی گرداند. |
"8700-670-514 1+" | این درخواست شامل یک شماره تلفن است. چندین نتیجه را برای مکانهای مرتبط با آن شماره تلفن برمیگرداند. |
API Explorer به شما امکان می دهد درخواست های زنده بنویسید تا بتوانید با API و گزینه های API آشنا شوید:
درخواست جستجوی متن یک درخواست HTTP POST به شکل زیر است:
https://places.googleapis.com/v1/places:searchText
تمام پارامترها را در بدنه درخواست 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,places.priceLevel' \ 'https://places.googleapis.com/v1/places:searchText'
جستجوی متن (جدید) یک شی JSON را به عنوان پاسخ برمیگرداند. در پاسخ:
- آرایه
places
شامل همه مکان های منطبق است. - هر مکان در آرایه با یک شی
Place
نشان داده می شود. شیPlace
حاوی اطلاعات دقیق در مورد یک مکان است. - FieldMask ارسال شده در درخواست، فهرست فیلدهای بازگشتی در شیء
Place
را مشخص می کند.
شیء کامل JSON به شکل زیر است:
{ "places": [ { object (Place) } ] }
فیلد ماسک با ایجاد یک ماسک فیلد پاسخ، لیست فیلدهایی را که باید در پاسخ بازگردانده شوند، مشخص کنید. ماسک فیلد پاسخ را با استفاده از پارامتر URL
$fields
یاfields
$ یا با استفاده از هدر HTTPX-Goog-FieldMask
به روش ارسال کنید. هیچ لیست پیش فرضی از فیلدهای برگشتی در پاسخ وجود ندارد. اگر فیلد ماسک را حذف کنید، متد یک خطا برمیگرداند.پوشاندن میدان یک روش طراحی خوب برای اطمینان از عدم درخواست دادههای غیرضروری است که به جلوگیری از زمان پردازش غیرضروری و هزینههای صورتحساب کمک میکند.
یک لیست جدا شده با کاما از انواع داده مکان برای بازگشت مشخص کنید. به عنوان مثال، برای بازیابی نام نمایشی و آدرس مکان.
X-Goog-FieldMask: places.displayName,places.formattedAddress
برای بازیابی تمام فیلدها از
*
استفاده کنید.X-Goog-FieldMask: *
یک یا چند مورد از فیلدهای زیر را مشخص کنید:
فیلدهای زیر SKU جستجوی متن (فقط شناسه) را راهاندازی میکنند:
places.attributions
،places.id
،places.name
* ،nextPageToken
* فیلدplaces.name
حاوی نام منبع مکان به شکل است:places/ PLACE_ID
. برای دسترسی به نام متنی مکان، ازplaces.displayName
استفاده کنید.فیلدهای زیر SKU جستجوی متن (پایه) را راهاندازی میکنند:
places.accessibilityOptions
،places.addressComponents
،places.adrFormatAddress
،places.businessStatus
،places.displayName
places.photos
places.formattedAddress
،places.googleMapsUri
،places.iconBackgroundColor
،places.iconMaskBaseUri
،places.location
،places.plusCode
places.primaryType
,places.primaryTypeDisplayName
,places.shortFormattedAddress
,places.subDestinations
,places.types
,places.utcOffsetMinutes
,places.viewport
فیلدهای زیر SKU جستجوی متن (پیشرفته) را فعال می کنند:
places.currentOpeningHours
places.priceLevel
places.nationalPhoneNumber
places.rating
places.currentSecondaryOpeningHours
places.internationalPhoneNumber
places.regularOpeningHours
places.regularSecondaryOpeningHours
places.userRatingCount
places.websiteUri
فیلدهای زیر SKU جستجوی متن (ترجیحی) را فعال می کنند:
places.allowsDogs
،places.curbsidePickup
places.delivery
،places.dineIn
places.menuForChildren
مکانها. غذا در،places.editorialSummary
خلاصه،places.evChargeOptions
.evChargeOptions،places.fuelOptions
.fuelOptions،places.goodForChildren
.goodForChildren،places.goodForGroups
.places.liveMusic
،places.goodForWatchingSports
places.parkingOptions
goodForWatchingSports.places.parkingOptions
,places.paymentOptions
,places.outdoorSeating
,places.reservable
,places.restroom
,places.reviews
,places.routingSummaries
, *places.servesBeer
places.servesDessert
places.servesBreakfast
,places.servesBrunch
,places.servesCocktails
,places.servesCoffee
. ,places.servesDinner
places.servesWine
places.servesLunch
,places.servesVegetarianFood
,places.takeout
* فقط جستجوی متن و جستجوی نزدیک
متن پرس و جو رشته متنی که در آن جستجو می شود، به عنوان مثال: "رستوران"، "خیابان اصلی 123"، یا "بهترین مکان برای بازدید در سانفرانسیسکو". API مطابق این رشته را برمی گرداند و نتایج را بر اساس ارتباط درک شده آنها مرتب می کند.
شامل نوع نتایج را به مکان هایی محدود می کند که با نوع مشخص شده توسط جدول A مطابقت دارند. فقط یک نوع ممکن است مشخص شود. به عنوان مثال:
-
"includedType":"bar"
-
"includedType":"pharmacy"
-
کد زبان زبانی که در آن نتایج را برگرداند.
- لیست زبان های پشتیبانی شده را ببینید. Google اغلب زبان های پشتیبانی شده را به روز می کند، بنابراین این فهرست ممکن است جامع نباشد.
- اگر
languageCode
ارائه نشده باشد، API پیشفرضen
را انتخاب میکند. اگر کد زبان نامعتبر را مشخص کنید، API یک خطایINVALID_ARGUMENT
برمیگرداند. - API تمام تلاش خود را می کند تا آدرس خیابانی را ارائه دهد که هم برای کاربر و هم برای افراد محلی قابل خواندن باشد. برای دستیابی به این هدف، آدرسهای خیابان را به زبان محلی برمیگرداند و به اسکریپتی که در صورت لزوم توسط کاربر قابل خواندن است، با رعایت زبان ترجیحی، ترجمه میشود. همه آدرس های دیگر به زبان ترجیحی برگردانده می شوند. اجزای آدرس همه به یک زبان بازگردانده می شوند که از جزء اول انتخاب شده است.
- اگر نامی در زبان ترجیحی موجود نباشد، API از نزدیکترین تطابق استفاده می کند.
- زبان ترجیحی تأثیر کمی بر مجموعه نتایجی که API برای برگرداندن آنها انتخاب میکند و ترتیب بازگرداندن آنها دارد. geocoder بسته به زبان، اختصارات را متفاوت تفسیر می کند، مانند اختصارات انواع خیابان، یا مترادف هایی که ممکن است در یک زبان معتبر باشند اما در زبان دیگر معتبر نیستند.
تعصب موقعیت منطقه ای را برای جستجو مشخص می کند. این مکان به عنوان یک سوگیری عمل می کند که به این معنی است که نتایج در اطراف مکان مشخص شده می توانند برگردانده شوند، از جمله نتایج خارج از منطقه مشخص شده.
شما می توانید
locationRestriction
یاlocationBias
را مشخص کنید، اما نه هر دو را.locationRestriction
را به عنوان مشخص کننده منطقه ای که نتایج باید در آن باشد، وlocationBias
به عنوان تعیین منطقه ای که نتایج باید نزدیک باشد اما می تواند خارج از منطقه باشد، در نظر بگیرید.منطقه را به صورت یک Viewport مستطیلی یا به صورت دایره مشخص کنید.
دایره با نقطه مرکزی و شعاع بر حسب متر تعریف می شود. شعاع باید بین 0.0 تا 50000.0 باشد. شعاع پیش فرض 0.0 است. به عنوان مثال:
"locationBias": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 500.0 } }
مستطیل یک نمای عرض-طول جغرافیایی است که به صورت دو نقطه پایین و بالا به صورت مورب در مقابل هم نمایش داده می شود. نقطه پایین گوشه جنوب غربی مستطیل را نشان می دهد و نقطه بالا نمایانگر گوشه شمال شرقی مستطیل است.
یک viewport یک منطقه بسته در نظر گرفته می شود، به این معنی که شامل مرز آن می شود. محدوده عرض جغرافیایی باید بین 90- تا 90 درجه باشد و محدوده طول جغرافیایی باید بین 180- تا 180 درجه باشد:
- اگر
low
=high
، نمای از همان نقطه واحد تشکیل شده است. - اگر
low.longitude
>high.longitude
, محدوده طول معکوس می شود (نمایش از خط طول جغرافیایی 180 درجه عبور می کند). - اگر
low.longitude
= -180 درجه وhigh.longitude
= 180 درجه باشد، درگاه دید شامل تمام طولهای جغرافیایی میشود. - اگر
low.longitude
= 180 درجه وhigh.longitude
= -180 درجه باشد، محدوده طول جغرافیایی خالی است. - اگر
low.latitude
>high.latitude
، محدوده عرض جغرافیایی خالی است.
هم کم و هم زیاد باید پر شوند و کادر نمایش داده شده نمی تواند خالی باشد. یک نمای خالی منجر به خطا می شود.
به عنوان مثال، این نما به طور کامل شهر نیویورک را در بر می گیرد:
"locationBias": { "rectangle": { "low": { "latitude": 40.477398, "longitude": -74.259087 }, "high": { "latitude": 40.91618, "longitude": -73.70018 } } }
- اگر
محدودیت مکان منطقه ای را برای جستجو مشخص می کند. نتایج خارج از منطقه مشخص شده برگردانده نمی شوند. منطقه را به عنوان یک Viewport مستطیلی مشخص کنید. برای اطلاعات در مورد تعریف Viewport به توضیحات
locationBias
مراجعه کنید.شما می توانید
locationRestriction
یاlocationBias
را مشخص کنید، اما نه هر دو را.locationRestriction
را به عنوان مشخص کننده منطقه ای که نتایج باید در آن باشد، وlocationBias
به عنوان تعیین منطقه ای که نتایج باید نزدیک باشد اما می تواند خارج از منطقه باشد، در نظر بگیرید.maxResultCount (منسوخ شده) تعداد نتایج (بین 1 تا 20) برای نمایش در هر صفحه را مشخص می کند. به عنوان مثال، با تنظیم مقدار
maxResultCount
5، حداکثر 5 نتیجه در صفحه اول باز می گردد. اگر نتایج بیشتری وجود داشته باشد که می توان از پرس و جو برگشت داد، پاسخ شاملnextPageToken
است که می توانید آن را به درخواست بعدی برای دسترسی به صفحه بعدی ارسال کنید.evOptions پارامترهایی را برای شناسایی کانکتورهای شارژ وسیله نقلیه الکتریکی (EV) موجود و نرخ شارژ مشخص میکند.
انواع اتصالات فیلترها بر اساس نوع کانکتور شارژ EV موجود در یک مکان. مکانی که از هیچ یک از انواع اتصالات پشتیبانی نمی کند، فیلتر می شود. انواع کانکتور شارژ EV پشتیبانی شده شامل شارژرهای ترکیبی (AC و DC)، شارژرهای تسلا، شارژرهای سازگار با GB/T (برای شارژ سریع EV در چین) و شارژرهای پریز دیواری است. برای اطلاعات بیشتر، به مستندات مرجع مراجعه کنید.
حداقل نرخ شارژ کیلووات مکان ها را بر اساس حداقل نرخ شارژ EV بر حسب کیلووات (کیلووات) فیلتر می کند. هر مکان با نرخ شارژ کمتر از حداقل نرخ شارژ فیلتر می شود. به عنوان مثال، برای پیدا کردن شارژرهای EV با نرخ شارژ حداقل 10 کیلو وات، می توانید این پارامتر را روی "10" تنظیم کنید.
امتیاز مین نتایج را فقط به کسانی محدود میکند که میانگین رتبهبندی کاربران آنها بیشتر یا مساوی این حد باشد. مقادیر باید بین 0.0 و 5.0 (شامل) با افزایش 0.5 باشد. به عنوان مثال: 0، 0.5، 1.0، ...، 5.0 شامل. مقادیر به نزدیکترین 0.5 گرد می شوند. به عنوان مثال، مقدار 0.6 تمام نتایج با رتبه بندی کمتر از 1.0 را حذف می کند.
openNow اگر
true
، فقط مکانهایی را برگردانید که در زمان ارسال درخواست برای کسب و کار باز هستند. اگرfalse
، همه مشاغل را بدون در نظر گرفتن وضعیت باز بازگردانید. مکانهایی که ساعات کار را در پایگاه داده Google Places مشخص نمیکنند، اگر این پارامتر را رویfalse
تنظیم کنید، برگردانده میشوند.اندازه صفحه تعداد نتایج (بین 1 تا 20) برای نمایش در هر صفحه را مشخص می کند. به عنوان مثال، با تنظیم مقدار
pageSize
5، تا 5 نتیجه در صفحه اول باز می گردد. اگر نتایج بیشتری وجود داشته باشد که می توان از پرس و جو برگشت داد، پاسخ شاملnextPageToken
است که می توانید آن را به درخواست بعدی برای دسترسی به صفحه بعدی ارسال کنید.pageToken nextPageToken
را از بدنه پاسخ صفحه قبل مشخص می کند.سطوح قیمت جستجو را به مکانهایی که در سطوح قیمت مشخصی علامتگذاری شدهاند محدود کنید. پیش فرض این است که تمام سطوح قیمت را انتخاب کنید.
آرایه ای از یک یا چند مقدار تعریف شده توسط
PriceLevel
را مشخص کنید.به عنوان مثال:
"priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
رتبه اولویت نحوه رتبه بندی نتایج در پاسخ بر اساس نوع پرس و جو را مشخص می کند:
- برای یک جستار طبقه بندی شده مانند "رستوران ها در شهر نیویورک"،
RELEVANCE
(رتبه بندی نتایج بر اساس ارتباط جستجو) پیش فرض است. شما می توانیدrankPreference
رویRELEVANCE
یاDISTANCE
تنظیم کنید (نتایج را بر اساس فاصله رتبه بندی کنید). - برای یک جستار غیر دسته بندی مانند "Mountain View, CA"، توصیه می کنیم که
rankPreference
تنظیم نشده بگذارید.
- برای یک جستار طبقه بندی شده مانند "رستوران ها در شهر نیویورک"،
منطقه کد کد منطقه ای که برای قالب بندی پاسخ استفاده می شود، به عنوان مقدار کد CLDR دو کاراکتری مشخص شده است. این پارامتر همچنین می تواند یک اثر سوگیری در نتایج جستجو داشته باشد. هیچ مقدار پیش فرض وجود ندارد.
اگر نام کشور قسمت
formattedAddress
در پاسخ باregionCode
مطابقت داشته باشد، کد کشور ازformattedAddress
حذف میشود. این پارامتر هیچ تاثیری رویadrFormatAddress
ندارد، که همیشه نام کشور را در صورت موجود بودن شامل میشود، یا رویshortFormattedAddress
که هرگز آن را شامل نمیشود.اکثر کدهای CLDR با کدهای ISO 3166-1 یکسان هستند، با برخی استثناهای قابل توجه. برای مثال، ccTLD بریتانیا "uk" (.co.uk) است در حالی که کد ISO 3166-1 آن "gb" است (از لحاظ فنی برای نهاد "پادشاهی متحده بریتانیای کبیر و ایرلند شمالی"). این پارامتر می تواند بر نتایج بر اساس قانون قابل اجرا تأثیر بگذارد.
strictTypeFiltering با پارامتر
includedType
استفاده می شود. وقتی رویtrue
تنظیم شود، فقط مکان هایی که با انواع مشخص شده توسطincludeType
مطابقت دارند، برگردانده می شوند. هنگامی که نادرست، پیشفرض، پاسخ میتواند حاوی مکانهایی باشد که با انواع مشخصشده مطابقت ندارند.
مثال زیر یک درخواست جستجوی متن برای "غذای گیاهی تند در سیدنی، استرالیا" را نشان می دهد:
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'
توجه داشته باشید که هدر X-Goog-FieldMask
مشخص می کند که پاسخ حاوی فیلدهای داده زیر است: places.displayName,places.formattedAddress
. سپس پاسخ به این شکل است:
{ "places": [ { "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "formattedAddress": "175 First Ave, Five Dock NSW 2046, Australia", "displayName": { "text": "Veggo Sizzle - Vegan & Vegetarian Restaurant, Five Dock, Sydney", "languageCode": "en" } }, { "formattedAddress": "29 King St, Sydney NSW 2000, Australia", "displayName": { "text": "Peace Harmony", "languageCode": "en" } }, ... ] }
برای بازگرداندن اطلاعات بیشتر، انواع داده های بیشتری را به فیلد ماسک اضافه کنید. برای مثال، places.types,places.websiteUri
را اضافه کنید تا نوع رستوران و آدرس وب را در پاسخ اضافه کنید:
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,places.types,places.websiteUri' \ 'https://places.googleapis.com/v1/places:searchText'
اکنون پاسخ به این شکل است:
{ "places": [ { "types": [ "vegetarian_restaurant", "vegan_restaurant", "chinese_restaurant", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "websiteUri": "http://www.motherchusvegetarian.com.au/", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "types": [ "vegan_restaurant", "thai_restaurant", "vegetarian_restaurant", "indian_restaurant", "italian_restaurant", "american_restaurant", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "175 First Ave, Five Dock NSW 2046, Australia", "websiteUri": "http://www.veggosizzle.com.au/", "displayName": { "text": "Veggo Sizzle - Vegan & Vegetarian Restaurant, Five Dock, Sydney", "languageCode": "en" } }, ... ] }
از گزینه priceLevel
برای فیلتر کردن نتایج به رستورانهایی که بهعنوان ارزانقیمت یا نسبتاً گران تعریف شدهاند، استفاده کنید:
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia", "priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"] }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \ 'https://places.googleapis.com/v1/places:searchText'
این مثال همچنین از هدر X-Goog-FieldMask
برای اضافه کردن فیلد داده places.priceLevel
به پاسخ استفاده میکند تا به شکل زیر باشد:
{ "places": [ { "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "formattedAddress": "115 King St, Newtown NSW 2042, Australia", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Green Mushroom", "languageCode": "en" } }, ... ] }
گزینه های اضافی را برای اصلاح جستجوی خود اضافه کنید، مانند includedType
، minRating
، rankPreference
، openNow
، و سایر پارامترهای شرح داده شده در پارامترهای اختیاری .
از locationRestriction
یا locationBias
استفاده کنید، اما نه از هر دو، برای محدود کردن جستجو به یک منطقه. locationRestriction
را به عنوان مشخص کننده منطقه ای که نتایج باید در آن باشد، و locationBias
به عنوان تعیین منطقه ای که نتایج باید نزدیک باشد اما می تواند خارج از منطقه باشد، در نظر بگیرید.
مثال زیر یک درخواست جستجوی متن برای "غذای گیاهی تند" را نشان می دهد که در فاصله 500 متری از نقطه ای در مرکز شهر سانفرانسیسکو قرار دارد. این درخواست فقط 10 نتیجه اول را برای مکانهایی که باز هستند برمیگرداند.
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food", "openNow": true, "pageSize": 10, "locationBias": { "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:searchText'
از minimumChargingRateKw
و connectorTypes
برای جستجوی مکانهایی با شارژرهای موجود که با خودروی برقی شما سازگار هستند، استفاده کنید.
مثال زیر درخواستی برای کانکتورهای شارژ EV نوع 1 Tesla و J1772 با حداقل نرخ شارژ 10 کیلو وات در Mountain View، CA را نشان میدهد. فقط چهار نتیجه برگردانده شده است.
curl -X POST -d '{ "textQuery": "EV Charging Station Mountain View", "pageSize": 4, "evOptions": { "minimumChargingRateKw": 10, "connectorTypes": ["EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TESLA"] } }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H "X-Goog-FieldMask: places.displayName,places.evChargeOptions" \ 'https://places.googleapis.com/v1/places:searchText'
درخواست پاسخ زیر را برمی گرداند:
{ "places": [ { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 16, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_CHADEMO", "maxChargeRateKw": 100, "count": 8, "availableCount": 5, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 100, "count": 2, "availableCount": 2, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 350, "count": 6, "availableCount": 3, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" } ] } }, { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 6, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 100, "count": 4, "availableCount": 3, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 350, "count": 2, "availableCount": 0, "outOfServiceCount": 2, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" } ] } }, { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 5, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_J1772", "maxChargeRateKw": 3.5999999046325684, "count": 1, "availableCount": 0, "outOfServiceCount": 1, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CHADEMO", "maxChargeRateKw": 50, "count": 2, "availableCount": 0, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 50, "count": 2, "availableCount": 0, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" } ] } }, { "displayName": { "text": "Electric Vehicle Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 10, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_OTHER", "maxChargeRateKw": 210, "count": 10 } ] } } ] }
از پارامتر pageSize
برای تعیین تعدادی نتیجه برای بازگشت در هر صفحه استفاده کنید. پارامتر nextPageToken
در بدنه پاسخ، نشانه ای را ارائه می دهد که می تواند در تماس های بعدی برای دسترسی به صفحه بعدی نتایج استفاده شود.
مثال زیر درخواستی برای "پیتزا در نیویورک" را نشان می دهد که محدود به 5 نتیجه در هر صفحه است:
curl -X POST -d '{ "textQuery": "pizza in New York", "pageSize": 5 }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H "X-Goog-FieldMask: places.id,nextPageToken" \ 'https://places.googleapis.com/v1/places:searchText'
{ "places": [ { "id": "ChIJifIePKtZwokRVZ-UdRGkZzs" }, { "id": "ChIJPxPd_P1YwokRfzLhSiACEoU" }, { "id": "ChIJrXXKn5NZwokR78g0ipCnY60" }, { "id": "ChIJ6ySICVZYwokR9rIK8HjXhzE" }, { "id": "ChIJ6xvs94VZwokRnT1D2lX2OTw" } ], "nextPageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q" }
برای دسترسی به صفحه بعدی نتایج، pageToken
برای ارسال nextPageToken
در بدنه درخواست استفاده کنید:
curl -X POST -d '{ "textQuery": "pizza in New York", "pageSize": 5, "pageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H "X-Goog-FieldMask: places.id,nextPageToken" \ 'https://places.googleapis.com/v1/places:searchText'
{ "places": [ { "id": "ChIJL-LN1N1ZwokR8K2jACu6Ydw" }, { "id": "ChIJjaD94kFZwokR-20CXqlpy_4" }, { "id": "ChIJ6ffdpJNZwokRmcafdROM5q0" }, { "id": "ChIJ8Q2WSpJZwokRQz-bYYgEskM" }, { "id": "ChIJ8164qwFZwokRhplkmhvq1uE" } ], "nextPageToken": "AeCrKXvPd6uUy-oj96W2OaqEe2pUD8QTxOM8-sKfUcFsC9t2Wey5qivrKGoGSxcZnyc7RPmaFfAktslrKbUh31ZDTkL0upRmaxA7c_c" }
API Explorer به شما امکان می دهد درخواست های نمونه بنویسید تا بتوانید با API و گزینه های API آشنا شوید.
نماد API را انتخاب کنید، ، در سمت راست صفحه.
به صورت اختیاری نمایش پارامترهای استاندارد را گسترش دهید و پارامتر
fields
را روی فیلد ماسک تنظیم کنید.به صورت اختیاری بدنه درخواست را ویرایش کنید.
دکمه Execute را انتخاب کنید. در کادر محاورهای باز شده، حسابی را که میخواهید برای ارسال درخواست استفاده کنید، انتخاب کنید.
در پانل API Explorer، نماد گسترش را انتخاب کنید، ، برای گسترش پنجره API Explorer.
جستجوی متن (جدید) اطلاعات مجموعهای از مکانها را بر اساس یک رشته برمیگرداند - برای مثال «پیتزا در نیویورک» یا «فروشگاههای کفش در نزدیکی اتاوا» یا «خیابان اصلی ۱۲۳». این سرویس با فهرستی از مکانهای منطبق با رشته متن و هرگونه سوگیری مکان تنظیم شده پاسخ میدهد.
این سرویس به ویژه برای ایجاد پرس و جوهای آدرس مبهم در یک سیستم خودکار مفید است و اجزای غیر آدرسی رشته ممکن است با مشاغل و همچنین آدرس ها مطابقت داشته باشند. نمونههایی از جستارهای مبهم آدرس، آدرسها یا درخواستهایی با قالببندی ضعیف هستند که شامل اجزای غیرآدرس مانند نامهای تجاری میشوند. درخواستهایی مانند دو مثال اول در جدول زیر ممکن است نتیجه صفر را برگردانند مگر اینکه یک مکان - مانند منطقه، محدودیت مکان، یا تعصب مکان - تنظیم شده باشد.
"10 High Street, UK" یا "123 Main Street, US" | چندین "های استریت" در بریتانیا؛ چندین "خیابان اصلی" در ایالات متحده پرس و جو نتایج مطلوبی را بر نمی گرداند مگر اینکه محدودیت مکانی تعیین شده باشد. |
رستوران زنجیره ای نیویورک | چندین مکان "ChainRestaurant" در نیویورک. بدون آدرس خیابان یا حتی نام خیابان. |
"10 High Street, Escher UK" یا "123 Main Street, Pleasanton US" | تنها یک «خیابان بالا» در شهر اسچر بریتانیا. تنها یک "خیابان اصلی" در شهر Pleasanton CA ایالات متحده. |
"UniqueRestaurantName New York" | تنها یک موسسه با این نام در نیویورک. هیچ آدرس خیابانی برای تفکیک لازم نیست. |
"رستوران های پیتزا در نیویورک" | این پرس و جو شامل محدودیت مکان آن است و "رستوران پیتزا" یک نوع مکان کاملاً تعریف شده است. چندین نتیجه را برمی گرداند. |
"8700-670-514 1+" | این درخواست شامل یک شماره تلفن است. چندین نتیجه را برای مکانهای مرتبط با آن شماره تلفن برمیگرداند. |
API Explorer به شما امکان می دهد درخواست های زنده بنویسید تا بتوانید با API و گزینه های API آشنا شوید:
درخواست جستجوی متن یک درخواست HTTP POST به شکل زیر است:
https://places.googleapis.com/v1/places:searchText
تمام پارامترها را در بدنه درخواست 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,places.priceLevel' \ 'https://places.googleapis.com/v1/places:searchText'
جستجوی متن (جدید) یک شی JSON را به عنوان پاسخ برمیگرداند. در پاسخ:
- آرایه
places
شامل همه مکان های منطبق است. - هر مکان در آرایه با یک شی
Place
نشان داده می شود. شیPlace
حاوی اطلاعات دقیق در مورد یک مکان است. - FieldMask ارسال شده در درخواست، فهرست فیلدهای بازگشتی در شیء
Place
را مشخص می کند.
شیء کامل JSON به شکل زیر است:
{ "places": [ { object (Place) } ] }
فیلد ماسک با ایجاد یک ماسک فیلد پاسخ، لیست فیلدهایی را که باید در پاسخ بازگردانده شوند، مشخص کنید. ماسک فیلد پاسخ را با استفاده از پارامتر URL
$fields
یاfields
$ یا با استفاده از هدر HTTPX-Goog-FieldMask
به روش ارسال کنید. هیچ لیست پیش فرضی از فیلدهای برگشتی در پاسخ وجود ندارد. اگر فیلد ماسک را حذف کنید، متد یک خطا برمیگرداند.پوشاندن میدان یک روش طراحی خوب برای اطمینان از عدم درخواست دادههای غیرضروری است که به جلوگیری از زمان پردازش غیرضروری و هزینههای صورتحساب کمک میکند.
یک لیست جدا شده با کاما از انواع داده مکان برای بازگشت مشخص کنید. به عنوان مثال، برای بازیابی نام نمایشی و آدرس مکان.
X-Goog-FieldMask: places.displayName,places.formattedAddress
برای بازیابی تمام فیلدها از
*
استفاده کنید.X-Goog-FieldMask: *
یک یا چند مورد از فیلدهای زیر را مشخص کنید:
فیلدهای زیر SKU جستجوی متن (فقط شناسه) را راهاندازی میکنند:
places.attributions
،places.id
،places.name
* ،nextPageToken
* فیلدplaces.name
حاوی نام منبع مکان به شکل است:places/ PLACE_ID
. برای دسترسی به نام متنی مکان، ازplaces.displayName
استفاده کنید.فیلدهای زیر SKU جستجوی متن (پایه) را راهاندازی میکنند:
places.accessibilityOptions
،places.addressComponents
،places.adrFormatAddress
،places.businessStatus
،places.displayName
places.photos
places.formattedAddress
،places.googleMapsUri
،places.iconBackgroundColor
،places.iconMaskBaseUri
،places.location
،places.plusCode
places.primaryType
,places.primaryTypeDisplayName
,places.shortFormattedAddress
,places.subDestinations
,places.types
,places.utcOffsetMinutes
,places.viewport
فیلدهای زیر SKU جستجوی متن (پیشرفته) را فعال می کنند:
places.currentOpeningHours
places.priceLevel
places.nationalPhoneNumber
places.rating
places.currentSecondaryOpeningHours
places.internationalPhoneNumber
places.regularOpeningHours
places.regularSecondaryOpeningHours
places.userRatingCount
places.websiteUri
فیلدهای زیر SKU جستجوی متن (ترجیحی) را فعال می کنند:
places.allowsDogs
،places.curbsidePickup
places.delivery
،places.dineIn
places.menuForChildren
مکانها. غذا در،places.editorialSummary
خلاصه،places.evChargeOptions
.evChargeOptions،places.fuelOptions
.fuelOptions،places.goodForChildren
.goodForChildren،places.goodForGroups
.places.liveMusic
،places.goodForWatchingSports
places.parkingOptions
goodForWatchingSports.places.parkingOptions
,places.paymentOptions
,places.outdoorSeating
,places.reservable
,places.restroom
,places.reviews
,places.routingSummaries
, *places.servesBeer
places.servesDessert
places.servesBreakfast
,places.servesBrunch
,places.servesCocktails
,places.servesCoffee
. ,places.servesDinner
places.servesWine
places.servesLunch
,places.servesVegetarianFood
,places.takeout
* فقط جستجوی متن و جستجوی نزدیک
متن پرس و جو رشته متنی که در آن جستجو می شود، به عنوان مثال: "رستوران"، "خیابان اصلی 123"، یا "بهترین مکان برای بازدید در سانفرانسیسکو". API مطابق این رشته را برمی گرداند و نتایج را بر اساس ارتباط درک شده آنها مرتب می کند.
شامل نوع نتایج را به مکان هایی محدود می کند که با نوع مشخص شده توسط جدول A مطابقت دارند. فقط یک نوع ممکن است مشخص شود. به عنوان مثال:
-
"includedType":"bar"
-
"includedType":"pharmacy"
-
کد زبان زبانی که در آن نتایج را برگرداند.
- لیست زبان های پشتیبانی شده را ببینید. Google اغلب زبان های پشتیبانی شده را به روز می کند، بنابراین این فهرست ممکن است جامع نباشد.
- اگر
languageCode
ارائه نشده باشد، API پیشفرضen
را انتخاب میکند. اگر کد زبان نامعتبر را مشخص کنید، API یک خطایINVALID_ARGUMENT
برمیگرداند. - API تمام تلاش خود را می کند تا آدرس خیابانی را ارائه دهد که هم برای کاربر و هم برای افراد محلی قابل خواندن باشد. برای دستیابی به این هدف، آدرسهای خیابان را به زبان محلی برمیگرداند و به اسکریپتی که در صورت لزوم توسط کاربر قابل خواندن است، با رعایت زبان ترجیحی، ترجمه میشود. همه آدرس های دیگر به زبان ترجیحی برگردانده می شوند. اجزای آدرس همه به یک زبان بازگردانده می شوند که از جزء اول انتخاب شده است.
- اگر نامی در زبان ترجیحی موجود نباشد، API از نزدیکترین تطابق استفاده می کند.
- زبان ترجیحی تأثیر کمی بر مجموعه نتایجی که API برای برگرداندن آنها انتخاب میکند و ترتیب بازگرداندن آنها دارد. geocoder بسته به زبان، اختصارات را متفاوت تفسیر می کند، مانند اختصارات انواع خیابان، یا مترادف هایی که ممکن است در یک زبان معتبر باشند اما در زبان دیگر معتبر نیستند.
تعصب موقعیت منطقه ای را برای جستجو مشخص می کند. این مکان به عنوان یک سوگیری عمل می کند که به این معنی است که نتایج در اطراف مکان مشخص شده می توانند برگردانده شوند، از جمله نتایج خارج از منطقه مشخص شده.
شما می توانید
locationRestriction
یاlocationBias
را مشخص کنید، اما نه هر دو را.locationRestriction
را به عنوان مشخص کننده منطقه ای که نتایج باید در آن باشد، وlocationBias
به عنوان تعیین منطقه ای که نتایج باید نزدیک باشد اما می تواند خارج از منطقه باشد، در نظر بگیرید.منطقه را به صورت یک Viewport مستطیلی یا به صورت دایره مشخص کنید.
دایره با نقطه مرکزی و شعاع بر حسب متر تعریف می شود. شعاع باید بین 0.0 تا 50000.0 باشد. شعاع پیش فرض 0.0 است. به عنوان مثال:
"locationBias": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 500.0 } }
مستطیل یک نمای عرض-طول جغرافیایی است که به صورت دو نقطه پایین و بالا به صورت مورب در مقابل هم نمایش داده می شود. نقطه پایین گوشه جنوب غربی مستطیل را نشان می دهد و نقطه بالا نمایانگر گوشه شمال شرقی مستطیل است.
یک viewport یک منطقه بسته در نظر گرفته می شود، به این معنی که شامل مرز آن می شود. محدوده عرض جغرافیایی باید بین 90- تا 90 درجه باشد و محدوده طول جغرافیایی باید بین 180- تا 180 درجه باشد:
- اگر
low
=high
، نمای از همان نقطه واحد تشکیل شده است. - اگر
low.longitude
>high.longitude
, محدوده طول معکوس می شود (نمایش از خط طول جغرافیایی 180 درجه عبور می کند). - اگر
low.longitude
= -180 درجه وhigh.longitude
= 180 درجه باشد، درگاه دید شامل تمام طولهای جغرافیایی میشود. - اگر
low.longitude
= 180 درجه وhigh.longitude
= -180 درجه باشد، محدوده طول جغرافیایی خالی است. - اگر
low.latitude
>high.latitude
، محدوده عرض جغرافیایی خالی است.
هم کم و هم زیاد باید پر شوند و کادر نمایش داده شده نمی تواند خالی باشد. یک نمای خالی منجر به خطا می شود.
به عنوان مثال، این نما به طور کامل شهر نیویورک را در بر می گیرد:
"locationBias": { "rectangle": { "low": { "latitude": 40.477398, "longitude": -74.259087 }, "high": { "latitude": 40.91618, "longitude": -73.70018 } } }
- اگر
محدودیت مکان منطقه ای را برای جستجو مشخص می کند. نتایج خارج از منطقه مشخص شده برگردانده نمی شوند. منطقه را به عنوان یک Viewport مستطیلی مشخص کنید. برای اطلاعات در مورد تعریف Viewport به توضیحات
locationBias
مراجعه کنید.شما می توانید
locationRestriction
یاlocationBias
را مشخص کنید، اما نه هر دو را.locationRestriction
را به عنوان مشخص کننده منطقه ای که نتایج باید در آن باشد، وlocationBias
به عنوان تعیین منطقه ای که نتایج باید نزدیک باشد اما می تواند خارج از منطقه باشد، در نظر بگیرید.maxResultCount (منسوخ شده) تعداد نتایج (بین 1 تا 20) برای نمایش در هر صفحه را مشخص می کند. به عنوان مثال، با تنظیم مقدار
maxResultCount
5، حداکثر 5 نتیجه در صفحه اول باز می گردد. اگر نتایج بیشتری وجود داشته باشد که می توان از پرس و جو برگشت داد، پاسخ شاملnextPageToken
است که می توانید آن را به درخواست بعدی برای دسترسی به صفحه بعدی ارسال کنید.evOptions پارامترهایی را برای شناسایی کانکتورهای شارژ وسیله نقلیه الکتریکی (EV) موجود و نرخ شارژ مشخص میکند.
انواع اتصالات فیلترها بر اساس نوع کانکتور شارژ EV موجود در یک مکان. مکانی که از هیچ یک از انواع اتصالات پشتیبانی نمی کند، فیلتر می شود. انواع کانکتور شارژ EV پشتیبانی شده شامل شارژرهای ترکیبی (AC و DC)، شارژرهای تسلا، شارژرهای سازگار با GB/T (برای شارژ سریع EV در چین) و شارژرهای پریز دیواری است. برای اطلاعات بیشتر، به مستندات مرجع مراجعه کنید.
حداقل نرخ شارژ کیلووات مکان ها را بر اساس حداقل نرخ شارژ EV بر حسب کیلووات (کیلووات) فیلتر می کند. هر مکان با نرخ شارژ کمتر از حداقل نرخ شارژ فیلتر می شود. به عنوان مثال، برای پیدا کردن شارژرهای EV با نرخ شارژ حداقل 10 کیلو وات، می توانید این پارامتر را روی "10" تنظیم کنید.
امتیاز مین نتایج را فقط به کسانی محدود میکند که میانگین رتبهبندی کاربران آنها بیشتر یا مساوی این حد باشد. مقادیر باید بین 0.0 و 5.0 (شامل) با افزایش 0.5 باشد. به عنوان مثال: 0، 0.5، 1.0، ...، 5.0 شامل. مقادیر به نزدیکترین 0.5 گرد می شوند. به عنوان مثال، مقدار 0.6 تمام نتایج با رتبه بندی کمتر از 1.0 را حذف می کند.
openNow اگر
true
، فقط مکانهایی را برگردانید که در زمان ارسال درخواست برای کسب و کار باز هستند. اگرfalse
، همه مشاغل را بدون در نظر گرفتن وضعیت باز بازگردانید. مکانهایی که ساعات کار را در پایگاه داده Google Places مشخص نمیکنند، اگر این پارامتر را رویfalse
تنظیم کنید، بازگردانده میشوند.اندازه صفحه تعداد نتایج (بین 1 تا 20) برای نمایش در هر صفحه را مشخص می کند. به عنوان مثال، با تنظیم مقدار
pageSize
5، تا 5 نتیجه در صفحه اول باز می گردد. اگر نتایج بیشتری وجود داشته باشد که می توان از پرس و جو برگشت داد، پاسخ شاملnextPageToken
است که می توانید آن را به درخواست بعدی برای دسترسی به صفحه بعدی ارسال کنید.pageToken nextPageToken
را از بدنه پاسخ صفحه قبل مشخص می کند.سطوح قیمت جستجو را به مکانهایی که در سطوح قیمت مشخصی علامتگذاری شدهاند محدود کنید. پیش فرض این است که تمام سطوح قیمت را انتخاب کنید.
آرایه ای از یک یا چند مقدار تعریف شده توسط
PriceLevel
را مشخص کنید.به عنوان مثال:
"priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
رتبه اولویت چگونگی رتبه بندی نتایج در پاسخ را بر اساس نوع پرس و جو مشخص می کند:
- برای یک پرس و جو طبقه بندی مانند "رستوران ها در شهر نیویورک" ،
RELEVANCE
(نتایج رتبه بندی با توجه به جستجو) پیش فرض است. شما می توانیدrankPreference
برایRELEVANCE
یاDISTANCE
تنظیم کنید (نتایج رتبه بر اساس فاصله). - برای یک پرس و جو غیر گروهی مانند "Mountain View ، CA" ، توصیه می کنیم
rankPreference
Unet را ترک کنید.
- برای یک پرس و جو طبقه بندی مانند "رستوران ها در شهر نیویورک" ،
کد منطقه کد منطقه ای که برای قالب بندی پاسخ استفاده می شود ، به عنوان مقدار کد CLDR دو کاراکتر مشخص شده است. این پارامتر همچنین می تواند تأثیر تعصب در نتایج جستجو داشته باشد. هیچ مقدار پیش فرض وجود ندارد.
اگر نام کشور از قسمت
formattedAddress
در پاسخ باregionCode
مطابقت داشته باشد ، کد کشور ازformattedAddress
حذف شده است. این پارامتر هیچ تاثیری درadrFormatAddress
ندارد ، که همیشه در صورت وجود نام کشور را شامل می شود ، یا درshortFormattedAddress
، که هرگز آن را شامل نمی شود.بیشتر کدهای CLDR با کدهای ISO 3166-1 یکسان هستند و برخی از استثنائات قابل توجه دارند. برای مثال، ccTLD بریتانیا "uk" (.co.uk) است در حالی که کد ISO 3166-1 آن "gb" است (از لحاظ فنی برای نهاد "پادشاهی متحده بریتانیای کبیر و ایرلند شمالی"). این پارامتر می تواند بر اساس قانون قابل اجرا بر نتایج تأثیر بگذارد.
تازگی مورد استفاده با پارامتر
includedType
. هنگامی که رویtrue
تنظیم شده است ، فقط مکانهایی که با انواع مشخص شده مشخص شده توسطincludeType
مطابقت دارند ، بازگردانده می شوند. در صورت دروغ بودن ، پیش فرض ، پاسخ می تواند شامل مکانهایی باشد که با انواع مشخص شده مطابقت ندارند.
مثال زیر درخواست جستجوی متن برای "غذای گیاهی تند در سیدنی ، استرالیا" را نشان می دهد:
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'
توجه داشته باشید که عنوان X-Goog-FieldMask
مشخص می کند که پاسخ شامل قسمتهای داده زیر است: places.displayName,places.formattedAddress
. پاسخ پس از آن به شکل است:
{ "places": [ { "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "formattedAddress": "175 First Ave, Five Dock NSW 2046, Australia", "displayName": { "text": "Veggo Sizzle - Vegan & Vegetarian Restaurant, Five Dock, Sydney", "languageCode": "en" } }, { "formattedAddress": "29 King St, Sydney NSW 2000, Australia", "displayName": { "text": "Peace Harmony", "languageCode": "en" } }, ... ] }
برای بازگشت اطلاعات اضافی ، انواع داده های بیشتری را به ماسک فیلد اضافه کنید. به عنوان مثال ، places.types,places.websiteUri
برای درج کردن نوع رستوران و آدرس وب در پاسخ :
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,places.types,places.websiteUri' \ 'https://places.googleapis.com/v1/places:searchText'
پاسخ اکنون به شکل است:
{ "places": [ { "types": [ "vegetarian_restaurant", "vegan_restaurant", "chinese_restaurant", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "websiteUri": "http://www.motherchusvegetarian.com.au/", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "types": [ "vegan_restaurant", "thai_restaurant", "vegetarian_restaurant", "indian_restaurant", "italian_restaurant", "american_restaurant", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "175 First Ave, Five Dock NSW 2046, Australia", "websiteUri": "http://www.veggosizzle.com.au/", "displayName": { "text": "Veggo Sizzle - Vegan & Vegetarian Restaurant, Five Dock, Sydney", "languageCode": "en" } }, ... ] }
از گزینه priceLevel
برای فیلتر کردن نتایج به رستوران های تعریف شده به عنوان ارزان یا متوسط گران استفاده کنید:
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia", "priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"] }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \ 'https://places.googleapis.com/v1/places:searchText'
این مثال همچنین از هدر X-Goog-FieldMask
برای اضافه کردن places.priceLevel
استفاده می کند
{ "places": [ { "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "formattedAddress": "115 King St, Newtown NSW 2042, Australia", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Green Mushroom", "languageCode": "en" } }, ... ] }
گزینه های اضافی را برای اصلاح جستجوی خود اضافه کنید ، مانند includedType
، minRating
، rankPreference
، openNow
و سایر پارامترهای شرح داده شده در پارامترهای اختیاری .
برای محدود کردن جستجو در یک منطقه ، locationRestriction
یا locationBias
استفاده کنید ، اما نه هر دو. فکر کردن به locationRestriction
به عنوان مشخص کردن منطقه ای که باید نتایج در آن باشد ، فکر کنید و locationBias
به عنوان منطقه مشخص کنید که نتایج باید نزدیک باشد اما می تواند خارج از منطقه باشد.
مثال زیر درخواست جستجوی متن برای "غذای گیاهی تند" را نشان می دهد که در فاصله 500 متر از یک نقطه در مرکز شهر سانفرانسیسکو مغرضانه است. این درخواست فقط 10 نتیجه اول را برای مکانهایی که باز هستند برمی گرداند.
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food", "openNow": true, "pageSize": 10, "locationBias": { "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:searchText'
برای جستجوی مکانهایی با شارژرهای موجود که با EV شما سازگار هستند ، از minimumChargingRateKw
و connectorTypes
استفاده کنید.
مثال زیر درخواستی برای اتصالات شارژ Tesla و J1772 Type 1 EV با حداقل نرخ شارژ 10 کیلو وات در Mountain View ، CA را نشان می دهد. فقط چهار نتیجه بازگردانده می شود.
curl -X POST -d '{ "textQuery": "EV Charging Station Mountain View", "pageSize": 4, "evOptions": { "minimumChargingRateKw": 10, "connectorTypes": ["EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TESLA"] } }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H "X-Goog-FieldMask: places.displayName,places.evChargeOptions" \ 'https://places.googleapis.com/v1/places:searchText'
درخواست پاسخ زیر را برمی گرداند:
{ "places": [ { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 16, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_CHADEMO", "maxChargeRateKw": 100, "count": 8, "availableCount": 5, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 100, "count": 2, "availableCount": 2, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 350, "count": 6, "availableCount": 3, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" } ] } }, { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 6, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 100, "count": 4, "availableCount": 3, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 350, "count": 2, "availableCount": 0, "outOfServiceCount": 2, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" } ] } }, { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 5, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_J1772", "maxChargeRateKw": 3.5999999046325684, "count": 1, "availableCount": 0, "outOfServiceCount": 1, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CHADEMO", "maxChargeRateKw": 50, "count": 2, "availableCount": 0, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 50, "count": 2, "availableCount": 0, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" } ] } }, { "displayName": { "text": "Electric Vehicle Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 10, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_OTHER", "maxChargeRateKw": 210, "count": 10 } ] } } ] }
برای مشخص کردن تعدادی از نتایج برای بازگشت در هر صفحه از پارامتر pageSize
استفاده کنید. پارامتر nextPageToken
در بدنه پاسخ ، نشانه ای را فراهم می کند که می تواند در تماس های بعدی برای دسترسی به صفحه بعدی نتایج استفاده شود.
مثال زیر درخواستی برای "پیتزا در نیویورک" محدود به 5 نتیجه در هر صفحه را نشان می دهد:
curl -X POST -d '{ "textQuery": "pizza in New York", "pageSize": 5 }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H "X-Goog-FieldMask: places.id,nextPageToken" \ 'https://places.googleapis.com/v1/places:searchText'
{ "places": [ { "id": "ChIJifIePKtZwokRVZ-UdRGkZzs" }, { "id": "ChIJPxPd_P1YwokRfzLhSiACEoU" }, { "id": "ChIJrXXKn5NZwokR78g0ipCnY60" }, { "id": "ChIJ6ySICVZYwokR9rIK8HjXhzE" }, { "id": "ChIJ6xvs94VZwokRnT1D2lX2OTw" } ], "nextPageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q" }
برای دسترسی به صفحه بعدی نتایج ، pageToken
برای عبور در nextPageToken
در بدنه درخواست استفاده کنید:
curl -X POST -d '{ "textQuery": "pizza in New York", "pageSize": 5, "pageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H "X-Goog-FieldMask: places.id,nextPageToken" \ 'https://places.googleapis.com/v1/places:searchText'
{ "places": [ { "id": "ChIJL-LN1N1ZwokR8K2jACu6Ydw" }, { "id": "ChIJjaD94kFZwokR-20CXqlpy_4" }, { "id": "ChIJ6ffdpJNZwokRmcafdROM5q0" }, { "id": "ChIJ8Q2WSpJZwokRQz-bYYgEskM" }, { "id": "ChIJ8164qwFZwokRhplkmhvq1uE" } ], "nextPageToken": "AeCrKXvPd6uUy-oj96W2OaqEe2pUD8QTxOM8-sKfUcFsC9t2Wey5qivrKGoGSxcZnyc7RPmaFfAktslrKbUh31ZDTkL0upRmaxA7c_c" }
API Explorer به شما امکان می دهد درخواست های نمونه را تهیه کنید تا بتوانید با گزینه های API و API آشنا شوید.
نماد API را انتخاب کنید ، ، در سمت راست صفحه.
به صورت اختیاری پارامترهای استاندارد را نمایش داده و پارامتر
fields
را روی ماسک فیلد تنظیم کنید.به صورت اختیاری بدن درخواست را ویرایش کنید.
دکمه Execute را انتخاب کنید. در کادر گفتگوی پاپ آپ ، حسابی را که می خواهید استفاده کنید برای ایجاد درخواست انتخاب کنید.
در پانل API Explorer ، نماد Expand را انتخاب کنید ، ، برای گسترش پنجره API Explorer.
یک جستجوی متن (جدید) اطلاعات مربوط به مجموعه ای از مکان ها را بر اساس یک رشته باز می گرداند - به عنوان مثال "پیتزا در نیویورک" یا "فروشگاه های کفش در نزدیکی اتاوا" یا "خیابان 123 اصلی". این سرویس با لیستی از مکان هایی که مطابق با رشته متن و هر تعصب مکانی است که تنظیم شده است پاسخ می دهد.
این سرویس به ویژه برای ایجاد پرس و جوهای آدرس مبهم در یک سیستم خودکار مفید است و اجزای غیر آدرس این رشته ممکن است با مشاغل و همچنین آدرس مطابقت داشته باشد. نمونه هایی از نمایش داده شدگان آدرس مبهم آدرس ها یا درخواست هایی با فرمت ضعیف هستند که شامل مؤلفه های غیر آدرس مانند نام تجاری است. درخواست هایی مانند دو مثال اول در جدول زیر ممکن است نتایج صفر را بازگرداند مگر اینکه مکانی - مانند منطقه ، محدودیت مکان یا تعصب مکان - تنظیم شود.
"10 خیابان عالی ، انگلستان" یا "خیابان اصلی 123 ، ایالات متحده" | چندین "خیابان عالی" در انگلستان ؛ چندین "خیابان اصلی" در ایالات متحده. پرس و جو نتایج مطلوب را باز نمی گرداند مگر اینکه محدودیت مکان تعیین شود. |
"ChainRestaurant New York" | چندین مکان "ChainRestaurant" در نیویورک ؛ بدون آدرس خیابان یا حتی نام خیابان. |
"10 خیابان عالی ، Escher UK" یا "خیابان 123 اصلی ، Pleasanton Us" | فقط یک "خیابان عالی" در شهر انگلستان اسچر ؛ فقط یک "خیابان اصلی" در شهر ایالات متحده از Pleasanton CA. |
"UniquerestaurantName New York" | فقط یک موسسه با این نام در نیویورک ؛ هیچ آدرس خیابانی برای تمایز لازم نیست. |
"رستوران های پیتزا در نیویورک" | این پرس و جو حاوی محدودیت موقعیت مکانی آن است و "رستوران های پیتزا" یک نوع مکانی کاملاً تعریف شده است. این نتایج متعدد را برمی گرداند. |
"+1 514-670-8700" | این پرس و جو حاوی شماره تلفن است. این نتایج را برای مکان های مرتبط با آن شماره تلفن بازمی گرداند. |
API Explorer به شما امکان می دهد درخواست های زنده را ایجاد کنید تا بتوانید با API و گزینه های API آشنا شوید:
درخواست جستجوی متن یک درخواست پست HTTP از فرم زیر است:
https://places.googleapis.com/v1/places:searchText
به عنوان بخشی از درخواست پست ، تمام پارامترها را در بدنه درخواست JSON یا در هدرها منتقل کنید. به عنوان مثال:
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,places.priceLevel' \ 'https://places.googleapis.com/v1/places:searchText'
جستجوی متن (جدید) یک شیء JSON را به عنوان یک پاسخ برمی گرداند. در پاسخ:
- آرایه
places
شامل همه مکان های هماهنگ است. - هر مکان در آرایه توسط یک شیء
Place
نشان داده می شود. شیءPlace
حاوی اطلاعات دقیق در مورد یک مکان واحد است. - Fieldmask در درخواست لیست لیست قسمتهای برگشتی در شیء
Place
را مشخص می کند.
شیء کامل JSON به شکل است:
{ "places": [ { object (Place) } ] }
ماسک با ایجاد یک ماسک زمینه پاسخ ، لیست قسمتهایی را برای بازگشت در پاسخ مشخص کنید. ماسک میدان پاسخ را با استفاده از پارامتر URL
$fields
یاfields
یا با استفاده از HTTP HeaderX-Goog-FieldMask
به روش منتقل کنید. هیچ لیست پیش فرض از قسمتهای برگشتی در پاسخ وجود ندارد. اگر ماسک فیلد را حذف کنید ، این روش خطایی را برمی گرداند.نقاب سازی میدانی یک روش طراحی مناسب برای اطمینان از درخواست داده های غیر ضروری است ، که به جلوگیری از زمان پردازش غیر ضروری و هزینه های صورتحساب کمک می کند.
برای بازگشت ، لیستی از داده های جدا از کاما را مشخص کنید. به عنوان مثال ، برای بازیابی نام نمایش و آدرس مکان.
X-Goog-FieldMask: places.displayName,places.formattedAddress
برای بازیابی همه زمینه ها از
*
استفاده کنید.X-Goog-FieldMask: *
یک یا چند قسمت زیر را مشخص کنید:
زمینه های زیر باعث جستجوی متن (فقط شناسه) SKU می شوند:
places.attributions
هاplaces.id
places.name
nextPageToken
* قسمتplaces.name
شامل نام منبع مکان در فرم است:places/ PLACE_ID
. برای دسترسی به نام متن مکان از مکان ها استفاده کنید.places.displayName
زمینه های زیر باعث جستجوی متن (اساسی) SKU می شوند:
places.accessibilityOptions
places.iconBackgroundColor
places.addressComponents
places.formattedAddress
places.adrFormatAddress
places.businessStatus
places.googleMapsUri
places.displayName
places.iconMaskBaseUri
places.location
places.photos
places.plusCode
places.primaryType
places.subDestinations
places.primaryTypeDisplayName
places.shortFormattedAddress
places.types
places.utcOffsetMinutes
places.viewport
زمینه های زیر باعث جستجوی متن (پیشرفته) SKU می شوند:
places.currentOpeningHours
places.regularOpeningHours
places.priceLevel
places.nationalPhoneNumber
places.regularSecondaryOpeningHours
places.currentSecondaryOpeningHours
places.internationalPhoneNumber
places.rating
places.userRatingCount
places.websiteUri
زمینه های زیر باعث جستجوی متن (ترجیحی) SKU می شوند:
places.allowsDogs
،places.curbsidePickup
،places.delivery
Delivery ،places.dineIn
،places.editorialSummary
،places.evChargeOptions
places.fuelOptions
،places.goodForChildren
places.goodForGroups
places.goodForWatchingSports
places.liveMusic
،places.menuForChildren
places.parkingOptions
places.reviews
places.paymentOptions
places.routingSummaries
places.outdoorSeating
places.restroom
places.reservable
places.servesBeer
places.servesBreakfast
places.servesBrunch
places.servesCocktails
places.servesCoffee
places.servesDessert
places.servesVegetarianFood
places.servesDinner
places.servesLunch
places.servesWine
places.takeout
* جستجوی متن و فقط جستجوی مجاور
تنیس رشته متنی که در آن جستجو شود ، به عنوان مثال: "رستوران" ، "خیابان 123 اصلی" یا "بهترین مکان برای بازدید در سانفرانسیسکو". API مسابقات نامزد را بر اساس این رشته برمی گرداند و نتایج را بر اساس ارتباط درک شده آنها سفارش می دهد.
نوع نتایج را به مکانهایی که مطابق با نوع مشخص شده توسط جدول A است محدود می کند. فقط یک نوع ممکن است مشخص شود. به عنوان مثال:
-
"includedType":"bar"
-
"includedType":"pharmacy"
-
کدگذاری زبانی که در آن نتایج به دست آورد.
- لیست زبانهای پشتیبانی شده را مشاهده کنید. گوگل اغلب زبانهای پشتیبانی شده را به روز می کند ، بنابراین این لیست ممکن است جامع نباشد.
- اگر
languageCode
عرضه نشده باشد ، API به طور پیش فرض برایen
. اگر یک کد زبان نامعتبر را مشخص کنید ، API خطایINVALID_ARGUMENT
را برمی گرداند. - API تمام تلاش خود را می کند تا آدرس خیابانی را ارائه دهد که هم برای کاربر و هم برای افراد محلی قابل خواندن باشد. برای دستیابی به این هدف ، آدرس های خیابانی را به زبان محلی باز می گرداند ، که در صورت لزوم به یک اسکریپت قابل خواندن توسط کاربر ترجمه می شود و زبان ترجیحی را مشاهده می کند. تمام آدرس های دیگر به زبان ترجیحی بازگردانده می شوند. مؤلفه های آدرس همه به همان زبان بازگردانده می شوند که از مؤلفه اول انتخاب می شود.
- اگر یک نام به زبان ترجیحی در دسترس نباشد ، API از نزدیکترین مسابقه استفاده می کند.
- زبان ارجح تأثیر کمی در مجموعه نتایج که API برای بازگشت انتخاب می کند ، و نظمی که در آن بازگردانده می شود ، دارد. GeoCoder بسته به زبان ، مانند اختصارات برای انواع خیابان یا مترادف هایی که ممکن است در یک زبان معتبر باشد اما به زبان دیگری معتبر است ، اختصارات متفاوت را تفسیر می کند.
مکان یابی منطقه ای را برای جستجو مشخص می کند. این مکان به عنوان یک تعصب عمل می کند ، به این معنی که می توان نتایج اطراف مکان مشخص شده را بازگرداند ، از جمله نتایج خارج از منطقه مشخص شده.
شما می توانید
locationRestriction
یاlocationBias
را مشخص کنید ، اما هر دو نیست. فکر کردن بهlocationRestriction
به عنوان مشخص کردن منطقه ای که باید نتایج در آن باشد ، فکر کنید وlocationBias
به عنوان منطقه مشخص کنید که نتایج باید نزدیک باشد اما می تواند خارج از منطقه باشد.منطقه را به عنوان یک نمای مستطیل یا به عنوان یک دایره مشخص کنید.
یک دایره توسط نقطه مرکزی و شعاع در متر تعریف می شود. شعاع باید بین 0.0 تا 50000.0 باشد. شعاع پیش فرض 0.0 است. به عنوان مثال:
"locationBias": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 500.0 } }
مستطیل یک نمای عرض جغرافیایی است ، که به عنوان دو مورب مخالف نقاط کم و بالا نشان داده شده است. نقطه پایین گوشه جنوب غربی مستطیل را نشان می دهد و نقطه مرتفع نشان دهنده گوشه شمال شرقی مستطیل است.
یک منظره یک منطقه بسته در نظر گرفته می شود ، به این معنی که مرز آن را شامل می شود. مرزهای عرض جغرافیایی باید بین -90 تا 90 درجه فراگیر باشد ، و مرزهای طول جغرافیایی باید بین -180 تا 180 درجه فراگیر باشد:
- اگر
low
=high
، منظره از آن نقطه واحد تشکیل شده است. - اگر
low.longitude
>high.longitude
، دامنه طول جغرافیایی معکوس است (نمای Viewport از خط طول جغرافیایی 180 درجه عبور می کند). - اگر
low.longitude
= -180 درجه وhigh.longitude
= 180 درجه باشد ، Viewport شامل تمام طول ها است. - اگر
low.longitude
= 180 درجه وhigh.longitude
درجه = -180 درجه ، محدوده طول جغرافیایی خالی است. - اگر
low.latitude
>high.latitude
، محدوده عرض جغرافیایی خالی است.
هر دو کم و زیاد باید جمع شوند و جعبه نمایان نمی تواند خالی باشد. نمای خالی منجر به خطا می شود.
به عنوان مثال ، این منظره به طور کامل شهر نیویورک را محصور می کند:
"locationBias": { "rectangle": { "low": { "latitude": 40.477398, "longitude": -74.259087 }, "high": { "latitude": 40.91618, "longitude": -73.70018 } } }
- اگر
محل کار منطقه ای را برای جستجو مشخص می کند. نتایج خارج از منطقه مشخص شده بازگردانده نمی شود. منطقه را به عنوان یک نمای مستطیل شکل مشخص کنید. برای اطلاعات در مورد تعریف نمای ، به توضیحات
locationBias
مراجعه کنید.شما می توانید
locationRestriction
یاlocationBias
را مشخص کنید ، اما هر دو نیست. فکر کردن بهlocationRestriction
به عنوان مشخص کردن منطقه ای که باید نتایج در آن باشد ، فکر کنید وlocationBias
به عنوان منطقه مشخص کنید که نتایج باید نزدیک باشد اما می تواند خارج از منطقه باشد.MaxResultCount (مستهلک) تعداد نتایج (بین 1 تا 20) را برای نمایش در هر صفحه مشخص می کند. به عنوان مثال ، تنظیم مقدار
maxResultCount
از 5 در صفحه اول به 5 نتیجه باز می گردد. اگر نتایج بیشتری وجود داشته باشد که می تواند از پرس و جو برگردانده شود ، پاسخ شامل یکnextPageToken
است که می توانید برای دسترسی به صفحه بعدی به یک درخواست بعدی منتقل شوید.اگلها پارامترهای شناسایی اتصالات شارژ وسیله نقلیه برقی موجود (EV) و نرخ شارژ را مشخص می کند.
کانکتایپ فیلترها بر اساس نوع کانکتور شارژ EV در یک مکان موجود است. مکانی که از هیچ یک از انواع کانکتور پشتیبانی نمی کند ، فیلتر می شود. انواع اتصال دهنده شارژ EV پشتیبانی شده شامل شارژرهای ترکیبی (AC و DC) ، شارژرهای تسلا ، شارژرهای سازگار با GB/T (برای شارژ سریع EV در چین) و شارژرهای خروجی دیواری است. برای اطلاعات بیشتر ، به مستندات مرجع مراجعه کنید.
حداقل شارژریتک فیلترها با حداقل نرخ شارژ EV در کیلووات (کیلو وات). هر مکان با شارژ نرخ کمتر از حداقل نرخ شارژ فیلتر می شود. به عنوان مثال ، برای یافتن شارژرهای EV با نرخ شارژ حداقل 10 کیلو وات ، می توانید این پارامتر را روی "10" تنظیم کنید.
مینی نتایج را فقط به مواردی محدود می کند که میانگین آنها رتبه بندی کاربر بیشتر از یا مساوی با این حد است. مقادیر باید بین 0.0 تا 5.0 (فراگیر) در افزایش 0.5 باشد. به عنوان مثال: 0 ، 0.5 ، 1.0 ، ... ، 5.0 فراگیر. مقادیر تا نزدیکترین 0.5 گرد می شوند. به عنوان مثال ، مقدار 0.6 تمام نتایج را با رتبه کمتر از 1.0 از بین می برد.
در حال باز کردن اگر
true
، فقط مکانهایی را که در زمان ارسال پرس و جو برای تجارت باز هستند ، برگردانید. اگرfalse
، همه مشاغل را بدون توجه به وضعیت باز برگردانید. اگر این پارامتر را رویfalse
تنظیم کنید ، مکانهایی که ساعات کار را در پایگاه داده Google Places مشخص نمی کنند ، بازگردانده می شوند.در صفحات قرار دادن تعداد نتایج (بین 1 تا 20) را برای نمایش در هر صفحه مشخص می کند. به عنوان مثال ، تنظیم مقدار
pageSize
از 5 در صفحه اول به 5 نتیجه باز می گردد. اگر نتایج بیشتری وجود داشته باشد که می تواند از پرس و جو برگردانده شود ، پاسخ شامل یکnextPageToken
است که می توانید برای دسترسی به صفحه بعدی به یک درخواست بعدی منتقل شوید.صفحه ای nextPageToken
را از بدنه پاسخ صفحه قبلی مشخص می کند.پریسولز جستجو را به مکانهایی که در سطح خاصی از قیمت مشخص شده اند محدود کنید. پیش فرض انتخاب تمام سطح قیمت است.
مجموعه ای از یک یا چند مقادیر تعریف شده توسط
PriceLevel
را مشخص کنید.به عنوان مثال:
"priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
پیشران چگونگی رتبه بندی نتایج در پاسخ را بر اساس نوع پرس و جو مشخص می کند:
- برای یک پرس و جو طبقه بندی مانند "رستوران ها در شهر نیویورک" ،
RELEVANCE
(نتایج رتبه بندی با توجه به جستجو) پیش فرض است. شما می توانیدrankPreference
برایRELEVANCE
یاDISTANCE
تنظیم کنید (نتایج رتبه بر اساس فاصله). - برای یک پرس و جو غیر گروهی مانند "Mountain View ، CA" ، توصیه می کنیم
rankPreference
Unet را ترک کنید.
- برای یک پرس و جو طبقه بندی مانند "رستوران ها در شهر نیویورک" ،
کد منطقه کد منطقه ای که برای قالب بندی پاسخ استفاده می شود ، به عنوان مقدار کد CLDR دو کاراکتر مشخص شده است. این پارامتر همچنین می تواند تأثیر تعصب در نتایج جستجو داشته باشد. هیچ مقدار پیش فرض وجود ندارد.
اگر نام کشور از قسمت
formattedAddress
در پاسخ باregionCode
مطابقت داشته باشد ، کد کشور ازformattedAddress
حذف شده است. این پارامتر هیچ تاثیری درadrFormatAddress
ندارد ، که همیشه در صورت وجود نام کشور را شامل می شود ، یا درshortFormattedAddress
، که هرگز آن را شامل نمی شود.بیشتر کدهای CLDR با کدهای ISO 3166-1 یکسان هستند و برخی از استثنائات قابل توجه دارند. برای مثال، ccTLD بریتانیا "uk" (.co.uk) است در حالی که کد ISO 3166-1 آن "gb" است (از لحاظ فنی برای نهاد "پادشاهی متحده بریتانیای کبیر و ایرلند شمالی"). این پارامتر می تواند بر اساس قانون قابل اجرا بر نتایج تأثیر بگذارد.
تازگی مورد استفاده با پارامتر
includedType
. هنگامی که رویtrue
تنظیم شده است ، فقط مکانهایی که با انواع مشخص شده مشخص شده توسطincludeType
مطابقت دارند ، بازگردانده می شوند. در صورت دروغ بودن ، پیش فرض ، پاسخ می تواند شامل مکانهایی باشد که با انواع مشخص شده مطابقت ندارند.
مثال زیر درخواست جستجوی متن برای "غذای گیاهی تند در سیدنی ، استرالیا" را نشان می دهد:
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'
توجه داشته باشید که عنوان X-Goog-FieldMask
مشخص می کند که پاسخ شامل قسمتهای داده زیر است: places.displayName,places.formattedAddress
. پاسخ پس از آن به شکل است:
{ "places": [ { "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "formattedAddress": "175 First Ave, Five Dock NSW 2046, Australia", "displayName": { "text": "Veggo Sizzle - Vegan & Vegetarian Restaurant, Five Dock, Sydney", "languageCode": "en" } }, { "formattedAddress": "29 King St, Sydney NSW 2000, Australia", "displayName": { "text": "Peace Harmony", "languageCode": "en" } }, ... ] }
برای بازگشت اطلاعات اضافی ، انواع داده های بیشتری را به ماسک فیلد اضافه کنید. به عنوان مثال ، places.types,places.websiteUri
برای درج کردن نوع رستوران و آدرس وب در پاسخ :
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,places.types,places.websiteUri' \ 'https://places.googleapis.com/v1/places:searchText'
پاسخ اکنون به شکل است:
{ "places": [ { "types": [ "vegetarian_restaurant", "vegan_restaurant", "chinese_restaurant", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "websiteUri": "http://www.motherchusvegetarian.com.au/", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "types": [ "vegan_restaurant", "thai_restaurant", "vegetarian_restaurant", "indian_restaurant", "italian_restaurant", "american_restaurant", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "175 First Ave, Five Dock NSW 2046, Australia", "websiteUri": "http://www.veggosizzle.com.au/", "displayName": { "text": "Veggo Sizzle - Vegan & Vegetarian Restaurant, Five Dock, Sydney", "languageCode": "en" } }, ... ] }
از گزینه priceLevel
برای فیلتر کردن نتایج به رستوران های تعریف شده به عنوان ارزان یا متوسط گران استفاده کنید:
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia", "priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"] }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \ 'https://places.googleapis.com/v1/places:searchText'
این مثال همچنین از هدر X-Goog-FieldMask
برای اضافه کردن places.priceLevel
استفاده می کند
{ "places": [ { "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Mother Chu's Vegetarian Kitchen", "languageCode": "en" } }, { "formattedAddress": "115 King St, Newtown NSW 2042, Australia", "priceLevel": "PRICE_LEVEL_MODERATE", "displayName": { "text": "Green Mushroom", "languageCode": "en" } }, ... ] }
گزینه های اضافی را برای اصلاح جستجوی خود اضافه کنید ، مانند includedType
، minRating
، rankPreference
، openNow
و سایر پارامترهای شرح داده شده در پارامترهای اختیاری .
برای محدود کردن جستجو در یک منطقه ، locationRestriction
یا locationBias
استفاده کنید ، اما نه هر دو. فکر کردن به locationRestriction
به عنوان مشخص کردن منطقه ای که باید نتایج در آن باشد ، فکر کنید و locationBias
به عنوان منطقه مشخص کنید که نتایج باید نزدیک باشد اما می تواند خارج از منطقه باشد.
مثال زیر درخواست جستجوی متن برای "غذای گیاهی تند" را نشان می دهد که در فاصله 500 متر از یک نقطه در مرکز شهر سانفرانسیسکو مغرضانه است. این درخواست فقط 10 نتیجه اول را برای مکانهایی که باز هستند برمی گرداند.
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food", "openNow": true, "pageSize": 10, "locationBias": { "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:searchText'
برای جستجوی مکانهایی با شارژرهای موجود که با EV شما سازگار هستند ، از minimumChargingRateKw
و connectorTypes
استفاده کنید.
مثال زیر درخواستی برای اتصالات شارژ Tesla و J1772 Type 1 EV با حداقل نرخ شارژ 10 کیلو وات در Mountain View ، CA. فقط چهار نتیجه بازگردانده می شود.
curl -X POST -d '{ "textQuery": "EV Charging Station Mountain View", "pageSize": 4, "evOptions": { "minimumChargingRateKw": 10, "connectorTypes": ["EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TESLA"] } }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H "X-Goog-FieldMask: places.displayName,places.evChargeOptions" \ 'https://places.googleapis.com/v1/places:searchText'
درخواست پاسخ زیر را برمی گرداند:
{ "places": [ { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 16, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_CHADEMO", "maxChargeRateKw": 100, "count": 8, "availableCount": 5, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 100, "count": 2, "availableCount": 2, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 350, "count": 6, "availableCount": 3, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" } ] } }, { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 6, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 100, "count": 4, "availableCount": 3, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 350, "count": 2, "availableCount": 0, "outOfServiceCount": 2, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" } ] } }, { "displayName": { "text": "EVgo Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 5, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_J1772", "maxChargeRateKw": 3.5999999046325684, "count": 1, "availableCount": 0, "outOfServiceCount": 1, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CHADEMO", "maxChargeRateKw": 50, "count": 2, "availableCount": 0, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" }, { "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1", "maxChargeRateKw": 50, "count": 2, "availableCount": 0, "outOfServiceCount": 0, "availabilityLastUpdateTime": "2024-01-10T19:10:00Z" } ] } }, { "displayName": { "text": "Electric Vehicle Charging Station", "languageCode": "en" }, "evChargeOptions": { "connectorCount": 10, "connectorAggregation": [ { "type": "EV_CONNECTOR_TYPE_OTHER", "maxChargeRateKw": 210, "count": 10 } ] } } ] }
برای مشخص کردن تعدادی از نتایج برای بازگشت در هر صفحه از پارامتر pageSize
استفاده کنید. پارامتر nextPageToken
در بدنه پاسخ ، نشانه ای را فراهم می کند که می تواند در تماس های بعدی برای دسترسی به صفحه بعدی نتایج استفاده شود.
مثال زیر درخواستی برای "پیتزا در نیویورک" محدود به 5 نتیجه در هر صفحه را نشان می دهد:
curl -X POST -d '{ "textQuery": "pizza in New York", "pageSize": 5 }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H "X-Goog-FieldMask: places.id,nextPageToken" \ 'https://places.googleapis.com/v1/places:searchText'
{ "places": [ { "id": "ChIJifIePKtZwokRVZ-UdRGkZzs" }, { "id": "ChIJPxPd_P1YwokRfzLhSiACEoU" }, { "id": "ChIJrXXKn5NZwokR78g0ipCnY60" }, { "id": "ChIJ6ySICVZYwokR9rIK8HjXhzE" }, { "id": "ChIJ6xvs94VZwokRnT1D2lX2OTw" } ], "nextPageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q" }
برای دسترسی به صفحه بعدی نتایج ، pageToken
برای عبور در nextPageToken
در بدنه درخواست استفاده کنید:
curl -X POST -d '{ "textQuery": "pizza in New York", "pageSize": 5, "pageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H "X-Goog-FieldMask: places.id,nextPageToken" \ 'https://places.googleapis.com/v1/places:searchText'
{ "places": [ { "id": "ChIJL-LN1N1ZwokR8K2jACu6Ydw" }, { "id": "ChIJjaD94kFZwokR-20CXqlpy_4" }, { "id": "ChIJ6ffdpJNZwokRmcafdROM5q0" }, { "id": "ChIJ8Q2WSpJZwokRQz-bYYgEskM" }, { "id": "ChIJ8164qwFZwokRhplkmhvq1uE" } ], "nextPageToken": "AeCrKXvPd6uUy-oj96W2OaqEe2pUD8QTxOM8-sKfUcFsC9t2Wey5qivrKGoGSxcZnyc7RPmaFfAktslrKbUh31ZDTkL0upRmaxA7c_c" }
API Explorer به شما امکان می دهد درخواست های نمونه را تهیه کنید تا بتوانید با گزینه های API و API آشنا شوید.
نماد API را انتخاب کنید ، ، در سمت راست صفحه.
به صورت اختیاری پارامترهای استاندارد را نمایش داده و پارامتر
fields
را روی ماسک فیلد تنظیم کنید.به صورت اختیاری بدن درخواست را ویرایش کنید.
دکمه Execute را انتخاب کنید. در کادر گفتگوی پاپ آپ ، حسابی را که می خواهید استفاده کنید برای ایجاد درخواست انتخاب کنید.
در پانل API Explorer ، نماد Expand را انتخاب کنید ، ، برای گسترش پنجره API Explorer.