diff --git a/src/ol/reproj.js b/src/ol/reproj.js index 10da24c84d..7ea785dcf7 100644 --- a/src/ol/reproj.js +++ b/src/ol/reproj.js @@ -40,12 +40,14 @@ ol.reproj.calculateSourceResolution = function(sourceProj, targetProj, // coordinates may be slightly different. We need to reverse-compensate this // in order to achieve optimal results. - var compensationFactor = - ol.proj.getPointResolution(sourceProj, sourceResolution, sourceCenter) / - sourceResolution; - - if (isFinite(compensationFactor) && compensationFactor > 0) { - sourceResolution /= compensationFactor; + var sourceExtent = sourceProj.getExtent(); + if (!sourceExtent || ol.extent.containsCoordinate(sourceExtent, sourceCenter)) { + var compensationFactor = + ol.proj.getPointResolution(sourceProj, sourceResolution, sourceCenter) / + sourceResolution; + if (isFinite(compensationFactor) && compensationFactor > 0) { + sourceResolution /= compensationFactor; + } } return sourceResolution;