عیب یابی

خطاها

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

پاسخ شامل یک شی با یک شی error با کلیدهای زیر است:

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

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

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

خطاهای احتمالی عبارتند از:

کد وضعیت پیام عیب یابی
400 INVALID_ARGUMENT کلید ارائه شده نامعتبر است. کلید API شما معتبر نیست یا در درخواست گنجانده نشده است. لطفاً مطمئن شوید که کل کلید را وارد کرده‌اید و API را برای این کلید فعال کرده‌اید.
400 INVALID_ARGUMENT پارامتر "\"path\" حاوی یک مقدار نامعتبر است: ☃" درخواست شما حاوی آرگومان های نامعتبر بود. محتمل ترین دلایل این خطا عبارتند از:
  • مشکل در پارامتر path شما.
    لطفاً مطمئن شوید که حداقل 1 و کمتر از 100 امتیاز دارید. هر نقطه باید یک جفت اعداد باشد که با کاما از هم جدا شده اند، مانند: 48.409114,-123.369158 . نقاط باید با یک لوله از هم جدا شوند: '|'.
  • درخواست شما شامل شناسه placeId نامعتبر است.
  • درخواست شما هم شامل شناسه placeId و هم یک path بود. فقط یکی از این پارامترها ممکن است برای هر درخواست مشخص شود.

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

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

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

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

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

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

عیب یابی سوالات متداول

مسائل اجرایی

در کدام فرکانس باید مکان وسیله نقلیه خود را نمونه برداری کنم؟
هر 1-10 ثانیه برای نتایج سریع به جاده با کیفیت بالا توصیه می شود.
آیا محدودیتی در تعداد امتیازهایی که می توانم برای هر پرس و جو ارسال کنم وجود دارد؟
بله، یک پرس و جو می تواند حداکثر 100 امتیاز داشته باشد.
از چه سطحی از دقت باید برای ذخیره جفت‌های طول و عرض جغرافیایی من استفاده کنم؟
برای اطمینان از اینکه مسیرهای بریده شده جاده ها را در تمام سطوح بزرگنمایی دنبال می کنند، حتی در حداکثر سطح بزرگنمایی، باید جفت های طول و عرض جغرافیایی قطع شده خود را با دقت 7 رقم اعشار ذخیره کنید.
آیا می توانم از چند خطوط کدگذاری شده برای نمایش مسیرهای قطع شده استفاده کنم؟
چند خطوط کدگذاری شده فقط با دقت 5 رقم اعشار مشخص می شوند که منجر به خطای تقریباً 2 متری می شود. بنابراین اگر می خواهید مسیرهای قطع شده شما در سطح بزرگنمایی بالا جاده را دنبال کنند، چند خطوط کدگذاری شده مناسب نیستند.

مسائل رایج

برخی از نقاط در حال شکسته شدن نیستند، یا من شکاف هایی در مسیرهای شکسته دارم. چگونه می توانم این را اصلاح کنم؟
  • اگر از نقاط خود در فواصل زمانی مشخص نمونه برداری می کنید، اطمینان حاصل کنید که نقاط شما در فواصل زمانی کوتاه تری (هر 1-10 ثانیه) نمونه برداری می شوند. اگر از فاصله زمانی طولانی تری استفاده شود (مثلا 60 ثانیه)، الگوریتم snap-to-road ممکن است نتواند جاده های طی شده را با دقت کافی تعیین کند.
  • اگر به صورت دستی روی یک نقشه کلیک می کنید تا نقاط ایجاد کنید، ایجاد مسیرهایی با نقاط کم یا نقاط پراکنده که الگوریتم snapping به خوبی از پس آن بر نمی آید، بسیار آسان است. الگوریتم snapping برای نقاطی که نزدیک به هم هستند بهترین کار را دارد. دموی Snap to Roads را امتحان کنید یا از بازرس Roads برای آزمایش مسیرهای خود استفاده کنید.
    چرا وقتی بزرگنمایی می‌کنم، مسیرهای منقبض شده ناهموار یا کمی دور از جاده هستند؟
    • آیا دقت جفت های طول و عرض جغرافیایی قطع شده را قبل از نمایش آنها کوتاه می کنید؟ ذخیره جفت‌های طول و عرض جغرافیایی قطع شده با دقت کمتر از ۷ اعشار باعث خطاهای دقت در هنگام نمایش مسیر قطع شده روی نقشه می‌شود.
    • آیا از چند خط کدگذاری شده استفاده می کنید؟ چند خطوط کدگذاری شده جفت‌های طول و عرض جغرافیایی را تا 5 رقم اعشار کوتاه می‌کنند، که خطای چند متری ایجاد می‌کند و در نتیجه خطوطی ناهموار یا کمی دورتر از جاده در سطوح زوم بالا ایجاد می‌کنند.

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

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