style multiple infowindows info google javascript google-maps caching google-maps-api-3

javascript - multiple - popup google map api



Google Maps v3: ¿Mapa de almacenamiento de mosaicos en el cliente? (3)

Esto es realmente posible con HTML5 y su característica de manifiesto de caché. Sugeriría que esta pregunta (y respuesta) sea actualizada.

Los propios programadores de Google han abordado este problema y, lamentablemente, la información no está bien difundida.

Lecturas Requeridas

  1. Primero, eche un vistazo a la publicación de blog de Google Code aquí: http://googlecode.blogspot.com/2010/04/google-apis-html5-new-era-of-mobile.html
  2. Luego lea el post de Missouri State: http://blogs.missouristate.edu/web/2010/05/12/google-maps-api-v3-developing-for-mobile-devices/

La técnica

  • Debe almacenar en caché todas las URL utilizadas por Google Maps
  • Emplea métodos para luchar contra los métodos de caché persistentes de Chrome y Firefox eliminándolos de "sitios web sin conexión"
  • Todas las personalizaciones deben ser del lado del cliente en javascript

Su archivo de caché se verá así (según el estado de Missouri):

CACHE MANIFEST /map/mobile/examples/template.aspx /map/mobile/examples/template.css /map/mobile/examples/template.js NETWORK: http://maps.gstatic.com/ http://maps.google.com/ http://maps.googleapis.com/ http://mt0.googleapis.com/ http://mt1.googleapis.com/ http://mt2.googleapis.com/ http://mt3.googleapis.com/ http://khm0.googleapis.com/ http://khm1.googleapis.com/ http://cbk0.googleapis.com/ http://cbk1.googleapis.com/ http://www.google-analytics.com/ http://gg.google.com/

Advertencias

Deberá estar completamente basado en HTML5 y reconocer el impacto que esto tendrá en sus usuarios. Esta situación es útil cuando sus usuarios están actualizados sobre los estándares / dispositivos del navegador o usted tiene control sobre las opciones de los usuarios.

Espero que esto ayude.

Estoy usando Google Maps JS API v3 para un proyecto. ¿Hay alguna forma de pedir al mapa que almacene en caché los mosaicos en la máquina del cliente para que cuando actualicen el navegador, los mosaicos no tengan que descargarse todos nuevamente?

Muchos de mis clientes están en conexiones celulares donde la descarga del mapa lleva una cantidad de tiempo considerable.

¡Gracias!


La respuesta anterior sobre la característica de manifiesto de caché es incorrecta. Si lees la especificación en http://www.w3.org/TR/html5/offline.html , en "5.7.3 La sintaxis del manifiesto de caché" verás que la sección de RED del archivo de manifiesto en realidad enumera los recursos que NO debe ser almacenado en caché:

# here is a file for the online whitelist -- it isn''t cached, and # references to this file will bypass the cache, always hitting the # network (or trying to, if the user is offline). NETWORK: comm.cgi

El ejemplo del cartel anterior en realidad dice:

1) caché los siguientes archivos:

/map/mobile/examples/template.aspx /map/mobile/examples/template.css /map/mobile/examples/template.js

2) obtener lo siguiente de la red:

http://maps.gstatic.com/ http://maps.google.com/ http://maps.googleapis.com/ http://mt0.googleapis.com/ http://mt1.googleapis.com/ http://mt2.googleapis.com/ http://mt3.googleapis.com/ http://khm0.googleapis.com/ http://khm1.googleapis.com/ http://cbk0.googleapis.com/ http://cbk1.googleapis.com/ http://www.google-analytics.com/ http://gg.google.com/


Por defecto, Google Maps devuelve las imágenes en caché (puede ver esto en la pestaña de red de la consola).

Si el usuario tiene problemas para almacenar las imágenes en la memoria caché, probablemente se deba a que desactivaron el caché.