[Filters] WITHIN, INTERSECT

Test en mapea

by SIGC GUADALTEL

HTML

<link rel="stylesheet" href="https://mapea4-sigc.juntadeandalucia.es/assets/css/mapea.ol.min.css">
<script src="https://sigc.desarrollo.guadaltel.es/mapea/js/mapea.ol.min.js"></script>
<script src="https://mapea4-sigc.juntadeandalucia.es/js/configuration.js"></script>
<button onclick="aplicaFiltro()">
    Aplicar filtro Within
  </button>
<button onclick="aplicaFiltroIntersect()">
    Aplicar filtro Intersect
  </button>
<button onclick="limpiaFiltro()">
    LImpiar filtro
  </button>
<div id="map"></div>

CSS

html,
 body {
   margin: 0;
   padding: 0;
   height: 100%;
   overflow: hidden;
 }

JavaScript

let mapajs = M.map({
  container: "map",
  controls: ["layerswitcher"],
  wmcfiles: ["cdau"]
});

// Capa con 10.000 puntos kilometricos
let puntosKilometricos = new M.layer.WFS({
  url: "http://www.ideandalucia.es/services/dera_viario/wfs?",
  name: "dera_viario:vc01_5_carretera_pkm",
  legend: "Puntos Kilométricos",
  geometry: 'POINT',
  extract: true
});

var lyProvincias = new M.layer.WFS({
  url: "http://geostematicos-sigc.juntadeandalucia.es/geoserver/tematicos/ows?",
  namespace: "tematicos",
  name: "Provincias",
  legend: "Provincias",
  geometry: 'MPOLYGON',
  ids: 8
});

mapajs.addLayers(puntosKilometricos);
mapajs.addLayers(lyProvincias);

function aplicaFiltro() {
  let filtroWithin = new M.filter.spatial.WITHIN(puntosKilometricos);
  lyProvincias.setFilter(filtroWithin);
}

function aplicaFiltroIntersect() {
  let filtroIntersect = new M.filter.spatial.INTERSECT(lyProvincias);
  puntosKilometricos.setFilter(filtroIntersect);
}

function limpiaFiltro() {
  puntosKilometricos.removeFilter();
}