Я пытался создать события нажатия для 2 отдельных слоев карты, но я не могу сделать один из стилей сброса слоев, он отображает информацию, но не сбрасывает стиль, даже тот же код, который работает для первого слоя:
var roles = {{rols|safe}};
var cips = {{cip_geojson|safe}};
var segm = {{poly_seg|geojsonfeature|safe}};
var mapopts = {};
var ultimoClick, resSty, map = L.map('mapa').setView([-23.6506, -70.3968],18);
map.doubleClickZoom.disable();
map.createPane('cips');
map.getPane('cips').style.zIndex = 650;
function cip_info(e){
ultimoClick && cips_gj.resetStyle(ultimoClick);
document.getElementById('r_rol').innerHTML = e.target.feature.properties.rol;
var layer = e.target;
layer.setStyle({
pane:"cips",
radius: 17,
fillColor: 'red',
color: "#202020",
weight: 3,
opacity: 1,
fillOpacity: 0.85
});
if (!L.Browser.ie && !L.Browser.opera && !L.Browser.edge) {layer.bringToFront();}
ultimoClick = layer;
}
var cipMarkerOptions = {
pane:'cips',
radius: 12,
fillColor: "#EEF6F4",
color: "#202020",
weight: 3,
opacity: 1,
fillOpacity: 1
};
var cips_gj = L.geoJson(cips , {
pointToLayer: function (feature, latlng) {
return L.circleMarker(latlng, cipMarkerOptions);
},
onEachFeature:info_cip,
}).addTo(map);
function info_cip(feature, layer) {
layer.on({
click:cip_info,
});
}
map.createPane('roles');
map.getPane('roles').style.zIndex = 655;
function rol_info(o){
resSty && roles_gj.resetStyle(resSty);
document.getElementById('rol_num').innerHTML = o.target.feature.properties.pk;
var r_lay = o.target;
r_lay.setStyle({
pane:'roles',
radius: 17,
fillColor: '#cc2504',
color: "#202020",
weight: 3,
opacity: 1,
fillOpacity: 0.85
});
if (!L.Browser.ie && !L.Browser.opera && !L.Browser.edge) {r_lay.bringToFront();}
resSty = r_lay
}
var rolesMarkerOptions = {
pane:'roles',
radius: 12,
fillColor: "#FF7F00",
color: "#202020",
weight: 3,
opacity: 1,
fillOpacity: 1
};
var roles_gj = L.geoJson(roles , {
pointToLayer: function (feature, latlng) {
return L.circleMarker(latlng, rolesMarkerOptions);
},
onEachFeature:info_rol,
}).addTo(map);
function info_rol(e, r_lay) {
r_lay.on({
click:rol_info,
});
}
var baseMaps = {};
L.control.layers(baseMaps,{'CIP': cips_gj,'Roles':roles_gj}, {collapsed:false}).addTo(map);
rol_info не будет сбрасывать стиль после нажатия другой функции, мне нужно держать их отдельно, чтобы я мог отображать информацию для каждого слоя одновременно, не знаю, что случилось, спасибо