2

我们有一张由我们的一些学生创建的校园地图。在大多数情况下,它运行良好,但有一个我们无法清除的持续错误。有一个侧边栏列出了地图上表示的建筑物和兴趣点,单击时,在建筑物/兴趣点的多边形上[模拟单击][1]。

function sideClick(poly) {  
    google.maps.event.trigger(buildingpoi[poly],'click');   
};

其中 buildingpoi[i] 是一个数组,其中包含有关每个多边形的信息。

每当触发点击时,它指的是一个名为 shapeClick() 的方法,该方法处理信息的显示并将地图重新​​定位到建筑物/兴趣点的中心。不管是多边形本身还是侧边栏中的链接,这个方法执行完全没有错误。

但是在使用sideClick()函数的时候,或者代码中调用click触发器的时候,Google API文件中出现了错误,即main.js文件:

TypeError: b is undefined
...(a.Va)||b.set("poly",null)})]};function VH(a){var b=a.Se;bb||(Q(Xe ,函数(c){...

此错误似乎发生在成功执行 shapeClick() 方法后,这表明错误在于 - 如错误消息中所述 - 在调用 shapeClick() 后的某个时间点在 GMaps API main.js 文件中。通常,这不会导致前端出现问题,但是当我尝试包含另一个调用 sideClick() 的方法时,由于错误,我放置在 sideClick() 之后的任何代码都不会执行。

我已经尝试了一些我自己的测试/修复,但我能做的最好的就是缩小触发错误的位置。我的搜索似乎也得出了相关但不同的结果。我想答案可能很简单,但对我来说一直难以捉摸。

地图:https ://www.beloit.edu/maps/

4

2 回答 2

2

尽管您没有访问event- 参数shapeClick(触发事件时不会提供的内容),但似乎 API 在内部尝试访问此参数。

PolyMouseEventAPI 尝试读取(这event是预期的)的顶点属性(不要问我为什么)。

访问未定义对象的属性会导致错误,这就是消息所说的。

触发事件时提供一个空对象作为参数:

google.maps.event.trigger(buildingpoi[poly], 'click',{});

...并且错误将消失(访问现有对象的未定义属性不是错误)

于 2013-10-29T19:06:52.090 回答
0

是否如您所说的 buildingpoi[i] 是一个包含多边形信息的数组?还是对多边形本身的引用?

这个函数需要对实际多边形的引用,如果它在一个数组中就可以了。

于 2013-10-29T19:04:14.257 回答