Solución de problemas
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Estas son algunas sugerencias para solucionar problemas habituales.
¿Por qué el radio de precisión es muy grande?
Si tu respuesta de Geolocation muestra un valor muy alto en el campo de precisión, es posible que el servicio esté realizando la geolocalización en función de la IP de la solicitud, en lugar de los puntos de acceso Wi-Fi o las torres de telefonía celular. Este tipo de respuestas pueden ocurrir si el servicio no reconoce ninguna torre celular ni ningún punto de acceso.
Para confirmar que el servicio no pudo geolocalizar tus puntos de acceso, establece considerIp
como falso en tu solicitud. Si la respuesta es un error 404, confirmaste que no se pudo geolocalizar tus objetos wifiAccessPoints y cellTowers.
¿Cómo soluciono un error de respuesta?
Si tu solicitud genera un error, el sistema devuelve un cuerpo de respuesta de error con formato estándar y establece el código de estado HTTP en un estado de error.
La respuesta de error contiene un objeto con un solo objeto de error con las siguientes claves:
code
: Es el mismo que el estado HTTP de la respuesta.
message
: Es una descripción breve del error.
errors
: Es una lista de los errores que se produjeron. Cada error contiene un identificador para el tipo de error (el motivo) y una descripción breve (el mensaje).
Por ejemplo, si envías un JSON no válido, se mostrará el siguiente error:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "parseError",
"message": "Parse Error",
}
],
"code": 400,
"message": "Parse Error"
}
}
Para realizar pruebas adicionales, puedes recopilar información de tu dispositivo con los siguientes SDKs y APIs:
Descripciones de errores
A continuación, se muestran los posibles errores que puedes encontrar con sus descripciones.
Motivo |
Dominio |
Código de estado HTTP |
Descripción |
dailyLimitExceeded |
usageLimits |
403 |
Superaste tu límite diario. |
keyInvalid |
usageLimits |
400 |
Tu clave de API no es válida para la API de Geolocation. Asegúrate de incluir la clave completa y de haber comprado la API o habilitado la facturación y activado la API para obtener la cuota sin cargo. |
userRateLimitExceeded |
usageLimits |
403 |
Superaste el límite de solicitudes que configuraste en la consola de Google Cloud.
Por lo general, este límite se establece como solicitudes por día, solicitudes cada 100 segundos y solicitudes cada 100 segundos por usuario. Debes configurar tu límite para evitar que un solo usuario o un grupo pequeño de usuarios agoten tu cuota diaria y, al mismo tiempo, permitir un acceso razonable a todos los usuarios.
Consulta Limita el uso de la API para configurar estos límites.
|
notFound |
geolocation |
404 |
La solicitud fue válida, pero no se devolvieron resultados. |
parseError |
global |
400 |
El cuerpo de la solicitud no posee formato JSON válido. Consulta la sección Cuerpo de la solicitud para obtener detalles sobre cada campo. |
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-08-31 (UTC)
[null,null,["Última actualización: 2025-08-31 (UTC)"],[[["\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. |"]]