0

我使用谷歌地图 api v3 并让它运行良好,在标记或外部链接上单击我让地图放大该特定标记并在该特定标记处绘制一个圆圈。每次发生“点击”时,都会运行以下命令:

    // DO CIRCLE...         

            //circle.setMap(null);  // CLEARS CIRCLE

                var circle = new google.maps.Circle({
                    map: map,
                    center: marker.position,
                    fillColor: '#0000FF',
                    fillOpacity: 0.2,
                    strokeColor: '#FF0000',
                    strokeOpacity: 0.8,
                    strokeWeight: 1,
                });

                circle.setRadius(1609.344);
                circle.bindTo('center', marker, 'position');


 // END CIRCLE SECTION

我想在任何给定时间只出现一个圆圈,因此,如果您单击 4 个不同的标记,它当前会生成 4 个不同的圆圈,但我想在绘制新圆圈之前先删除所有圆圈。我试过这个,但它似乎只是禁用了绘制圆圈的能力。

circle.setMap(null);

我怎样才能做到这一点?如果可能的话,我希望在第一次点击时画一个圆圈,然后让它移动位置,并将它绑定到最后一次点击的标记。或者,如果这不可行,我想让它清除任何圆圈覆盖,然后重新绘制绑定到最后点击标记的新圆圈。

4

1 回答 1

1

如果您只想要一个圆圈,请将其设为全局(在任何函数之外使用“var”定义),然后将其销毁并重新创建或将其移动到新位置(将其中心绑定到新标记)。

例子

于 2013-06-26T18:31:12.453 回答