Merge pull request #8077 from icholy/master
Add hasFeature method to ol.source.Vector
This commit is contained in:
@@ -827,6 +827,21 @@ VectorSource.prototype.handleFeatureChange_ = function(event) {
|
|||||||
VectorEventType.CHANGEFEATURE, feature));
|
VectorEventType.CHANGEFEATURE, feature));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true if the feature is contained within the source.
|
||||||
|
* @param {ol.Feature} feature Feature.
|
||||||
|
* @return {boolean} Has feature.
|
||||||
|
* @api
|
||||||
|
*/
|
||||||
|
VectorSource.prototype.hasFeature = function(feature) {
|
||||||
|
const id = feature.getId();
|
||||||
|
if (id !== undefined) {
|
||||||
|
return id in this.idIndex_;
|
||||||
|
} else {
|
||||||
|
const featureKey = getUid(feature).toString();
|
||||||
|
return featureKey in this.undefIdIndex_;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {boolean} Is empty.
|
* @return {boolean} Is empty.
|
||||||
|
|||||||
@@ -85,6 +85,35 @@ describe('ol.source.Vector', function() {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('#hasFeature', function() {
|
||||||
|
|
||||||
|
it('returns true for added feature without id', function() {
|
||||||
|
const feature = new Feature();
|
||||||
|
vectorSource.addFeature(feature);
|
||||||
|
expect(vectorSource.hasFeature(feature)).to.be(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('returns true for added feature with id', function() {
|
||||||
|
const feature = new Feature();
|
||||||
|
feature.setId('1');
|
||||||
|
vectorSource.addFeature(feature);
|
||||||
|
expect(vectorSource.hasFeature(feature)).to.be(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('return false for removed feature', function() {
|
||||||
|
const feature = new Feature();
|
||||||
|
vectorSource.addFeature(feature);
|
||||||
|
vectorSource.removeFeature(feature);
|
||||||
|
expect(vectorSource.hasFeature(feature)).to.be(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('returns false for non-added feature', function() {
|
||||||
|
const feature = new Feature();
|
||||||
|
expect(vectorSource.hasFeature(feature)).to.be(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when populated with 3 features', function() {
|
describe('when populated with 3 features', function() {
|
||||||
|
|||||||
Reference in New Issue
Block a user