diff --git a/src/ol/imageurlfunction.js b/src/ol/imageurlfunction.js index ebaec5c427..ca55704f72 100644 --- a/src/ol/imageurlfunction.js +++ b/src/ol/imageurlfunction.js @@ -14,16 +14,16 @@ ol.ImageUrlFunctionType; /** * @param {string} baseUrl Base URL (may have query data). + * @param {string} axisOrientation Axis orientation. * @return {ol.ImageUrlFunctionType} Image URL function. */ -ol.ImageUrlFunction.createBboxParam = function(baseUrl) { +ol.ImageUrlFunction.createBboxParam = function(baseUrl, axisOrientation) { return function(extent, size) { - // FIXME Projection dependant axis order. - var bboxValue = [ - extent.minX, extent.minY, extent.maxX, extent.maxY - ].join(','); + var bboxValues = axisOrientation.substr(0, 2) == 'ne' ? + [extent.minY, extent.minX, extent.maxY, extent.maxX] : + [extent.minX, extent.minY, extent.maxX, extent.maxY]; return goog.uri.utils.appendParams(baseUrl, - 'BBOX', bboxValue, + 'BBOX', bboxValues.join(','), 'HEIGHT', size.height, 'WIDTH', size.width); }; diff --git a/src/ol/source/singleimagewmssource.js b/src/ol/source/singleimagewmssource.js index 84e66db61f..0a7f9be765 100644 --- a/src/ol/source/singleimagewmssource.js +++ b/src/ol/source/singleimagewmssource.js @@ -38,11 +38,13 @@ ol.source.SingleImageWMS = function(options) { baseParams[version >= '1.3' ? 'CRS' : 'SRS'] = projection.getCode(); goog.object.extend(baseParams, options.params); + var axisOrientation = projection.getAxisOrientation(); var imageUrlFunction; if (options.url) { var url = goog.uri.utils.appendParamsFromMap( options.url, baseParams); - imageUrlFunction = ol.ImageUrlFunction.createBboxParam(url); + imageUrlFunction = + ol.ImageUrlFunction.createBboxParam(url, axisOrientation); } else { imageUrlFunction = ol.ImageUrlFunction.nullImageUrlFunction;