From ede84739c4d54a4914944478b138727015d2933c Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Mon, 16 Dec 2013 09:58:27 +0100 Subject: [PATCH] Add displayDpi option to ol.source.MapGuide constructor --- src/objectliterals.jsdoc | 1 + src/ol/source/mapguidesource.js | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index c6eec5c892..8f9a3053fc 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -635,6 +635,7 @@ /** * @typedef {Object} olx.source.MapGuideOptions * @property {string|undefined} url The mapagent url. + * @property {number|undefined} displayDpi The display resolution. Default is `96`. * @property {number|undefined} metersPerUnit The meters-per-unit value. Default is `1`. * @property {ol.Extent|undefined} extent Extent. * @property {boolean|undefined} useOverlay If `true`, will use diff --git a/src/ol/source/mapguidesource.js b/src/ol/source/mapguidesource.js index 7c20c7468c..0a0d51cb1e 100644 --- a/src/ol/source/mapguidesource.js +++ b/src/ol/source/mapguidesource.js @@ -31,6 +31,13 @@ ol.source.MapGuide = function(options) { imageUrlFunction: imageUrlFunction }); + /** + * @private + * @type {number} + */ + this.displayDpi_ = goog.isDef(options.displayDpi) ? + options.displayDpi : 96; + /** * @private * @type {number} @@ -98,7 +105,7 @@ ol.source.MapGuide.prototype.getScale = function(extent, size) { var mcsH = ol.extent.getHeight(extent); var devW = size[0]; var devH = size[1]; - var dpi = 96; + var dpi = this.displayDpi_; var mpu = this.metersPerUnit_; var mpp = 0.0254 / dpi; if (devH * mcsW > devW * mcsH) { @@ -127,7 +134,7 @@ ol.source.MapGuide.prototype.getUrl = 'LOCALE': 'en', 'CLIENTAGENT': 'ol.source.MapGuide source', 'CLIP': '1', - 'SETDISPLAYDPI': 96, + 'SETDISPLAYDPI': this.displayDpi_, 'SETDISPLAYWIDTH': Math.round(size[0]), 'SETDISPLAYHEIGHT': Math.round(size[1]), 'SETVIEWSCALE': scale,