از Query Autocomplete (Legacy) میتوان برای ارائه پیشبینی پُرسمان برای جستجوهای جغرافیایی مبتنی بر نوشتار استفاده کرد. این کار با برگرداندن پُرسمانهای پیشنهادی درحین تایپ کردن شما انجام میشود.
درخواستهای «تکمیل خودکار پُرسمان» (قدیمی)
«تکمیل خودکار پُرسمان» (قدیمی) بخشی از Places API (قدیمی) است و کلید API و سهمیه را با Places API (قدیمی) همرسانی میکند.
«تکمیل خودکار پُرسمان» (قدیمی) به شما امکان میدهد پیشبینیهای پُرسمان جغرافیایی را بهطور همزمان به برنامهتان اضافه کنید. بهجای جستجوی یک مکان خاص، کاربر میتواند یک جستجوی دستهبندیشده مانند «پیتزا نزدیک نیویورک» را تایپ کند و سرویس با فهرستی از پرسمانهای پیشنهادی مطابق با رشته پاسخ میدهد. ازآنجاییکه Query Autocomplete (Legacy) میتواند هم با کلمات کامل و هم با رشتههای فرعی مطابقت داشته باشد، برنامهها میتوانند همزمان با تایپ کردن کاربر، پُرسمانها را ارسال کنند تا پیشبینیهای فوری ارائه دهند.
درخواست «تکمیل خودکار پُرسمان (قدیمی)» نشانی وب HTTP بهشکل زیر است:
https://maps.googleapis.com/maps/api/place/queryautocomplete/output?parameters
که output ممکن است json یا
xml باشد.
پارامترهای خاصی برای شروع درخواست «تکمیل خودکار پُرسمان» (قدیمی) لازم است.
همانطور که در نشانیهای وب استاندارد است، همه پارامترها بااستفاده از نویسه اَمپرسند
(&) از هم جدا میشوند. فهرست پارامترها و مقادیر احتمالی آنها در زیر شمارش شده است.
پارامترهای الزامی
ورودی
رشته نوشتاری که باید در آن جستجو شود. سرویس «تکمیل خودکار جا» مطابقتهای احتمالی را براساس این رشته برمیگرداند و نتایج را براساس ارتباط درکشده آنها مرتب میکند.
پارامترهای اختیاری
زبان
زبانی که نتایج به آن برگردانده میشود.
- فهرست زبانهای پشتیبانیشده را ببینید. Google اغلب زبانهای پشتیبانیشده را بهروز میکند، بنابراین این فهرست ممکن است جامع نباشد.
-
اگر
languageارائه نشده باشد، API تلاش میکند از زبان ترجیحی مشخصشده در سرصفحهAccept-Languageاستفاده کند. - این API تمام تلاش خود را میکند تا نشانی خیابانی ارائه دهد که هم برای کاربر و هم برای افراد محلی قابلخواندن باشد. برای دستیابی به این هدف، نشانیهای خیابان را به زبان محلی برمیگرداند و درصورت لزوم، با رعایت زبان ترجیحی، آنها را به نویسهای که برای کاربر خوانا باشد نویسهگردانی میکند. همه نشانیهای دیگر به زبان ترجیحی برگردانده میشوند. همه مؤلفههای نشانی به همان زبانی برگردانده میشوند که از مؤلفه اول انتخاب شده است.
- اگر نامی به زبان ترجیحی دردسترس نباشد، API از نزدیکترین مطابقت استفاده میکند.
- زبان ترجیحی تأثیر کمی بر مجموعه نتایجی دارد که میانای برنامهسازی کاربردی برای برگرداندن انتخاب میکند و ترتیبی که برگردانده میشوند. زمینکدیاب اختصارات را بسته به زبان بهطور متفاوتی تفسیر میکند، مانند اختصارات برای انواع خیابانها، یا مترادفهایی که ممکن است در یک زبان معتبر باشند اما در زبان دیگر معتبر نباشند. برای مثال، utca و tér در زبان مجاری مترادف خیابان هستند.
مکان
نقطهای را بهعنوان مختصات latitude,longitude تعریف میکند که جستجو در اطراف آن انجام میشود.
سرویس «مکانها» از مکان برای سوگیری جستجو استفاده میکند تا ترجیحاً نتایج را در منطقهای که با location و radius تعریف شده است نشان دهد؛ نتایج خارج از منطقه تعریفشده ممکن است همچنان نمایش داده شود.
query حاوی مکان صریحی مثل Market in Barcelona باشد، ممکن است پارامتر location لغو شود. استفاده از نقلقول در اطراف پُرسمان نیز ممکن است
بر وزنی که به location و
radius داده میشود تأثیر بگذارد.
جبران کردن
موقعیت آخرین نویسهای که سرویس برای مطابقت دادن پیشبینیها استفاده میکند در عبارت ورودی. برای مثال، اگر ورودی
Google و آفست ۳ باشد، سرویس با
Goo مطابقت خواهد داشت. رشته تعیینشده توسط آفست فقط با اولین کلمه در عبارت ورودی مطابقت داده میشود. برای مثال، اگر عبارت ورودی
Google abc و افست ۳ باشد، سرویس تلاش میکند
با Goo abc مطابقت دهد. اگر هیچ آفستی ارائه نشود، سرویس
از کل عبارت استفاده خواهد کرد. انحراف معمولاً باید روی موقعیت مکاننمای نوشتار تنظیم شود.
شعاع
فاصلهای (به متر) را تعریف میکند که نتایج مکان در آن برگردانده میشود. با ارسال پارامتر location و radius میتوانید نتایج را به دایره مشخصی متمایل کنید.
با این کار، به سرویس «مکانها» دستور داده میشود که ترجیحاً نتایج را در آن دایره نشان دهد؛
نتایج خارج از منطقه تعریفشده ممکن است همچنان نمایش داده شود.
شعاع بهطور خودکار به حداکثر مقدار بسته به نوع جستجو و پارامترهای دیگر محدود میشود.
- تکمیل خودکار: ۵۰٬۰۰۰ متر
-
جستجوی اطراف:
- با
keywordیاname: ۵۰٬۰۰۰ متر -
بدون
keywordیاname-
تا ۵۰٬۰۰۰ متر، بهطور پویا براساس تراکم منطقه تنظیم میشود،
مستقل از پارامتر
rankby. -
هنگام استفاده از
rankby=distance، پارامتر شعاع پذیرفته نخواهد شد و منجر بهINVALID_REQUESTمیشود.
-
تا ۵۰٬۰۰۰ متر، بهطور پویا براساس تراکم منطقه تنظیم میشود،
مستقل از پارامتر
- با
- تکمیل خودکار پُرسمان: ۵۰٬۰۰۰ متر
- جستجوی نوشتار: ۵۰٬۰۰۰ متر
نمونههای «تکمیل خودکار پُرسمان» (قدیمی)
نشانی وب
https://maps.googleapis.com/maps/api/place/queryautocomplete/json ?input=pizza%20near%20par &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=pizza%20near%20par&key=YOUR_API_KEY'درخواست «پیتزا نزدیک پار»، با نتایج به زبان فرانسوی:
نشانی وب
https://maps.googleapis.com/maps/api/place/queryautocomplete/json ?input=pizza%20near%20par &language=fr &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=pizza%20near%20par&language=fr&key=YOUR_API_KEY'توجه داشته باشید که باید کلید میانای API را در این مثالها با کلید خودتان جایگزین کنید.
پاسخ «تکمیل خودکار پُرسمان» (قدیمی)
پاسخهای «تکمیل خودکار پُرسمان» (قدیمی) در قالبی که با پرچم output در مسیر درخواست نشانی وب مشخص شده است برگردانده میشود. نتایج زیر برای پُرسمانی با پارامترهای زیر برگردانده شده است:
نشانی وب
https://maps.googleapis.com/maps/api/place/queryautocomplete/json ?input=pizza%20near%20par &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=pizza%20near%20par&key=YOUR_API_KEY'(قالب) JSON
{ "predictions": [ { "description": "pizza near Paris, France", "matched_substrings": [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 11 }], "structured_formatting": { "main_text": "pizza", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "near Paris, France", "secondary_text_matched_substrings": [{ "length": 3, "offset": 5 }], }, "terms": [ { "offset": 0, "value": "pizza" }, { "offset": 6, "value": "near" }, { "offset": 11, "value": "Paris" }, { "offset": 18, "value": "France" }, ], }, { "description": "pizza near Pari Chowk, NRI City, Omega II, Noida, Uttar Pradesh, India", "matched_substrings": [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 11 }], "structured_formatting": { "main_text": "pizza", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "near Pari Chowk, NRI City, Omega II, Noida, Uttar Pradesh, India", "secondary_text_matched_substrings": [{ "length": 3, "offset": 5 }], }, "terms": [ { "offset": 0, "value": "pizza" }, { "offset": 6, "value": "near" }, { "offset": 11, "value": "Pari Chowk" }, { "offset": 23, "value": "NRI City" }, { "offset": 33, "value": "Omega II" }, { "offset": 43, "value": "Noida" }, { "offset": 50, "value": "Uttar Pradesh" }, { "offset": 65, "value": "India" }, ], }, { "description": "pizza near Disneyland Park, Disneyland Drive, Anaheim, CA, USA", "matched_substrings": [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 22 }], "structured_formatting": { "main_text": "pizza", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "near Disneyland Park, Disneyland Drive, Anaheim, CA, USA", "secondary_text_matched_substrings": [{ "length": 3, "offset": 16 }], }, "terms": [ { "offset": 0, "value": "pizza" }, { "offset": 6, "value": "near" }, { "offset": 11, "value": "Disneyland Park" }, { "offset": 28, "value": "Disneyland Drive" }, { "offset": 46, "value": "Anaheim" }, { "offset": 55, "value": "CA" }, { "offset": 59, "value": "USA" }, ], }, { "description": "pizza near Cathédrale Notre-Dame de Paris, Parvis Notre-Dame - place Jean-Paul-II, Paris, France", "matched_substrings": [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 36 }], "structured_formatting": { "main_text": "pizza", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "near Cathédrale Notre-Dame de Paris, Parvis Notre-Dame - place Jean-Paul-II, Paris, France", "secondary_text_matched_substrings": [{ "length": 3, "offset": 30 }], }, "terms": [ { "offset": 0, "value": "pizza" }, { "offset": 6, "value": "near" }, { "offset": 11, "value": "Cathédrale Notre-Dame de Paris" }, { "offset": 43, "value": "Parvis Notre-Dame - place Jean-Paul-II" }, { "offset": 83, "value": "Paris" }, { "offset": 90, "value": "France" }, ], }, { "description": "pizza near Paris Beauvais Airport, Route de l'Aéroport, Tillé, France", "matched_substrings": [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 11 }], "structured_formatting": { "main_text": "pizza", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "near Paris Beauvais Airport, Route de l'Aéroport, Tillé, France", "secondary_text_matched_substrings": [{ "length": 3, "offset": 5 }], }, "terms": [ { "offset": 0, "value": "pizza" }, { "offset": 6, "value": "near" }, { "offset": 11, "value": "Paris Beauvais Airport" }, { "offset": 35, "value": "Route de l'Aéroport" }, { "offset": 56, "value": "Tillé" }, { "offset": 63, "value": "France" }, ], }, ], "status": "OK", }
XML
<AutocompletionResponse> <status>OK</status> <prediction> <description>pizza near Paris, France</description> <term> <value>pizza</value> <offset>0</offset> </term> <term> <value>near</value> <offset>6</offset> </term> <term> <value>Paris</value> <offset>11</offset> </term> <term> <value>France</value> <offset>18</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <matched_substring> <offset>11</offset> <length>3</length> </matched_substring> <structured_formatting> <description>pizza</description> <subdescription>near Paris, France</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> <subdescription_matched_substring> <offset>5</offset> <length>3</length> </subdescription_matched_substring> </structured_formatting> </prediction> <prediction> <description>pizza near Pari Chowk, NRI City, Omega II, Noida, Uttar Pradesh, India</description> <term> <value>pizza</value> <offset>0</offset> </term> <term> <value>near</value> <offset>6</offset> </term> <term> <value>Pari Chowk</value> <offset>11</offset> </term> <term> <value>NRI City</value> <offset>23</offset> </term> <term> <value>Omega II</value> <offset>33</offset> </term> <term> <value>Noida</value> <offset>43</offset> </term> <term> <value>Uttar Pradesh</value> <offset>50</offset> </term> <term> <value>India</value> <offset>65</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <matched_substring> <offset>11</offset> <length>3</length> </matched_substring> <structured_formatting> <description>pizza</description> <subdescription>near Pari Chowk, NRI City, Omega II, Noida, Uttar Pradesh, India</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> <subdescription_matched_substring> <offset>5</offset> <length>3</length> </subdescription_matched_substring> </structured_formatting> </prediction> <prediction> <description>pizza near Disneyland Park, Disneyland Drive, Anaheim, CA, USA</description> <term> <value>pizza</value> <offset>0</offset> </term> <term> <value>near</value> <offset>6</offset> </term> <term> <value>Disneyland Park</value> <offset>11</offset> </term> <term> <value>Disneyland Drive</value> <offset>28</offset> </term> <term> <value>Anaheim</value> <offset>46</offset> </term> <term> <value>CA</value> <offset>55</offset> </term> <term> <value>USA</value> <offset>59</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <matched_substring> <offset>22</offset> <length>3</length> </matched_substring> <structured_formatting> <description>pizza</description> <subdescription>near Disneyland Park, Disneyland Drive, Anaheim, CA, USA</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> <subdescription_matched_substring> <offset>16</offset> <length>3</length> </subdescription_matched_substring> </structured_formatting> </prediction> <prediction> <description>pizza near Cathédrale Notre-Dame de Paris, Parvis Notre-Dame - place Jean-Paul-II, Paris, France</description> <term> <value>pizza</value> <offset>0</offset> </term> <term> <value>near</value> <offset>6</offset> </term> <term> <value>Cathédrale Notre-Dame de Paris</value> <offset>11</offset> </term> <term> <value>Parvis Notre-Dame - place Jean-Paul-II</value> <offset>43</offset> </term> <term> <value>Paris</value> <offset>83</offset> </term> <term> <value>France</value> <offset>90</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <matched_substring> <offset>36</offset> <length>3</length> </matched_substring> <structured_formatting> <description>pizza</description> <subdescription>near Cathédrale Notre-Dame de Paris, Parvis Notre-Dame - place Jean-Paul-II, Paris, France</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> <subdescription_matched_substring> <offset>30</offset> <length>3</length> </subdescription_matched_substring> </structured_formatting> </prediction> <prediction> <description>pizza near Paris Beauvais Airport, Route de l'Aéroport, Tillé, France</description> <term> <value>pizza</value> <offset>0</offset> </term> <term> <value>near</value> <offset>6</offset> </term> <term> <value>Paris Beauvais Airport</value> <offset>11</offset> </term> <term> <value>Route de l'Aéroport</value> <offset>35</offset> </term> <term> <value>Tillé</value> <offset>56</offset> </term> <term> <value>France</value> <offset>63</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <matched_substring> <offset>11</offset> <length>3</length> </matched_substring> <structured_formatting> <description>pizza</description> <subdescription>near Paris Beauvais Airport, Route de l'Aéroport, Tillé, France</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> <subdescription_matched_substring> <offset>5</offset> <length>3</length> </subdescription_matched_substring> </structured_formatting> </prediction> </AutocompletionResponse>
When the Places service returns JSON results from a search, it places them
within a predictions array. حتی اگر سرویس هیچ نتیجهای برنگرداند (مثلاً اگر location از راه دور باشد)، همچنان یک آرایه predictions خالی برمیگرداند. پاسخهای XML شامل
صفر یا چند عنصر <prediction> است.
PlacesQueryAutocompleteResponse
| فیلد | الزامی | نوع | شرح |
|---|---|---|---|
|
الزامی | Array<PlaceAutocompletePrediction> |
حاوی آرایهای از پیشبینیها است. برای اطلاعات بیشتر، PlaceAutocompletePrediction را ببینید. |
|
الزامی | PlacesAutocompleteStatus |
حاوی وضعیت درخواست است و ممکن است حاوی اطلاعات اشکالزدایی باشد تا به شما کمک کند دلیل ناموفق بودن درخواست را پیدا کنید. برای اطلاعات بیشتر، PlacesAutocompleteStatus را ببینید. |
|
اختیاری | رشته |
وقتی سرویس کد وضعیتی غیراز |
|
اختیاری | Array<string> |
وقتی سرویس اطلاعات بیشتری درباره مشخصات درخواست برمیگرداند، ممکن است فیلد |
PlacesAutocompleteStatus
رمزهای وضعیت برگرداندهشده توسط سرویس.
OKکه نشان میدهد درخواست API موفقیتآمیز بوده است.-
ZERO_RESULTSنشان میدهد که جستجو موفقیتآمیز بوده است اما نتیجهای برنگردانده است. این خطا ممکن است زمانی رخ دهد که جستجو به مرزهای یک مکان دورافتاده منتقل شده باشد. -
INVALID_REQUESTنشان میدهد که درخواست میانای برنامهسازی کاربردی بدشکل بوده است، معمولاً بهدلیل نبود پارامترinput. -
OVER_QUERY_LIMITکه نشاندهنده هریک از موارد زیر باشد:- از حد مجاز «پرسوجو در ثانیه» فراتر رفتهاید.
- صدور صورتحساب در حسابتان فعال نشده است.
- از اعتبار ماهانه ۲۰۰ دلاری یا سقف استفاده خودتحمیلی فراتر رفتهاید.
- روش پرداخت ارائهشده دیگر معتبر نیست (برای مثال، کارت اعتباری منقضی شده است).
-
REQUEST_DENIEDکه نشان میدهد درخواستتان رد شده است، معمولاً بهدلیل:- درخواست فاقد کلید میانای برنامهسازی کاربردی است.
- پارامتر
keyنامعتبر است.
UNKNOWN_ERRORکه نشاندهنده خطای ناشناخته است.
وقتی سرویس Places نتایج JSON را از جستجو برمیگرداند، آنها را در آرایه predictions قرار میدهد. حتی اگر سرویس هیچ نتیجهای برنگرداند (مثلاً اگر location از راه دور باشد)، همچنان یک آرایه predictions خالی برمیگرداند. پاسخهای XML شامل
صفر یا چند عنصر <prediction> است.
PlaceAutocompletePrediction
| فیلد | الزامی | نوع | شرح |
|---|---|---|---|
|
الزامی | رشته |
حاوی نام قابلخواندن برای انسان برای نتیجه برگرداندهشده است. برای
نتایج |
|
الزامی | Array<PlaceAutocompleteMatchedSubstring> |
فهرستی از رشتههای فرعی که مکان عبارت واردشده را در نوشتار نتیجه پیشبینی شرح میدهد تا درصورت تمایل بتوان عبارت را برجسته کرد. برای اطلاعات بیشتر، به PlaceAutocompleteMatchedSubstring مراجعه کنید. |
|
الزامی | PlaceAutocompleteStructuredFormat |
نوشتار ازپیش قالببندیشدهای ارائه میدهد که میتواند در نتایج تکمیل خودکار نشان داده شود. این محتوا باید همانطور که هست خوانده شود. نشانی قالببندیشده را بهصورت برنامهنویسی تجزیه نکنید. برای اطلاعات بیشتر، PlaceAutocompleteStructuredFormat را ببینید. |
|
الزامی | Array<PlaceAutocompleteTerm> |
حاوی آرایهای از عبارات است که هر بخش از شرح برگرداندهشده را شناسایی میکند (یک بخش از شرح معمولاً با ویرگول خاتمه مییابد). هر ورودی در آرایه دارای یک فیلد برای اطلاعات بیشتر، به PlaceAutocompleteTerm مراجعه کنید. |
|
اختیاری | عدد صحیح |
فاصله مستقیم از مبدأ به متر. این فیلد
فقط برای درخواستهای انجامشده با |
|
اختیاری | رشته |
شناسه متنی که مکان را بهطور منحصربهفردی شناسایی میکند. برای بازیابی اطلاعات مربوط به مکان، این شناسه را در فیلد placeId درخواست Places API ارسال کنید. برای اطلاعات بیشتر درباره شناسههای مکان، نمای کلی شناسههای مکان را ببینید. |
|
اختیاری | رشته |
place_id را ببینید. |
|
اختیاری | Array<string> |
شامل آرایهای از انواع است که برای این مکان اعمال میشود. برای مثال:
|
PlaceAutocompleteMatchedSubstring
| فیلد | الزامی | نوع | شرح |
|---|---|---|---|
|
الزامی | شماره |
طول زیررشته منطبق در نوشتار نتیجه پیشبینی. |
|
الزامی | شماره |
مکان شروع زیررشته منطبق در نوشتار نتیجه پیشبینی. |
PlaceAutocompleteStructuredFormat
| فیلد | الزامی | نوع | شرح |
|---|---|---|---|
|
الزامی | رشته |
حاوی متن اصلی پیشبینی است، معمولاً نام مکان. |
|
الزامی | Array<PlaceAutocompleteMatchedSubstring> |
حاوی آرایهای با مقدار برای اطلاعات بیشتر، به PlaceAutocompleteMatchedSubstring مراجعه کنید. |
|
اختیاری | رشته |
حاوی نوشتار ثانویه پیشبینی است، معمولاً مکان محل. |
|
اختیاری | Array<PlaceAutocompleteMatchedSubstring> |
حاوی آرایهای با مقدار برای اطلاعات بیشتر، به PlaceAutocompleteMatchedSubstring مراجعه کنید. |
PlaceAutocompleteTerm
| فیلد | الزامی | نوع | شرح |
|---|---|---|---|
|
الزامی | شماره |
موقعیت شروع این عبارت را در شرح تعریف میکند، که با نویسههای یونیکد اندازهگیری میشود |
|
الزامی | رشته |
نوشتار اصطلاح. |