«تکمیل خودکار مکان» (قدیمی) یک سرویس وب است که پیشبینیهای مکان را در پاسخ به درخواست HTTP برمیگرداند. درخواست، رشته جستجوی نوشتاری و مرزهای جغرافیایی اختیاری را مشخص میکند. از این سرویس میتوان برای ارائه عملکرد تکمیل خودکار برای جستجوهای جغرافیایی مبتنی بر نوشتار استفاده کرد، به این صورت که با تایپ کردن کاربر، مکانهایی مانند کسبوکارها، نشانیها، و نقاط موردعلاقه را برمیگرداند.
درخواستهای «تکمیل خودکار جا» (قدیمی)
«تکمیل خودکار جا» (قدیمی) بخشی از «میانای برنامهسازی کاربردی مکانها» است و کلید میانای برنامهسازی کاربردی و سهمیهها را با میانای برنامهسازی کاربردی مکانها همرسانی میکند.
«تکمیل خودکار جا (قدیمی)» میتواند با کلمات کامل و رشتههای فرعی مطابقت داشته باشد، نام مکانها، نشانیها، و پلاس کدها را حلوفصل کند. بنابراین، برنامهها میتوانند همزمان با تایپ کردن کاربر پُرسمان ارسال کنند تا پیشبینیهای مکان را درلحظه ارائه دهند.
باید plus code را بهدرستی قالببندی کنید. این یعنی باید علامت بهعلاوه را به
%2B و فاصلهها را به %20 در نشانی وب تبدیل کنید.
- کد جهانی پیششماره چهار رقمی و کد محلی شش رقمی یا طولانیتر است. برای مثال، کد سراسری گریز نشانی وب
849VCWC8+R9849VCWC8%2BR9است. - کد مرکب کد محلی ششنویسهای (یا طولانیتر) با
مکان صریح است. برای مثال، کد مرکب با نشانی وب گریزدار
CWC8+R9 Mountain View, CA, USACWC8%2BR9%20Mountain%20View%20CA%20USAاست.
پیشبینیهای برگشتی بهگونهای طراحی شدهاند که به کاربر ارائه شوند تا به او در انتخاب مکان موردنظرش کمک کنند. میتوانید درخواست «جزئیات مکان (قدیمی)» ارسال کنید تا اطلاعات بیشتری درباره هریک از مکانهای برگرداندهشده دریافت کنید.
درخواست «جای کامل خودکار (قدیمی)» نشانی وب HTTP بهشکل زیر است:
https://maps.googleapis.com/maps/api/place/autocomplete/output?parameters
که در آن output میتواند یکی از مقادیر زیر باشد:
json(توصیه میشود) نشاندهنده برونداد در «نشانگذاری شیء جاوا اسکریپت» (JSON) استxmlنشاندهنده برونداد بهعنوان XML است
برای شروع درخواست «تکمیل خودکار مکان» (قدیمی)، پارامترهای خاصی لازم است.
همانطور که در نشانیهای وب استاندارد است، همه پارامترها بااستفاده از نویسه «&»
(&) از هم جدا میشوند. فهرست پارامترها و مقادیر احتمالی آنها در زیر آمده است.
پارامترهای الزامی
-
ورودی
رشته نوشتاری که باید جستجو شود. سرویس «تکمیل خودکار مکان» براساس این رشته، مطابقتهای نامزد را برمیگرداند و نتایج را براساس ارتباط درکشده آنها مرتب میکند.
پارامترهای اختیاری
-
اجزا
گروهی از مکانها که میخواهید نتایجتان را به آنها محدود کنید. میتوانید از مؤلفهها برای فیلتر کردن براساس حداکثر ۵ کشور استفاده کنید. کشورها باید بهعنوان کد کشور دوحرفی سازگار با ISO 3166-1 Alpha-2 ارائه شوند. برای مثال:
components=country:frنتایج شما را به مکانهای داخل فرانسه محدود میکند. چندین کشور باید بهصورت چندین فیلترcountry:XX، با نویسه خط لوله|بهعنوان جداکننده، ارسال شوند. برای مثال:components=country:us|country:pr|country:vi|country:gu|country:mpنتایج شما را به مکانهای داخل ایالات متحده و قلمروهای سازمانیافته غیرادغامشده آن محدود میکند.توجه: اگر نتایج غیرمنتظرهای با کد کشور دریافت کردید، بررسی کنید که از کدی استفاده میکنید که شامل کشورها، قلمروهای وابسته، و مناطق ویژه جغرافیایی موردنظر شما باشد. میتوانید اطلاعات کد را در ویکیپدیا: فهرست کدهای کشور ISO 3166 یا پلاتفرم مرور آنلاین ISO پیدا کنید. -
زبان
زبانی که نتایج باید به آن برگردانده شود.
- فهرست زبانهای پشتیبانیشده را ببینید. Google اغلب زبانهای پشتیبانیشده را بهروز میکند، بنابراین این فهرست ممکن است کامل نباشد.
-
اگر
languageارائه نشود، API تلاش میکند از زبان ترجیحی مشخصشده در سرصفحهAccept-Languageاستفاده کند. - این API تلاش میکند نشانی خیابانی ارائه دهد که هم برای کاربر و هم برای افراد محلی خوانا باشد. برای رسیدن به این هدف، نشانیهای خیابان را به زبان محلی برمیگرداند و درصورت لزوم، با رعایت زبان ترجیحی کاربر، آن را به خطی که کاربر بتواند بخواند آوانویسی میکند. همه نشانیهای دیگر به زبان ترجیحی برگردانده میشوند. اجزای نشانی همه به یک زبان برگردانده میشوند که از اولین جزء انتخاب میشود.
- اگر نامی به زبان ترجیحی دردسترس نباشد، API از نزدیکترین مطابقت استفاده میکند.
- زبان ترجیحی تأثیر کمی بر مجموعه نتایجی دارد که «میانای برنامهسازی کاربردی» برای برگرداندن انتخاب میکند و ترتیبی که برگردانده میشوند. کدبند براساس زبان، مخففها را بهشکل متفاوتی تفسیر میکند، برای مثال، مخففهای انواع خیابان، یا مترادفهایی که ممکن است در یک زبان معتبر باشند اما در زبان دیگر معتبر نباشند. برای مثال، utca و tér مترادف خیابان در زبان مجارستانی هستند.
-
مکان
نقطهای که اطلاعات مکان از اطراف آن بازیابی میشود. این باید بهصورت
latitude,longitudeمشخص شود. وقتی مکان مشخص میکنید، پارامترradiusنیز باید ارائه شود. اگرradiusارائه نشده باشد، پارامترlocationنادیده گرفته میشود.هنگام استفاده از Text Search API، اگر `query` حاوی مکان صریحی مانند `Market in Barcelona` باشد، ممکن است پارامتر `location` لغو شود. -
locationbias
با مشخص کردن شعاع بهعلاوه طول/عرض جغرافیایی، یا دو جفت طول/عرض جغرافیایی که نشاندهنده نقاط یک مستطیل است، نتایج را در یک منطقه مشخص ترجیح دهید. اگر این پارامتر مشخص نشده باشد، API بهطور پیشفرض از گرایش نشانی IP استفاده میکند.
-
انحراف IP: به API دستور میدهد از انحراف نشانی IP استفاده کند. رشته
ipbiasرا ارسال کنید (این گزینه پارامترهای اضافی ندارد). -
دایرهای: رشتهای که شعاع را برحسب متر، بهعلاوه طول/عرض جغرافیایی را برحسب درجه اعشاری مشخص میکند. از قالب زیر استفاده کنید:
circle:radius@lat,lng. -
مستطیلی: رشتهای که دو جفت طول/عرض جغرافیایی را در درجه اعشاری مشخص میکند،
که نشاندهنده نقاط جنوب/غرب و شمال/شرق مستطیل است. از
قالب زیر استفاده کنید:
rectangle:south,west|north,east. توجه داشته باشید که مقادیر شرقی/غربی به محدوده ۱۸۰- تا ۱۸۰ محدود میشوند و مقادیر شمالی/جنوبی به محدوده ۹۰- تا ۹۰ محدود میشوند.
-
انحراف IP: به API دستور میدهد از انحراف نشانی IP استفاده کند. رشته
-
locationrestriction
با مشخص کردن شعاع بهعلاوه طول/عرض جغرافیایی، یا دو جفت طول/عرض جغرافیایی که نشاندهنده نقاط یک مستطیل است، نتایج را به منطقه مشخصی محدود کنید.
-
دایرهای: رشتهای که شعاع را برحسب متر، بهعلاوه طول/عرض جغرافیایی را برحسب درجه اعشاری مشخص میکند. از قالب زیر استفاده کنید:
circle:radius@lat,lng. -
مستطیلی: رشتهای که دو جفت طول/عرض جغرافیایی را در درجه اعشاری مشخص میکند،
که نشاندهنده نقاط جنوب/غرب و شمال/شرق مستطیل است. از
قالب زیر استفاده کنید:
rectangle:south,west|north,east. توجه داشته باشید که مقادیر شرق/غرب به محدوده -۱۸۰، ۱۸۰ و مقادیر شمال/جنوب به محدوده -۹۰، ۹۰ محدود میشوند.
-
دایرهای: رشتهای که شعاع را برحسب متر، بهعلاوه طول/عرض جغرافیایی را برحسب درجه اعشاری مشخص میکند. از قالب زیر استفاده کنید:
-
جبران کردن
موقعیت آخرین نویسهای که سرویس برای مطابقت دادن پیشبینیها استفاده میکند در عبارت ورودی. برای مثال، اگر ورودی
Googleو انحراف ۳ باشد، سرویس باGooمطابقت خواهد داشت. رشته تعیینشده براساس انحراف فقط با اولین کلمه در عبارت ورودی مطابقت داده میشود. برای مثال، اگر عبارت ورودیGoogle abcو انحراف ۳ باشد، سرویس تلاش میکند باGoo abcمطابقت دهد. اگر هیچ افستی ارائه نشود، سرویس از کل دوره استفاده خواهد کرد. انحراف معمولاً باید روی موقعیت مکاننمای نوشتار تنظیم شود. -
مبدأ
نقطه مبدأ که فاصله مستقیم تا مقصد از آن محاسبه میشود (بهصورت
distance_metersبرگردانده میشود). اگر این مقدار حذف شود، فاصله مستقیم برگردانده نخواهد شد. باید بهصورتlatitude,longitudeمشخص شود. -
شعاع
فاصلهای (به متر) را تعریف میکند که نتایج مکان در آن برگردانده میشود. با ارسال پارامترهای
locationوradiusمیتوانید نتایج را به دایرهای مشخص متمایل کنید. با این کار، به سرویس Places دستور داده میشود که نمایش نتایج درون آن دایره را ترجیح دهد؛ نتایج خارج از منطقه تعریفشده ممکن است همچنان نمایش داده شوند.شعاع بهطور خودکار به حداکثر مقدار بسته به نوع جستجو و پارامترهای دیگر محدود میشود.
- تکمیل خودکار: ۵۰٬۰۰۰ متر
-
جستجوی اطراف:
- با
keywordیاname: ۵۰٬۰۰۰ متر -
بدون
keywordیاname-
تا ۵۰٬۰۰۰ متر، بهطور پویا براساس تراکم منطقه تنظیم میشود، مستقل از پارامتر
rankby. -
هنگام استفاده از
rankby=distance، پارامتر شعاع پذیرفته نخواهد شد و منجر بهINVALID_REQUESTخواهد شد.
-
تا ۵۰٬۰۰۰ متر، بهطور پویا براساس تراکم منطقه تنظیم میشود، مستقل از پارامتر
- با
- تکمیل خودکار پُرسمان: ۵۰٬۰۰۰ متر
- جستجوی نوشتار: ۵۰۰۰۰ متر
-
منطقه
کد منطقه، که بهعنوان ccTLD ("دامنه سطح بالا") مقدار دو نویسهای مشخص شده است. اکثر کدهای ccTLD با کدهای ISO 3166-1 یکسان هستند، با چند استثنای قابلتوجه. برای مثال، ccTLD پادشاهی متحد «uk» (.co.uk) است، درحالیکه کد ISO 3166-1 آن «gb» است (ازنظر فنی برای نهاد «پادشاهی متحد بریتانیای کبیر و ایرلند شمالی»).
-
sessiontoken
رشتهای تصادفی که یک جلسه تکمیل خودکار را برای اهداف صدور صورتحساب شناسایی میکند.
جلسه وقتی شروع میشود که کاربر شروع به تایپ کردن پُرسمان میکند و وقتی پایان مییابد که مکان را انتخاب میکند و تماسی با «جزئیات مکان» برقرار میشود. هر جلسه میتواند چند پُرسمان داشته باشد و پساز آن یک مکان انتخاب شود. کلید(های) میانای برنامهسازی کاربردی استفادهشده برای هر درخواست در یک جلسه باید به همان پروژه کنسول Google Cloud تعلق داشته باشد. پساز پایان جلسه، کد دیگر معتبر نیست؛ برنامه شما باید برای هر جلسه کد جدیدی تولید کند. اگر پارامتر
sessiontokenحذف شود، یا اگر از نشانه جلسه مجدداً استفاده کنید، هزینه جلسه بهگونهای محاسبه میشود که انگار نشانه جلسه ارائه نشده است (هزینه هر درخواست بهطور جداگانه محاسبه میشود).توصیه میکنیم از رهنمودهای زیر پیروی کنید:
- از کد جلسه برای همه جلسههای تکمیل خودکار استفاده کنید.
- برای هر جلسه، کد جدیدی تولید کنید. استفاده از نسخه ۴ UUID توصیه میشود.
- مطمئن شوید کلید(های) API مورداستفاده برای همه درخواستهای «تکمیل خودکار مکان» و «جزئیات مکان» در یک جلسه به یک پروژه Cloud Console تعلق داشته باشد.
- حتماً برای هر جلسه جدید، کد جلسه یکتایی ارسال کنید. استفاده از یک توکن برای بیشاز یک جلسه باعث میشود که هر درخواست بهصورت جداگانه صورتحساب شود.
-
strictbounds
فقط مکانهایی را برمیگرداند که دقیقاً در منطقه تعریفشده توسط
locationوradiusقرار دارند. این یک محدودیت است، نه یک گرایش، به این معنی که نتایج خارج از این منطقه حتی اگر با ورودی کاربر مطابقت داشته باشند برگردانده نمیشوند. -
انواع
با ارسال پارامتر
typesمیتوانید نتایج درخواست «تکمیل خودکار جا» را به نوع خاصی محدود کنید. این پارامتر نوع یا مجموعه نوعی را که در انواع مکان فهرست شده است مشخص میکند. اگر چیزی مشخص نشده باشد، همه انواع برگردانده میشود.مکان فقط میتواند یک نوع اصلی واحد از انواع فهرستشده در جدول ۱ یا جدول ۲ داشته باشد. برای مثال، هتلی که غذا سرو میکند فقط با
types=lodgingقابلبرگشت است و باtypes=restaurantقابلبرگشت نیست.برای مقدار پارامتر
typesمیتوانید یکی از موارد زیر را مشخص کنید:-
حداکثر پنج مقدار از جدول ۱ یا جدول ۲. برای مقادیر متعدد، هر مقدار را با
|(خط عمودی) جدا کنید. برای مثال:types=book_store|cafe -
هر فیلتر پشتیبانیشده تکی در جدول ۳. نمیتوانید مجموعههای نوع را ترکیب کنید.
درخواست با خطای
INVALID_REQUESTرد خواهد شد اگر: -
نمونههای «تکمیل خودکار جا» (قدیمی)
درخواستی برای مؤسساتی که رشته «Amoeba» را در منطقهای با مرکزیت سانفرانسیسکو، کالیفرنیا، دارند:
نشانی وب
https://maps.googleapis.com/maps/api/place/autocomplete/json ?input=amoeba &types=establishment &location=37.76999%2C-122.44696 &radius=500 &key=YOUR_API_KEY
فر کردن
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=amoeba&types=establishment&location=37.76999%2C-122.44696&radius=500&key=YOUR_API_KEY'همان درخواست، محدود به نتایج در فاصله ۵۰۰ متری خیابان اشبری و خیابان هایت، سانفرانسیسکو:
نشانی وب
https://maps.googleapis.com/maps/api/place/autocomplete/json ?input=amoeba &types=establishment &location=37.76999%2C-122.44696&radius=500 &strictbounds=true &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=amoeba&types=establishment&location=37.76999%2C-122.44696&radius=500&strictbounds=true&key=YOUR_API_KEY'درخواست برای نشانیهای حاوی «Vict» با نتایج به زبان فرانسوی:
نشانی وب
https://maps.googleapis.com/maps/api/place/autocomplete/json ?input=Vict &types=geocode &language=fr &key=YOUR_API_KEY
فر کردن
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=geocode&language=fr&key=YOUR_API_KEY'درخواستی برای شهرهایی که حاوی «Vict» هستند با نتایج به زبان پرتغالی برزیلی:
نشانی وب
https://maps.googleapis.com/maps/api/place/autocomplete/json ?input=Vict &types=(cities) &language=pt_BR&key=YOUR_API_KEY
فر کردن
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Vict&types=(cities)&language=pt_BR&key=YOUR_API_KEY'توجه داشته باشید که باید کلید میانای API را در این نمونهها با کلید خودتان جایگزین کنید.
پاسخ «تکمیل خودکار جا» (قدیمی)
پاسخهای «تکمیل خودکار مکان» (قدیمی) در قالبی که با پرچم output در مسیر نشانی وب درخواست مشخص شده است برگردانده میشود. نتایج زیر نشاندهنده مواردی است که ممکن است برای پُرسمانی با پارامترهای زیر برگردانده شود:
نشانی وب
https://maps.googleapis.com/maps/api/place/autocomplete/json ?input=Paris &types=geocode &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Paris&types=geocode&key=YOUR_API_KEY'(قالب) JSON
{ "predictions": [ { "description": "Paris, France", "matched_substrings": [{ "length": 5, "offset": 0 }], "place_id": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ", "reference": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ", "structured_formatting": { "main_text": "Paris", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "France", }, "terms": [ { "offset": 0, "value": "Paris" }, { "offset": 7, "value": "France" }, ], "types": ["locality", "political", "geocode"], }, { "description": "Paris, TX, USA", "matched_substrings": [{ "length": 5, "offset": 0 }], "place_id": "ChIJmysnFgZYSoYRSfPTL2YJuck", "reference": "ChIJmysnFgZYSoYRSfPTL2YJuck", "structured_formatting": { "main_text": "Paris", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "TX, USA", }, "terms": [ { "offset": 0, "value": "Paris" }, { "offset": 7, "value": "TX" }, { "offset": 11, "value": "USA" }, ], "types": ["locality", "political", "geocode"], }, { "description": "Paris, TN, USA", "matched_substrings": [{ "length": 5, "offset": 0 }], "place_id": "ChIJ4zHP-Sije4gRBDEsVxunOWg", "reference": "ChIJ4zHP-Sije4gRBDEsVxunOWg", "structured_formatting": { "main_text": "Paris", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "TN, USA", }, "terms": [ { "offset": 0, "value": "Paris" }, { "offset": 7, "value": "TN" }, { "offset": 11, "value": "USA" }, ], "types": ["locality", "political", "geocode"], }, { "description": "Paris, Brant, ON, Canada", "matched_substrings": [{ "length": 5, "offset": 0 }], "place_id": "ChIJsamfQbVtLIgR-X18G75Hyi0", "reference": "ChIJsamfQbVtLIgR-X18G75Hyi0", "structured_formatting": { "main_text": "Paris", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "Brant, ON, Canada", }, "terms": [ { "offset": 0, "value": "Paris" }, { "offset": 7, "value": "Brant" }, { "offset": 14, "value": "ON" }, { "offset": 18, "value": "Canada" }, ], "types": ["neighborhood", "political", "geocode"], }, { "description": "Paris, KY, USA", "matched_substrings": [{ "length": 5, "offset": 0 }], "place_id": "ChIJsU7_xMfKQ4gReI89RJn0-RQ", "reference": "ChIJsU7_xMfKQ4gReI89RJn0-RQ", "structured_formatting": { "main_text": "Paris", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "KY, USA", }, "terms": [ { "offset": 0, "value": "Paris" }, { "offset": 7, "value": "KY" }, { "offset": 11, "value": "USA" }, ], "types": ["locality", "political", "geocode"], }, ], "status": "OK", }
XML
<?xml version="1.0" encoding="UTF-8"?> <AutocompletionResponse> <status>OK</status> <prediction> <description>Paris, France</description> <type>locality</type> <type>political</type> <type>geocode</type> <reference>ChIJD7fiBh9u5kcRYJSMaMOCCwQ</reference> <term> <value>Paris</value> <offset>0</offset> </term> <term> <value>France</value> <offset>7</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <place_id>ChIJD7fiBh9u5kcRYJSMaMOCCwQ</place_id> <structured_formatting> <description>Paris</description> <subdescription>France</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> </structured_formatting> </prediction> <prediction> <description>Paris, TX, USA</description> <type>locality</type> <type>political</type> <type>geocode</type> <reference>ChIJmysnFgZYSoYRSfPTL2YJuck</reference> <term> <value>Paris</value> <offset>0</offset> </term> <term> <value>TX</value> <offset>7</offset> </term> <term> <value>USA</value> <offset>11</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <place_id>ChIJmysnFgZYSoYRSfPTL2YJuck</place_id> <structured_formatting> <description>Paris</description> <subdescription>TX, USA</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> </structured_formatting> </prediction> <prediction> <description>Paris, TN, USA</description> <type>locality</type> <type>political</type> <type>geocode</type> <reference>ChIJ4zHP-Sije4gRBDEsVxunOWg</reference> <term> <value>Paris</value> <offset>0</offset> </term> <term> <value>TN</value> <offset>7</offset> </term> <term> <value>USA</value> <offset>11</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <place_id>ChIJ4zHP-Sije4gRBDEsVxunOWg</place_id> <structured_formatting> <description>Paris</description> <subdescription>TN, USA</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> </structured_formatting> </prediction> <prediction> <description>Paris, Brant, ON, Canada</description> <type>neighborhood</type> <type>political</type> <type>geocode</type> <reference>ChIJsamfQbVtLIgR-X18G75Hyi0</reference> <term> <value>Paris</value> <offset>0</offset> </term> <term> <value>Brant</value> <offset>7</offset> </term> <term> <value>ON</value> <offset>14</offset> </term> <term> <value>Canada</value> <offset>18</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <place_id>ChIJsamfQbVtLIgR-X18G75Hyi0</place_id> <structured_formatting> <description>Paris</description> <subdescription>Brant, ON, Canada</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> </structured_formatting> </prediction> <prediction> <description>Paris, KY, USA</description> <type>locality</type> <type>political</type> <type>geocode</type> <reference>ChIJsU7_xMfKQ4gReI89RJn0-RQ</reference> <term> <value>Paris</value> <offset>0</offset> </term> <term> <value>KY</value> <offset>7</offset> </term> <term> <value>USA</value> <offset>11</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <place_id>ChIJsU7_xMfKQ4gReI89RJn0-RQ</place_id> <structured_formatting> <description>Paris</description> <subdescription>KY, USA</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> </structured_formatting> </prediction> </AutocompletionResponse>
PlacesAutocompleteResponse
| فیلد | الزامی | نوع | شرح |
|---|---|---|---|
|
الزامی | Array<PlaceAutocompletePrediction> |
شامل آرایهای از پیشبینیها است. برای اطلاعات بیشتر، PlaceAutocompletePrediction را ببینید. |
|
الزامی | PlacesAutocompleteStatus |
وضعیت درخواست را نشان میدهد و ممکن است حاوی اطلاعات اشکالزدایی باشد تا به شما کمک کند دلیل ناموفق بودن درخواست را پیدا کنید. برای اطلاعات بیشتر، PlacesAutocompleteStatus را ببینید. |
|
اختیاری | رشته |
وقتی سرویس رمز وضعیتی غیراز
|
|
اختیاری | آرایه<رشته> |
وقتی سرویس اطلاعات بیشتری درباره مشخصات درخواست برمیگرداند، ممکن است فیلد |
در نتایج، عناصر place_id از اهمیت ویژهای برخوردارند، زیرا میتوان از آنها برای درخواست جزئیات دقیقتر درباره مکان بااستفاده از پُرسمانی جداگانه استفاده کرد. درخواستهای
جزئیات مکان (قدیمی)را ببینید.
پاسخ XML شامل یک عنصر <AutocompletionResponse> با دو نوع عنصر فرزند است:
- یک عنصر
<status>حاوی فرادادههای مربوط به درخواست است. کدهای وضعیت را در زیر ببینید. - صفر یا بیشتر از
<prediction>عنصر که هرکدام حاوی اطلاعات درباره یک مکان است. برای کسب اطلاعات درباره این نتایج، نتایج «تکمیل خودکار جا» (قدیمی) را ببینید. Places API حداکثر ۵ نتیجه برمیگرداند.
توصیه میکنیم از json بهعنوان پرچم برونداد ترجیحی استفاده کنید
مگر اینکه برنامه شما بهدلایلی به xml نیاز داشته باشد.
پردازش درختهای XML نیاز به دقت دارد تا به گرهها و عناصر مناسب ارجاع دهید. برای راهنمایی درباره پردازش XML،
پردازش
XML با XPath را ببینید.
PlacesAutocompleteStatus
رمزهای وضعیت برگرداندهشده توسط سرویس.
OKنشان میدهد که درخواست API موفقیتآمیز بوده است.-
ZERO_RESULTSنشان میدهد که جستجو موفقیتآمیز بوده است اما نتیجهای برنگردانده است. اگر محدوده جستجو در مکانی دور باشد، این اتفاق ممکن است رخ دهد. -
INVALID_REQUESTنشان میدهد که درخواست میانای برنامهسازی کاربردی بدشکل است، معمولاً بهدلیل وجود نداشتن پارامترinput. -
OVER_QUERY_LIMITنشاندهنده هریک از موارد زیر:- از حد مجاز QPS فراتر رفتهاید.
- صورتحساب در حسابتان فعال نشده است.
- از اعتبار ماهانه ۲۰۰ دلار یا سقف استفاده خودتحمیلی فراتر رفتهاید.
- روش پرداخت ارائهشده دیگر معتبر نیست (برای مثال، کارت اعتباری منقضی شده است).
-
REQUEST_DENIEDکه نشان میدهد درخواست شما رد شده است، معمولاً به این دلیل:- درخواست فاقد کلید میانای برنامهسازی کاربردی است.
- پارامتر
keyنامعتبر است.
UNKNOWN_ERRORکه نشاندهنده خطای ناشناخته است.
وقتی سرویس Places نتایج JSON را از جستجو برمیگرداند، آنها را در آرایه predictions قرار میدهد. حتی اگر سرویس هیچ نتیجهای برنگرداند (مثلاً اگر location از راه دور باشد)، همچنان یک آرایه predictions خالی برمیگرداند. پاسخهای XML شامل
صفر یا چند عنصر <prediction> است.
PlaceAutocompletePrediction
| فیلد | الزامی | نوع | شرح |
|---|---|---|---|
|
الزامی | رشته |
حاوی نام قابلخواندن برای انسان برای نتیجه برگرداندهشده است. برای
نتایج |
|
الزامی | Array<PlaceAutocompleteMatchedSubstring> |
فهرستی از رشتههای فرعی که مکان عبارت واردشده را در نوشتار نتیجه پیشبینی توصیف میکند تا درصورت انتخاب شدن، عبارت برجسته شود. برای اطلاعات بیشتر، PlaceAutocompleteMatchedSubstring را ببینید. |
|
الزامی | PlaceAutocompleteStructuredFormat |
نوشتار پیشقالببندیشدهای ارائه میدهد که میتواند در نتایج تکمیل خودکار شما نشان داده شود. این محتوا باید همانطور که هست خوانده شود. نشانی قالببندیشده را بهصورت برنامهنویسی تجزیه نکنید. برای اطلاعات بیشتر، PlaceAutocompleteStructuredFormat را ببینید. |
|
الزامی | Array<PlaceAutocompleteTerm> |
حاوی آرایهای از عبارتهایی است که هر بخش از شرح برگرداندهشده را شناسایی میکند (یک بخش از شرح معمولاً با ویرگول خاتمه مییابد). هر ورودی در آرایه دارای فیلد
برای اطلاعات بیشتر، PlaceAutocompleteTerm را ببینید. |
|
اختیاری | عدد صحیح |
فاصله مستقیم به متر از مبدأ. این فیلد فقط برای درخواستهایی که با |
|
اختیاری | رشته |
شناسه نوشتاری که مکان را بهطور یکتا شناسایی میکند. برای بازیابی اطلاعات درباره مکان، این شناسه را در فیلد placeId درخواست «میانای برنامهسازی کاربردی مکانها» بگذرانید. برای اطلاعات بیشتر درباره شناسههای مکان، نمای کلی شناسههای مکان را ببینید. |
|
اختیاری | رشته |
place_id را ببینید. |
|
اختیاری | آرایه<رشته> |
شامل آرایهای از انواع است که برای این مکان اعمال میشود. برای مثال:
|
PlaceAutocompleteMatchedSubstring
| فیلد | الزامی | نوع | شرح |
|---|---|---|---|
|
الزامی | شماره |
طول زیررشته منطبق در نوشتار نتیجه پیشبینی. |
|
الزامی | شماره |
مکان شروع زیررشته منطبق در نوشتار نتیجه پیشبینی. |
PlaceAutocompleteStructuredFormat
| فیلد | الزامی | نوع | شرح |
|---|---|---|---|
|
الزامی | رشته |
حاوی متن اصلی پیشبینی است، معمولاً نام مکان. |
|
الزامی | Array<PlaceAutocompleteMatchedSubstring> |
آرایهای با برای اطلاعات بیشتر، به PlaceAutocompleteMatchedSubstring مراجعه کنید. |
|
اختیاری | رشته |
حاوی نوشتار ثانویه پیشبینی است، معمولاً مکان محل. |
|
اختیاری | Array<PlaceAutocompleteMatchedSubstring> |
آرایهای با برای اطلاعات بیشتر، به PlaceAutocompleteMatchedSubstring مراجعه کنید. |
PlaceAutocompleteTerm
| فیلد | الزامی | نوع | شرح |
|---|---|---|---|
|
الزامی | شماره |
موقعیت شروع این اصطلاح را در شرح تعریف میکند، که با نویسههای یونیکد اندازهگیری میشود |
|
الزامی | رشته |
نوشتار اصطلاح. |
بهینهسازی «تکمیل خودکار جا (قدیمی)»
این بخش روالهای مطلوبی را شرح میدهد که به شما کمک میکند بیشترین بهره را از سرویس «تکمیل خودکار جا (قدیمی)» ببرید.
در اینجا چند دستورالعمل کلی آمده است:
- سریعترین راه برای توسعه میانای کاربر فعال استفاده از ابزاره «تکمیل خودکار جا» (قدیمی) در Maps JavaScript API، ابزاره «تکمیل خودکار جا» (قدیمی) در Places SDK for Android، یا کنترل میانای کاربر «تکمیل خودکار جا» (قدیمی) در Places SDK for iOS است.
- از همان ابتدا با فیلدهای داده تکمیل خودکار مکان (قدیمی) ضروری آشنا شوید.
- فیلدهای «سوگیری مکان» و «محدودیت مکان» اختیاری هستند اما میتوانند تأثیر قابلتوجهی بر عملکرد تکمیل خودکار داشته باشند.
- از مدیریت خطا استفاده کنید تا مطمئن شوید اگر میانای برنامهسازی کاربردی خطا برگرداند، برنامه شما بهخوبی تنزل مییابد.
- مطمئن شوید که برنامهتان درصورت عدم انتخاب، عملکرد مناسبی داشته باشد و به کاربران امکان ادامه دادن بدهد.
روالهای مطلوب بهینهسازی هزینه
بهینهسازی هزینه پایه
برای بهینهسازی هزینه استفاده از سرویس «تکمیل خودکار مکان (قدیمی)» ، از پوششهای فیلد در ابزارکهای «جزئیات مکان (قدیمی)» و «تکمیل خودکار مکان (قدیمی)» استفاده کنید تا فقط فیلدهای داده «تکمیل خودکار مکان (قدیمی)» موردنیازتان را برگردانید.
بهینهسازی پیشرفته هزینه
پیادهسازی برنامهنویسیشده «تکمیل خودکار جا (قدیمی)» را برای دسترسی به SKU: تکمیل خودکار - قیمتگذاری براساس درخواست و درخواست نتایج Geocoding API درباره مکان انتخابشده بهجای «جزئیات جا (قدیمی)» درنظر بگیرید. اگر هر دو شرط زیر برقرار باشد، قیمتگذاری بهازای هر درخواست همراه با «میانای برنامهسازی کاربردی زمینکدیابی» نسبتبه قیمتگذاری بهازای هر جلسه (جلسهمحور) مقرونبهصرفهتر است:
- اگر فقط به طول و عرض جغرافیایی یا نشانی مکان انتخابشده کاربر نیاز دارید، «میانای برنامهسازی کاربردی زمینکدیابی» این اطلاعات را با هزینه کمتر از تماس «جزئیات مکان» (قدیمی) ارائه میدهد.
- اگر کاربران پیشبینی تکمیل خودکار را در میانگین چهار درخواست پیشبینی «تکمیل خودکار مکان» (قدیمی) یا کمتر انتخاب کنند، قیمتگذاری بهازای هر درخواست میتواند مقرونبهصرفهتر از قیمتگذاری بهازای هر جلسه باشد.
آیا برنامه شما به اطلاعاتی غیراز نشانی و عرض/طول جغرافیایی پیشبینی انتخابشده نیاز دارد؟
بله، به جزئیات بیشتری نیاز است
از «تکمیل خودکار جا» (قدیمی) مبتنی بر جلسه با «جزئیات جا» (قدیمی) استفاده کنید.
ازآنجاییکه برنامه شما به «جزئیات مکان» (قدیمی) نیاز دارد، مثل نام مکان، وضعیت کسبوکار،
یا ساعات کاری، پیادهسازی شما از «تکمیل خودکار مکان» (قدیمی) باید از یک کد جلسه
(برنامهریزیشده یا ساختهشده در
ابزارهایک JavaScript،
Android،
یا iOS
) بهازای هر جلسه
بهعلاوه واحد نگهداری موجودی «دادههای مکان» قابلاعمال،
بسته به اینکه کدام فیلدهای داده مکان را درخواست میکنید، استفاده کند.۱
پیادهسازی ابزاره
مدیریت جلسه بهطور خودکار در
JavaScript،
Android،
یا iOS
ابزارهها ساخته میشود. این شامل هر دو درخواست «تکمیل خودکار مکان (قدیمی)» و درخواست «جزئیات مکان (قدیمی)»
در پیشبینی انتخابشده میشود. حتماً پارامتر fields را مشخص کنید تا مطمئن شوید فقط
فیلدهای داده «تکمیل خودکار مکان (قدیمی)»
موردنیازتان را درخواست میکنید.
پیادهسازی برنامهریزیشده
از
نشانه جلسه
با درخواستهای «تکمیل خودکار مکان (قدیمی)» استفاده کنید. هنگام درخواست «جزئیات مکان» (قدیمی) درباره پیشبینی انتخابشده، پارامترهای زیر را اضافه کنید:
- شناسه جا از پاسخ «تکمیل خودکار جا» (قدیمی)
- نشانه جلسه استفادهشده در درخواست «تکمیل خودکار مکان» (قدیمی)
- پارامتر
fieldsکه فیلدهای داده «تکمیل خودکار جا» (قدیمی) موردنیازتان را مشخص میکند
نه، فقط به نشانی و مکان نیاز دارد
بسته به عملکرد استفاده شما از Place Autocomplete (Legacy)، Geocoding API میتواند گزینه مقرونبهصرفهتری نسبتبه Place Details (Legacy) برای برنامه شما باشد. کارایی «تکمیل خودکار مکان» (قدیمی) هر برنامه بسته به آنچه کاربران وارد میکنند، جایی که برنامه استفاده میشود، و اینکه آیا روالهای مطلوب بهینهسازی عملکرد اجرا شدهاند یا نه متفاوت است.
برای پاسخ دادن به سؤال زیر، تجزیهوتحلیل کنید که کاربر بهطور میانگین چند نویسه تایپ میکند تا پیشبینی «تکمیل خودکار مکان» (قدیمی) را در برنامهتان انتخاب کند.
آیا کاربران شما بهطور میانگین در چهار درخواست یا کمتر، پیشبینی «تکمیل خودکار مکان» (قدیمی) را انتخاب میکنند؟
بله
«تکمیل خودکار جا» (قدیمی) را بهصورت برنامهنویسیشده بدون کد جلسه پیادهسازی کنید و Geocoding API را در پیشبینی مکان انتخابشده فراخوانی کنید.
Geocoding API نشانیها و مختصات عرض جغرافیایی/طول جغرافیایی را ارائه میدهد.
ایجاد چهار درخواست
تکمیل خودکار - بهازای هر درخواست
بهعلاوه یک فراخوانی Geocoding API
درباره پیشبینی مکان انتخابشده کمتر از هزینه هر جلسه «تکمیل خودکار جا» (قدیمی)
بهازای هر جلسه است.۱
برای کمک به کاربران در دریافت پیشبینی موردنظرشان با تعداد نویسههای کمتر، از بهترین روشهای عملکرد استفاده کنید.
نه
استفاده از «تکمیل خودکار جا» مبتنی بر جلسه (قدیمی) با «جزئیات جا» (قدیمی).
ازآنجاییکه تعداد میانگین درخواستهایی که انتظار دارید قبلاز انتخاب پیشبینی
«تکمیل خودکار مکان» (قدیمی) توسط کاربر انجام دهید از هزینه قیمتگذاری بهازای هر جلسه فراتر میرود، پیادهسازی
«تکمیل خودکار مکان» (قدیمی) شما باید برای هر دو درخواست «تکمیل خودکار مکان» (قدیمی)
و درخواست «جزئیات مکان» (قدیمی) مرتبط از
کد جلسه استفاده کند.
۱
پیادهسازی ابزاره
مدیریت جلسه بهطور خودکار در
ابزارههای JavaScript،
Android،
یا iOS
ساخته میشود. این شامل هر دو درخواست «تکمیل خودکار مکان» (قدیمی) و درخواست «جزئیات مکان» (قدیمی)
در پیشبینی انتخابشده میشود. حتماً پارامتر fields را مشخص کنید
تا مطمئن شوید فقط فیلدهای موردنیازتان را درخواست میکنید.
پیادهسازی برنامهای
از
کد جلسه
با درخواستهای «تکمیل خودکار جا» (قدیمی) استفاده کنید.
هنگام درخواست «جزئیات مکان (قدیمی)» درباره پیشبینی انتخابشده،
پارامترهای زیر را اضافه کنید:
- شناسه مکان از پاسخ «تکمیل خودکار مکان» (قدیمی)
- نشانه جلسه استفادهشده در درخواست «تکمیل خودکار مکان» (قدیمی)
- پارامتر
fieldsکه فیلدهای دادههای پایه مثل نشانی و هندسه را مشخص میکند
درنظر بگیرید درخواستهای «تکمیل خودکار مکان» (قدیمی) را بهتأخیر بیندازید
میتوانید از استراتژیهایی مثل بهتأخیر انداختن درخواست «تکمیل خودکار مکان» (قدیمی) تا زمانی که کاربر سه یا چهار نویسه اول را تایپ کند استفاده کنید تا برنامهتان درخواستهای کمتری ارسال کند. برای مثال، ارسال درخواستهای «تکمیل خودکار مکان (قدیمی)» برای هر نویسه پساز اینکه کاربر نویسه سوم را تایپ کرد به این معنی است که اگر کاربر هفت نویسه تایپ کند و سپس پیشبینیای را انتخاب کند که برای آن یک درخواست Geocoding API ارسال میکنید، هزینه کل برابر با ۴ «تکمیل خودکار مکان (قدیمی)» بهازای هر درخواست + Geocoding خواهد بود.۱
اگر با بهتأخیر انداختن درخواستها بتوانید میانگین درخواستهای برنامهریزیشدهتان را به کمتر از چهار برسانید، میتوانید از راهنماییهای مربوط به پیادهسازی «تکمیل خودکار مکان» کارآمد (قدیمی) با «ایپیآی زمینکدی» پیروی کنید. توجه داشته باشید که تأخیر در درخواستها میتواند بهعنوان تأخیر ازسوی کاربری که ممکن است انتظار داشته باشد با هر ضربه کلید جدیدی پیشبینیها را ببیند، درک شود.
برای کمک به کاربران در دریافت پیشبینی موردنظرشان با نویسههای کمتر، روالهای مطلوب عملکرد را بهکار بگیرید.
-
برای اطلاع از هزینهها، فهرست قیمتهای «پلاتفرم Google Maps» را ببینید.
روالهای مطلوب عملکرد
رهنمودهای زیر روشهای بهینهسازی عملکرد «تکمیل خودکار جا» (قدیمی) را شرح میدهد:
- محدودیتهای کشور، گرایش مکان، و (برای پیادهسازیهای برنامهریزیشده) اولویت زبان را به پیادهسازی «تکمیل خودکار مکان» (قدیمی) اضافه کنید. برای ابزارهها به اولویت زبان نیازی نیست چون آنها اولویتهای زبان را از مرورگر یا دستگاه همراه کاربر انتخاب میکنند.
- اگر «تکمیل خودکار جا» (قدیمی) با نقشه همراه باشد، میتوانید مکان را براساس نمای نقشه سوگیری کنید.
- در شرایطی که کاربر یکی از پیشبینیهای «تکمیل خودکار مکان» (قدیمی) را انتخاب نمیکند، معمولاً
بهدلیل اینکه هیچیک از آن پیشبینیها نشانی نتیجه موردنظر نیست، میتوانید از ورودی کاربر اصلی
برای تلاش در جهت دریافت نتایج مرتبطتر استفاده مجدد کنید:
- اگر انتظار دارید کاربر فقط اطلاعات نشانی را وارد کند، ورودی کاربر اصلی را در تماس با Geocoding API دوباره استفاده کنید.
- اگر انتظار دارید کاربر پُرسمانها را برای مکان خاصی براساس نام یا نشانی وارد کند، از درخواست «جزئیات مکان (قدیمی)» استفاده کنید. اگر انتظار میرود نتایج فقط در منطقه خاصی باشد، از گرایش مکان استفاده کنید.
- کاربرانی که نشانیهای فرعی وارد میکنند، مثل نشانیهای واحدهای خاص یا آپارتمانها در یک ساختمان. برای مثال، نشانی چک «Stroupežnického 3191/17, Praha» پیشبینی جزئی در «تکمیل خودکار مکان» (قدیمی) ارائه میدهد.
- کاربرانی که نشانیهایی با پیشوندهای بخش جادهای مثل «23-30 29th St, Queens» در شهر نیویورک یا «47-380 Kamehameha Hwy, Kaneohe» در جزیره کائوآئی در هاوایی وارد میکنند.
انحراف مکانی
با ارسال پارامتر location و پارامتر radius
نتایج را به منطقه مشخصی متمایل کنید. این دستور به «تکمیل خودکار مکان» (قدیمی) میگوید که نمایش نتایج در محدوده تعریفشده را ترجیح دهد. نتایج خارج از منطقه تعریفشده ممکن است همچنان
نمایش داده شود. میتوانید از پارامتر includedRegionCodes برای فیلتر کردن نتایج استفاده کنید
تا فقط مکانهای داخل کشور مشخصشده نشان داده شود.
مکان محدودکننده
با ارسال پارامتر locationRestriction، نتایج را به منطقه مشخصی محدود کنید.
همچنین میتوانید با افزودن پارامتر
strictbounds
نتایج را به منطقهای که با location
و پارامتر radius تعریف شده است محدود کنید. این دستور به «تکمیل خودکار مکان» (قدیمی) میگوید که فقط
نتایج را در آن منطقه برگرداند.