From afca110b49e18385ec20cd745d22b5b2839c605c Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 11 Nov 2013 18:05:37 +0100 Subject: [PATCH] Add ol.source.Vector#forEachFeatureAtCoordinate --- src/ol/source/vectorsource.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/ol/source/vectorsource.js b/src/ol/source/vectorsource.js index cf8fe4660c..de2b26ea9e 100644 --- a/src/ol/source/vectorsource.js +++ b/src/ol/source/vectorsource.js @@ -70,6 +70,26 @@ ol.source.Vector.prototype.addFeature = function(feature) { }; +/** + * @param {ol.Coordinate} coordinate Coordinate. + * @param {function(this: T, ol.Feature): S} f Callback. + * @param {T=} opt_obj The object to be used a the value of 'this' within f. + * @return {S|undefined} + * @template T,S + */ +ol.source.Vector.prototype.forEachFeatureAtCoordinate = + function(coordinate, f, opt_obj) { + var extent = [coordinate[0], coordinate[1], coordinate[0], coordinate[1]]; + return this.forEachFeatureInExtent(extent, function(feature) { + if (feature.getGeometry().containsCoordinate(coordinate)) { + return f.call(opt_obj, feature); + } else { + return undefined; + } + }); +}; + + /** * @param {ol.Extent} extent Extent. * @param {function(this: T, ol.Feature): S} f Callback.