4

我正在使用Open Street Maps和使用leaflet library. 我有一个这样的图层组:

var testLayer = new L.LayerGroup(); --> declared in a different file

我想将标记添加到标记组,在每个标记周围添加一个圆圈,然后将标记组添加到地图:

在此处输入图像描述

var realMarker = L.marker([52.6432, -6.53412 ],{icon: Icon,title:data[choice][key]["name"]
                        }).bindPopup("Dublin").addTo(testLayer);
var circle = L.circle([52.6432, -6.53412 ],400, {
                        color: 'red',
                        fillColor: '#f03',
                        fillOpacity: 0.5
                    }).addTo(testLayer);

 map.addLayer(testLayer);

但是,当我使用 删除标记组中的特定标记时removeLayer(),标记会从地图中删除,但圆圈会留在后面。如何删除圆圈和标记?

4

1 回答 1

7

我会在标记中存储对圆圈的引用:

var realMarker = L.marker([52.6432, -6.53412 ],
                          {icon: Icon,title:data[choice][key]["name"]}
                         ).bindPopup("Dublin").addTo(testLayer);
var circle = L.circle([52.6432, -6.53412 ],400, {
                        color: 'red',
                        fillColor: '#f03',
                        fillOpacity: 0.5
                    }).addTo(testLayer);
realMarker.circle=circle;
map.addLayer(testLayer);

然后,在删除标记时,也删除它的圆圈

testLayer.removeLayer(markerToRemove);
testLayer.removeLayer(markerToRemove.circle);
于 2013-02-15T16:20:34.030 回答