Fix request image size caclulation
This commit is contained in:
@@ -15,6 +15,7 @@ var layers = [
|
||||
source: new ol.source.ImageWMS({
|
||||
url: 'https://ahocevar.com/geoserver/wms',
|
||||
params: {'LAYERS': 'topp:states'},
|
||||
ratio: 1,
|
||||
serverType: 'geoserver'
|
||||
})
|
||||
})
|
||||
|
||||
@@ -194,11 +194,11 @@ ol.source.ImageWMS.prototype.getImageInternal = function(extent, resolution, pix
|
||||
var center = ol.extent.getCenter(extent);
|
||||
var viewWidth = Math.ceil(ol.extent.getWidth(extent) / imageResolution);
|
||||
var viewHeight = Math.ceil(ol.extent.getHeight(extent) / imageResolution);
|
||||
var viewExtent = ol.extent.getForViewAndSize(center, resolution, 0,
|
||||
var viewExtent = ol.extent.getForViewAndSize(center, imageResolution, 0,
|
||||
[viewWidth, viewHeight]);
|
||||
var requestWidth = Math.ceil(this.ratio_ * ol.extent.getWidth(extent) / imageResolution);
|
||||
var requestHeight = Math.ceil(this.ratio_ * ol.extent.getHeight(extent) / imageResolution);
|
||||
var requestExtent = ol.extent.getForViewAndSize(center, resolution, 0,
|
||||
var requestExtent = ol.extent.getForViewAndSize(center, imageResolution, 0,
|
||||
[requestWidth, requestHeight]);
|
||||
|
||||
var image = this.image_;
|
||||
|
||||
@@ -35,6 +35,19 @@ describe('ol.source.ImageWMS', function() {
|
||||
expect(extentAspectRatio).to.roughlyEqual(imageAspectRatio, 1e-12);
|
||||
});
|
||||
|
||||
it('uses correct WIDTH and HEIGHT for HiDPI devices', function() {
|
||||
pixelRatio = 2;
|
||||
options.serverType = 'geoserver';
|
||||
var source = new ol.source.ImageWMS(options);
|
||||
var image = source.getImage(extent, resolution, pixelRatio, projection);
|
||||
var uri = new URL(image.src_);
|
||||
var queryData = uri.searchParams;
|
||||
var width = Number(queryData.get('WIDTH'));
|
||||
var height = Number(queryData.get('HEIGHT'));
|
||||
expect(width).to.be(400);
|
||||
expect(height).to.be(400);
|
||||
});
|
||||
|
||||
it('requests integer WIDTH and HEIGHT', function() {
|
||||
options.ratio = 1.5;
|
||||
var source = new ol.source.ImageWMS(options);
|
||||
|
||||
Reference in New Issue
Block a user