Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图V3未加载(询问和回答)_Javascript_Maps - Fatal编程技术网

Javascript 谷歌地图V3未加载(询问和回答)

Javascript 谷歌地图V3未加载(询问和回答),javascript,maps,Javascript,Maps,这个问题已经回答了。我发现了问题所在。 但是,我在这里发布问答,因为其他人可能也处于同样的困境 我的谷歌地图代码来自我在网上找到的样本 在“坏”代码中有一行如下所示: var latlng= new google.maps.LatLng(results[0].geometry.location.Ua, results[0].geometry.location.Va); 这个代码一直工作到昨晚。 使用firebug检查对象,结果发现位置现在的形式是:{Ta:number,Ua:number} 我

这个问题已经回答了。我发现了问题所在。 但是,我在这里发布问答,因为其他人可能也处于同样的困境

我的谷歌地图代码来自我在网上找到的样本

在“坏”代码中有一行如下所示:

var latlng= new google.maps.LatLng(results[0].geometry.location.Ua, results[0].geometry.location.Va);
这个代码一直工作到昨晚。 使用firebug检查对象,结果发现位置现在的形式是:{Ta:number,Ua:number}

我的直接解决方法是在需要lat和/或lng时使用lat()和lng()方法

另一个修复方法是以更智能的方式实例化我的地图

是的,使用firebug inspector依赖在对象深处发现的属性是愚蠢的。是的,作为一个谷歌地图的noob,依靠几乎没有知识的复制粘贴获得了应有的回报

但是,在谷歌上快速搜索发现,许多人(除了我借来的“示例”之外)也直接使用.Va属性


如果你对发生这种情况的原因感兴趣,很简单:示例使用的是API的未记录内部,因此当Google更新Maps JS文件时,它崩溃了

更具体地说,
Ua
Va
是由生成的自动生成变量名。看起来谷歌删除了原始源代码中的一个变量,标签向上移动(
Ua
Va
→ <代码>Ta,
Ua

我敢打赌,我确切地知道坏样本的作者是如何想出他的代码的。他在浏览器的开发工具中检查了一个(在您的示例中是
位置
中的对象类型),发现这两个命名奇怪的变量包含了他想要的数据,于是就这样做了。由于
lat
lng
方法“隐藏”在
LatLng
原型中,他没有注意到它们

这里有两个教训可以吸取:

  • 始终使用;其他任何内容都是可能更改的实现细节
  • 不要相信某些人网站上的代码是一个很好甚至很有能力的例子。谷歌地图的情况尤其如此,那里有大量的文档和官方示例

  • 如果答案是肯定的,那么人们就会从中找到答案,没有必要这样做。在我看来,您可以要求删除不会影响您声誉的内容,或者其他人会以任何方式删除该内容。:)Stack Overflow是一个问答网站,而不是一个讨论论坛。请随意将您的问题编辑成真实的问题,并自己提供答案。但就目前情况而言,这不是一个真正的问题,可能会就此结束。我试图按照上的建议提问和回答这个问题。也许这种方法已经过时了。。。。。显示出我是多么的新。从未想过缩小。谢谢你花时间解释。