当dblClick在市场上时显示/隐藏圈子

时间:2014-07-17 14:10:50

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

在提出这个问题之前,我已经进行了网络搜索。

当我双击我的标记时,我正在绘制一个圆圈:

  function drawRadius(marker, map){
      google.maps.event.addListener(marker, "dblclick", function () {
           circle = new google.maps.Circle({
            map: map,
            fillColor : '#3333FF',
            fillOpacity : 0.5,
            radius : 10000,
            strokeColor : '#BBD8E9',
            strokeOpacity : 0.9,
            strokeWeight : 2
          });
          circle.bindTo('center', marker, 'position');
      });       
  }

以下是完整代码:http://jsfiddle.net/rjhzq/1/

问题在于,当我双击标记时,我想显示或隐藏圆圈。

我已经尝试过了 if (circle!=null){circle.setMap(null);}

但问题是我在创建标记后立即调用了drawCircle函数。

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

您可以在标记中添加一个变量,以保留对circle添加的引用 类似的东西:

// If your marker has a circle, remove it and remove the reference to it.
if (marker.circle) {
    marker.circle.setMap(null);
    marker.circle = null;
    return;
}
circle = new google.maps.Circle({
    map: map,
    fillColor: '#3333FF',
    fillOpacity: 0.5,
    radius: 10000,
    strokeColor: '#BBD8E9',
    strokeOpacity: 0.9,
    strokeWeight: 2
});
circle.bindTo('center', marker, 'position');
marker.circle = circle; // Add circle to marker as reference

Fiddle