gpt4 book ai didi

javascript - Google map V3 未加载(询问和回答)

转载 作者:行者123 更新时间:2023-12-02 19:45:40 25 4
gpt4 key购买 nike

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

我的谷歌地图代码来 self 在网络上找到的示例。

在“坏”代码中,有一行看起来像这样:

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() 方法。

另一个修复是以更智能的方式实例化我的 map 。

是的,依赖使用 Firebug 检查器在对象深处发现的属性是愚蠢的。是的,作为一个谷歌地图菜鸟,在知识很少或根本没有知识的情况下依靠复制粘贴获得了应有的返回。

但是,快速进行谷歌搜索发现许多人(除了我借用的“样本”之外)也直接使用 .Va 属性。

因此,如果这也是他们的问题,请在此发帖。

最佳答案

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

更具体地说,UaVa 是由 minification 自动生成的变量名称。 。看起来 Google 删除了原始源中的变量,并且标签向上移动 (Ua,VaTa,Ua).

我敢打赌我确切地知道坏样本的作者是如何想出他的代码的。他检查了LatLng (示例中 location 中的对象类型)在他的浏览器开发工具中,看到这两个名称奇怪的变量包含他想要的数据,然后就使用了它。由于 latlng 方法“隐藏”在 LatLngprototype 中,因此他没有注意到它们.

这里有两个教训值得学习:

  1. 始终使用documented API methods ;其他任何内容都是可能会更改的实现细节。
  2. 不要相信某些人网站上的代码是一个很好的甚至是如何做事情的有力示例。对于 Google map 来说尤其如此,其中有大量文档和官方示例。

关于javascript - Google map V3 未加载(询问和回答),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9916358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com