Estoy intentando añadir/quitar marcadores a un mapa de folletos. Tengo 6 casillas de verificación, lo que quiero es que al marcar cualquiera de ellas se muestren los puntos en el mapa, y al desmarcar una de ellas la única que se elimine sea la que desmarque.
Lo que tengo,
Las casillas de verificación:
.row
.col-md-12
.row
label.col-md-7 First check
input.col-md-1(type="checkbox" ng-model="locations.somecheck1")
.row
label.col-md-7 Second check
input.col-md-1(type="checkbox" ng-model="locations.somecheck2")
.row
label.col-md-7 Third check
input.col-md-1(type="checkbox" ng-model="locations.somecheck3")
.row
label.col-md-7 Fourth check
input.col-md-1(type="checkbox" ng-model="locations.somecheck4")
.row
label.col-md-7 Five check
input.col-md-1(type="checkbox" ng-model="locations.somecheck5")
.row
label.col-md-7 Six check
input.col-md-1(type="checkbox" ng-model="locations.somecheck6")
El controlador:
$scope.$watch('locations.somecheck1', function(somecheck1) {
if ($scope.locations.somecheck1 === true) {
findItem.find(function(err, items) {
lastLocationItems = items[0].items;
items = lastLocationItems.map((item) => GeoService.toGeoJSON(item, { idKey: '_id', geometryKey: 'lastLocation'}));
getEpc(items, ssccIcon);
});
} else {
leafletData.getMap().then(function(map) {
map.removeLayer(objetosLayer);
});
}
}, true);
La función que crea la capa:
function getEpc(items, icon) {
var objectsLayer = L.geoJson(items, {
pointToLayer: function(items, latlng) {
var result;
if (icon !== undefined) {
result = L.marker(latlng, {
icon: icon
});
} else {
result = L.marker(latlng);
}
return result;
}
});
leafletData.getMap().then(function(map) {
objectsLayer.addTo(map);
});
}
En la función de vigilancia, está la función de eliminación que se activa cuando el checkbox es falso. Si marco 2 checkbox, la función crea los dos, pero cuando quiero quitar el primero, sólo quita el segundo check. He mirado y he encontrado que cada vez que hago clic en un checkbox se crea una nueva capa con la nueva información.
¿Cómo puedo crear automáticamente una capa para cada casilla de verificación en la función getEpc?