diff options
author | Dave Arter <davea@mysociety.org> | 2017-11-29 11:03:18 +0000 |
---|---|---|
committer | Dave Arter <davea@mysociety.org> | 2018-02-13 12:39:50 +0000 |
commit | 220432931da1472eb9d403df6419aa86b34d3ee6 (patch) | |
tree | a7e27159dfd7725417008572aed5051de53adbef /web/vendor/OpenLayers.Projection.OrdnanceSurvey.js | |
parent | ec3a443ac4c1d7e5caac339c1d48d9900e974fe3 (diff) |
Fix OpenLayers.Projection.OS transforms
It seems that the projectInverse/projectForward methods in
OpenLayers.Layer.SphericalMercator have been renamed which was causing
problems.
Additionally this gem was buried in the OpenLayers.Projection.transform
docs:
Returns point - [...] The original point is modified.
The previous code didn't seem to modify the original point which was
confusing OpenLayers.
Diffstat (limited to 'web/vendor/OpenLayers.Projection.OrdnanceSurvey.js')
-rw-r--r-- | web/vendor/OpenLayers.Projection.OrdnanceSurvey.js | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/web/vendor/OpenLayers.Projection.OrdnanceSurvey.js b/web/vendor/OpenLayers.Projection.OrdnanceSurvey.js index 85574d8e0..339f57a93 100644 --- a/web/vendor/OpenLayers.Projection.OrdnanceSurvey.js +++ b/web/vendor/OpenLayers.Projection.OrdnanceSurvey.js @@ -107,11 +107,19 @@ OpenLayers.Projection.OS = { }, goog2osgb: function(point) { - return OpenLayers.Projection.OS.projectForwardBritish(OpenLayers.Layer.SphericalMercator.projectInverse(point)); + var p1 = OpenLayers.Layer.SphericalMercator.inverseMercator(point.x, point.y); + var p2 = OpenLayers.Projection.OS.projectForwardBritish({x: p1.lon, y: p1.lat}); + point.x = p2.x; + point.y = p2.y; + return point; }, osgb2goog: function(point) { - return OpenLayers.Layer.SphericalMercator.projectForward(OpenLayers.Projection.OS.projectInverseBritish(point)); + var p1 = OpenLayers.Projection.OS.projectInverseBritish(point); + var p2 = OpenLayers.Layer.SphericalMercator.forwardMercator(p1.x, p1.y); + point.x = p2.lon; + point.y = p2.lat; + return point; }, /***** |