The map widget I'm using gives me click locations in lat/long. I need to convert those coordinates to EPSG:3857 to query a database.

Most of the solutions I've found use the formula described in this gist: convert from long/lat to google mercator (or EPSG:4326 to EPSG:900913) . But I'm in doubt about the constant 90 used in the y calculation:

var y = Math.log(Math.tan((90 + lat) * Math.PI / 360)) / (Math.PI / 180);

The formula described on Wikipedia seems to suggest that instead of 90, I should use 85.051129. I've found other references to that value in questions such as Transforming EPSG:3857 to EPSG:4326.

Which is correct, and why?

  • The gist is using feet, plus yeah, I haven't seen those values. John Snyder gives y = R*ln(tan(PI/4.0 + phi/2)) with phi in radians.
    – mkennedy
    Aug 31, 2016 at 19:11
  • @mkennedy Where do you get that the gist is using feet? The function is called degrees2meters, and the magic number 20037508.34 is half the Earth's circumference at the equator in meters. Sep 1, 2016 at 22:27
  • Oops, my mistake. Radius of wgs84/grs80 is 20.9 million feet. I saw the 20 million and jumped to the wrong conclusion.
    – mkennedy
    Sep 1, 2016 at 22:32


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.