无法拖动标记设置为可拖动

时间:2013-03-26 16:07:05

标签: google-maps-api-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
});

标记应该是可拖动的,但不是。

一些注意事项:

  • 标记仍可点击,似乎所有标记事件(鼠标悬停等)都正常工作
  • 线条和多边形作为可编辑的工作添加到地图中
  • 我玩过地图div的z-index和其他一些元素,但这似乎不会导致问题
  • 我正在加载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);
});

1 个答案:

答案 0 :(得分:1)

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

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

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

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