«میانای برنامهسازی کاربردی وضوح ابزارهای Maps» بخشی از «مبانیمندی با Maps Lite» است. این سرویس نقطههای پایانی دستهای ارائه میدهد که نامهای مکان و نشانیهای وب Google Maps را به «شناسههای مکان Google Maps» تبدیل میکند. میتوانید از «شناسههای مکان» برگشتی با دیگر «میاناهای برنامهسازی کاربردی پلاتفرم Google Maps» استفاده کنید. هر پاسخ همچنین شامل پیوندی است که مکانهای حلوفصلشده را بهعنوان فهرستی در Google Maps ذخیره میکند.
«میانای برنامهسازی کاربردی وضوح» هم بهعنوان روشهای REST و هم بهعنوان ابزارهایی در سرور Maps Grounding Lite MCP دردسترس است:
| قابلیت | روش REST | ابزار MCP |
|---|---|---|
| نامها یا نشانیهای مکان را به مکانها تبدیل کنید | resolveNames |
resolve_names |
| نشانیهای وب Google Maps را به مکانها تبدیل میکند | resolveMapsUrls |
resolve_maps_urls |
قبلاز شروع
برای استفاده از «میانای برنامهسازی کاربردی وضوح»، به پروژه Google Cloud با صورتحساب فعال و سرویس API Maps Grounding Lite فعال نیاز دارید. برای دریافت دستورالعمل، به فعال کردن سرویس Maps Grounding Lite در پروژه Google Cloud مراجعه کنید.
دسترسی و اصالتسنجی «میانای برنامهسازی کاربردی»
«میانای برنامهسازی کاربردی وضوح» از هر دو اعتبارنامه کلید میانای برنامهسازی کاربردی و OAuth 2.0 پشتیبانی میکند.
کلید میانای API
میتوانید درخواستها را با ارسال کلید معتبر «میانای برنامهسازی کاربردی پلاتفرم Google Maps»
در سرایند X-Goog-Api-Key یا با پیوست کردن آن به نشانی وب درخواست اصالتسنجی کنید:
https://mapstools.googleapis.com/v1:resolveNames?key=API_KEY
در مثالهای این صفحه، API_KEY را با کلید API خود جایگزین کنید.
محدودههای OAuth 2.0
اگر از مجوز OAuth استفاده میکنید، حوزه زیر پشتیبانی میشود:
https://www.googleapis.com/auth/maps-platform.mapstools
حدود استفاده
سهمیههای پیشفرض زیر برای «میانای برنامهسازی کاربردی وضوح» اعمال میشود:
- ResolveNames: ۶۰۰ پُرسمان در دقیقه، در هر پروژه.
- ResolveMapsUrls: ۶۰۰ پُرسمان در دقیقه، برای هر پروژه.
- اندازه دستهای: حداکثر ۲۰ پُرسمان یا نشانی وب در هر درخواست.
هر درخواست بهعنوان یک پُرسمان محسوب میشود، صرفنظر از اینکه چند مورد را دربرمیگیرد.
قیمتگذاری
درخواستهای ResolveNames و ResolveMapsUrls تحت واحد نگهداری کالا Places API Text Search Essentials (فقط شناسهها)
بدون هزینه ($۰) صورتحساب میشود. مانند بقیه «پروژه زمینگذاری Maps Lite»، پروژه شما باید حساب صورتحساب داشته باشد.
درخواست اعتبارسنجی و محدودیتها
برای جلوگیری از بار بیشازحد و اطمینان از زمان پاسخ سریع، درخواستهای دستهای بهطور دقیق اعتبارسنجی میشوند:
- محدودیت اندازه دسته: هر دو روش حداکثر ۲۰ مورد در هر درخواست را مجاز میکنند.
- الزامات ResolveNames:
- هر عنصر در
queriesباید پارامترtextغیرخالی را مشخص کند. - پُرسمانها باید نشاندهنده نام یا نشانی مکانی خاص باشد (برای مثال، "Googleplex, Mountain View, CA" یا "Eiffel Tower, Paris").
- جستجوهای دستهبندی عمومی (برای نمونه، «رستورانهای نیویورک») یا نامهای زنجیرهای عمومی بدون مکان (برای نمونه، «استارباکس») پشتیبانی نمیشود و ممکن است حل نشود.
- هر عنصر در
- ملزومات ResolveMapsUrls:
- هر نشانی وب باید نشانی وب Google Maps معتبر ازنظر ساختاری باشد.
- قالبهای پشتیبانیشده شامل موارد زیر است:
- نشانی وب مکان استاندارد:
https://www.google.com/maps/place/... - نشانی وب کوتاهشده:
https://maps.app.goo.gl/...
- نشانی وب مکان استاندارد:
- نشانیهای وب Maps مبتنی بر پُرسمان عمومی (برای نمونه،
https://maps.google.com/?q=restaurant) و نشانیهای وبی که به مکان یکتا و واحدی اشاره نمیکنند پشتیبانی نمیشوند.
ذخیره کردن مکانهای حلوفصلشده در Google Maps
اگر حداقل یک مورد در دستهای حلوفصل شود، پاسخ شامل فیلد
saveToMapsUrl میشود. این پیوند Google Maps واحدی است که حاوی همه مکانهای
حلوفصلشده موفق در این دسته است. این پیوند را به کاربرانی ارائه دهید که
میخواهند مکانهای حلوفصلشده را بهعنوان فهرست در Google Maps ذخیره، همرسانی، یا باز کنند.
همیشه از پیوند برگشتی ازسوی «میانای برنامهسازی کاربردی» استفاده کنید. پیوند را خودتان نسازید. اگر هیچ موردی در دستهای حل نشود، پاسخ شامل saveToMapsUrl نمیشود.
مدیریت خطاهای جزئی
هر دو روش پردازشگر دستهای هستند. اگر برخیاز عناصر در دستهای حل نشوند، درخواست کلی با خطای سطح بالا ناموفق نمیشود. درعوض، API پاسخ موفقیت جزئی برمیگرداند و باید پاسخ را برای خطاهای هر مورد بررسی کنید.
تفسیر کردن پاسخ
- تراز ۱ به ۱ تضمینشده: فهرست برگشتی
results(برایResolveNames) یا فهرستentities(برایResolveMapsUrls) براساس شاخص، ۱ به ۱ با فهرست ورودی مطابقت دارد. - عناصر خالی برای موارد ناموفق: اگر مورد در نمایه
iنتواند حلوفصل شود، فهرست نتایج حاوی شیء خالی{}در نمایهiاست. - نقشه
failedRequests: پاسخ حاوی نقشهfailedRequestsاست.- کلید نمایه مبتنی بر ۰ مورد ناموفق است (بهصورت رشته در JSON نشان داده میشود).
- مقدار یک شیء
google.rpc.Statusاست که حاوی کد خطا و پیامی است که دلیل ناموفق بودن مورد را توضیح میدهد.
saveToMapsUrlفقط موفقیتها را پوشش میدهد: پیوندsaveToMapsUrlفقط شامل مواردی است که حل شدهاند. موارد ناموفق اضافه نمیشوند.
فرض نکنید که کل دسته ناموفق بوده است چون یک مورد ناموفق بوده است. همیشه failedRequests را بررسی کنید تا ببینید کدام موارد، درصورت وجود، قابلحل نیستند.
خطاهای مربوط به هر مورد
جدول زیر خطاهای مربوط به هر مورد را که ممکن است در
failedRequests ببینید فهرست میکند:
| روش | علت | کد | پیام |
|---|---|---|---|
ResolveNames |
نام یا نشانی به مکان تبدیل نشد. | 5 (NOT_FOUND) |
Place not found. |
ResolveMapsUrls |
نشانی وب به مکان تجزیه نشد. | 3 (INVALID_ARGUMENT) |
Failed to resolve Maps URL to a place. |
| هر دو روش | هنگام حل کردن مورد، خطای داخلی روی داد. | 13 (INTERNAL) |
Internal server error. Please retry. If the problem persists, please open a support case. https://goo.gle/maps-platform-support |
فقط مواردی را که با INTERNAL ناموفق بودند دوباره امتحان کنید.
خطاهای سطح بالا
در موارد زیر، بهجای پاسخ جزئی، خطای سطح بالا برمیگرداند:
- درخواست نامعتبر (
400 INVALID_ARGUMENT): درخواست حاوی بیشاز ۲۰ مورد است، درخواستResolveNamesهیچ پُرسمانی ندارد یا پُرسمانی با مقدارtextخالی دارد، یا درخواستResolveMapsUrlsنشانی وبی دارد که خالی است یا ازنظر نحوی نشانی وب معتبری نیست. یک مورد نامعتبر باعث میشود کل درخواست ناموفق باشد. - خطاهای اصالتسنجی، اجازه، یا سهمیه: برای مثال، کلید API وجود ندارد یا نامعتبر است، یا درخواست از حدود استفاده فراتر رفته است.
- خطاهای سرور (
500 INTERNAL): درخواست را دوباره ارسال کنید.
استفاده از Resolution API با MCP
سرور Maps Grounding Lite MCP در https://mapstools.googleapis.com/mcp
«میانای برنامهسازی کاربردی وضوح» را بهعنوان دو ابزار نمایان میکند:
resolve_names: دستهای از نام مکانها یا نشانیها را به «شناسههای مکان» تبدیل میکند.resolve_maps_urls: دستهای از نشانیهای وب Google Maps را به «شناسههای مکان» تبدیل میکند.
وقتی «مدل زبانی بزرگ» خود را برای استفاده از سرور MCP «Maps Grounding Lite» پیکربندی میکنید، این ابزارها درکنار دیگر ابزارهای «Maps Grounding Lite» دردسترس قرار میگیرند. ابزارها ورودیهای یکسانی را میپذیرند، محدودیتهای یکسانی را اعمال میکنند، و پاسخ شکست جزئی یکسانی را مانند روشهای REST برمیگردانند.
پاسخهای ابزار شامل فیلد save_to_maps_url است. توضیحات ابزار به «مدل زبانی بزرگ» دستور میدهد که وقتی کاربر میخواهد مکانهای حلوفصلشده را بهصورت فهرست در Google Maps ذخیره، همرسانی، یا باز کند، این پیوند را ارائه دهد، بهجای اینکه خودش پیوند بسازد.
مثال زیر از curl برای فراخوانی مستقیم ابزار resolve_names استفاده میکند:
curl --location 'https://mapstools.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--header 'X-Goog-Api-Key: API_KEY' \
--data '{
"method": "tools/call",
"params": {
"name": "resolve_names",
"arguments": {
"queries": [
{ "text": "Googleplex, Mountain View, CA" },
{ "text": "Eiffel Tower, Paris" }
]
}
},
"jsonrpc": "2.0",
"id": 1
}'
برای تماس با resolve_maps_urls، name را روی resolve_maps_urls تنظیم کنید و
مجموعه urls را در arguments بگذرانید.
مشخصات REST API و نمونههای curl
ResolveNames
روش: POST
https://mapstools.googleapis.com/v1:resolveNames
قالب متن درخواست
{
"queries": [
{ "text": "string" }
],
"locationBias": {
"viewport": {
"low": { "latitude": number, "longitude": number },
"high": { "latitude": number, "longitude": number }
}
},
"regionCode": "string"
}
-
queries(الزامی): فهرست تکراری پُرسمانها برای حل کردن (حداکثر ۲۰). locationBias(اختیاری): چارگوش محدودکننده ناحیه نمایش برای متمایل کردن نتایج بهسمت منطقه محلی.regionCode(اختیاری): کد کشور CLDR (برای مثال، «US» یا «FR») برای سوگیری نتایج.
نمونه Curl: حلوفصل موفق
این پُرسمان «Googleplex» و «برج ایفل» را حل میکند.
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"queries": [
{ "text": "Googleplex, Mountain View, CA" },
{ "text": "Eiffel Tower, Paris" }
]
}' \
"https://mapstools.googleapis.com/v1:resolveNames?key=API_KEY"
پاسخ JSON
{
"results": [
{
"entity": {
"place": "places/ChIJj61dQgK6j4AR4GeTYWZsKWw"
},
"confidence": "HIGH"
},
{
"entity": {
"place": "places/ChIJLU7jZClu5kcR4PcOOO6p3I0"
},
"confidence": "HIGH"
}
],
"saveToMapsUrl": "https://www.google.com/maps/@?api=1&map_action=shortlist&place_ids=ChIJj61dQgK6j4AR4GeTYWZsKWw,ChIJLU7jZClu5kcR4PcOOO6p3I0"
}
مثال Curl: نتایج مختلط (شکست جزئی)
در این مثال، اولین مورد نوشتاری است که نمیتواند حل شود و دومین مورد مکان معتبری است.
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"queries": [
{ "text": "This is not a real place name at all 123456789" },
{ "text": "Eiffel Tower, Paris" }
]
}' \
"https://mapstools.googleapis.com/v1:resolveNames?key=API_KEY"
پاسخ JSON
{
"results": [
{},
{
"entity": {
"place": "places/ChIJLU7jZClu5kcR4PcOOO6p3I0"
},
"confidence": "HIGH"
}
],
"failedRequests": {
"0": {
"code": 5,
"message": "Place not found."
}
},
"saveToMapsUrl": "https://www.google.com/maps/@?api=1&map_action=shortlist&place_ids=ChIJLU7jZClu5kcR4PcOOO6p3I0"
}
ResolveMapsUrls
روش: POST
https://mapstools.googleapis.com/v1:resolveMapsUrls
قالب متن درخواست
{
"urls": [
"string"
]
}
-
urls(الزامی): فهرست تکراری رشتههای نشانی وب Google Maps برای حل کردن (حداکثر ۲۰).
نمونه Curl: حلوفصل موفق
مثال زیر نشانی وب مکان استاندارد Google Maps را حل میکند:
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"urls": [
"https://www.google.com/maps/place/Googleplex/@37.4220041,-122.0862515,17z/data=!3m1!4b1!4m6!3m5!1s0x808fba02425dad8f:0x6c296c66619367e0!8m2!3d37.4219998!4d-122.0840575!16s%2Fg%2F11c8b0ssp6"
]
}' \
"https://mapstools.googleapis.com/v1:resolveMapsUrls?key=API_KEY"
پاسخ JSON
{
"entities": [
{
"place": "places/ChIJj61dQgK6j4AR4GeTYWZsKWw"
}
],
"saveToMapsUrl": "https://www.google.com/maps/@?api=1&map_action=shortlist&place_ids=ChIJj61dQgK6j4AR4GeTYWZsKWw"
}
مثال Curl: نتایج مختلط (شکست جزئی)
مثال زیر یک نشانی وب مکان معتبر و یک نشانی وب را که نمیتواند به مکان حل شود حل میکند:
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"urls": [
"https://www.google.com/maps/place/Googleplex/@37.4220041,-122.0862515,17z/data=!3m1!4b1!4m6!3m5!1s0x808fba02425dad8f:0x6c296c66619367e0!8m2!3d37.4219998!4d-122.0840575!16s%2Fg%2F11c8b0ssp6",
"https://www.google.com/not-a-place"
]
}' \
"https://mapstools.googleapis.com/v1:resolveMapsUrls?key=API_KEY"
پاسخ JSON
{
"entities": [
{
"place": "places/ChIJj61dQgK6j4AR4GeTYWZsKWw"
},
{}
],
"failedRequests": {
"1": {
"code": 3,
"message": "Failed to resolve Maps URL to a place."
}
},
"saveToMapsUrl": "https://www.google.com/maps/@?api=1&map_action=shortlist&place_ids=ChIJj61dQgK6j4AR4GeTYWZsKWw"
}
مثال Curl: اعتبارسنجی ناموفق
مثال زیر بیشاز ۲۰ نشانی وب را در یک درخواست واحد ارسال میکند:
python3 -c 'import json; print(json.dumps({"urls": ["https://www.google.com/maps/place/Googleplex"] * 21}))' | \
curl -X POST \
-H "Content-Type: application/json" \
-d @- \
"https://mapstools.googleapis.com/v1:resolveMapsUrls?key=API_KEY"
پاسخ JSON
{
"error": {
"code": 400,
"message": "Request contains more than 20 URLs.",
"status": "INVALID_ARGUMENT"
}
}
ارسال بازخورد
برای گزارش مشکل یا همرسانی بازخورد درباره «میانای برنامهسازی کاربردی وضوح»، از عنصر عمومی Maps Grounding Lite در Issue Tracker استفاده کنید: