CP-070-02
Style Line (A nivel de capa y features)
by SIGC
HTML
<script src="https://sigc.desarrollo.guadaltel.es/mapea5/js/mapea.ol.min.js"></script>
<link rel="stylesheet" href="https://sigc.desarrollo.guadaltel.es/mapea5/assets/css/mapea.ol.min.css">
<script src="https://sigc.desarrollo.guadaltel.es/mapea5/js/configuration.js"></script>
<div>
<p>Estilos a nivel de capa:</p>
<div>
<button onclick="setStyleNull()">style null</button>
<button onclick="setStyleVacio()">style vacio</button>
<button onclick="setStyleLayer(lines, nullStyleLine)">style line sin parametros</button>
<button onclick="setStyleLayer(lines, colorStyleLine)">style line solo stroke: color</button>
<br>
<button onclick="setStyleLayer(lines, styleLine)">Estilo linea ejemplo 1</button>
<button onclick="setStyleLayer(lines, styleLine2)">Estilo linea ejemplo 2</button>
<button onclick="setStyleLayer(lines, styleLine3)">Estilo linea ejemplo 3</button>
</div>
<p> Estilos a nivel de feature:</p>
<div>
<button onclick="setStyleFeature(line, nullStyleLine)">style line sin parametros</button>
<button onclick="setStyleFeature(line, colorStyleLine)">style line solo stroke: color</button>
<br>
<button onclick="setStyleFeature(line, styleLine)">Estilo linea ejemplo 1</button>
<button onclick="setStyleFeature(line, styleLine2)">Estilo linea ejemplo 2</button>
<button onclick="setStyleFeature(line, null)">Estilo null a line</button>
<button onclick="setStyleFeature(line, styleLine3)">Estilo ejemplo3 a line</button>
</div>
</div>
<div id="map" class="container"></div>
CSS
<style rel="stylesheet"> html,
body {
margin: 0;
padding: 0;
height: 100%;
overflow: hidden;
}
JavaScript
// CP-070-02 - Style Line (A nivel de capa y features)
// Caso de prueba orientado a verificar la aplicación de estilos a nivel de capa y a nivel de features.
// PathText a nivel de feature no es compatible
let mapajs = M.map({
container: "map",
projection: "EPSG:4326*d",
layers: ["OSM"],
center: {
x: -5.9584180843195425,
y: 37.36912689160224
},
zoom: 5,
controls: ['layerswitcher', 'overviewmap'],
});
let lines = new M.layer.WFS({
name: "Ríos",
url: "https://clientes.guadaltel.es/desarrollo/geossigc/wfs",
namespace: "mapea",
name: "mapb_hs1_100",
legend: "mapb_hs1_100",
getfeatureinfo: "plain",
geometry: 'LINE',
extract: true,
});
mapajs.addLayers([lines]);
let line = null;
//Seleccionamos una linea que esté en el centro de Andalucía para localizarlo mejor (Río de Cabra)
lines.on(M.evt.LOAD, function() {
line = M.filter.EQUAL("cod_rio", "29").execute(lines.getFeatures())[0]
})
// Estilos vacíos (no se visualizarán)
let nullStyleLine = new M.style.Line();
// Estilos solo color
let colorStyleLine = new M.style.Line({
stroke: {
color: 'red'
}
});
//=============================================================================
// Ejemplos variados de linea
// EJEMPLO CON STROKE
let styleLine = new M.style.Line({
stroke: {
color: '#C8FE2E',
width: 15,
linedash: [1, 20],
linedashoffset: 60,
linecap: 'square',
linejoin: 'miter',
miterlimit: 15
}
});
// EJEMPLO CON STROKE + FILL
let styleLine2 = new M.style.Line({
stroke: {
color: '#C8FE2E',
width: 50,
linedash: [1, 20],
linedashoffset: 60,
linecap: 'square',
linejoin: 'miter',
miterlimit: 15
},
fill: {
color: 'blue',
opacity: 0.7,
width: 15
}
});
// EJEMPLO TEXT
let styleLine3 = new M.style.Line({
label: {
text: '{{nombre}}',
font: 'bold italic 12px Comic Sans MS',
rotate: false,
scale: 0.9,
offset: [10, 20],
color: '#2EFEC8',
stroke: {
color:...