Gmaps.js 停止工作

Gmaps.js stopped working

从一天到另一天,Gmaps.js 库停止工作...我创建了一张地图,上面有 3 个标记,他们有 InfoWindows,我在 InfoWindow 中添加了一个小路由选项,其中您可以输入您的地址,Gmaps 会将您带到那个点。

现在,在过去 2 周内没有进行任何更改,我无法再使用它了:地图加载没有任何问题,但是当我单击标记时,地图会自行终止。

继承人URL:http://gruber.tv/z/#standorte

当我在 Firefox 中加载地图时,我看到许多 "too much recursion" 错误,它们都来自 Google 的 main.js

希望有人能帮帮我!

最好的问候 iDave

查看处理每个标记的 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 是 Google 地图 API 中的一个 LatLng 对象。 API 对象有许多未记录的内部属性,以及记录的属性和方法。 lat()lng() 是来自 LatLng 对象的 documented methods to get the latitude and longitude。您发现的其他属性在 API 内部使用,但它们不适合在您自己的代码中使用。 Google 通过 "minifier" 运行他们所有的 JavaScript API 代码,该 "minifier" 任意更改内部名称以缩短代码但保持记录的 public 名称完整。因此,每隔几周,当他们更新 API 时,任何未记录的内部名称都可能发生变化。