عیب یابی
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
در اینجا چند نکته برای عیب یابی مشکلات رایج آورده شده است.
چرا شعاع دقت بسیار زیاد است؟
اگر پاسخ موقعیت جغرافیایی شما مقدار بسیار بالایی را در قسمت دقت نشان میدهد، ممکن است سرویس به جای نقاط WiFi یا برجهای سلولی، بر اساس IP درخواست، موقعیت جغرافیایی را انجام دهد. اگر سرویس هیچ دکل یا نقطه دسترسی را نشناسد، این نوع پاسخها ممکن است اتفاق بیفتد.
برای تأیید اینکه سرویس نمیتواند نقاط دسترسی شما را در موقعیت جغرافیایی قرار دهد، در درخواست خود، considerIp
را روی false قرار دهید. اگر پاسخ 404 باشد، تأیید کردهاید که اشیاء wifiAccessPoints و cellTowers شما نمیتوانند مکانیابی شوند.
چگونه خطای پاسخ را عیب یابی کنم؟
اگر درخواست شما خطایی ایجاد کند، سیستم بدنه پاسخ خطای فرمت استاندارد را برمیگرداند و کد وضعیت HTTP را روی وضعیت خطا تنظیم میکند.
پاسخ خطا شامل یک شی با یک شی خطا با کلیدهای زیر است:
-
code
: این همان وضعیت HTTP پاسخ است. -
message
: توضیح کوتاهی از خطا. -
errors
: لیستی از خطاهای رخ داده. هر خطا شامل یک شناسه برای نوع خطا (دلیل) و یک توضیح کوتاه (پیام) است.
برای مثال، ارسال JSON نامعتبر، خطای زیر را برمیگرداند:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "parseError",
"message": "Parse Error",
}
],
"code": 400,
"message": "Parse Error"
}
}
برای آزمایش بیشتر، میتوانید با استفاده از SDK و APIهای زیر اطلاعاتی را از دستگاه خود جمعآوری کنید:
توضیحات خطا
در اینجا خطاهای احتمالی وجود دارد که ممکن است در توضیحات با آن مواجه شوید.
دلیل | دامنه | کد وضعیت HTTP | توضیحات |
---|
dailyLimitExceeded | usageLimits | 403 | شما از حد مجاز روزانه خود فراتر رفته اید. |
keyInvalid | usageLimits | 400 | کلید API شما برای API مکان جغرافیایی معتبر نیست. مطمئن شوید که کل کلید را درج کرده اید، و اینکه یا API را خریداری کرده اید یا صورتحساب را فعال کرده اید و API را فعال کرده اید تا سهمیه را بدون هزینه دریافت کنید. |
userRateLimitExceeded | usageLimits | 403 | شما از حد درخواستی که در کنسول Google Cloud پیکربندی کرده اید فراتر رفته اید. این محدودیت معمولاً به صورت درخواست در روز، درخواست در هر 100 ثانیه و درخواست در هر 100 ثانیه برای هر کاربر تنظیم می شود. شما باید محدودیت خود را طوری پیکربندی کنید که از تمام کردن سهمیه روزانه توسط یک گروه یا گروه کوچک از کاربران جلوگیری کنید، در حالی که همچنان امکان دسترسی معقول به همه کاربران را دارید. برای پیکربندی این محدودیتها به Capping API Usage مراجعه کنید. |
notFound | geolocation | 404 | درخواست معتبر بود، اما هیچ نتیجه ای برگردانده نشد. |
parseError | global | 400 | بدنه درخواست JSON معتبر نیست. برای جزئیات هر فیلد به بخش درخواست بدنه مراجعه کنید. |
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2025-08-29 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-08-29 بهوقت ساعت هماهنگ جهانی."],[[["\u003cp\u003eThe Geolocation API uses IP addresses, WiFi points, and cell towers to determine location, with large accuracy radius often indicating IP-based geolocation.\u003c/p\u003e\n"],["\u003cp\u003eTroubleshooting involves examining the error response, which includes an error code, message, and a list of errors with reasons and descriptions.\u003c/p\u003e\n"],["\u003cp\u003eYou can gather additional testing information from devices using the Android Location APIs, Places SDK for Android and iOS.\u003c/p\u003e\n"],["\u003cp\u003ePossible errors include exceeding daily or user request limits, using an invalid API key, and requests returning no results despite being valid.\u003c/p\u003e\n"]]],["If a large accuracy radius is shown, the service may be using the request IP instead of cell towers or WiFi. Test by setting `considerIp` to false; a 404 response confirms no access points were found. Error responses include a `code` (HTTP status), `message`, and an `errors` list with `reason` and `message`. Common errors include `dailyLimitExceeded` (403), `keyInvalid` (400), `userRateLimitExceeded` (403), `notFound` (404), and `parseError` (400) due to invalid JSON.\n"],null,["# Troubleshoot\n\nHere are some tips on troubleshooting common issues.\n\nWhy is the accuracy radius very large?\n--------------------------------------\n\nIf your Geolocation response shows a very high value in the accuracy field, the\nservice may be geolocating based on the request IP, instead of WiFi points or\ncell towers. These kinds of responses can happen if the service does not\nrecognize any cell towers or access points.\n\nTo confirm that the service could not geolocate your access points, set\n`considerIp` to false in your request. If the response is a 404, you've\nconfirmed that your wifiAccessPoints and cellTowers objects could not be geolocated.\n\nHow do I troubleshoot a response error?\n---------------------------------------\n\nIf your request generates an error, the system returns a standard format error\nresponse body and sets the HTTP status code to an error status.\n\nThe error response contains an object with a single error object with the\nfollowing keys:\n\n- `code`: This is the same as the HTTP status of the response.\n- `message`: A short description of the error.\n- `errors`: A list of errors that occurred. Each error contains an identifier for the type of error (the reason) and a short description (the message).\n\nFor example, sending invalid JSON returns the following error: \n\n {\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"parseError\",\n \"message\": \"Parse Error\",\n }\n ],\n \"code\": 400,\n \"message\": \"Parse Error\"\n }\n }\n\nGather testing information from devices\n---------------------------------------\n\nFor additional testing, you can gather information from your device using the\nfollowing SDKs and APIs:\n\n- **Android devices** : Go to [Places SDK for Android](/maps/documentation/places/android-sdk/current-place), and [Android\n Location APIs](https://developer.android.com/training/location/index.html).\n\n- **iOS devices** : Go to [Places SDK for iOS](/maps/documentation/places/ios-sdk/current-place).\n\nError descriptions\n------------------\n\nHere are the possible errors you might encounter with descriptions.\n\n| Reason | Domain | HTTP Status Code | Description |\n|-------------------------|---------------|------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `dailyLimitExceeded` | `usageLimits` | 403 | You have exceeded your [daily limit](/maps/documentation/geolocation/usage-and-billing#other-usage-limits). |\n| `keyInvalid` | `usageLimits` | 400 | Your API key is not valid for the Geolocation API. Be sure to include the entire key, and that you've either purchased the API or have [enabled billing and activated the API](/maps/documentation/geolocation/get-api-key) to obtain the quota at no charge. |\n| `userRateLimitExceeded` | `usageLimits` | 403 | You have exceeded the request limit that you configured in the Google Cloud console. This limit is typically set as requests per day, requests per 100 seconds, and requests per 100 seconds per user. You should configure your limit to prevent a single or small group of users from exhausting your daily quota, while still allowing reasonable access to all users. See [Capping API Usage](https://cloud.google.com/apis/docs/capping-api-usage) to configure these limits. |\n| `notFound` | `geolocation` | 404 | The request was valid, but no results were returned. |\n| `parseError` | `global` | 400 | The request body is not valid JSON. Refer to the [Request Body](/maps/documentation/geolocation/requests-geolocation#body) section for details on each field. |"]]