Optimización del uso de la cuota durante la geocodificación
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
La geocodificación es el proceso de conversión de direcciones ("1600
Amphitheatre Parkway, Mountain View, CA") a coordenadas geográficas
(37.423021, -122.083739), que puedes usar para colocar
marcadores o posicionar el mapa. Las APIs de Google Maps Platform proporcionan dos
de la geocodificación:
Geocodificación del cliente,
que se ejecuta en el navegador, generalmente en
respuesta a la acción del usuario. La API de Maps JavaScript proporciona
que realizan las solicitudes por ti. Este enfoque se describe en el
API de Maps JavaScript
documentación.
Geocodificación en el servidor HTTP,
que permite que tu servidor consulte directamente
los servidores de Google para geocódigos. La API de Geocoding es la
servicio que proporciona esta funcionalidad. Por lo general, se integra
servicio con otro código que se ejecuta en el servidor. Geocodificación del servidor
se describe en el
API de Geocoding
documentación.
Ejemplos de geocodificación en el cliente y el servidor
Este es un ejemplo de geocodificación del cliente, que toma un
geográfica, traslada el centro del mapa a esa ubicación y agrega un
marcador de mapa allí:
El geocodificador del servidor también proporciona un formato XML como alternativa al
JSON Para ver más ejemplos, consulta el
API de Geocoding
documentación y la
bibliotecas cliente para Python
y otros idiomas.
Consideraciones de cuotas y costos
Los costos, las cuotas y los límites de frecuencia de la geocodificación impulsan las estrategias descritas en esta
.
El servicio de geocodificación tiene un límite de índice de 3,000 QPM (consultas por minuto).
calculada como la suma de las consultas del cliente y del servidor.
Cuando se ejecutan solicitudes de geocodificación del cliente a intervalos periódicos, como
en una app para dispositivos móviles, tus solicitudes pueden
arrojar errores si todos los usuarios
realizan solicitudes al mismo tiempo (por ejemplo, todas en el mismo segundo de cada
minuto). Para evitar esto, considera una de las siguientes opciones:
Introduce intervalos aleatorios a tus solicitudes (jitter). Garantizar las solicitudes
son aleatorios en toda tu base de usuarios.
La respuesta corta es "casi siempre". Estos son los motivos:
La solicitud y la respuesta del cliente proporcionan una
más interactiva para los usuarios.
Una solicitud del cliente puede incluir información que mejore la geocodificación
calidad: idioma del usuario, región y viewport.
En particular, la geocodificación del cliente es mejor cuando se geocodifican direcciones.
según la entrada del usuario.
Existen dos arquitecturas básicas para la geocodificación en el cliente:
Aplicar la geocodificación y mostrarla por completo en el navegador. Por ejemplo:
el usuario ingresa una dirección en tu página. Tu aplicación le aplica geocodificación. Después
tu página usa el geocódigo para crear un marcador en el mapa. O tu app
un análisis sencillo con el geocódigo. No se envían datos al servidor.
Esto reduce la carga del servidor.
Realizar la geocodificación en el navegador y enviarla al servidor.
Por ejemplo, el usuario ingresa una dirección en tu página. Tu aplicación
la geocodifica en el navegador. Luego, la app envía los datos al servidor. El
servidor responde con algunos datos, como los lugares de interés cercanos. Esta
te permite personalizar una respuesta
en función de tus propios datos.
Cuándo usar geocodificación en el servidor
La geocodificación del servidor se usa mejor para aplicaciones que
te solicitarán que codifiques las direcciones sin la intervención de un cliente. Un ejemplo común
es cuando obtienes un conjunto de datos
independientemente de las entradas del usuario
por ejemplo, si tienes un conjunto fijo, finito y conocido de
que necesitan geocodificación. La geocodificación del servidor
también puede ser útil como copia de seguridad cuando falla la geocodificación del cliente.
Algunas posibles preocupaciones son un aumento innecesario
de la latencia para el usuario
y de geocodificación son de menor calidad que los del cliente, ya que
información está disponible en la solicitud.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-08-31 (UTC)"],[[["\u003cp\u003eGeocoding transforms addresses into geographic coordinates for map placement, offered through client-side (browser-based) and server-side (HTTP) approaches by the Google Maps Platform.\u003c/p\u003e\n"],["\u003cp\u003eClient-side geocoding, ideal for user-input addresses, provides a faster experience and leverages user context for improved accuracy.\u003c/p\u003e\n"],["\u003cp\u003eServer-side geocoding is suitable for geocoding pre-defined address datasets or as a fallback when client-side geocoding fails.\u003c/p\u003e\n"],["\u003cp\u003eGoogle Maps Platform's geocoding service is rate limited to 3,000 queries per minute, and each request is billed individually.\u003c/p\u003e\n"],["\u003cp\u003eConsider caching, request staggering, or inexact repeating alarms to manage costs and avoid rate limits, especially in high-frequency scenarios.\u003c/p\u003e\n"]]],["Geocoding converts addresses to geographic coordinates. Google Maps offers client-side (browser-based) and server-side (direct server queries) approaches. Client-side geocoding, preferred for user input, utilizes the Maps JavaScript API, as seen in the provided JavaScript example. Server-side geocoding, via the Geocoding API, is ideal for pre-existing datasets or as a client-side backup, and shown in the Python example that return a JSON format. Geocoding is rate-limited to 3,000 queries per minute and incurs a per-request cost.\n"],null,["Geocoding is the process of converting addresses (\"1600\nAmphitheatre Parkway, Mountain View, CA\") to geographic coordinates\n(37.423021, -122.083739), which you can use to place\nmarkers or position the map. The Google Maps Platform APIs provide two\napproaches to geocoding:\n\n- **Client-side geocoding** , which is executed in the browser, generally in response to user action. The Maps JavaScript API provides classes that make the requests for you. This approach is described in the [Maps JavaScript API\n documentation](/maps/documentation/javascript/geocoding).\n- **HTTP server-side geocoding** , which allows your server to directly query Google's servers for geocodes. The Geocoding API is the web service that provides this functionality. Typically, you integrate this service with other code that is running server-side. Server-side geocoding is described in the [Geocoding API\n documentation](/maps/documentation/geocoding).\n\nExamples of client-side and server-side geocoding\n\nHere is a sample of **client-side geocoding** which takes an\naddress, geocodes it, moves the center of the map to that location, and adds a\nmap marker there: \n\n```javascript\ngeocoder = new google.maps.Geocoder();\ngeocoder.geocode({ 'address': address }, function(results, status) {\n if (status == google.maps.GeocoderStatus.OK) {\n map.setCenter(results[0].geometry.location);\n var marker = new google.maps.Marker({\n map: map,\n position: results[0].geometry.location\n });\n }\n});\n```\n\nFor more examples, see the\n[Maps JavaScript API\ndocumentation](/maps/documentation/javascript/geocoding).\n\nHere is an example using Python to do a **server-side\ngeocoding** request: \n\n```python\nimport urllib2\n\naddress=\"1600+Amphitheatre+Parkway,+Mountain+View,+CA\"\nkey=\"my-key-here\"\nurl=\"https://maps.googleapis.com/maps/api/geocode/json?address=%s&key=%s\" % (address, key)\n\nresponse = urllib2.urlopen(url)\n\njsongeocode = response.read()\n```\n\nThis produces a JSON object with the following content: \n\n```javascript\n{\n \"status\": \"OK\",\n \"results\": [ {\n \"types\": street_address,\n \"formatted_address\": \"1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA\",\n \"address_components\": [ {\n \"long_name\": \"1600\",\n \"short_name\": \"1600\",\n \"types\": street_number\n }, {\n \"long_name\": \"Amphitheatre Pkwy\",\n \"short_name\": \"Amphitheatre Pkwy\",\n \"types\": route\n }, {\n \"long_name\": \"Mountain View\",\n \"short_name\": \"Mountain View\",\n \"types\": [ \"locality\", \"political\" ]\n }, {\n \"long_name\": \"San Jose\",\n \"short_name\": \"San Jose\",\n \"types\": [ \"administrative_area_level_3\", \"political\" ]\n }, {\n \"long_name\": \"Santa Clara\",\n \"short_name\": \"Santa Clara\",\n \"types\": [ \"administrative_area_level_2\", \"political\" ]\n }, {\n \"long_name\": \"California\",\n \"short_name\": \"CA\",\n \"types\": [ \"administrative_area_level_1\", \"political\" ]\n }, {\n \"long_name\": \"United States\",\n \"short_name\": \"US\",\n \"types\": [ \"country\", \"political\" ]\n }, {\n \"long_name\": \"94043\",\n \"short_name\": \"94043\",\n \"types\": postal_code\n } ],\n \"geometry\": {\n \"location\": {\n \"lat\": 37.4220323,\n \"lng\": -122.0845109\n },\n \"location_type\": \"ROOFTOP\",\n \"viewport\": {\n \"southwest\": {\n \"lat\": 37.4188847,\n \"lng\": -122.0876585\n },\n \"northeast\": {\n \"lat\": 37.4251799,\n \"lng\": -122.0813633\n }\n }\n }\n } ]\n}\n```\n\nThe server-side geocoder also provides an XML format as an alternative to\nJSON. For more examples, see the\n[Geocoding API\ndocumentation](/maps/documentation/geocoding) and the\n[client libraries](/maps/documentation/geocoding/client-library) for Python\nand other languages.\n\nQuota and cost considerations\n\nGeocoding costs, quotas, and rate limits drive the strategies outlined in this\ndocument.\n\nCost\n\n\n[Quota-per-day (QPD) limits are no longer in use](/maps/documentation/geocoding/usage-and-billing#requests-per-day-qpd-limits-have-ended-effective-june-11-2018) for geocoding requests.\nInstead, each geocoding request, whether client-side through the browser or server-side through the\nGeocoding API web service, is\n[billed at a per-each price](/maps/documentation/geocoding/usage-and-billing#new-payg).\nTo manage your cost of use, consider\n[capping your daily quota](/maps/documentation/geocoding/usage-and-billing#set-caps).\n| **Important:** To use the Google Maps Platform APIs, you must [enable billing](/maps/documentation/geocoding/usage-and-billing#important-enable-billing) on each of your projects. If you choose not to add a billing account, your maps will be degraded, or other Maps API requests will return an error.\n\nRate limits\n\nThe geocoding service is rate limited to 3,000 QPM (queries per minute),\ncalculated as the sum of client-side and server-side queries.\n\nWhen running client-side geocoding requests at periodic intervals, such as\nin a mobile app, your requests may return errors if all of your users are\nmaking requests at the same time (for example, all at the same second of every\nminute). To avoid this, consider one of the following:\n\n- Introduce random intervals to your requests (jitter). Ensure requests are random across your entire userbase.\n- If developing for Android, use an [inexact\n repeating alarm](https://developer.android.com/develop/background-work/services/alarms/schedule#repeating).\n- If developing for Android, select an appropriate [location\n strategy](https://developer.android.com/training/location/retrieve-current).\n\nCaching\n\nSee\n[Geocoding API Policies](/maps/documentation/geocoding/policies#pre-fetching-caching-or-storage-of-content) about caching.\n\nWhen to use client-side geocoding\n\nThe short answer is \"almost always.\" The reasons are:\n\n- Client-side request and response provide a faster, more interactive experience for users.\n- A client-side request can include information that improves geocoding quality: user language, region, and viewport.\n\nIn particular, client-side geocoding is best when geocoding addresses\nbased on input from the user.\n\nThere are two basic architectures for client-side geocoding:\n\n- Do the geocoding and the display entirely in the browser. For instance, the user enters an address on your page. Your application geocodes it. Then your page uses the geocode to create a marker on the map. Or your app does some simple analysis using the geocode. No data is sent to your server. This reduces load on your server.\n- Do the geocoding in the browser and then send it to the server. For instance, the user enters an address on your page. Your application geocodes it in the browser. The app then sends the data to your server. The server responds with some data, such as nearby points of interest. This allows you to customize a response based on your own data.\n\nWhen to use server-side geocoding\n\nServer-side geocoding is best used for applications that\nrequire you to geocode addresses without input from a client. A common example\nis when you get a dataset that comes independently of user input,\nfor instance if you have a fixed, finite, and known set of\naddresses that need geocoding. Server-side geocoding can\nalso be useful as a backup for when client-side geocoding fails.\n\nSome possible concerns are an unnecessary increase in latency for the user,\nand geocoding results of a lesser quality than client-side because less\ninformation is available in the request."]]