Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function calculate(){
- var ll = UTMtoLL($j('#north').val(),$j('#east').val(),$j('#zone_i').val());
- ll[0] = Math.round(ll[0]*1000000)/1000000;
- ll[1] = Math.round(ll[1]*1000000)/1000000;
- $j('#long').html(ll[0]);
- $j('#lat').html(ll[1]);
- var msg = "http://maps.google.com/maps?f=q&hl=en&geocode=&q=" + ll[1] + "," + ll[0] + "&ie=UTF8&ll=" + ll[1] + "," + ll[0] + "&spn=0.027108,0.109177&z=10";
- $j('#googleMaps').html("- <a href=\"" + msg + "\" target=\"new\">show position in Google Maps!</a>");
- var long = ll[0];
- var long_deg = Math.floor(long);
- if (long < 0) long_deg = Math.floor(long) + 1;
- var long_min = Math.floor((long - long_deg)*60);
- if (long < 0) long_min = Math.floor((long - long_deg)*60 + 1) * -1;
- var long_sec = Math.round((((long - long_deg)*60) - Math.floor(((long - long_deg)*60)))*60*1000)/1000;
- if (long < 0) long_sec = Math.round((((long - long_deg)*60) - Math.floor(((long - long_deg)*60 + 1)))*60*1000)/1000 * -1;
- $j('#long_deg').html(long_deg);
- $j('#long_min').html(long_min);
- $j('#long_sec').html(long_sec);
- var lat = ll[1];
- var lat_deg = Math.floor(lat);
- if (lat < 0) lat_deg = Math.floor(lat) + 1;
- var lat_min = Math.floor((lat - lat_deg)*60);
- if (lat < 0) lat_min = Math.floor((lat - lat_deg)*60 + 1) * -1;
- var lat_sec = Math.round((((lat - lat_deg)*60) - Math.floor(((lat - lat_deg)*60)))*60*10000)/10000;
- if (lat < 0) lat_sec = Math.round((((lat - lat_deg)*60) - Math.floor(((lat - lat_deg)*60 + 1)))*60*1000)/1000 * -1;
- $j('#lat_deg').html(lat_deg);
- $j('#lat_min').html(lat_min);
- $j('#lat_sec').html(lat_sec);
- }
- var txt = "northing, easting, zone\n7042000,510000,32\n7042010,510010,32";
- $j('#utmList').html("<" + "textarea id=\"utmListArea\" cols=30 rows=5\">" + txt + "<" + "/textarea>");
- function convert(){
- var txt = "7042000,510000,32\n7042010,510010,32";
- txt = $j('#utmListArea').val();
- var points = txt.split("\n");
- var converted = "northing, easting, zone, longitude, latitude\n";
- var converted2 = "<b>Check the conversions in Google Map!</b><br/>";
- converted2 += "northing, easting, zone, longitude, latitude<br/>";
- for (i = 1; i < points.length; i++) {
- var point = points[i].split(",");
- var east = parseFloat(point[0]);
- var north = parseFloat(point[1]);
- var zone = parseInt(point[2]);
- var utmLL = UTMtoLL(east,north,zone);
- converted += east + "," + north + "," + zone + "," + utmLL[0] + "," + utmLL[1] + "\n";
- var goo = "http://maps.google.com/maps?f=q&hl=en&geocode=&q=" + utmLL[1] + "," + utmLL[0] + "&ie=UTF8&ll=" + utmLL[1] + "," + utmLL[0] + "&spn=0.027108,0.109177&z=10";
- var gooMap = "<a href=\"" + goo + "\" target=\"_blank\">Google Maps!</a>";
- converted2 += east + "," + north + "," + zone + "," + utmLL[0] + "," + utmLL[1] + "," + gooMap + "<br/>";
- }
- $j('#utmList').html("<" + "textarea id=\"utmListArea\" cols=60 rows=5>" + converted + "<" + "/textarea>");
- $j('#utmList2').html(converted2);
- }
- function resetList(){
- var txt = "northing, easting, zone\n7042000,510000,32\n7042010,510010,32";
- $j('#utmList').html("<" + "textarea id=\"utmListArea\" cols=30 rows=5>" + txt + "<" + "/textarea>");
- $j('#utmList2').html("");
- }
- function UTMtoLL(f,f1,j) {
- var d = 0.99960000000000004;
- var d1 = 6378137;
- var d2 = 0.0066943799999999998;
- var d4 = (1 - Math.sqrt(1-d2))/(1 + Math.sqrt(1 - d2));
- var d15 = f1 - 500000;
- var d16 = f;
- var d11 = ((j - 1) * 6 - 180) + 3;
- var d3 = d2/(1 - d2);
- var d10 = d16 / d;
- var d12 = d10 / (d1 * (1 - d2/4 - (3 * d2 *d2)/64 - (5 * Math.pow(d2,3))/256));
- var d14 = d12 + ((3*d4)/2 - (27*Math.pow(d4,3))/32) * Math.sin(2*d12) + ((21*d4*d4)/16 - (55 * Math.pow(d4,4))/32) * Math.sin(4*d12) + ((151 * Math.pow(d4,3))/96) * Math.sin(6*d12);
- var d13 = d14 * 180 / Math.PI;
- var d5 = d1 / Math.sqrt(1 - d2 * Math.sin(d14) * Math.sin(d14));
- var d6 = Math.tan(d14)*Math.tan(d14);
- var d7 = d3 * Math.cos(d14) * Math.cos(d14);
- var d8 = (d1 * (1 - d2))/Math.pow(1-d2*Math.sin(d14)*Math.sin(d14),1.5);
- var d9 = d15/(d5 * d);
- var d17 = d14 - ((d5 * Math.tan(d14))/d8)*(((d9*d9)/2-(((5 + 3*d6 + 10*d7) - 4*d7*d7-9*d3)*Math.pow(d9,4))/24) + (((61 +90*d6 + 298*d7 + 45*d6*d6) - 252*d3 -3 * d7 *d7) * Math.pow(d9,6))/720);
- d17 = d17 * 180 / Math.PI;
- var d18 = ((d9 - ((1 + 2 * d6 + d7) * Math.pow(d9,3))/6) + (((((5 - 2 * d7) + 28*d6) - 3 * d7 * d7) + 8 * d3 + 24 * d6 * d6) * Math.pow(d9,5))/120)/Math.cos(d14);
- d18 = d11 + d18 * 180 / Math.PI;
- return [d18,d17];
- }
- $j( document ).ready(function() {
- calculate();
- });
Advertisement
Add Comment
Please, Sign In to add comment