Skip to content
Snippets Groups Projects
Commit 6a0c8bb5 authored by MOINIER Camille's avatar MOINIER Camille
Browse files

Merge branch 'GSCARTOV2-1773-trames-wfs-ko' into 'master'

GSCARTOV2-1773 : Fix trames WGS style for printing

See merge request pub/geomatique/descartes/d-inkmap!23
parents 1c74278a cf0ea25f
Branches
Tags
No related merge requests found
......@@ -236,11 +236,44 @@ var print = {
// an OL style can be an object of a style factory (i.e. function)
const layerStyleFunction = layer.OL_layers[0].getStyle();
const layerStyle = typeof layerStyleFunction === 'function' ? layerStyleFunction.bind(feature)(feature) : layerStyleFunction;
let layerStyle;
let layerStyleCloned;
if (typeof layerStyleFunction === 'function') {
layerStyle = layerStyleFunction(feature);
} else {
layerStyle = layerStyleFunction;
layerStyleCloned = layerStyleFunction.map((style) => style.clone());
}
print.patchOlStyle(layerStyle);
const parser = new GeoStylerOpenlayersParser.OlStyleParser(ol);
const style = await parser.readStyle(layerStyle);
let updatedStyle = layerStyleCloned ? this.afterOlPatch(style, layerStyleCloned) : style;
return updatedStyle;
},
hadCanvasPatternSymbol: function (newSymbol, oldStyle) {
return oldStyle.getFill() && oldStyle.getFill().getColor().toString().includes('CanvasPattern') && newSymbol.color === '#000000';
},
patchWFSCanvasPatternStyle: function (newSymbol, oldStyle) {
newSymbol.opacity = 0;
newSymbol.color = '#ffffff';
newSymbol.strokeColor = oldStyle.getStroke().getColor();
newSymbol.strokeWidth = oldStyle.getStroke().getWidth();
newSymbol.strokeOpacity = oldStyle.getStroke().getColor()[3];
return newSymbol;
},
afterOlPatch: function (style, oldStyleArray) {
style.rules.forEach(rule => {
for (let i = 0; i < rule.symbolizers.length; i++) {
const symbolizer = rule.symbolizers[i];
const oldStyle = oldStyleArray[i];
if (this.hadCanvasPatternSymbol(symbolizer, oldStyle)) {
rule.symbolizers[i] = this.patchWFSCanvasPatternStyle(symbolizer, oldStyle);
}
}
});
return style;
},
......@@ -268,9 +301,9 @@ var print = {
const style = await parser.readStyle(layerStyle);
style.rules[0].name += " " + feature.getGeometry().getType();
const found = aggStyle.rules.some(el => el.name === style.rules[0].name);
const found = aggStyle.rules.some(el => el.name === style.rules[0].name);
if (!found) {
aggStyle.rules = aggStyle.rules.concat(style.rules);
aggStyle.rules = aggStyle.rules.concat(style.rules);
}
};
return aggStyle;
......@@ -308,20 +341,20 @@ var print = {
const featureStyle = typeof featureStyleFunction === 'function' ? featureStyleFunction.bind(feature)(feature) : featureStyleFunction;
let featureStyleCloned;
if (featureStyle instanceof Array) {
featureStyleCloned = [];
for (var i = 0, len = featureStyle.length; i < len; i++) {
featureStyleCloned.push(featureStyle[i].clone());
}
featureStyleCloned = [];
for (var i = 0, len = featureStyle.length; i < len; i++) {
featureStyleCloned.push(featureStyle[i].clone());
}
} else {
featureStyleCloned = featureStyle.clone();
featureStyleCloned = featureStyle.clone();
}
print.patchOlStyle(featureStyleCloned);
const parser = new GeoStylerOpenlayersParser.OlStyleParser(ol);
let styles;
if (feature.get("dAnnotationType") && feature.get("dAnnotationType") !== "texteAnnotation") {
styles = this.splitTextStyle(featureStyleCloned);
if (feature.get('dAnnotationType') && feature.get('dAnnotationType') !== 'texteAnnotation') {
styles = this.splitTextStyle(featureStyleCloned);
} else {
styles = featureStyleCloned;
styles = featureStyleCloned;
}
const style = await parser.readStyle(styles);
//print.patchGeoStylerStyle(style); //PB point circle --> Circle
......@@ -345,7 +378,7 @@ var print = {
style = [style];
}
for (var i = 0, len = style.length; i < len; i++) {
if (style[i].getText && style[i].getText() && (!_.isNil(style[i].getFill()) || !_.isNil(style[i].getStroke()))) {
if (style[i].getText && style[i].getText() && (!_.isNil(style[i].getFill()) || !_.isNil(style[i].getStroke()))) {
styletexte = new ol.style.Style();
styletexte.setText(style[i].getText());
style[i].setText(undefined);
......@@ -353,7 +386,7 @@ var print = {
}
}
return style;
},
},
/**
* Methode: patchOlStyle
......@@ -517,7 +550,7 @@ var print = {
textAnchor[0] += size[0] / 2;
} else if (textAlign === 'right') {
textAnchor[0] += size[0] - margin;
} else {
} else {
textAnchor[0] += margin;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment