روشهای GeocodeAddress
و SearchDestinations
از پارامتر اختیاری effort پشتیبانی میکنند که به شما امکان میدهد
موازنه بین تأخیر پاسخ و دقت وضوح نشانی را کنترل کنید.
درحالیکه زمینکدیابی استاندارد نشانیهای پستی با قالببندی مناسب را با تأخیر کمتر از ثانیه مدیریت میکند، ورودیهای دنیای واقعی اغلب ناقص، غیررسمی، یا پیچیده هستند (برای مثال، "Flat 4B, Sunrise Apartments, opposite Central Mall, Andheri West,
Mumbai" یا "where the warriors play, sf"). با پیکربندی سطح effort بالاتر، میتوانید به Geocoding API دستور دهید تا استدلال گسترده و ابهامزدایی را برای حل نشانیهای دشوار اعمال کند.
سطوح تلاش
یکی از مقادیر زیر را برای پارامتر effort مشخص کنید:
| سطح تلاش | شرح | تأخیر معمول | موارد استفاده توصیهشده |
|---|---|---|---|
EFFORT_UNSPECIFIED |
مقدار پیشفرض. همانند تلاش LOW عمل میکند. |
زیرثانیه | زمینکدیابی استاندارد پیشفرض. |
LOW |
برای سریعترین زمان پاسخ بهینهسازی شده است. برای نشانیهای دشوار، جستجوی گسترده یا ابهامزدایی انجام نمیدهد. | زیرثانیه | جستجوی تعاملی همزمان، اعتبارسنجی نشانی استاندارد با حجم بالا. |
MEDIUM |
سرعت و دقت را متعادل میکند. اکثر درخواستها با تأخیر کم استاندارد برمیگردند. برای نشانیهای مبهم یا دشوار، این سرویس پردازش بیشتری را برای بهبود دقت اعمال میکند که ممکن است تا چند ثانیه طول بکشد. | کمتر از یک ثانیه برای نشانیهای استاندارد؛ تا چند ثانیه (کمتر از ۴ ثانیه) برای نشانیهای مبهم | گردش کار تعاملی کاربر (مانند تأیید نشانی در تسویهحساب) که در آن کاربران میتوانند مکث کوتاهی را تحمل کنند. |
HIGH |
دقت وضوح نشانی را برای نشانیهای ناقص، غیررسمی، یا پیچیده به حداکثر میرساند. زمان پاسخدهی ممکن است بهطور قابلتوجهی طولانیتر باشد. | حداکثر ۲۰ ثانیه برای نشانیهای پیچیده | پردازش پسزمینه، زمینکدیابی گروهی، اعزام لجستیک، یا پالایش نشانی پساز تسویهحساب ناهمگام. |
نمونههای درخواست
جستجوی مقصد (SearchDestinations)
فیلد effort را در بدنه درخواست JSON درخواست POST خود به https://geocode.googleapis.com/v4alpha/geocode/destinations اضافه کنید. پارامتر effort
عمدتاً بر وضوح addressQuery
تأثیر میگذارد:
curl -X POST -d '{
"addressQuery": {
"addressQuery": "Flat 4B, Sunrise Apartments, opposite Central Mall, Andheri West, Mumbai"
},
"effort": "HIGH"
}' \
-H 'Content-Type: application/json' \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: *" \
https://geocode.googleapis.com/v4alpha/geocode/destinations
زمینکدیابی نشانی (GeocodeAddress)
پارامتر effort را بهعنوان پارامتر پُرسمان نشانی وب در درخواست GET به
نقطه پایان /v4alpha/ ارسال کنید:
curl -X GET -H 'Content-Type: application/json' \ -H "X-Goog-Api-Key: API_KEY" \ "https://geocode.googleapis.com/v4alpha/geocode/address/where+the+warriors+play,+sf?effort=MEDIUM"
کاهش تأثیر تأخیر
هنگام استفاده از تلاش MEDIUM یا HIGH در برنامهتان، ارسال درخواست تکگذری سادهترین ادغام است، اما درخواستها در این حالتها میتوانند تأخیر بیشتری ایجاد کنند که میتواند گردشهای کاری همگام، سَمت کاربر، و حساس به تأخیر را بهتأخیر بیندازد.
برای کاهش تأثیر این تأخیر بر جریانهای تعاملی کاربر (مانند تسویهحساب یا رزرو)، میتوانید از گردش کار چندمرحلهای استفاده کنید:
- گذر ۱ (تعاملی): درخواست همگامی با
effort=LOW(یا پیشفرض) ارسال کنید تا نشانی فوراً با تأخیر زیرثانیه اعتبارسنجی شود. - گذر ۲ (پسزمینه): ارسال درخواست پیگیری ناهمگام با
effort=MEDIUMیاeffort=HIGH(برای مثال، پساز تسویهحساب یا قبلاز ارسال) برای تبدیل نشانیهای پیچیده به مختصات، ورودیها، و نقاط ناوبری با دقت بالا بدون مسدود کردن کاربر.
حدود استفاده
درطول مرحله راهاندازی «آزمایشی» (v4alpha)، درخواستهایی که effort آنها روی
MEDIUM یا HIGH تنظیم شده باشد مشمول محدودیتهای نرخ سختگیرانهتری نسبتبه درخواستهای
استاندارد (LOW) میشوند. اگر برنامه شما از این حدود نرخ فراتر رود، API خطای
RESOURCE_EXHAUSTED (HTTP 429) را برمیگرداند. اگر با خطاهای HTTP 429 مواجه شدید یا
برای مورد استفادهتان به سهمیه بالاتری نیاز دارید، ازطریق
کانال بازخورد با ما تماس بگیرید.
بازخورد
این ویژگی آزمایشی Geocoding API است. از بازخورد شما در geocoding-feedback-channel@google.com قدردانی میکنیم.