2012-02-15 45 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