Merge pull request #4518 from ahocevar/osm-vector-tiles

Add support for OSM vector tiles
This commit is contained in:
Andreas Hocevar
2015-12-08 11:01:49 +01:00
10 changed files with 229 additions and 17 deletions

View File

@@ -1,6 +1,7 @@
goog.provide('ol.test.featureloader');
describe('ol.featureloader', function() {
describe('ol.featureloader.xhr', function() {
var loader;
var source;
@@ -53,9 +54,48 @@ describe('ol.featureloader', function() {
});
});
describe('ol.featureloader.tile', function() {
var loader;
var tile;
beforeEach(function() {
tile = new ol.VectorTile([0, 0, 0], undefined, undefined, undefined,
undefined, ol.proj.get('EPSG:3857'));
});
it('sets features on the tile', function(done) {
var url = 'spec/ol/data/point.json';
var format = new ol.format.GeoJSON();
loader = ol.featureloader.tile(url, format);
goog.events.listen(tile, 'change', function(e) {
expect(tile.getFeatures().length).to.be.greaterThan(0);
done();
});
loader.call(tile, [], 1, ol.proj.get('EPSG:3857'));
});
it('sets features on the tile and updates proj units', function(done) {
var url = 'spec/ol/data/14-8938-5680.vector.pbf';
var format = new ol.format.MVT();
loader = ol.featureloader.tile(url, format);
goog.events.listen(tile, 'change', function(e) {
expect(tile.getFeatures().length).to.be.greaterThan(0);
expect(tile.getProjection().getUnits()).to.be('tile-pixels');
done();
});
loader.call(tile, [], 1, ol.proj.get('EPSG:3857'));
});
});
});
goog.require('goog.events');
goog.require('ol.VectorTile');
goog.require('ol.featureloader');
goog.require('ol.format.GeoJSON');
goog.require('ol.format.MVT');
goog.require('ol.proj');
goog.require('ol.source.Vector');
goog.require('ol.source.VectorEventType');

View File

@@ -69,6 +69,7 @@ describe('ol.proj', function() {
});
expect(ol.proj.equivalent(proj1, proj2)).to.not.be.ok();
});
});
describe('identify transform', function() {

View File

@@ -41,7 +41,6 @@ describe('ol.renderer.canvas.VectorTileLayer', function() {
ol.VectorTile.apply(this, arguments);
this.setState('loaded');
this.setFeatures([feature1, feature2]);
this.setProjection(ol.proj.get('EPSG:3857'));
};
ol.inherits(TileClass, ol.VectorTile);
var source = new ol.source.VectorTile({