google maps - georreferenciación - Límites de geocodificación de la API de Javascript de Google
google maps api javascript (5)
¿Cuáles son los límites para la geocodificación del lado del cliente con Google Maps JavaScript API v3?
Mi investigación:
- La API PHP de Google Maps tiene un límite de 2500 solicitudes de código geográfico por día ( https://developers.google.com/maps/documentation/geocoding/#Limits )
- Google Maps Javascript API v3 tiene un límite de 25000 cargas de mapas por día ( https://developers.google.com/maps/documentation/javascript/usage )
- Google sugiere usar la API de JavaScript para geocodificar para evitar el límite de 2500 a través de la API de PHP. Indica "ejecutar la geocodificación del lado del cliente, generalmente no tiene que preocuparse por su cuota" ( https://developers.google.com/maps/articles/geocodestrat#client )
Sin embargo, en ninguna parte de la documentación se indica cuáles son los límites de codificación geográfica a través de la versión 3 de la API de JavaScript de Google Maps.
(Esto me ha estado molestando por un tiempo, y lo he investigado en más de una ocasión y no he podido encontrar una respuesta sólida)
De acuerdo con el artículo que vinculó (en Cuándo usar la geocodificación del lado del servidor ):
El límite de solicitud de 2.500 es por dirección IP.
Entonces, ¿qué quieres decir con límite? ¿Límite para la aplicación de alojamiento o para un cliente que la ejecuta?
La declaración anterior me dice que no hay límite para el "host"; sin una clave o URL de referencia obligatorias, no hay una (buena) forma para que Google determine desde dónde se origina una solicitud de geocodificación. Esa es la belleza de REST, entre otras cosas.
También me dice que incluso si pudieran aplicarlo, no han establecido un límite. Esto probablemente sería contraproducente para su modelo de negocio.
Recientemente le pregunté sobre la biblioteca de Places (o más bien, lo investigué y llegué a una conclusión):
En cuanto a la biblioteca de Places para Google Maps límites de cuota de la API
Básicamente, parece que las cargas de Map con key están limitadas a 25,000 por día por dominio (eso podría no ser correcto, pero estoy bastante seguro de que así es).
Los límites de geocodificación están limitados de la siguiente manera:
2,500 si está utilizando una clave API sin configurar la facturación 100.000 si está utilizando una clave API y ha configurado la facturación
Si está haciendo geocodificación del lado del servidor (resultados previos al almacenamiento en caché o similares), su geocodificación es por dominio, y se agotará rápidamente. (es decir, de forma similar a si está haciendo solicitudes de lugares usando la API REST como lo siguiente: https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=500&types=food&name=harbour&sensor=false&key=XXXX
)
Si está utilizando la biblioteca de JavaScript, use la funcionalidad de autocompletar o PlacesService así:
service = new google.maps.Geocoder();
luego, el límite (2.500 o 100.000, respectivamente) es por usuario final, por lo que su límite se ajusta a su base de usuarios.
Trabajo en el soporte de Maps for Business en Google. La siguiente es mi opinión personal, no la de Google, ¡pero digamos que estoy bastante familiarizado con este tema!
En primer lugar, es importante distinguir entre la geocodificación del lado del cliente (llamadas de JavaScript a google.maps.Geocoder) y la geocodificación del lado del servidor (solicitudes de HTTP a / maps / api / geocode). Esta pregunta y respuesta se refieren específicamente a la geocodificación del lado del cliente; para los límites del lado del servidor, mira here . En particular, el límite de 2.500 solicitudes por IP por día mencionado a menudo se aplica solo a la geocodificación del lado del servidor, no al lado del cliente.
Entonces, la respuesta corta es que no hay un límite de consulta documentado específicamente para la geocodificación del lado del cliente . Una vez que un cliente ha cargado la biblioteca de la API de JavaScript de Google Maps, puede hacer tantas solicitudes de geocodificación como quiera, siempre que se realicen a una velocidad razonable. Dos reglas generales para asegurarse de no tener problemas:
- Inicie la geocodificación en respuesta a la interacción del usuario, y estará bien incluso si hay ráfagas de solicitud cortas (por ejemplo, haga clic en un botón para geocodificar varias direcciones).
- Capture los errores OVER_QUERY_LIMIT y trátelos con elegancia (por ej., Retroceso exponencial). Here hay un código de muestra en Python.
Pero, por favor, no traten de enrutar el geocodificador o de manipularlo durante horas, hay protecciones contra el abuso.
ACTUALIZAR
A partir de 2017, la cuota del lado del cliente se calcula con la cuota del servicio web correspondiente. Por favor, eche un vistazo a la respuesta de Christophe Roussy.
Siempre lea lo último que pueda encontrar en un sitio web oficial de Google para obtener la versión adecuada de API, ¡una respuesta anticuada no es una referencia actualizada!
https://developers.google.com/maps/documentation/geocoding/usage-limits
Esto es lo que dijo cuando escribí esta respuesta:
Límites de uso de la API de geocodificación de Google Maps
2,500 solicitudes gratuitas por día, calculadas como la suma de las consultas del lado del cliente y del lado del servidor.
50 solicitudes por segundo, calculadas como la suma de las consultas del lado del cliente y del lado del servidor.
Habilite la facturación de pago por uso para desbloquear cuotas más altas:
$ 0.50 USD / 1000 solicitudes adicionales, hasta 100.000 por día.
En general, creo que Google está contento siempre que las consultas provengan de usuarios humanos reales, ya que esto tiene algún valor para ellos.
También hay formas de guardar algunas solicitudes almacenando en caché los resultados hasta por 30 días: https://developers.google.com/maps/premium/optimize-web-services#optimize
Basado en https://developers.google.com/maps/articles/geocodestrat ,
La geocodificación del lado del cliente a través del navegador tiene una tasa limitada por sesión de mapa, por lo que la geocodificación se distribuye entre todos los usuarios y se escala con su base de usuarios.
Entonces, ¿qué son los límites de velocidad por sesión de mapa?
Como los límites de geocodificación son por sesión de usuario, no hay riesgo de que su aplicación alcance un límite global a medida que crece su base de usuarios. La geocodificación del lado del cliente no tendrá un límite de cuota a menos que realice un lote de solicitudes de geocodificación dentro de una sesión de usuario. Por lo tanto, al ejecutar la geocodificación del lado del cliente, generalmente no tiene que preocuparse por su cuota.
Ok, ¿cuál es el límite? Aquí vamos
https://developers.google.com/maps/documentation/business/articles/usage_limits
Con un límite de velocidad o 10 QPS (consultas por segundo), al enviar la solicitud número 11, su aplicación debe verificar la marca de tiempo de la primera solicitud y esperar hasta que haya transcurrido 1 segundo. Lo mismo debe aplicarse a los límites diarios.
Todavía no está claro? yo también.
Esta es la respuesta más detallada que encontré en su documento y dice "límite de velocidad de 10 solicitudes por segundo"
https://developers.google.com/maps/documentation/business/webservices/quota
No creo que una sesión de usuario pueda enviar 10 solicitudes por segundo, por lo tanto, lo considero ilimitado.