2012-02-15 21 views
10

Zapisuję Zoom i lokalizację ustawienia Google Map API w plikach cookie, gdy użytkownik dostosowuje swoją mapę. Kiedy wracają, mapa jest w tym samym miejscu. Funkcja działa przez większość czasu:Google Maps Funkcja API map.getCenter()

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

Na stronie dekodowania przy użyciu:

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

Aby zobaczyć co mi chodzi, przez większość czasu, to:

Qa; 
    Pa; 

Więc ustawiłem swój kod, aby załadować mapę z tymi zmiennymi i wszystko jest w porządku. Pewnego dnia strona przestaje działać, a zwrócone parametry nie mają już "Q" jak w Qa, ale "O" jak w Oa. Więc zmieniłem kod i działało przez jeden dzień, a następnie to, co wysyłało Google, zmieniło się z powrotem na Qa. Zmieniłem to z powrotem.

Czas mija. Dzisiaj kod zaczyna działać sporadycznie i umieszczam to narzędzie do debugowania, a teraz zamiast "Pa" na drugiej zmiennej otrzymuję "Ra". Nie ciągle, ale w większości. Co tam. Dzieje się to w dwóch różnych przeglądarkach w ten sam sposób.

+0

Przeglądając sieć, znalazłem następującą odpowiedź: > Gf okazało się Vf, Ma okazało się Pa i Na okazało się Qa Google uruchamia interfejs API JavaScript API przez kompilator/optymalizator, być może kompilator zamykania [1] lub coś w tym stylu, co skraca nazwy, które są nie przeznaczone do użytku zewnętrznego. Nazwy te mogą się zmienić w nowej wersji, całkowicie pod wpływem kaprysu optymalizatora. –

Odpowiedz

19

funkcje API i zapisać wymagane dane, a nie strukturę

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

i odczytać go jako

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

Google zmienia nazw zmiennych wewnętrznych od czasu do czasu Error on Latitude and Longitude - Google Maps API JS 3.0