如何在Google Maps v3中监听用户绘制多边形的开始?

时间:2014-03-17 15:20:14

标签: javascript google-maps google-maps-api-3 drawing polygon

已经触发了一个polygoncomplete事件,但我正在寻找一个polygonstart事件。即使是重叠启动事件对我也有用。

当用户开始绘制多边形时,我想删除地图上的任何现有多边形。目前,我使用polygoncomplete事件实现了该功能。它需要在一开始就发生。

我的伪代码思想是......

  1. 聆听地图上的点击事件。
  2. onclick,检查选择了哪个绘图工具(如果可能的话)。
  3. 如果选择了多边形工具,请删除所有以前的多边形。
  4. 使用polygonstart事件会更容易。

    这是一个类似的问题,但是隐藏和显示绘图控件不是这个ui的选项。 Google Maps Drawing Manager limit to 1 polygon

2 个答案:

答案 0 :(得分:1)

我正在努力解决今天在Google地图画布上收听点击的问题,而且我可能使用jQuery发现了一个丑陋的黑客攻击/解决方法:

setTimeout( function() {
  var gmDomHackSelect = $('.gm-style').children().eq(0);
  gmDomHackSelect.click(handleMapCanvasClick);
}, 3000);

这段代码来自我的地图初始化函数,所以我需要一个计时器来稍后选择元素。

此侦听器的优点是它直接在画布上侦听单击,即。点击地图控件(例如缩放)不会触发它。

答案 1 :(得分:0)

这不起作用,因为根据文档:请注意,在地图上绘制时,google.maps.Map事件(例如click和mousemove)将被禁用。

还可以测试为clickdblclick ...事件设置地图事件监听器。激活绘图管理器后,如果单击地图,则没有来自这些侦听器的响应。绘图管理员正在拦截他们。例外情况是仍然启用的地图rightclick事件。