CP-050-02 - FILTROS ALFANUMERICOS - CONSOLA

Devolver features filtradas, extent features filtradas, devolver por id, eliminar features, eliminar features filtradas, eliminar una o mas features NOTA: Revisar salidas por CONSOLA (antiguo: https://codepen.io/sigc_gdtel/pen/xdWgyw)

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="setFilterId()">Aplicar Filtro</button>
<button type="button" onclick="getFirstFeature()">Primer Feature</button>
<button type="button" onclick="getAllFeatures()">Todos los features</button>
<button type="button" onclick="getFilteredFeatures()">Features filtrados</button>
<button type="button" onclick="getFeatureById('prueba_pol_wfst.2278')">Obtener Feature por id</button>
<button type="button" onclick="getAllFeaturesExtent()">Todos los extent features</button>
<button type="button" onclick="getFilteredFeaturesExtent()">Features Extent filtrados</button>
<button type="button" onclick="removeFeature()">Eliminar Feature</button><button type="button" onclick="refreshLayer()">Reniciar capa de features</button>
<button type="button" onclick="removeAllFeatures()">Eliminar todos los features</button><button type="button" onclick="getFilter()">Obtener filtros</button>
<button type="button" onclick="removeFilter()">Quitar filtros</button>
<div id="map" class="container"></div>

CSS

<style rel="stylesheet">html,
body {
  margin: 0;
  padding: 0;
  height: 100%;
  overflow: hidden;
}

JavaScript

// CP-050-02 - FILTROS ALFANUMERICOS - CONSOLA
// http://jsfiddle.net/sigcJunta/v80gag3h/ con entrega 4.1 del 26/06
// Prueba orientada a verificar resultado de filtro alfanumérico.

// Creamos una capa WFS con la url de features poligonales
var layer = new M.layer.WFS({
  url: "http://clientes.guadaltel.es/desarrollo/geossigc/callejero/wms?",
  namespace: "callejero",
  name: "prueba_pol_wfst"
});


// Instanciamos el mapa
mapajs = M.map({
  container: "map",
  controls: ["layerswitcher"],
});


mapajs.addPlugin(new M.plugin.AttributeTable({
  "pages": "10"
}));


mapajs.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"
  }
}));


layer.setStyle(new M.style.Polygon({
  stroke: {
    color: 'red',
    width: 2
  },
  fill: {
    color: 'blue',
    opacity: 0.2
  }
}));


// Añadimos las capas al mapa
mapajs.addLayers([layer]);

/*devuelve los features de la capa
    parametro true - obtiene todos los features
    parametro false - obtiene solo los features filtrados
*/
//sin parametro - por defecto es false
// console.log(layer.getFeatures());

function getAllFeatures() {
  console.log(layer.getFeatures(true));
}

function getFilteredFeatures() {
  console.log(layer.getFeatures(false));
}


//devuelve un feature de la capa por su id
function getFeatureById(id) {
  console.log(layer.getFeatureById(id));
}

//añade o sustituye el filtro de la capa
function setFilterId() {
  let filtro = new M.filter.Function(function(feature) {
    return feature.getId() === "prueba_pol_wfst.2207";
  });
  layer.setFilter(filtro);
}

function getFirstFeature() {
  console.log(layer.getFeatures()[0]);
}

//elimina uno o varios features de la capa
function removeFeature() {
 ...