2012-02-15 72 views
10

我在用戶調整他的地圖時將縮放和Google Map API設置的位置保存在cookie中。當他們回來時,地圖是在同一個地方。使用Google Maps API函數map.getCenter()

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

在解碼方面:功能工作的大部分時間

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

要看看我得到,大部分的時間是:

Qa; 
    Pa; 

所以我設置我的代碼來加載這些變量的地圖,一切都很好。然後有一天 頁面停止工作,並且返回的參數在Qa中不再具有「Q」,而是像在Oa中那樣具有「O」。所以我改變了代碼,它工作了一天,然後谷歌發送的內容又變回了Qa。我改回來了。

時間流逝。現在,代碼開始間歇性地工作,並且我把這個調試的東西放回去,現在取代了第二個變量「Pa」,我得到了「Ra」。不是連續但大部分。這是怎麼回事。它以同樣的方式發生在兩個不同的瀏覽器上。

+0

環顧網絡我發現了以下答案: > Gf變成了Vf,Ma變成了Pa並且Na變成了Qa Google通過編譯器/優化器(可能是Closure Compiler [1]或類似的東西)來運行他們的Maps API JavaScript,縮短了名稱不打算用於外部使用。所以這些名稱可能會在新版本中發生變化,完全取決於優化器的意圖。 – 2012-02-15 02:54:04

回答

19

使用API​​函數和保存所需的數據,而不是結構

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

,並把它讀作

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

谷歌正在改變內部變量的名字不時 Error on Latitude and Longitude - Google Maps API JS 3.0