CP-060-03 - FILTROS ESPACIALES
FILTRADOS GEOMETRICOS CON CQL (AND, OR, NOT, INTERSECTION, DISJOINT, ETC) (antiguo test: https://codepen.io/sigc_gdtel/pen/LyqYzb)
by SIGC
HTML
<link rel="stylesheet" href="https://sigc.desarrollo.guadaltel.es/mapea42_dev/assets/css/mapea.ol.min.css">
<link rel="stylesheet" href="https://sigc.desarrollo.guadaltel.es/mapea42_dev/plugins/printer/printer.min.css">
<script src="https://sigc.desarrollo.guadaltel.es/mapea42_dev/vendor/browser-polyfill.js"></script>
<script src="https://sigc.desarrollo.guadaltel.es/mapea42_dev/js/mapea.ol.min.js"></script>
<script src="https://sigc.desarrollo.guadaltel.es/mapea42_dev/js/configuration.js"></script>
<script src="https://sigc.desarrollo.guadaltel.es/mapea42_dev/plugins/printer/printer.ol.min.js"></script>
<script src="https://sigc.desarrollo.guadaltel.es/mapea42_dev/plugins/attributetable/attributetable.ol.min.js"></script>
<link rel="stylesheet" href="https://sigc.desarrollo.guadaltel.es/mapea42_dev/plugins/attributetable/attributetable.min.css">
<button type="button" onclick="intersectFilter()">Interseccion puntos-polígono</button>
<button type="button" onclick="intersectLayerFilter()">Interseccion puntos-poligonos (Layer a Layer)</button>
<button type="button" onclick="intersectLayerFilter2()">Interseccion poligonos-lineas (Layer a Layer)</button>
<button type="button" onclick="disjointFilter()">Diferencia línea-polígono</button>
<button type="button" onclick="filterIntersectCQL()">Interseccion puntos-poligono con CQL</button>
<button type="button" onclick="filterDisjointCQL()">Diferencia lineas-poligono con CQL</button>
<button type="button" onclick="filterIntersectAnd()">Interseccion lineas-poligono AND</button>
<button type="button" onclick="filterIntersectOr()">Interseccion puntos-poligono OR</button>
<button type="button" onclick="filterIntersectNot()">Interseccion lineas-poligono NOT</button>
<button type="button" onclick="filterFeatureComoParametro()">Interseccion puntos-poligono(Feature parametro)</button>
<button type="button" onclick="filterArrayComoParametro()">Interseccion puntos-poligono(Array Feature parametro)</button>
<button type="button"...
CSS
<style rel="stylesheet">html,
body {
margin: 0;
padding: 0;
height: 100%;
overflow: hidden;
}
JavaScript
var m = M.map({
"controls": ["layerswitcher", "panzoom", "navtoolbar"],
"wmcfiles": ["callejero"],
"container": "map",
"layers": [
"WFST*CapaWFS_POL*https://clientes.guadaltel.es/desarrollo/geossigc/wfs?*callejero:mapea_filtros_no_tocar*MPOLYGON",
"WFST*CapaWFS_POINT*https://clientes.guadaltel.es/desarrollo/geossigc/wfs?*ggis:TEST_Geor_Inventario_cavidades*MPOINT", "WFST*CapaWFS_LIN*https://clientes.guadaltel.es/desarrollo/geossigc/wfs?*cfv:viarios_mar*MLINE"
]
}).addPlugin(new M.plugin.AttributeTable());
m.addPlugin(new M.plugin.Printer({
"params": {
"pages": {
"clientLogo": "http://www.juntadeandalucia.es/economiayhacienda/images/plantilla/logo_cabecera.gif",
"creditos": "Impresión generada a través de Mapea"
},
"layout": {
"outputFilename": "mapea_${yyyy-MM-dd_hhmmss}"
}
}
}, {
"options": {
"legend": "true"
}
}));
var estiloPolSel = new M.style.Polygon({
fill: {
color: 'blue',
opacity: 0.2
},
stroke: {
color: 'cyan'
}
});
// capa de poligonos
var prueba_pol_wfst = m.getWFS()[0];
// capa de puntos
var prueba_pun_wfst = m.getWFS()[1];
prueba_pun_wfst.setStyle(new M.style.Point({
radius: 5,
fill: {
color: 'red'
}
}));
// capa de lineas
var prueba_lin_wfst = m.getWFS()[2];
prueba_lin_wfst.setStyle(new M.style.Line({
stroke: {
color: 'orange',
width: 2
}
}));
// Elimina todos los filtros establecidos
function removeFiltros() {
// Revisar funcionamiento del filtro en referencia a los CQL
// En principio se están creando por parejo
prueba_pun_wfst.removeFilter();
prueba_pun_wfst.setCQL();
prueba_lin_wfst.removeFilter();
prueba_lin_wfst.setCQL();
prueba_pol_wfst.removeFilter();
prueba_pol_wfst.setCQL();
}
//INTERSECT
/// Intersecamos los features de puntos con el poligono superior izquierda
// Le aplicamos el filtro solo a los puntos
function intersectFilter() {
let filtro =...