4

我一直在为一个有 3 个选择列表的站点编写脚本,其中一个用于度数象限(纬度、经度)。这个想法是,当用户选择一个度数象限时,它会提示他们是否想在纬度/经度分钟内使用地图。如果他们选择加入,则会显示一张地图,他们可以使用标记来指示他们在该象限内的位置。

问题是有时在更改度数下拉时,标记会从地图上消失。现在,有时它似乎非常具体——一旦它失败了,它似乎就不再适用了。但是如果你不断地随机改变值,在某些时候,它会“解开”并再次工作,而其他人则失败。

检查开发工具后,似乎围绕谷歌标记图标的 div 有时会爆炸到全宽、0 高度(显然接近光速),并且图像将从其 html 中消失。

更奇怪的是,在那些无法渲染的地方,如果我在红色象限中点击,比如左上角,很多时候标记会按原样放置在那里。但是然后将象限中的标记拖到另一个角落,它就会消失 - 没有代码应该运行/处理拖动事件。我无法解释这一点。

我有一个 JSFiddle 来展示这个问题,如果有人能帮助我找出问题所在,我将不胜感激。根据脚本,设置标记位置后,我在控制台中对其进行验证,它仍然显示为设置的内容,所以我不知道为什么它不起作用。

PS - 请原谅我的 JS 代码,因为它目前是混沌理论的一个实验,同时试图让它工作。

小提琴- http://jsfiddle.net/TkE87/light/

结果- http://jsfiddle.net/TkE87/embedded/result/

PSS - 请在下面找到一个测试用例,至少对我来说,它重现了所有这些问题:

Select 25,82
Click use map
Select 25,81
Marker shown
Select 25,80
Marker gone
Select 24,80
Marker gone
Select 24,81
Marker shown
Select 24,80
Marker gone
Click in upper left corner
Drag marker towards right in red square
Marker disappears ~1/4 way in
4

1 回答 1

1

在对 Google Maps 的 API 进行了一些挖掘之后,我得出的结论是,这似乎是 Google Maps 的实际 v3 脚本的错误。我无法通过触发调整大小事件来重绘地图,更不用说我尝试过的其他任何事情,从而使地图与解决方法一起正常工作。当度数选择发生变化时,我最终只需要重新编码脚本以丢弃地图、标记、边界和矩形,并且每次都从头开始重建它以确保标记始终显示。可怕,但除非来自这里/谷歌的人另有说明并且可以提供修复,否则我就是这种情况。

于 2013-11-10T00:09:15.513 回答