【问题标题】:Google Maps markers disappearing randomly谷歌地图标记随机消失
【发布时间】:2013-11-18 13:22:00
【问题描述】:

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

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

在检查开发工具后,似乎围绕着 google 标记图标的 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

【问题讨论】:

  • 下拉更改后刷新地图。

标签: jquery html google-maps google-maps-api-3 google-maps-markers


【解决方案1】:

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

【讨论】:

  • 我不买。一旦标记在地图上,它消失的唯一时间是当您从下拉列表中选择前两个选项之一(24,-74 或 28,-75) - 就是这样(也许它与负 lng 的有关?)。您的代码中某处有错误,但非常复杂 - 尝试从中获得合理、可重现的测试用例,除了您自己之外,任何人都需要很长时间。
  • @Adam 实际上,我从下拉列表中删除了前两个条目,因为它们实际上不在系统中。对于前两个条目,系统强制 lng 为 +,因此地图上的大头针在地图上,但它位于地球的另一侧。此外,如果您遵循原始问题中的测试用例,您可以看到它确实发生在 +lng 上。此外,您可以在该区域中单击,pin 显示,拖动它,然后它消失,而无需运行我的任何代码 - 这不是我的代码中的错误。另外,你能说出你为什么说令人费解的理由吗?我总是乐于接受改进的想法。
猜你喜欢
  • 2012-12-19
  • 1970-01-01
  • 2012-12-04
  • 2013-01-07
  • 1970-01-01
  • 1970-01-01
  • 2011-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多