Resolver problemas
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Confira algumas dicas para resolver problemas comuns.
Por que o raio de precisão é muito grande?
Se a resposta de geolocalização mostrar um valor muito alto no campo de precisão, o serviço poderá estar geolocalizando com base no IP da solicitação, em vez de pontos de Wi-Fi ou torres de celular. Esses tipos de respostas podem ocorrer se o serviço não reconhecer nenhuma torre de celular ou ponto de acesso.
Para confirmar que o serviço não conseguiu geolocalizar seus pontos de acesso, defina
considerIp
como "false" na solicitação. Se a resposta for 404, você confirmou que não foi possível geolocalizar os objetos wifiAccessPoints e cellTowers.
Como resolver um erro de resposta?
Se a solicitação gerar um erro, o sistema vai retornar um corpo de resposta de erro em formato padrão e definir o código de status HTTP como um status de erro.
A resposta de erro contém um objeto com um único objeto de erro com as seguintes chaves:
code
: é o mesmo que o status HTTP da resposta.
message
: uma breve descrição do erro.
errors
: uma lista de erros que ocorreram. Cada erro contém um identificador para o tipo de erro (o motivo) e uma breve descrição (a mensagem).
Por exemplo, o envio de um JSON inválido retorna o seguinte erro:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "parseError",
"message": "Parse Error",
}
],
"code": 400,
"message": "Parse Error"
}
}
Para mais testes, colete informações do seu dispositivo usando os
seguintes SDKs e APIs:
Descrições de erros
Confira abaixo os possíveis erros que você pode encontrar e as respectivas descrições.
Motivo |
Domínio |
Código de status HTTP |
Descrição |
dailyLimitExceeded |
usageLimits |
403 |
Você atingiu seu limite diário. |
keyInvalid |
usageLimits |
400 |
Sua chave de API não é válida para a API Geolocation. Inclua a chave inteira e verifique se você comprou a API ou ativou o faturamento e a API para receber a cota sem custos financeiros. |
userRateLimitExceeded |
usageLimits |
403 |
Você excedeu o limite de solicitações configurado no console do Google Cloud.
Normalmente, esse limite é definido como solicitações por dia, solicitações por 100 segundos e solicitações por 100 segundos por usuário. Configure seu limite para evitar que um único usuário ou um pequeno grupo esgote sua cota diária, mas ainda permita acesso razoável a todos os usuários.
Consulte Como limitar o uso da API
para configurar esses limites.
|
notFound |
geolocation |
404 |
A solicitação era válida, mas não retornou resultados. |
parseError |
global |
400 |
O corpo da solicitação não é um JSON válido. Consulte a seção Corpo da solicitação para mais detalhes sobre cada campo. |
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-09-03 UTC.
[null,null,["Última atualização 2025-09-03 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. |"]]