Add rendering test for vector tile layer rotation w/ layer on top
This commit is contained in:
@@ -1,19 +1,12 @@
|
|||||||
import Map from '../../../src/ol/CompositeMap.js';
|
import Map from '../../../src/ol/CompositeMap.js';
|
||||||
import View from '../../../src/ol/View.js';
|
import View from '../../../src/ol/View.js';
|
||||||
import TileLayer from '../../../src/ol/layer/Tile.js';
|
import TileLayer from '../../../src/ol/layer/Tile.js';
|
||||||
import {fromLonLat} from "../../../src/ol/proj";
|
import {fromLonLat} from '../../../src/ol/proj';
|
||||||
import XYZ from "../../../src/ol/source/XYZ";
|
import XYZ from '../../../src/ol/source/XYZ';
|
||||||
import {getSize} from "../../../src/ol/extent";
|
import {getSize} from '../../../src/ol/extent';
|
||||||
|
|
||||||
const center = fromLonLat([8.6, 50.1]);
|
const center = fromLonLat([8.6, 50.1]);
|
||||||
|
|
||||||
function centerExtent() {
|
|
||||||
const c = map.getView().calculateExtent([256, 256]);
|
|
||||||
const qw = getSize(c)[0] / 4;
|
|
||||||
const qh = getSize(c)[1] / 4;
|
|
||||||
return [c[0] + qw, c[1] + qh, c[2] - qw, c[3] - qh];
|
|
||||||
}
|
|
||||||
|
|
||||||
const map = new Map({
|
const map = new Map({
|
||||||
target: 'map',
|
target: 'map',
|
||||||
view: new View({
|
view: new View({
|
||||||
@@ -43,3 +36,12 @@ map.addLayer(
|
|||||||
);
|
);
|
||||||
|
|
||||||
render();
|
render();
|
||||||
|
|
||||||
|
function centerExtent() {
|
||||||
|
const c = map.getView().calculateExtent([256, 256]);
|
||||||
|
const qw = getSize(c)[0] / 4;
|
||||||
|
const qh = getSize(c)[1] / 4;
|
||||||
|
return [c[0] + qw, c[1] + qh, c[2] - qw, c[3] - qh];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import Map from '../../../src/ol/CompositeMap.js';
|
import Map from '../../../src/ol/CompositeMap.js';
|
||||||
import View from '../../../src/ol/View.js';
|
import View from '../../../src/ol/View.js';
|
||||||
import TileLayer from '../../../src/ol/layer/Tile.js';
|
import TileLayer from '../../../src/ol/layer/Tile.js';
|
||||||
import {fromLonLat} from "../../../src/ol/proj";
|
import {fromLonLat} from '../../../src/ol/proj';
|
||||||
import XYZ from "../../../src/ol/source/XYZ";
|
import XYZ from '../../../src/ol/source/XYZ';
|
||||||
|
|
||||||
const center = fromLonLat([8.6, 50.1]);
|
const center = fromLonLat([8.6, 50.1]);
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import Map from '../../../src/ol/CompositeMap.js';
|
import Map from '../../../src/ol/CompositeMap.js';
|
||||||
import View from '../../../src/ol/View.js';
|
import View from '../../../src/ol/View.js';
|
||||||
import TileLayer from '../../../src/ol/layer/Tile.js';
|
import TileLayer from '../../../src/ol/layer/Tile.js';
|
||||||
import {fromLonLat} from "../../../src/ol/proj";
|
import {fromLonLat} from '../../../src/ol/proj';
|
||||||
import XYZ from "../../../src/ol/source/XYZ";
|
import XYZ from '../../../src/ol/source/XYZ';
|
||||||
|
|
||||||
const center = fromLonLat([8.6, 50.1]);
|
const center = fromLonLat([8.6, 50.1]);
|
||||||
|
|
||||||
|
|||||||
BIN
rendering/cases/layer-vectortile-rotate-vector/expected.png
Normal file
BIN
rendering/cases/layer-vectortile-rotate-vector/expected.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 117 KiB |
53
rendering/cases/layer-vectortile-rotate-vector/main.js
Normal file
53
rendering/cases/layer-vectortile-rotate-vector/main.js
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
import Map from '../../../src/ol/Map.js';
|
||||||
|
import View from '../../../src/ol/View.js';
|
||||||
|
import VectorTileSource from '../../../src/ol/source/VectorTile';
|
||||||
|
import MVT from '../../../src/ol/format/MVT';
|
||||||
|
import {createXYZ} from '../../../src/ol/tilegrid';
|
||||||
|
import VectorTileLayer from '../../../src/ol/layer/VectorTile';
|
||||||
|
import VectorSource from '../../../src/ol/source/Vector';
|
||||||
|
import Feature from '../../../src/ol/Feature';
|
||||||
|
import Point from '../../../src/ol/geom/Point';
|
||||||
|
import VectorLayer from '../../../src/ol/layer/Vector';
|
||||||
|
import Style from '../../../src/ol/style/Style';
|
||||||
|
import CircleStyle from '../../../src/ol/style/Circle';
|
||||||
|
import Fill from '../../../src/ol/style/Fill';
|
||||||
|
|
||||||
|
const vectorSource = new VectorSource({
|
||||||
|
features: [
|
||||||
|
new Feature(new Point([1825727.7316762917, 6143091.089223046]))
|
||||||
|
]
|
||||||
|
});
|
||||||
|
const layer = new VectorLayer({
|
||||||
|
zIndex: 1,
|
||||||
|
source: vectorSource,
|
||||||
|
style: new Style({
|
||||||
|
image: new CircleStyle({
|
||||||
|
radius: 10,
|
||||||
|
fill: new Fill({
|
||||||
|
color: 'red'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
new Map({
|
||||||
|
layers: [
|
||||||
|
layer,
|
||||||
|
new VectorTileLayer({
|
||||||
|
source: new VectorTileSource({
|
||||||
|
format: new MVT(),
|
||||||
|
tileGrid: createXYZ(),
|
||||||
|
url: '/data/tiles/mvt/{z}-{x}-{y}.vector.pbf',
|
||||||
|
transition: 0
|
||||||
|
})
|
||||||
|
})
|
||||||
|
],
|
||||||
|
target: 'map',
|
||||||
|
view: new View({
|
||||||
|
center: [1825927.7316762917, 6143091.089223046],
|
||||||
|
zoom: 14,
|
||||||
|
rotation: Math.PI / 4
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
render({message: 'Vector tile layer rotates with vector layer on top'});
|
||||||
BIN
rendering/cases/layer-vectortile-rotate/expected.png
Normal file
BIN
rendering/cases/layer-vectortile-rotate/expected.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 118 KiB |
@@ -1,9 +1,9 @@
|
|||||||
import Map from '../../../src/ol/Map.js';
|
import Map from '../../../src/ol/Map.js';
|
||||||
import View from '../../../src/ol/View.js';
|
import View from '../../../src/ol/View.js';
|
||||||
import VectorTileSource from "../../../src/ol/source/VectorTile";
|
import VectorTileSource from '../../../src/ol/source/VectorTile';
|
||||||
import MVT from "../../../src/ol/format/MVT";
|
import MVT from '../../../src/ol/format/MVT';
|
||||||
import {createXYZ} from "../../../src/ol/tilegrid";
|
import {createXYZ} from '../../../src/ol/tilegrid';
|
||||||
import VectorTileLayer from "../../../src/ol/layer/VectorTile";
|
import VectorTileLayer from '../../../src/ol/layer/VectorTile';
|
||||||
|
|
||||||
const map = new Map({
|
const map = new Map({
|
||||||
layers: [
|
layers: [
|
||||||
@@ -23,5 +23,5 @@ const map = new Map({
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
map.getView().setRotation( Math.PI / 4);
|
map.getView().setRotation(Math.PI / 4);
|
||||||
render({message: 'Vector tile layer rotates'});
|
render({message: 'Vector tile layer rotates'});
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import Map from '../../../src/ol/CompositeMap.js';
|
import Map from '../../../src/ol/CompositeMap.js';
|
||||||
import View from '../../../src/ol/View.js';
|
import View from '../../../src/ol/View.js';
|
||||||
import VectorTileSource from "../../../src/ol/source/VectorTile";
|
import VectorTileSource from '../../../src/ol/source/VectorTile';
|
||||||
import MVT from "../../../src/ol/format/MVT";
|
import MVT from '../../../src/ol/format/MVT';
|
||||||
import {createXYZ} from "../../../src/ol/tilegrid";
|
import {createXYZ} from '../../../src/ol/tilegrid';
|
||||||
import VectorTileLayer from "../../../src/ol/layer/VectorTile";
|
import VectorTileLayer from '../../../src/ol/layer/VectorTile';
|
||||||
|
|
||||||
new Map({
|
new Map({
|
||||||
layers: [
|
layers: [
|
||||||
|
|||||||
@@ -1,12 +1,8 @@
|
|||||||
import Feature from '../../../../src/ol/Feature.js';
|
|
||||||
import Map from '../../../../src/ol/Map.js';
|
import Map from '../../../../src/ol/Map.js';
|
||||||
import View from '../../../../src/ol/View.js';
|
import View from '../../../../src/ol/View.js';
|
||||||
import MVT from '../../../../src/ol/format/MVT.js';
|
import MVT from '../../../../src/ol/format/MVT.js';
|
||||||
import Point from '../../../../src/ol/geom/Point.js';
|
|
||||||
import VectorLayer from '../../../../src/ol/layer/Vector.js';
|
|
||||||
import VectorTileLayer from '../../../../src/ol/layer/VectorTile.js';
|
import VectorTileLayer from '../../../../src/ol/layer/VectorTile.js';
|
||||||
import {assign} from '../../../../src/ol/obj.js';
|
import {assign} from '../../../../src/ol/obj.js';
|
||||||
import VectorSource from '../../../../src/ol/source/Vector.js';
|
|
||||||
import VectorTileSource from '../../../../src/ol/source/VectorTile.js';
|
import VectorTileSource from '../../../../src/ol/source/VectorTile.js';
|
||||||
import CircleStyle from '../../../../src/ol/style/Circle.js';
|
import CircleStyle from '../../../../src/ol/style/Circle.js';
|
||||||
import Fill from '../../../../src/ol/style/Fill.js';
|
import Fill from '../../../../src/ol/style/Fill.js';
|
||||||
@@ -76,32 +72,6 @@ describe('ol.rendering.layer.VectorTile', function() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('renders rotated view correctly with vector layer on top', function(done) {
|
|
||||||
createMap();
|
|
||||||
const vectorSource = new VectorSource({
|
|
||||||
features: [
|
|
||||||
new Feature(new Point([1825727.7316762917, 6143091.089223046]))
|
|
||||||
]
|
|
||||||
});
|
|
||||||
map.addLayer(new VectorLayer({
|
|
||||||
zIndex: 1,
|
|
||||||
source: vectorSource,
|
|
||||||
style: new Style({
|
|
||||||
image: new CircleStyle({
|
|
||||||
radius: 10,
|
|
||||||
fill: new Fill({
|
|
||||||
color: 'red'
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}));
|
|
||||||
map.getView().setRotation(Math.PI / 4);
|
|
||||||
waitForTiles(source, {}, function() {
|
|
||||||
expectResemble(map, 'rendering/ol/layer/expected/vectortile-vector-rotated.png',
|
|
||||||
14, done);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
it('renders correctly with the canvas renderer (HiDPI)', function(done) {
|
it('renders correctly with the canvas renderer (HiDPI)', function(done) {
|
||||||
createMap(2);
|
createMap(2);
|
||||||
waitForTiles(source, {}, function() {
|
waitForTiles(source, {}, function() {
|
||||||
|
|||||||
Reference in New Issue
Block a user