2012-02-15 35 views
10

Estoy guardando el Zoom y la Ubicación de la configuración de Google Map API en las cookies a medida que el usuario ajusta su mapa. Cuando vuelven, el mapa está en el mismo lugar. La función trabaja la mayor parte del tiempo:Función Google Maps API map.getCenter()

var h = JSON.stringify(map.getCenter(), null, 2); 
    jQuery.cookies.set("YD44635center",h,cookieOptions); 

En el lado de decodificación usando:

locationVar = jQuery.cookies.get("YD44635center"); 
    var temp = ""; 
    // for testing: 
    for(var x in locationVar){ 
     temp += x + "\n"; 
    } 
    alert(temp); 

Para ver lo que estoy haciendo, la mayoría de las veces, es:

Qa; 
    Pa; 

Así que configuro mi código para cargar el mapa con esas variables y todo está bien. Entonces, un día , la página deja de funcionar y los parámetros devueltos ya no tienen una "Q" como en Qa, sino una "O" como en Oa. Así que cambié el código y funcionó durante un día y luego lo que Google estaba enviando cambió nuevamente a Qa. Lo cambié de vuelta.

El tiempo pasa. Ahora, hoy, el código empieza a funcionar intermitentemente y vuelvo a poner esa cosa de depuración y ahora, en lugar de "Pa", en la segunda variable, obtengo "Ra". No de manera continua sino principalmente. Que pasa. Está sucediendo en dos navegadores diferentes de la misma manera.

+0

Buscando en la web encontré la siguiente respuesta: > Gf resultó en Vf, Ma resultó en Pa y Na resultó en Qa Google ejecuta su JavaScript API de Maps a través de un compilador/optimizador, tal vez el compilador de cierre [1] o algo similar, que acorta los nombres que son no destinado para uso externo. Entonces esos nombres pueden cambiar en una nueva compilación, completamente según el capricho del optimizador. –

Respuesta

19

funciones Uso de la API y guardar los datos necesarios, no la estructura

var c = map.getCenter(); 
jQuery.cookies.set("YD44635center", c.lat() + ',' 
            + c.lng() + ',' + map.getZoom(), 
                cookieOptions); 

y leerlo como

var temp = jQuery.cookies.get("YD44635center").split(','); 

Google está cambiando los nombres de las variables internas de vez en cuando Error on Latitude and Longitude - Google Maps API JS 3.0