2015-05-04 129 views
0

从一天到另一天Gmaps.js库停止工作...我创建了一个带有3个标记的地图,它们有InfoWindows,并且我在InfoWindow中添加了一个小路由选项在那里你可以输入你的地址,Gmaps会将你引导到那个地方。Gmaps.js停止工作

现在在过去2周内没有改变任何东西,我无法再继续工作:地图加载时没有任何问题,但是当我点击标记时,地图会自行消失。

继承人的网址:http://gruber.tv/z/#standorte

当我在Firefox加载地图,我可以看到很多“太多递归”错误,他们都来自谷歌的main.js

我希望有人能帮帮我!

问候 iDave

+0

有控制台错误,说oldUrl没有定义。解决后,它解决了递归? –

+0

没有那个控制台错误之前有 – iDave

+0

但它现在所以你需要解决它:) –

回答

0

看看你的代码,处理click事件为每个标记:

map.setCenter(e.position.k, e.position.D); 

在gmaps的setCenter()方法采用经纬度参数。 kD看起来像这些明智的名字吗? :-)

我怀疑你是在开发代码的时候通过在开发者工具中查找来找到这些属性的,对吗?在那行代码上设置一个断点,当你到达那里时再看一看。

哎呀,没有kD属性有更多。现在它具有AF属性。那么,这不会。

但您是否看到__proto__产权在下面?展开,你会看到position对象的可用方法。请注意那里的lat()lng()方法。这使得很多更有意义,所以试戴:

map.setCenter(e.position.lat(), e.position.lng()); 

这里发生了什么事:e.position是从谷歌地图API一个LatLng对象。 API对象具有许多未记录的内部属性,以及记录的属性和方法。 lat()lng()是来自LatLng对象的documented methods to get the latitude and longitude。您发现的其他属性在API中内部使用,但它们不适用于您自己的代码。谷歌通过一个“缩小器”运行所有的JavaScript API代码,可以任意改变内部名称以缩短代码,但保持记录的公开名称不变。因此,每隔几周当他们更新API时,任何未公开的内部名称都可能会改变。

+0

完美!非常感谢你! – iDave

+0

很高兴为您提供帮助。我在最后添加了一个注释,其中提供了有关此处发生的更多信息。 –