[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();
}