تکمیل خودکار جستجو (Legacy) میتواند برای ارائه پیشبینی جستجو برای جستجوهای جغرافیایی مبتنی بر متن، با بازگرداندن جستجوهای پیشنهادی هنگام تایپ، مورد استفاده قرار گیرد.
درخواستهای تکمیل خودکار (قدیمی) را جستجو کنید
تکمیل خودکار پرسوجو (Legacy) بخشی از Places API (Legacy) است و یک کلید API و سهمیه را با Places API (Legacy) به اشتراک میگذارد.
تکمیل خودکار پرسوجو (Legacy) به شما امکان میدهد پیشبینیهای پرسوجوی جغرافیایی را در لحظه به برنامه خود اضافه کنید. به جای جستجوی یک مکان خاص، کاربر میتواند یک جستجوی دستهبندیشده مانند «پیتزا نزدیک نیویورک» را تایپ کند و سرویس با فهرستی از پرسوجوهای پیشنهادی مطابق با رشته پاسخ میدهد. از آنجایی که تکمیل خودکار پرسوجو (Legacy) میتواند هم کلمات کامل و هم زیررشتهها را مطابقت دهد، برنامهها میتوانند پرسوجوها را همزمان با تایپ کاربر ارسال کنند تا پیشبینیهای در لحظه ارائه دهند.
یک درخواست تکمیل خودکار پرسوجو (قدیمی) یک URL HTTP به شکل زیر است:
https://maps.googleapis.com/maps/api/place/queryautocomplete/output?parameters
که در آن output میتواند json یا xml باشد.
پارامترهای خاصی برای شروع یک درخواست تکمیل خودکار پرس و جو (Legacy) مورد نیاز است. همانطور که در URL ها استاندارد است، همه پارامترها با استفاده از کاراکتر آمپرسند ( & ) از هم جدا می شوند. لیست پارامترها و مقادیر ممکن آنها در زیر ذکر شده است.
پارامترهای مورد نیاز
ورودی
رشته متنی که باید جستجو روی آن انجام شود. سرویس تکمیل خودکار مکان، تطابقهای کاندیدا را بر اساس این رشته برمیگرداند و نتایج را بر اساس ارتباط درک شده آنها مرتب میکند.
پارامترهای اختیاری
زبان
زبانی که نتایج با آن برگردانده میشوند.
- فهرست زبانهای پشتیبانیشده را ببینید. گوگل اغلب زبانهای پشتیبانیشده را بهروزرسانی میکند، بنابراین این فهرست ممکن است جامع نباشد.
- اگر
languageارائه نشود، API تلاش میکند از زبان ترجیحی مشخص شده در سربرگAccept-Languageاستفاده کند. - این API تمام تلاش خود را میکند تا آدرسی را ارائه دهد که هم برای کاربر و هم برای افراد محلی قابل خواندن باشد. برای دستیابی به این هدف، آدرسهای خیابان را به زبان محلی برمیگرداند و در صورت لزوم با رعایت زبان ترجیحی، آنها را به اسکریپتی که توسط کاربر قابل خواندن باشد، تبدیل میکند. تمام آدرسهای دیگر به زبان ترجیحی برگردانده میشوند. اجزای آدرس همگی به همان زبانی برگردانده میشوند که از اولین جزء انتخاب شده است.
- اگر نامی در زبان مورد نظر موجود نباشد، API از نزدیکترین مورد منطبق استفاده میکند.
- زبان ترجیحی تأثیر کمی بر مجموعه نتایجی که API برای برگرداندن انتخاب میکند و ترتیب برگرداندن آنها دارد. کدگذار جغرافیایی بسته به زبان، اختصارات را به طور متفاوتی تفسیر میکند، مانند اختصارات مربوط به انواع خیابان، یا مترادفهایی که ممکن است در یک زبان معتبر باشند اما در زبان دیگر معتبر نباشند. به عنوان مثال، utca و tér مترادف خیابان در زبان مجارستانی هستند.
مکان
نقطهای را به عنوان مختصات
latitude,longitudeتعریف میکند که جستجو حول آن انجام میشود. سرویس Places از موقعیت مکانی برای جهتدهی جستجو استفاده میکند تا نتایج را در ناحیه تعریفشده توسطlocationوradiusنمایش دهد؛ نتایج خارج از ناحیه تعریفشده همچنان ممکن است نمایش داده شوند.اگرqueryشامل یک مکان صریح مانندMarket in Barcelonaباشد، پارامترlocationممکن است نادیده گرفته شود. استفاده از علامت نقل قول در اطراف پرسوجو نیز ممکن است بر وزن داده شده بهlocationوradiusتأثیر بگذارد.جبران
موقعیت آخرین کاراکتری که سرویس برای تطبیق پیشبینیها در عبارت ورودی استفاده میکند. برای مثال، اگر ورودی
Googleباشد و انحراف ۳ باشد، سرویس درGooتطبیق انجام میدهد. رشتهای که توسط انحراف تعیین میشود، فقط با اولین کلمه در عبارت ورودی تطبیق داده میشود. برای مثال، اگر عبارت ورودیGoogle abcباشد و انحراف ۳ باشد، سرویس سعی میکند باGoo abcتطبیق انجام دهد. اگر هیچ انحرافی ارائه نشود، سرویس از کل عبارت استفاده میکند. انحراف معمولاً باید روی موقعیت نشانگر متن تنظیم شود.شعاع
فاصلهای (برحسب متر) را که نتایج مکان در آن برگردانده میشود، تعریف میکند. میتوانید با ارسال پارامتر
locationوradius، نتایج را به یک دایره مشخص شده متمایل کنید. انجام این کار به سرویس Places دستور میدهد که ترجیح دهد نتایج را در آن دایره نشان دهد؛ نتایج خارج از ناحیه تعریف شده همچنان ممکن است نمایش داده شوند.شعاع به طور خودکار بسته به نوع جستجو و سایر پارامترها، به حداکثر مقدار محدود میشود.
- تکمیل خودکار: ۵۰،۰۰۰ متر
- جستجوی نزدیک:
- با
keywordیاname: ۵۰،۰۰۰ متر - بدون
keywordیاname- تا ۵۰۰۰۰ متر، به صورت پویا بر اساس تراکم منطقه، مستقل از پارامتر
rankby، تنظیم میشود. - هنگام استفاده از
rankby=distance، پارامتر radius پذیرفته نمیشود و منجر به خطایINVALID_REQUESTمیشود.
- تا ۵۰۰۰۰ متر، به صورت پویا بر اساس تراکم منطقه، مستقل از پارامتر
- با
- تکمیل خودکار پرس و جو: ۵۰،۰۰۰ متر
- جستجوی متن: ۵۰،۰۰۰ متر
مثالهای تکمیل خودکار پرسوجو (قدیمی)
آدرس اینترنتی
https://maps.googleapis.com/maps/api/place/queryautocomplete/json ?input=pizza%20near%20par &key=YOUR_API_KEY
حلقه زدن
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 -L -X GET 'https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=pizza%20near%20par&language=fr&key=YOUR_API_KEY'توجه داشته باشید که باید کلید API را در این مثالها با کلید خودتان جایگزین کنید.
پاسخ تکمیل خودکار پرس و جو (قدیمی)
پاسخهای تکمیل خودکار پرسوجو (قدیمی) در قالبی که توسط پرچم output در مسیر درخواست URL نشان داده شده است، بازگردانده میشوند. نتایج زیر برای پرسوجویی با پارامترهای زیر بازگردانده میشوند:
آدرس اینترنتی
https://maps.googleapis.com/maps/api/place/queryautocomplete/json ?input=pizza%20near%20par &key=YOUR_API_KEY
حلقه زدن
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=pizza%20near%20par&key=YOUR_API_KEY'جیسون
{ "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>
وقتی سرویس Places نتایج JSON را از یک جستجو برمیگرداند، آنها را در یک آرایه predictions قرار میدهد. حتی اگر سرویس هیچ نتیجهای برنگرداند (مثلاً اگر location دور باشد)، باز هم یک آرایه predictions خالی برمیگرداند. پاسخهای XML شامل صفر یا چند عنصر <prediction> هستند.
جستجوی مکانهاپاسخ تکمیل خودکار
| میدان | مورد نیاز | نوع | توضیحات |
|---|---|---|---|
| مورد نیاز | آرایه < پیشبینی خودکار مکان > | شامل مجموعهای از پیشبینیها است. برای اطلاعات بیشتر به PlaceAutocompletePrediction مراجعه کنید. |
| مورد نیاز | مکانهاتکمیل خودکاروضعیت | شامل وضعیت درخواست است و ممکن است حاوی اطلاعات اشکالزدایی باشد تا به شما در پیگیری دلیل عدم موفقیت درخواست کمک کند. برای اطلاعات بیشتر به PlacesAutocompleteStatus مراجعه کنید. |
| اختیاری | رشته | وقتی سرویس کد وضعیتی غیر از |
| اختیاری | آرایه | وقتی سرویس اطلاعات اضافی در مورد مشخصات درخواست را برمیگرداند، ممکن است یک فیلد |
مکانهاتکمیل خودکاروضعیت
کدهای وضعیتی که توسط سرویس برگردانده میشوند.
-
OKنشان میدهد که درخواست API با موفقیت انجام شده است. -
ZERO_RESULTSنشان میدهد که جستجو موفقیتآمیز بوده اما هیچ نتیجهای برنگردانده است. این ممکن است در صورتی رخ دهد که جستجو در یک مکان دور از دسترس از مرز مجاز عبور کرده باشد. -
INVALID_REQUESTنشان میدهد که درخواست API ناقص بوده است، که عموماً به دلیل پارامترinputاز دست رفته است. -
OVER_QUERY_LIMITکه نشاندهندهی هر یک از موارد زیر است:- شما از محدودیتهای QPS فراتر رفتهاید.
- پرداخت در حساب شما فعال نشده است.
- اعتبار ماهانه ۲۰۰ دلاری یا سقف استفادهای که خودتان تعیین کردهاید، تمام شده است.
- روش پرداخت ارائه شده دیگر معتبر نیست (برای مثال، اعتبار کارت اعتباری منقضی شده است).
-
REQUEST_DENIEDنشان میدهد که درخواست شما رد شده است، عموماً به دلایل زیر:- درخواست فاقد کلید API است.
- پارامتر
keyنامعتبر است.
-
UNKNOWN_ERRORکه نشاندهندهی خطای ناشناخته است.
وقتی سرویس Places نتایج JSON را از یک جستجو برمیگرداند، آنها را در یک آرایه predictions قرار میدهد. حتی اگر سرویس هیچ نتیجهای برنگرداند (مثلاً اگر location دور باشد)، باز هم یک آرایه predictions خالی برمیگرداند. پاسخهای XML شامل صفر یا چند عنصر <prediction> هستند.
پیشبینی تکمیل خودکار مکان
| میدان | مورد نیاز | نوع | توضیحات |
|---|---|---|---|
| مورد نیاز | رشته | شامل نام قابل خواندن توسط انسان برای نتیجهی برگردانده شده است. برای نتایج |
| مورد نیاز | آرایه < PlaceAutocompleteMatchedSubstring > | فهرستی از زیررشتههایی که محل عبارت وارد شده را در متن نتیجه پیشبینی توصیف میکنند، به طوری که در صورت تمایل بتوان عبارت را برجسته کرد. برای اطلاعات بیشتر به PlaceAutocompleteMatchedSubstring مراجعه کنید. |
| مورد نیاز | PlaceAutocompleteStructuredFormat | متن از پیش قالببندیشدهای را ارائه میدهد که میتواند در نتایج تکمیل خودکار شما نمایش داده شود. این محتوا باید به همان شکلی که هست خوانده شود. آدرس قالببندیشده را به صورت برنامهنویسی تجزیه نکنید. برای اطلاعات بیشتر به PlaceAutocompleteStructuredFormat مراجعه کنید. |
| مورد نیاز | آرایه < PlaceAutocompleteTerm > | شامل آرایهای از اصطلاحات است که هر بخش از توضیحات برگردانده شده را مشخص میکند (یک بخش از توضیحات معمولاً با کاما خاتمه مییابد). هر ورودی در آرایه دارای یک فیلد برای اطلاعات بیشتر به PlaceAutocompleteTerm مراجعه کنید. |
| اختیاری | عدد صحیح | فاصله مستقیم از مبدا بر حسب متر. این فیلد فقط برای درخواستهایی که با |
| اختیاری | رشته | یک شناسه متنی که به طور منحصر به فرد یک مکان را مشخص میکند. برای بازیابی اطلاعات در مورد مکان، این شناسه را در فیلد placeId از یک درخواست Places API ارسال کنید. برای اطلاعات بیشتر در مورد شناسههای مکان، به نمای کلی شناسههای مکان مراجعه کنید. |
| اختیاری | رشته | به place_id مراجعه کنید. |
| اختیاری | آرایه | شامل آرایهای از انواع است که به این مکان اعمال میشوند. برای مثال: |
PlaceAutocompleteMatchedSubstring
| میدان | مورد نیاز | نوع | توضیحات |
|---|---|---|---|
| مورد نیاز | شماره | طول زیررشتهی منطبق در متن نتیجهی پیشبینی. |
| مورد نیاز | شماره | محل شروع زیررشتهی منطبق در متن نتیجهی پیشبینی. |
PlaceAutocompleteStructuredFormat
| میدان | مورد نیاز | نوع | توضیحات |
|---|---|---|---|
| مورد نیاز | رشته | شامل متن اصلی پیشبینی، معمولاً نام مکان، است. |
| مورد نیاز | آرایه < PlaceAutocompleteMatchedSubstring > | شامل آرایهای با مقدار برای اطلاعات بیشتر به PlaceAutocompleteMatchedSubstring مراجعه کنید. |
| اختیاری | رشته | شامل متن ثانویه یک پیشبینی، معمولاً موقعیت مکانی آن مکان، است. |
| اختیاری | آرایه < PlaceAutocompleteMatchedSubstring > | شامل آرایهای با مقدار برای اطلاعات بیشتر به PlaceAutocompleteMatchedSubstring مراجعه کنید. |
PlaceAutocompleteTerm
| میدان | مورد نیاز | نوع | توضیحات |
|---|---|---|---|
| مورد نیاز | شماره | موقعیت شروع این اصطلاح را در توضیحات، که با کاراکترهای یونیکد اندازهگیری میشود، تعریف میکند. |
| مورد نیاز | رشته | متن اصطلاح. |