aboutsummaryrefslogtreecommitdiffstats
path: root/web/vendor/OpenLayers.Projection.OrdnanceSurvey.js
diff options
context:
space:
mode:
authorDave Arter <davea@mysociety.org>2017-11-29 11:03:18 +0000
committerDave Arter <davea@mysociety.org>2018-02-13 12:39:50 +0000
commit220432931da1472eb9d403df6419aa86b34d3ee6 (patch)
treea7e27159dfd7725417008572aed5051de53adbef /web/vendor/OpenLayers.Projection.OrdnanceSurvey.js
parentec3a443ac4c1d7e5caac339c1d48d9900e974fe3 (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.js12
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;
},
/*****