【问题标题】:Google maps Ya, Za and $a谷歌地图 Ya、Za 和 $a
【发布时间】:2012-04-18 13:51:41
【问题描述】:

我正在使用谷歌地图来查找点击位置的纬度和经度。将javascript事件对象字符串化后,我发现

{"latLng":{"Za":25.800813110356653,"$a":78.7055234375},"pixel":{"x":689,"y":336},"va":{"x":183.96837222222223,"y":108.99927181860028}}

所以 Za 是 lat 而 $a 现在是 lng。

虽然两天前,我使用完全相同的代码并获得相同的对象:

{"latLng":{"Ya":25.800813110356653,"Za":78.7055234375},"pixel":{"x":689,"y":336},"va":{"x":183.96837222222223,"y":108.99927181860028}}

令我困扰的是他们在一夜之间更改了对象名称。他们为什么要这样做,有没有可靠的方法来代替经纬度?

【问题讨论】:

    标签: javascript google-maps


    【解决方案1】:

    内部名称会随着代码的变化而变化:如果引入了另一个标记,那么一个被缩小为Ya 的变量最终可能是Za

    您应该切勿访问内部参考资料。 始终使用记录在案的方法。

    【讨论】:

    • 在过去的 3 周里,我一直在制作一张非常精细的地图,作为一个 js 初学者,理解文档已经够难的了,更不用说为什么我的一半地图消失了。 Xa,Ya 切换到 Ya,Za,我花了最后 45 分钟试图找出问题所在。学过的知识;谢谢!
    【解决方案2】:

    好的。我已经部分找到了答案。

    我们不需要打扰名称。我们可以使用函数来代替。

    lat = e.latLng.lat();
    lon = e.latLng.lng();
    

    【讨论】:

      【解决方案3】:

      Google 不会更改已发布方法的名称。但是,每当部署更新时,地图脚本文件都会通过一个混淆过程运行,该过程将代码中熟悉的名称减少为您尝试引用的短名称。每次对代码进行混淆时,结果都可能不同。正如 Andrew 上面指出的,如果引入了新方法或变量,则可以摆脱之前的混淆顺序。 (他们甚至可能会定期运行此过程,以防止人们像您在上面所做的那样访问内部成员)。

      http://en.wikipedia.org/wiki/Obfuscation_%28software%29

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-13
        • 2010-11-07
        • 2015-12-20
        相关资源
        最近更新 更多