谷歌地图标记随机消失

4
我一直在为一个网站编写脚本,其中有3个下拉框,一个用于度象限(纬度,经度)。当用户选择度象限时,它会提示他们是否要使用纬度/经度分钟的地图。如果他们选择使用,则会显示一个地图,并且他们可以使用标记指示其在该象限内的位置。
问题是有时更改度数下拉菜单时,标记将从地图中消失。现在,有时它似乎非常特定-一旦它在一个上失败了,它似乎永远不会为它工作。但是,如果您随机地不断更改值,那么在某些时候,它会“解除卡住”并再次工作,而其他则会失败。
检查开发工具后,看起来包围谷歌标记图标的div有时会扩展到全宽,0高度(显然接近光速),并且图像将从其html中消失。
更奇怪的是,在那些无法呈现的情况下,如果我在红色象限中点击周围,例如左上角,很多时候标记会像应该放置在那里一样。但是,将标记拖动到象限的另一个角落时,它会消失-不应该运行/处理拖动事件的任何代码。我无法解释这一点。
我有一个JSFiddle来展示这个问题,希望有人能帮我找出问题所在。根据脚本,在标记位置设置后,我在控制台中验证它,它仍然显示为设置的值,所以我不知道为什么它不起作用。
PS-请原谅我的JS代码,因为它目前是混沌理论的实验,同时试图让它工作。 Fiddle - http://jsfiddle.net/TkE87/light/ Result - 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

下拉菜单更改后刷新地图。 - Deep Sharma
1个回答

1
经过对Google Maps API的深入挖掘,我得出结论,这似乎是Google Maps实际v3脚本的错误。我无法通过触发调整大小事件来重新绘制地图或尝试其他任何方法使地图正常工作。最终,我只能重新编写脚本,在度数选择更改时丢弃地图、标记、边界和矩形,并每次从头开始重建以确保标记始终显示。虽然很丑陋,但除非这里/Google的某个人说并能提供修复程序,否则我就只能接受这种情况。

我不相信。一旦标记出现在地图上,它唯一消失的时候是当你从下拉菜单中选择前两个选项之一(24,-74或28,-75)- 就是这样(也许与负经度有关?)。你的代码中有一个错误,但它非常复杂 - 要尝试从中得到一个合理、可重现的测试案例,除了你自己以外,任何人都需要很长时间。 - Adam Jenkins
@Adam 实际上,我已经从下拉菜单中删除了前两个条目,因为它们实际上不在系统内。 在最初的两个条目中,系统会强制将lng设置为+,因此位置指针会出现在地图上,但它实际上位于地球的相反侧。 此外,如果您按照原始问题中的测试用例进行操作,您会发现它确实出现在+lng上。另外,您可以在该区域单击,位置指针会出现,拖动它,然后它就消失了,而不运行任何我的代码——这不是我的代码的错误。 另外,请问能否提供您认为这个代码过于复杂的理由? 我一直乐意接受改进意见。 - tostringtheory

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接