Skip to content

Commit

Permalink
fixing dateline handling of Util.getFormattedLonLat. p=cayenne, r=me …
Browse files Browse the repository at this point in the history
…(closes #3411)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@12172 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
  • Loading branch information
ahocevar committed Jul 18, 2011
1 parent 46a1013 commit e6a40e1
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 1 deletion.
3 changes: 3 additions & 0 deletions lib/OpenLayers/Util.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
4 changes: 3 additions & 1 deletion tests/Util.html
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down

0 comments on commit e6a40e1

Please sign in to comment.