has a great script to convert utm coordinates to lat/lng. However, I need to modify function below (taken from the script which can be download from above), to do mercator - lat/lng conversion.
Thanks for the help!!!

function UTMRefToLatLng() { var wgs84 = new RefEll(6378137, 6356752.314); var UTM_F0 = 0.9996; var a = wgs84.maj; var eSquared = wgs84.ecc; var ePrimeSquared = eSquared / (1.0 - eSquared); var e1 = (1 - Math.sqrt(1 - eSquared)) / (1 + Math.sqrt(1 - eSquared)); var x = this.easting - 500000.0;; var y = this.northing; var zoneNumber = this.lngZone; var zoneLetter = this.latZone; var longitudeOrigin = (zoneNumber - 1.0) * 6.0 - 180.0 + 3.0; // Correct y for southern hemisphere if ((ord(zoneLetter) - ord("N")) < 0) { y -= 10000000.0; } var m = y / UTM_F0; var mu = m / (a * (1.0 - eSquared / 4.0 - 3.0 * eSquared * eSquared / 64.0 - 5.0 * Math.pow(eSquared, 3.0) / 256.0)); var phi1Rad = mu + (3.0 * e1 / 2.0 - 27.0 * Math.pow(e1, 3.0) / 32.0) * Math.sin(2.0 * mu) + (21.0 * e1 * e1 / 16.0 - 55.0 * Math.pow(e1, 4.0) / 32.0) * Math.sin(4.0 * mu) + (151.0 * Math.pow(e1, 3.0) / 96.0) * Math.sin(6.0 * mu); var n = a / Math.sqrt(1.0 - eSquared * Math.sin(phi1Rad) * Math.sin(phi1Rad)); var t = Math.tan(phi1Rad) * Math.tan(phi1Rad); var c = ePrimeSquared * Math.cos(phi1Rad) * Math.cos(phi1Rad); var r = a * (1.0 - eSquared) / Math.pow( 1.0 - eSquared * Math.sin(phi1Rad) * Math.sin(phi1Rad), 1.5); var d = x / (n * UTM_F0); var latitude = ( phi1Rad - (n * Math.tan(phi1Rad) / r) * (d * d / 2.0 - (5.0 + (3.0 * t) + (10.0 * c) - (4.0 * c * c) - (9.0 * ePrimeSquared)) * Math.pow(d, 4.0) / 24.0 + (61.0 + (90.0 * t) + (298.0 * c) + (45.0 * t * t) - (252.0 * ePrimeSquared) - (3.0 * c * c)) * Math.pow(d, 6.0) / 720.0)) * (180.0 / Math.PI); var longitude = longitudeOrigin + ( (d - (1.0 + 2.0 * t + c) * Math.pow(d, 3.0) / 6.0 + (5.0 - (2.0 * c) + (28.0 * t) - (3.0 * c * c) + (8.0 * ePrimeSquared) + (24.0 * t * t)) * Math.pow(d, 5.0) / 120.0) / Math.cos(phi1Rad)) * (180.0 / Math.PI); return new LatLng(latitude, longitude);

however, a conversion from UTM - Mercator would also work if anyone has that!!

0

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

tan^-1 is the inverse tangent - I think that's Math.atan in JavaScript.
sinh is the hyperbolic sine - I'm not sure if that exists in JavaScript, but if not, you can use this equality :

ok,
below is the javascript, but it does not seem to give the correct results. Im particularly curious about the forumla for lon -- how can lon be the mercator X coords + center lon? a typical mercator coordinate is
(x,y)
1851604, 331835

var sinh = (Math.exp(coordsY) - Math.exp(-coordsY)) / 2; var degrees = centerLatLng.substring(0,centerLatLng.indexOf("Ã‚Â°"))/1; var minutes = centerLatLng.substring(centerLatLng.indexOf("Ã‚Â°")+1,centerLatLng.indexOf("."))/ 60; var seconds = centerLatLng.substring(centerLatLng.indexOf("."),centerLatLng.indexOf("'")) / 3600; var centerLng = degrees + minutes + seconds; var lat = Math.atan(sinh); var lng = coordsX + centerLng;

>> how can lon be the mercator X coords + center lon?

You have to use the same units for the x,y and lat,lon values of course. I would prefer radians. (if they're not the same, you'll have to convert them).

That way, the center longitude of the Mercator map added to the Mercator x coordinate would then obviously give you the longitude.

>> 1851604, 331835

What's the unit ? That doesn't look like standard Mercator coordinates ...

Finally, also check what units the standard JavaScript functions expect ... Probably radians, but I'm not sure.

ok! great, see the script below. Lng is now returning the correct coordinates, but lat is still way off, perhaps you can spot the problem. sinh is returning numbers like 0.0345079, the Math.atan() doesn't seem to change this number either-

var rad = 6372795.477598;var sinh = (Math.exp(coordsY/rad) - Math.exp(-coordsY/rad)) / 2;alert(sinh);var lat = Math.atan(sinh);var degrees = centerLatLng.substring(0,centerLatLng.indexOf("Ã‚Â°"))/1;var minutes = centerLatLng.substring(centerLatLng.indexOf("Ã‚Â°")+1,centerLatLng.indexOf("."))/ 60; var seconds = centerLatLng.substring(centerLatLng.indexOf("."),centerLatLng.indexOf("'")) / 3600;var centerLng = degrees + minutes + seconds;var lng = (coordsX/rad) + (centerLng);

hmm.... yeah, something is still not working here, i really appreciate your patience. here's all the info:

here are the coords of the center of my map in mercator (this is western ny on my map)
1143031.34, 835295.19

the center longitude is 81.16691694444445 (and the correct center lat should be 42. etc)

the new code is below. none of these values correspond to what im expecting. when i reproject the map im using to utm, and use the above script, i get the correct lat/lng, so i think the mercator coords are correct.

var rad = 6372795.477598;var sinh = (Math.exp(coordsY/rad) - Math.exp(-coordsY/rad)) / 2;var lat = Math.atan(sinh)*(180/Math.PI);var lngrad = (coordsX/rad) + ((centerLng)*(Math.PI/180))var lng = (lngrad)*(180/Math.PI);

oh, i thought you meant the center of my current map, which, being in western ny, are those coordinates.

yes, i am working with a gis internet mapping application, and it returns enough information for me to calculate the correct projected coodinates; it also returns the center lat/lng (but nothing more). In the GIS, the projection is indeed mercator. When i reproject the map to use UTM, the coords are very different. are there different versions of mercator? is there any way to check whether the coords im using represent what you think of as mercator?

A Mercator projection is just a type of projection. The original one is sometimes still used for maps

>> is there any way to check whether the coords im using represent what you think of as mercator?

Is this a world map ? If not, what does the map contain ? What are the maximum and minimum (Mercator) coordinates ? What's the center latitude/longitude ?

Can you also give a known correct pair of Mercator coordinates and the corresponding latitude/longitude ?

ok, yes, i've dealt with this before. I just need to compensate for the local scale and offset. the code below does that. now (finally - thank you!!), im am getting the correct latitudes given the mercator coordinates. longitude is still off, for this region, im getting around -165. the code is below

var rad = 6372795.477598;var centerLng = (-9367812.99732577/rad); var X = ((coordsX*0.2985821196282)-9367812.99732577);var Y = coordsY*0.2985821374044+(4954053.105471344);var sinh = (Math.exp(Y/rad) - Math.exp(-Y/rad)) / 2;var lat = Math.atan(sinh)*(180/Math.PI);var lngrad = (X/rad) + centerLng;var lng = (lngrad)*(180/Math.PI);

ok, i can open another question for this one if you want, but heres definitely the last question. the forumla is working now, but the lat/lng coords are still off by around .4 degrees. any way to make this more accurate?

I'm not sure, but I would suspect that that's due to rounding errors, either in the input data, or in the calculations. Or maybe the verification values are a bit off ?

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

JavaScript can be used in a browser to change parts of a webpage dynamically. It begins with the following pattern: If condition W is true, do thing X to target Y after event Z. Below are some tips and tricks to help you get started with JavaScript â€¦

This article provides a brief introduction to tissue engineering, the process by which organs can be grown artificially. It covers the problems with organ transplants, the tissue engineering process, and the current successes and problems of the tecâ€¦

Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaacâ€¦

I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below.
https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt
https://filedb.experts-exchange.com/incoming/201â€¦