【问题标题】:Google Maps API function map.getCenter()谷歌地图 API 函数 map.getCenter()
【发布时间】:2014-06-13 01:21:06
【问题描述】:

当用户调整他的地图时,我将 Google Map API 设置的缩放和位置保存在 cookie 中。当他们回来时,地图在同一个地方。该功能大部分时间都有效:

   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”。不是连续的,而是大部分。这是怎么回事。它在两个不同的浏览器上以相同的方式发生。

【问题讨论】:

  • 环顾网络,我找到了以下答案: > Gf 变成了 Vf,Ma 变成了 Pa,Na 变成了 Qa Google 通过编译器/优化器运行他们的 Maps API JavaScript,也许是Closure Compiler [1] 或类似的东西,它缩短了不打算供外部使用的名称。因此,这些名称可能会在新版本中更改,完全取决于优化器。

标签: javascript maps


【解决方案1】:

使用 API 函数并保存所需的数据,而不是结构

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

把它读作

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

Google 会不时更改内部变量的名称 Error on Latitude and Longitude - Google Maps API JS 3.0

【讨论】:

    猜你喜欢
    • 2017-03-26
    • 1970-01-01
    • 2015-02-17
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 2013-08-05
    相关资源
    最近更新 更多