3

这个让我很困惑,我希望第二双眼睛能够指出问题所在。我意识到我的抽象库增加了很多额外的复杂性,但我在想其他人可能在他们的实现中看到了类似的东西。我还尝试将其归结为尽可能简单和有针对性的案例。

问题是无法拖动通过 Google Maps API 创建并添加到地图并设置为可拖动的标记。这曾经工作得很好,但是我在图书馆某处所做的改变破坏了这个功能。要重现,请转到http://www.nps.gov/npmap/support/library/examples/map-defaults.html?api=google,然后将以下代码粘贴到浏览器 Web 开发控制台中:

var marker = new google.maps.Marker({
  position: NPMap.Map.Google.map.getCenter(),
  draggable: true,
  map: NPMap.Map.Google.map
});

标记应该是可拖动的,但事实并非如此。

几点注意事项:

  • 标记仍然是可点击的,并且似乎所有标记事件(鼠标悬停等)都正常工作
  • 添加到地图中的线和多边形作为可编辑工作正常
  • 我玩过z-index地图 div 和其他一些元素,但这似乎并没有导致问题
  • 我正在加载当前版本的 Google Maps API v3.11。我已经用冻结版本 3.10 和实验版本 v3.12 进行了测试,但无论加载哪个版本,问题仍然存在。

任何帮助是极大的赞赏!

更新:奇怪。添加的标记draggable: true似乎不可点击。但是,如果在没有指定的情况下添加标记draggable: true,它似乎是可点击的。似乎这可能是相关的。

更新 2:我第一次更新的后续行动:事件不适draggable: true用于使用创建并添加到地图的标记。您可以在创建标记后运行以下代码进行测试:

google.maps.event.addListener(marker, 'click', function(e) {
  console.log(e);
});
4

1 回答 1

2

弄清楚了。我正在做这样的事情来破解一些默认的谷歌地图控件:

var els = document.getElementsByClassName('gmnoprint');

for (var i = 0; i < els.length; i++) {
  els[i].style.display = 'none';
}

过去这并没有影响可拖动标记,但 Google 一定是在 Maps API 中进行了更改,并开始将gmnoprint类添加到可拖动标记中。哦,好吧,这就是我在文档化 API 之外得到的结果。

于 2013-03-26T22:27:58.600 回答