diff --git a/externs/olx.js b/externs/olx.js index 5ff47a3a2b..1d422f42cf 100644 --- a/externs/olx.js +++ b/externs/olx.js @@ -5064,6 +5064,7 @@ olx.source.OSMOptions.prototype.wrapX; /** * @typedef {{attributions: (Array.|undefined), * crossOrigin: (null|string|undefined), + * hidpi: (boolean|undefined), * logo: (string|olx.LogoOptions|undefined), * imageLoadFunction: (ol.ImageLoadFunctionType|undefined), * params: Object., @@ -5095,6 +5096,15 @@ olx.source.ImageArcGISRestOptions.prototype.attributions; olx.source.ImageArcGISRestOptions.prototype.crossOrigin; +/** + * Use the `ol.Map#pixelRatio` value when requesting the image from the remote + * server. Default is `true`. + * @type {boolean|undefined} + * @api + */ +olx.source.ImageArcGISRestOptions.prototype.hidpi; + + /** * Logo. * @type {string|olx.LogoOptions|undefined} diff --git a/src/ol/source/imagearcgisrest.js b/src/ol/source/imagearcgisrest.js index c086788ff0..47fabd5b30 100644 --- a/src/ol/source/imagearcgisrest.js +++ b/src/ol/source/imagearcgisrest.js @@ -44,6 +44,12 @@ ol.source.ImageArcGISRest = function(opt_options) { this.crossOrigin_ = options.crossOrigin !== undefined ? options.crossOrigin : null; + /** + * @private + * @type {boolean} + */ + this.hidpi_ = options.hidpi !== undefined ? options.hidpi : true; + /** * @private * @type {string|undefined} @@ -114,6 +120,7 @@ ol.source.ImageArcGISRest.prototype.getImageInternal = function(extent, resoluti } resolution = this.findNearestResolution(resolution); + pixelRatio = this.hidpi_ ? pixelRatio : 1; var image = this.image_; if (image &&