CP-060-01 - FILTRADO ESPACIAL POR PROVINCIAS

Mapea Produccion Devolver features filtradas, extent features filtradas, devolver por id, eliminar features, eliminar features filtradas, eliminar una o mas features NOTA: Revisar salidas por CONSOLA FILTRADO ESPACIAL POR PROVINCIAS (antiguo test: http://jsfiddle.net/sigcJunta/k36j7k3n/)

by SIGC

HTML

<script src="https://mapea4-sigc.juntadeandalucia.es/js/mapea.ol.min.js"></script>
<link rel="stylesheet" href="https://mapea4-sigc.juntadeandalucia.es/assets/css/mapea.ol.min.css">
<script src="https://mapea4-sigc.juntadeandalucia.es/js/configuration.js"></script>
<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" onclick="filterCapaComoParametro()">Interseccion puntos-poligono(Capa parametro)</button>
<button type="button" onclick="containFilter()">Filtro Contain puntos-poligono</button>
<button type="button" onclick="filterContainCQL()">Filtro Contain puntos-poligono con CQL</button>
<button type="button" onclick="withinFilter()">Filtro Within puntos-poligono</button>
<button type="button" onclick="filterWithinCQL()">Filtro Within puntos-poligono con CQL</button>
<button type="button" onclick="removeFiltros()">Quitar Filtros</button>
<div id="map" class="container"></div>

CSS

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?*mapea:hs1_100_simplificada*LINE',
  ],
});


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 = M.filter.spatial.INTERSECT(prueba_pol_wfst.getFeatures()[1].getGeometry());
  prueba_pol_wfst.getFeatures()[1].setStyle(estiloPolSel);
  prueba_pun_wfst.setFilter(filtro);
}

//DISJOINT

//Diferencia de los features de lineas con el poligono superior izquierda
// filtra todos aquellas lineas que no tengan interseccion con el poligono superior izquierda
function disjointFilter() {
  let filtro =...