fixing dateline handling of Util.getFormattedLonLat. p=cayenne, r=me (closes #3411)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@12172 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
ahocevar
2011-07-18 12:58:43 +00:00
parent 46a10135d9
commit e6a40e1334
2 changed files with 6 additions and 1 deletions

View File

@@ -1865,6 +1865,9 @@ OpenLayers.Util.getFormattedLonLat = function(coordinate, axis, dmsOption) {
if (!dmsOption) {
dmsOption = 'dms'; //default to show degree, minutes, seconds
}
coordinate = (coordinate+540)%360 - 180; // normalize for sphere being round
var abscoordinate = Math.abs(coordinate);
var coordinatedegrees = Math.floor(abscoordinate);

View File

@@ -1146,10 +1146,12 @@
"toFloat rounds large floats correctly #2");
}
function test_getFormattedLonLat(t) {
t.plan(1);
t.plan(3);
var z = 2 + (4/60) - 0.000002 ;
t.eq(OpenLayers.Util.getFormattedLonLat(z,"lon"), "02°04'00\"E",
"LonLat does not show 60 seconds.");
t.eq(OpenLayers.Util.getFormattedLonLat(-181, "lon"), "179°00'00\"E", "crossing dateline from the west results in correct east coordinate");
t.eq(OpenLayers.Util.getFormattedLonLat(181, "lon"), "179°00'00\"W", "crossing dateline from the east results in correct west coordinate");
}
</script>
</head>