عیب‌یابی

خطاها

درصورت بروز خطا، بدنه پاسخ خطای قالب استاندارد برگردانده می‌شود و رمز وضعیت HTTP روی وضعیت خطا تنظیم می‌شود.

پاسخ حاوی شیئی با یک شیء error با کلیدهای زیر است:

  • code: این مقدار با وضعیت HTTP پاسخ یکسان است.
  • ‫message: شرح کوتاهی از خطا.
  • ‫status: رمز وضعیتی که ماهیت خطا را نشان می‌دهد.

برای مثال، ارسال پارامتر placeId نامعتبر خطای زیر را برمی‌گرداند:

{
  "error": {
    "code": 400,
    "message": "\"placeId\" value is malformed: \"aChIJqaknMTeuEmsRUYCD5Wd9ARM\"",
    "status": "INVALID_ARGUMENT"
  }
}

خطاهای احتمالی شامل موارد زیر است:

کد وضعیت پیام عیب‌یابی
۴۰۰ INVALID_ARGUMENT کلیدی که ارائه کردید نامعتبر است. کلید API شما معتبر نیست یا در درخواست گنجانده نشده است. لطفاً مطمئن شوید که کل کلید را وارد کرده‌اید و API را برای این کلید فعال کرده‌اید.
۴۰۰ INVALID_ARGUMENT "پارامتر «مسیر» حاوی مقدار نامعتبری است: ☃" درخواستتان حاوی متغیرهای مستقل نامعتبر بود. رایج‌ترین دلایل این خطا عبارت‌اند از:
  • مشکلی در پارامتر path شما وجود دارد.
    لطفاً مطمئن شوید که حداقل ۱ و کمتر از ۱۰۰ امتیاز داشته باشید. هر نقطه باید یک جفت عدد باشد که با کاما از هم جدا شده‌اند، مثلاً: 48.409114,-123.369158. امتیازها باید با خط عمودی: «|» از هم جدا شوند.
  • درخواستتان حاوی placeId نامعتبر بود.
  • درخواستتان هم شامل placeId و هم path بود. فقط یکی از این پارامترها ممکن است برای هر درخواست مشخص شود.

اگر placeId برای جاده‌ای که دیگر وجود ندارد یا برای مکانی که جاده نیست ارسال شود، این خطا برگردانده نخواهد شد.

403 PERMISSION_DENIED درخواست ثبت‌نشده مسدود شد. لطفاً بااستفاده از Google Developers Console ثبت‌نام کنید. درخواست به یکی از دلایل زیر رد شد:
  • کلید API وجود ندارد یا نامعتبر است.
  • صورت‌حساب در حسابتان فعال نشده است.
  • از سقف استفاده خودتحمیلی فراتر رفته‌اید.
  • روش پرداخت ارائه‌شده دیگر معتبر نیست (برای مثال، کارت اعتباری منقضی شده است).

برای استفاده از محصولات Google Maps Platform، باید صورت‌حساب در حسابتان فعال باشد و همه درخواست‌ها باید شامل کلید میانای برنامه‌سازی کاربردی معتبر باشد. برای رفع این مشکل، مراحل زیر را انجام دهید:

404 NOT_FOUND ‫HTTPS برای این سرویس الزامی است. مطمئن شوید که درخواست‌ها را به https://roads.googleapis.com/ ارسال می‌کنید نه به http://roads.googleapis.com/.
429 RESOURCE_EXHAUSTED درخواست به‌دلیل رسیدن به حد درخواست پروژه محدود شد. از حد درخواست پیکربندی‌شده در کنسول Google Cloud Platform فراتر رفته‌اید. این حد معمولاً به‌صورت درخواست در روز، درخواست در هر ۱۰۰ ثانیه، و درخواست در هر ۱۰۰ ثانیه برای هر کاربر تعیین می‌شود. این حد باید به‌گونه‌ای پیکربندی شود که از اتمام سهمیه روزانه شما توسط یک کاربر یا گروه کوچک کاربران جلوگیری کند و درعین‌حال دسترسی معقول به همه کاربران را فراهم کند. برای پیکربندی این محدودیت‌ها، استفاده از میانای برنامه‌سازی کاربردی با سقف مجاز را ببینید.

عقب‌نشینی نمایی

وقتی درخواست‌ها ناموفق است، باید مطمئن شوید که درخواست‌ها را با عقب‌نشینی نمایی تکرار می‌کنید. برای مثال، اگر درخواستی یک‌بار ناموفق بود، پس‌از یک ثانیه دوباره امتحان کنید، اگر دوباره ناموفق بود، پس‌از دو ثانیه دوباره امتحان کنید، سپس پس‌از چهار ثانیه دوباره امتحان کنید، و به همین ترتیب ادامه دهید. این کار تضمین می‌کند که درخواست‌های خراب یا خطاهای گسترده سرورهای Google را پر نمی‌کند، زیرا بسیاری از کارخواهان سعی می‌کنند درخواست‌ها را خیلی سریع دوباره امتحان کنند.

پرسشگان عیب‌یابی

مشکلات پیاده‌سازی

مکان خودرو را با چه فاصله‌ای نمونه‌برداری کنم؟
هر ۱ تا ۱۰ ثانیه برای نتایج چسبیدن به جاده با کیفیت بالا توصیه می‌شود.
آیا برای تعداد امتیازهایی که می‌توانم در هر پُرسمان ارسال کنم سقفی وجود دارد؟
بله، یک پُرسمان می‌تواند حداکثر ۱۰۰ نقطه داشته باشد.
برای ذخیره کردن جفت‌های طول/عرض جغرافیایی چسبیده، از چه سطحی از دقت باید استفاده کنم؟
برای اطمینان از اینکه مسیرهای چسبیده در همه سطوح بزرگ‌نمایی، حتی در حداکثر سطح بزرگ‌نمایی، از جاده‌ها پیروی می‌کنند، باید جفت‌های طول/عرض جغرافیایی چسبیده را با دقت ۷ رقم اعشار ذخیره کنید.
آیا می‌توانم از چندخطی‌های کدبندی‌شده برای نمایش مسیرهای چسبیده استفاده کنم؟
چندخط‌های کدبندی‌شده فقط با دقت ۵ رقم اعشار مشخص می‌شوند، که منجر به خطایی در حدود ۲ متر می‌شود. بنابراین، چندخط‌های کدبندی‌شده برای زمانی که می‌خواهید مسیرهای چسبیده شما در سطوح بزرگ‌نمایی بالا از جاده پیروی کنند مناسب نیستند.

مشکلات رایج

برخی‌از نقاط چسبانده نمی‌شوند یا در مسیرهای چسبانده‌شده شکاف وجود دارد. چگونه می‌توانم این را اصلاح کنم؟
  • اگر نقاط را در فواصل زمانی نمونه‌برداری می‌کنید، مطمئن شوید که نقاط در فواصل زمانی کوتاه‌تر (هر ۱ تا ۱۰ ثانیه) نمونه‌برداری می‌شوند. اگر از فاصله زمانی طولانی‌تری استفاده شود (برای مثال ۶۰ ثانیه)، الگوریتم چسبیدن به جاده ممکن است نتواند جاده‌های پیموده شده را با دقت کافی تعیین کند.
  • اگر برای ایجاد نقاط به‌صورت دستی روی نقشه کلیک می‌کنید، ایجاد مسیرهایی با نقاط کم یا نقاط پراکنده که الگوریتم چسباندن به‌خوبی ازعهده آن‌ها برنمی‌آید بسیار آسان است. الگوریتم چسباندن برای نقطه‌هایی که به هم نزدیک هستند بهترین عملکرد را دارد. نمونه نمایشی چسبیدن به جاده‌ها را امتحان کنید یا از بازرس جاده‌ها برای آزمایش مسیرهایتان استفاده کنید.
چرا مسیرهای چسبانده‌شده من هنگام بزرگ‌نمایی ناهموار یا کمی از جاده دور هستند؟
  • آیا دقت جفت‌های طول/عرض جغرافیایی چسبیده را پیش‌از نمایش آن‌ها کوتاه می‌کنید؟ ذخیره کردن جفت‌های طول/عرض جغرافیایی چسبیده با دقت کمتر از ۷ رقم اعشار باعث بروز خطاهای دقت در هنگام نمایش مسیر چسبیده روی نقشه می‌شود.
  • آیا از چندخطی‌های کدبندی‌شده استفاده می‌کنید؟ چندخطی‌های کدبندی‌شده جفت‌های عرض/طول جغرافیایی را به ۵ رقم اعشار کوتاه می‌کنند که خطایی چند متری ایجاد می‌کند و در سطوح بزرگ‌نمایی بالا، خطوطی دندانه‌دار یا کمی دور از جاده ایجاد می‌کند.

اگر هیچ‌کدام از موارد بالا نباشد، ممکن است کاشی‌های نقشه اخیراً به‌روز شده باشند و باعث شده باشند که با نمایه جاده مورداستفاده برای چسباندن همگام نباشند. اگر فقط چند پرسمان شما تحت تأثیر قرار گرفته است، احتمالاً دلیلش همین است. ازآنجایی‌که Google Maps به‌طور منظم به‌روز می‌شود، این اتفاق ممکن است گاهی رخ دهد، و اگر به‌طور منظم مسیرهای قدیمی را روی نقشه بررسی کنید (برای مثال، مسیرهایی که چند هفته پیش ثبت شده‌اند)، ممکن است بیشتر اتفاق بیفتد. برای دیداری‌سازی بهینه، باید مسیرهای قدیمی را درست قبل‌از نمایش دادن آن‌ها در نقشه دوباره به هم بچسبانید تا ناهمخوانی‌های بین کاشی‌های نقشه و نمایه جاده‌ای که برای چسباندن استفاده می‌شود به حداقل برسد.

چه چیزی می‌تواند باعث شود حد مجاز سرعت برای جاده X به‌طور نادرست نمایش داده شود؟
حدود مجاز سرعت از منابع مختلفی به‌دست می‌آید که دقت و پوشش آن‌ها متفاوت است. اگر الگویی پیدا کردید، برای مثال حدود سرعت برای نوع خاصی از جاده یا در منطقه‌ای خاص به‌طور مداوم اشتباه است، لطفاً مراحل زیر را برای اطلاع دادن به ما انجام دهید:
  1. ‫Google Maps را در رایانه OR برنامه Google Maps برای Android باز کنید.
  2. منو کناری سمت راست را باز کنید.
  3. ارسال بازخورد را انتخاب کنید. توجه: ممکن است از شما خواسته شود به سیستم وارد شوید.
  4. ویرایش نقشه را انتخاب کنید.
  5. بخش جاده‌ای را که می‌خواهید ویرایش کنید انتخاب کنید.
  6. بعدی را انتخاب کنید.
  7. در فیلد «سایر»، نشان دهید که حد مجاز سرعت برای آن جاده اشتباه است.
  8. ارسال کردن را انتخاب کنید.
همچنین می‌توانید مشکلات دیگر را در اینجا گزارش کنید (برای مثال اگر جاده نام نادرستی دارد، به‌درستی ترسیم نشده است، یا بسته یا خصوصی است).
چرا مسیر چسبیده من به‌جای دنبال کردن جاده، از گوشه‌ها می‌برد؟
برای اصلاح این مشکل، موارد زیر را بررسی کنید:
  • مطمئن شوید پارامتر interpolate روی true تنظیم شده باشد.
  • بررسی کنید که نقاط داده اصلی شما در فواصل کافی نزدیک نمونه‌برداری شده باشند (هر ۱ تا ۱۰ ثانیه).
چرا در مسیر چسبیده برای جاده‌ای که تغییر محدودیت سرعت ندارد، بخش‌های جاده‌ای زیادی برگردانده می‌شود؟
وقتی پارامتر interpolate روی true تنظیم می‌شود، پُرسمان چسبیدن به جاده چندخطی‌ای را برمی‌گرداند که در گوشه‌ها، منحنی‌ها، و میدان‌ها از جاده پیروی می‌کند. اگر جاده پیچ داشته باشد، حتی اگر حد سرعت تغییر نکند، چندین بخش جاده برگردانده می‌شود تا یک چندخطی ایجاد شود که هندسه جاده را به‌دقت دنبال کند.