Merge pull request #435 from tschaub/kind-transform

Stay on the world when transforming coords.
This commit is contained in:
Tim Schaub
2012-11-14 11:26:11 -08:00
2 changed files with 5 additions and 4 deletions

View File

@@ -287,7 +287,8 @@ OpenLayers.Projection.nullTransform = function(point) {
function forwardMercator(xy) {
xy.x = xy.x * pole / 180;
xy.y = Math.log(Math.tan((90 + xy.y) * Math.PI / 360)) / Math.PI * pole;
var y = Math.log(Math.tan((90 + xy.y) * Math.PI / 360)) / Math.PI * pole;
xy.y = Math.max(-20037508.34, Math.min(y, 20037508.34));
return xy;
}

View File

@@ -23,11 +23,11 @@
t.eq(Math.round(phillipines.lat), 0, "Phillipines lat is correct");
t.eq(phillipines.lon, 20037508.340, "Phillipines lon is correct");
// Rounding errors make this not infinity
t.ok(ne.lat > 50000000, "NE lat is correct");
// be kind and stay within the world instead of having +/- infinity lat
t.ok(ne.lat, 20037508.34, "NE lat is correct");
t.eq(ne.lon, 20037508.34, "NE lon is correct");
t.eq(sw.lat, -Infinity, "SW lat is correct");
t.eq(sw.lat, -20037508.34, "SW lat is correct");
t.eq(sw.lon, -20037508.34, "SW lon is correct");
}