diff --git a/externs/olx.js b/externs/olx.js
index 8056fa3203..30411d8546 100644
--- a/externs/olx.js
+++ b/externs/olx.js
@@ -2910,7 +2910,8 @@ olx.interaction.ExtentOptions.prototype.wrapX;
/**
* @typedef {{
* features: (ol.Collection.
|undefined),
- * layers: (undefined|Array.|function(ol.layer.Layer): boolean)
+ * layers: (undefined|Array.|function(ol.layer.Layer): boolean),
+ * hitTolerance: (number|undefined)
* }}
*/
olx.interaction.TranslateOptions;
@@ -2937,6 +2938,16 @@ olx.interaction.TranslateOptions.prototype.features;
olx.interaction.TranslateOptions.prototype.layers;
+/**
+ * Hit-detection tolerance. Pixels inside the radius around the given position
+ * will be checked for features. This only works for the canvas renderer and
+ * not for WebGL.
+ * @type {number|undefined}
+ * @api
+ */
+olx.interaction.TranslateOptions.prototype.hitTolerance;
+
+
/**
* @typedef {{condition: (ol.EventsConditionType|undefined),
* duration: (number|undefined),
diff --git a/src/ol/interaction/select.js b/src/ol/interaction/select.js
index dbcd376efc..55d6f6c740 100644
--- a/src/ol/interaction/select.js
+++ b/src/ol/interaction/select.js
@@ -82,6 +82,10 @@ ol.interaction.Select = function(opt_options) {
this.filter_ = options.filter ? options.filter :
ol.functions.TRUE;
+ /**
+ * @private
+ * @type {number}
+ */
this.hitTolerance_ = options.hitTolerance ? options.hitTolerance : 0;
var featureOverlay = new ol.layer.Vector({
diff --git a/src/ol/interaction/translate.js b/src/ol/interaction/translate.js
index b1aade1db1..68f0864b0f 100644
--- a/src/ol/interaction/translate.js
+++ b/src/ol/interaction/translate.js
@@ -70,6 +70,12 @@ ol.interaction.Translate = function(opt_options) {
*/
this.layerFilter_ = layerFilter;
+ /**
+ * @private
+ * @type {number}
+ */
+ this.hitTolerance_ = options.hitTolerance ? options.hitTolerance : 0;
+
/**
* @type {ol.Feature}
* @private
@@ -198,11 +204,34 @@ ol.interaction.Translate.prototype.featuresAtPixel_ = function(pixel, map) {
return feature;
}
}, this, {
- layerFilter: this.layerFilter_
+ layerFilter: this.layerFilter_,
+ hitTolerance: this.hitTolerance_
});
};
+/**
+ * Returns the Hit-detection tolerance.
+ * @returns {number} Hit tolerance.
+ * @api
+ */
+ol.interaction.Translate.prototype.getHitTolerance = function() {
+ return this.hitTolerance_;
+};
+
+
+/**
+ * Hit-detection tolerance. Pixels inside the radius around the given position
+ * will be checked for features. This only works for the canvas renderer and
+ * not for WebGL.
+ * @param {number} hitTolerance Hit tolerance.
+ * @api
+ */
+ol.interaction.Translate.prototype.setHitTolerance = function(hitTolerance) {
+ this.hitTolerance_ = hitTolerance;
+};
+
+
/**
* @classdesc
* Events emitted by {@link ol.interaction.Translate} instances are instances of