Javascript 谷歌地图Ya、Za和$a

Javascript 谷歌地图Ya、Za和$a,javascript,google-maps,Javascript,Google Maps,我正在使用谷歌地图查找点击位置的lat和lng。在字符串化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

我正在使用谷歌地图查找点击位置的lat和lng。在字符串化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}}

让我烦恼的是,他们一夜之间改变了对象的名称。他们为什么要这样做?有没有可靠的方法来找到纬度和经度呢?

好的。我找到了部分答案

我们不需要麻烦这些名字。我们可以用函数代替

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

内部名称将随代码更改而更改:如果引入了另一个标记,则缩小为
Ya
的变量可能最终成为
Za


您应该永远不要访问内部引用始终使用文档化方法。

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


在过去的3周里,我一直在制作一个非常精细的地图,作为一个js初学者,理解文档已经够难了,更不用说为什么我的地图的一半消失了。Xa,Ya换成了Ya,Za,我花了45分钟试图找出哪里出了问题。吸取的教训;非常感谢。