Skip to content

Instantly share code, notes, and snippets.

@vuhung3990
Forked from onderaltintas/degrees2meters.js
Created August 3, 2021 00:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vuhung3990/cd2559ddecfdb661d57540d4bad1448e to your computer and use it in GitHub Desktop.
Save vuhung3990/cd2559ddecfdb661d57540d4bad1448e to your computer and use it in GitHub Desktop.
javascript coordinate conversions between 900913(3857) - 4326(lat lon)
var degrees2meters = function(lon,lat) {
var x = lon * 20037508.34 / 180;
var y = Math.log(Math.tan((90 + lat) * Math.PI / 360)) / (Math.PI / 180);
y = y * 20037508.34 / 180;
return [x, y]
}
//test
lon= -77.035974
lat = 38.898717
console.log(degrees2meters(lon,lat))
// should result in: -8575605.398444, 4707174.018280
var meters2degress = function(x,y) {
var lon = x * 180 / 20037508.34 ;
//thanks magichim @ github for the correction
var lat = Math.atan(Math.exp(y * Math.PI / 20037508.34)) * 360 / Math.PI - 90;
return [lon, lat]
}
//test
x= -8575605.398444
y = 4707174.018280
console.log(meters2degress(x,y))
//should result in: -77.035974, 38.898717
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment