Я пытаюсь создать интерактивную карту, используя слой leaflet и topojson. Я хочу сделать следующее:
1- Когда щелкаешь по определенному полигону топоисона, он должен удалиться.
2- Когда вы щелкаете по другому полигону, он должен удалиться, а полигон, на который вы нажали ранее, должен быть добавлен обратно.
Таким образом, в принципе всегда может отсутствовать только один полигон. Вот блок кода для карты:
function addRegions(map) {
var regionLayer = new L.TopoJSON();
$.getJSON('map-developmentregions.topo.json').done(addRegionData);
function addRegionData(topoData){
regionLayer.addData(topoData);
regionLayer.addTo(map);
regionLayer.eachLayer(handleLayer);
}
function handleLayer(layer) {
layer.setStyle({
fillColor : getColor(getNewsCount(layer.feature.properties.REGION)),
weight: 2,
opacity: 1,
color: 'white',
fillOpacity: 1
});
layer.on({
mouseover : enterLayer,
mouseout: leaveLayer,
click: clickAction
});
}
//Here's the code for clickAction... this is where I suppose the code should be placed
function clickAction(e) {
var layer = e.target;
map.removeLayer(layer);
}
}
До сих пор этот код позволял мне щелкнуть многоугольник topojson, чтобы удалить его, но я не могу придумать, как получить ранее удаленный многоугольник после щелчка другого многоугольника.
Я думаю, что мне следует сравнить каждый многоугольник с общим количеством полигонов и добавить отсутствующий многоугольник перед удалением полигона, по которому в данный момент щелкнули, но я не могу это выполнить.
Пожалуйста помоги. Спасибо