Compare commits

...

5 Commits

Author SHA1 Message Date
Tim Schaub
7464cedff7 6.0.0-beta.11 2019-06-24 17:06:04 -06:00
Tim Schaub
51c49e36bc Merge pull request #9712 from tschaub/mvt-id
Allow an arbitrary tag to be used as feature id
2019-06-24 16:42:06 -06:00
Andreas Hocevar
b29099a278 Merge pull request #9709 from ahocevar/circleci-puppeteer
Try to make rendering tests run again in puppeteer
2019-06-24 21:59:32 +02:00
Tim Schaub
08c494dd11 Allow an arbitrary tag to be used as feature id 2019-06-24 12:01:12 -06:00
ahocevar
c0a2549285 Try to make rendering tests run again in puppeteer 2019-06-24 10:20:47 +02:00
5 changed files with 11008 additions and 3 deletions

10952
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "ol",
"version": "6.0.0-beta.10",
"version": "6.0.0-beta.11",
"description": "OpenLayers mapping library",
"keywords": [
"map",

View File

@@ -357,7 +357,7 @@ if (require.main === module) {
option('puppeteer-args', {
describe: 'Additional args for Puppeteer',
type: 'array',
default: process.env.CI ? ['--no-sandbox', '--disable-setuid-sandbox'] : []
default: process.env.CI ? ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage'] : []
}).
parse();

View File

@@ -31,6 +31,7 @@ import {get} from '../proj.js';
* @property {string} [geometryName='geometry'] Geometry name to use when creating features.
* @property {string} [layerName='layer'] Name of the feature attribute that holds the layer name.
* @property {Array<string>} [layers] Layers to read features from. If not provided, features will be read from all
* @property {string} [idProperty] Optional property that will be assigned as the feature id and removed from the properties.
* layers.
*/
@@ -84,6 +85,12 @@ class MVT extends FeatureFormat {
*/
this.layers_ = options.layers ? options.layers : null;
/**
* @private
* @type {string}
*/
this.idProperty_ = options.idProperty;
}
/**
@@ -164,8 +171,16 @@ class MVT extends FeatureFormat {
}
let feature;
const id = rawFeature.id;
const values = rawFeature.properties;
let id;
if (!this.idProperty_) {
id = rawFeature.id;
} else {
id = values[this.idProperty_];
delete values[this.idProperty_];
}
values[this.layerName_] = rawFeature.layer.name;
const flatCoordinates = [];

View File

@@ -78,6 +78,44 @@ where('ArrayBuffer.isView').describe('ol.format.MVT', function() {
expect(features[0].getId()).to.be(2);
});
it('accepts custom idProperty', function() {
const format = new MVT({
featureClass: Feature,
layers: ['poi_label'],
idProperty: 'osm_id'
});
const features = format.readFeatures(data, options);
const first = features[0];
expect(first.getId()).to.be(1000000057590683);
expect(first.get('osm_id')).to.be(undefined);
});
it('accepts custom idProperty (render features)', function() {
const format = new MVT({
layers: ['poi_label'],
idProperty: 'osm_id'
});
const features = format.readFeatures(data, options);
const first = features[0];
expect(first.getId()).to.be(1000000057590683);
expect(first.get('osm_id')).to.be(undefined);
});
it('works if you provide a bogus idProperty', function() {
const format = new MVT({
layers: ['poi_label'],
idProperty: 'bogus'
});
const features = format.readFeatures(data, options);
const first = features[0];
expect(first.getId()).to.be(undefined);
});
});
});