Skip to content

wfs cql #105

@satrock1

Description

@satrock1

Hello, I really liked your library, but I have a problem.
So I have both wms and wfs layers. With wms, everything is simple there is cql_filter.
I am writing a code where cql_filter is applied when clicking on the checkbox, here is the code:

$('#s23').click(function(){
if($("#s23").is(":checked")){
	if(layer.wmsParams.cql_filter != '' && layer.wmsParams.cql_filter.includes('layer_id=23') == false){
	 layer.setParams({ cql_filter: layer.wmsParams.cql_filter + ' OR layer_id=23' });
	 }else
	 layer.setParams({ cql_filter: 'layer_id=23' });
	 layer.setOpacity(1);
}else if(layer.wmsParams.cql_filter.includes(' OR layer_id=23') == true){ l_edit = layer.wmsParams.cql_filter.replace(" OR layer_id=23", "");
layer.setParams({ cql_filter: l_edit });
}else if(layer.wmsParams.cql_filter.includes('layer_id=23 OR ') == true){ l_edit = layer.wmsParams.cql_filter.replace("layer_id=23 OR ", "");
layer.setParams({ cql_filter: l_edit });
}else  layer.setParams({ cql_filter: '' });
	 console.log(layer.wmsParams.cql_filter);
});
$('#s29').click(function(){
if($("#s29").is(":checked")){
   console.log(layer);
    if(layer.wmsParams.cql_filter != '' && layer.wmsParams.cql_filter.includes('layer_id=29') == false)
	 layer.setParams({ cql_filter: layer.wmsParams.cql_filter + ' OR layer_id=29' });
	 else
	 layer.setParams({ cql_filter: 'layer_id=29' });
	 layer.setOpacity(1);
	 console.log(layer.wmsParams.cql_filter);
}else if(layer.wmsParams.cql_filter.includes(' OR layer_id=29') == true){ l_edit = layer.wmsParams.cql_filter.replace(" OR layer_id=29", "");
layer.setParams({ cql_filter: l_edit });
}else if(layer.wmsParams.cql_filter.includes('layer_id=29 OR ') == true){ l_edit = layer.wmsParams.cql_filter.replace("layer_id=29 OR ", "");
layer.setParams({ cql_filter: l_edit });
}else  layer.setParams({ cql_filter: '' });
	 console.log(layer.wmsParams.cql_filter);
});

Here, if cql_filter is added when the checkbox is clicked, if it is empty, then cql_filter: 'layer_id=23' is triggered, and if there is something in cql_filter, then cql_filter: layer.wmsParams.cql_filter + ' OR layer_id=23'
also if the checkbox was cleared, then this layer_id is removed from cql_filter.

I can use this code:

var layer_23 = new L.Filter.EQ('layer_id', 23);
 //var OR = new L.Filter.Or(layer.options.filter, layer_23);
 layer.options.filter = layer_23;
layer.loadFeatures(layer_23);

To add a new filter, but I don't know how I can remove or edit it.

The question is, how can the same be implemented on your library?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions