Add render options for vector tile layers
This commit is contained in:
@@ -28,6 +28,29 @@ describe('ol.layer.VectorTile', function() {
|
||||
expect(layer.getUseInterimTilesOnError()).to.be(true);
|
||||
});
|
||||
|
||||
it('provides default renderMode', function() {
|
||||
expect(layer.getRenderMode()).to.be('hybrid');
|
||||
})
|
||||
|
||||
});
|
||||
|
||||
describe('constructor (options)', function() {
|
||||
var layer = new ol.layer.VectorTile({
|
||||
renderMode: 'vector',
|
||||
source: new ol.source.VectorTile({})
|
||||
});
|
||||
expect(layer.getRenderMode()).to.be('vector');
|
||||
layer = new ol.layer.VectorTile({
|
||||
renderMode: 'image',
|
||||
source: new ol.source.VectorTile({})
|
||||
});
|
||||
expect(layer.getRenderMode()).to.be('image');
|
||||
expect(function() {
|
||||
layer = new ol.layer.VectorTile({
|
||||
renderMode: 'foo',
|
||||
source: new ol.source.VectorTile({})
|
||||
});
|
||||
}).to.throwException();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
@@ -52,16 +52,24 @@ describe('ol.renderer.canvas.VectorTileLayer', function() {
|
||||
map.addLayer(layer);
|
||||
});
|
||||
|
||||
it('creates a new instance', function() {
|
||||
var renderer = new ol.renderer.canvas.VectorTileLayer(layer);
|
||||
expect(renderer).to.be.a(ol.renderer.canvas.VectorTileLayer);
|
||||
});
|
||||
|
||||
afterEach(function() {
|
||||
document.body.removeChild(target);
|
||||
map.dispose();
|
||||
});
|
||||
|
||||
it('creates a new instance', function() {
|
||||
var renderer = new ol.renderer.canvas.VectorTileLayer(layer);
|
||||
expect(renderer).to.be.a(ol.renderer.canvas.VectorTileLayer);
|
||||
expect(renderer.zDirection).to.be(0);
|
||||
});
|
||||
|
||||
it('uses lower resolution for pure vector rendering', function() {
|
||||
layer.renderMode_ = 'vector';
|
||||
var renderer = new ol.renderer.canvas.VectorTileLayer(layer);
|
||||
expect(renderer).to.be.a(ol.renderer.canvas.VectorTileLayer);
|
||||
expect(renderer.zDirection).to.be(1);
|
||||
});
|
||||
|
||||
it('gives precedence to feature styles over layer styles', function() {
|
||||
var spy = sinon.spy(map.getRenderer().getLayerRenderer(layer),
|
||||
'renderFeature');
|
||||
@@ -134,7 +142,7 @@ describe('ol.renderer.canvas.VectorTileLayer', function() {
|
||||
}
|
||||
};
|
||||
frameState.layerStates[goog.getUid(layer)] = {};
|
||||
renderer.renderedTiles_ = [new TileClass([0, 0, -1])];
|
||||
renderer.renderedTiles = [new TileClass([0, 0, -1])];
|
||||
renderer.forEachFeatureAtCoordinate(
|
||||
coordinate, frameState, spy, undefined);
|
||||
expect(spy.callCount).to.be(1);
|
||||
|
||||
@@ -1028,6 +1028,53 @@ describe('ol.tilegrid.TileGrid', function() {
|
||||
});
|
||||
});
|
||||
|
||||
describe('getZForResolution (lower)', function() {
|
||||
it('returns the expected z value', function() {
|
||||
var tileGrid = new ol.tilegrid.TileGrid({
|
||||
resolutions: resolutions,
|
||||
origin: origin,
|
||||
tileSize: tileSize
|
||||
});
|
||||
|
||||
expect(tileGrid.getZForResolution(2000, 1)).to.eql(0);
|
||||
expect(tileGrid.getZForResolution(1000, 1)).to.eql(0);
|
||||
expect(tileGrid.getZForResolution(900, 1)).to.eql(0);
|
||||
expect(tileGrid.getZForResolution(750, 1)).to.eql(0);
|
||||
expect(tileGrid.getZForResolution(625, 1)).to.eql(0);
|
||||
expect(tileGrid.getZForResolution(500, 1)).to.eql(1);
|
||||
expect(tileGrid.getZForResolution(475, 1)).to.eql(1);
|
||||
expect(tileGrid.getZForResolution(375, 1)).to.eql(1);
|
||||
expect(tileGrid.getZForResolution(250, 1)).to.eql(2);
|
||||
expect(tileGrid.getZForResolution(200, 1)).to.eql(2);
|
||||
expect(tileGrid.getZForResolution(125, 1)).to.eql(2);
|
||||
expect(tileGrid.getZForResolution(100, 1)).to.eql(3);
|
||||
expect(tileGrid.getZForResolution(50, 1)).to.eql(3);
|
||||
});
|
||||
});
|
||||
|
||||
describe('getZForResolution (higher)', function() {
|
||||
it('returns the expected z value', function() {
|
||||
var tileGrid = new ol.tilegrid.TileGrid({
|
||||
resolutions: resolutions,
|
||||
origin: origin,
|
||||
tileSize: tileSize
|
||||
});
|
||||
|
||||
expect(tileGrid.getZForResolution(2000, -1)).to.eql(0);
|
||||
expect(tileGrid.getZForResolution(1000, -1)).to.eql(0);
|
||||
expect(tileGrid.getZForResolution(900, -1)).to.eql(1);
|
||||
expect(tileGrid.getZForResolution(750, -1)).to.eql(1);
|
||||
expect(tileGrid.getZForResolution(625, -1)).to.eql(1);
|
||||
expect(tileGrid.getZForResolution(500, -1)).to.eql(1);
|
||||
expect(tileGrid.getZForResolution(475, -1)).to.eql(2);
|
||||
expect(tileGrid.getZForResolution(375, -1)).to.eql(2);
|
||||
expect(tileGrid.getZForResolution(250, -1)).to.eql(2);
|
||||
expect(tileGrid.getZForResolution(200, -1)).to.eql(3);
|
||||
expect(tileGrid.getZForResolution(125, -1)).to.eql(3);
|
||||
expect(tileGrid.getZForResolution(100, -1)).to.eql(3);
|
||||
expect(tileGrid.getZForResolution(50, -1)).to.eql(3);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
goog.require('ol.Coordinate');
|
||||
|
||||
Reference in New Issue
Block a user