Replaces text.tests.js with new tests
Transforms the old rendering tests for the TextStyle to the new rendering test approach.
This commit is contained in:
104
rendering/cases/text-style-overlap/main.js
Normal file
104
rendering/cases/text-style-overlap/main.js
Normal file
@@ -0,0 +1,104 @@
|
||||
import Map from '../../../src/ol/Map.js';
|
||||
import View from '../../../src/ol/View.js';
|
||||
import Feature from '../../../src/ol/Feature.js';
|
||||
import Point from '../../../src/ol/geom/Point.js';
|
||||
import VectorLayer from '../../../src/ol/layer/Vector.js';
|
||||
import VectorSource from '../../../src/ol/source/Vector.js';
|
||||
import Text from '../../../src/ol/style/Text.js';
|
||||
import Style from '../../../src/ol/style/Style.js';
|
||||
import Fill from '../../../src/ol/style/Fill.js';
|
||||
import Stroke from '../../../src/ol/style/Stroke.js';
|
||||
import LineString from '../../../src/ol/geom/LineString.js';
|
||||
|
||||
const nicePath = [
|
||||
20, 33, 40, 31, 60, 30, 80, 31, 100, 33, 120, 37, 140, 39, 160, 40,
|
||||
180, 39, 200, 37, 220, 33, 240, 31, 260, 30, 280, 31, 300, 33
|
||||
];
|
||||
|
||||
const vectorSource = new VectorSource();
|
||||
const pointStyle = new Style({
|
||||
text: new Text({
|
||||
text: 'Point Label',
|
||||
fill: new Fill({
|
||||
color: 'red'
|
||||
}),
|
||||
stroke: new Stroke({
|
||||
color: 'black'
|
||||
})
|
||||
})
|
||||
});
|
||||
const lineStyle = new Style({
|
||||
stroke: new Stroke({color: 'blue'}),
|
||||
text: new Text({
|
||||
text: 'Line Label',
|
||||
fill: new Fill({
|
||||
color: 'red'
|
||||
}),
|
||||
stroke: new Stroke({
|
||||
color: 'black'
|
||||
}),
|
||||
placement: 'line'
|
||||
})
|
||||
});
|
||||
|
||||
const pointFeature1 = new Feature({
|
||||
geometry: new Point([160, 100])
|
||||
});
|
||||
pointFeature1.setStyle(pointStyle.clone());
|
||||
pointFeature1.getStyle().getText().setText('POINT ONE');
|
||||
vectorSource.addFeature(pointFeature1);
|
||||
|
||||
const pointFeature2 = new Feature({
|
||||
geometry: new Point([170, 105])
|
||||
});
|
||||
pointFeature2.setStyle(pointStyle.clone());
|
||||
pointFeature2.getStyle().getText().setText('POINT TWO');
|
||||
pointFeature2.getStyle().getText().setFill(new Fill({color: 'green'}));
|
||||
vectorSource.addFeature(pointFeature2);
|
||||
|
||||
const pointFeature3 = new Feature({
|
||||
geometry: new Point([150, 95])
|
||||
});
|
||||
pointFeature3.setStyle(pointStyle.clone());
|
||||
pointFeature3.getStyle().getText().setText('POINT THREE');
|
||||
pointFeature3.getStyle().getText().setFill(new Fill({color: 'yellow'}));
|
||||
vectorSource.addFeature(pointFeature3);
|
||||
|
||||
const lineString1 = new LineString(nicePath, 'XY');
|
||||
const lineFeature1 = new Feature({geometry: lineString1});
|
||||
lineFeature1.setStyle(lineStyle);
|
||||
lineFeature1.getStyle().getText().setText('LINE ONE');
|
||||
vectorSource.addFeature(lineFeature1);
|
||||
|
||||
const lineString2 = lineString1.clone();
|
||||
lineString2.translate(10, 10);
|
||||
const lineFeature2 = new Feature({geometry: lineString2});
|
||||
lineFeature2.setStyle(lineStyle.clone());
|
||||
lineFeature2.getStyle().getText().setText('LINE TWO');
|
||||
lineFeature2.getStyle().getText().setFill(new Fill({color: 'green'}));
|
||||
vectorSource.addFeature(lineFeature2);
|
||||
|
||||
const lineString3 = lineString1.clone();
|
||||
lineString3.translate(-10, 10);
|
||||
const lineFeature3 = new Feature({geometry: lineString3});
|
||||
lineFeature3.setStyle(lineStyle.clone());
|
||||
lineFeature3.getStyle().getText().setText('LINE THREE');
|
||||
lineFeature3.getStyle().getText().setFill(new Fill({color: 'yellow'}));
|
||||
vectorSource.addFeature(lineFeature3);
|
||||
|
||||
const map = new Map({
|
||||
pixelRatio: 1,
|
||||
layers: [
|
||||
new VectorLayer({
|
||||
source: vectorSource
|
||||
})
|
||||
],
|
||||
target: 'map',
|
||||
view: new View({
|
||||
center: [0, 0],
|
||||
resolution: 1
|
||||
})
|
||||
});
|
||||
map.getView().fit(vectorSource.getExtent());
|
||||
|
||||
render({tolerance: 0.02});
|
||||
Reference in New Issue
Block a user