Guest User

Untitled

a guest
Aug 24th, 2022
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.78 KB | None | 0 0
  1.  
  2. function calculate(){
  3. var ll = UTMtoLL($j('#north').val(),$j('#east').val(),$j('#zone_i').val());
  4. ll[0] = Math.round(ll[0]*1000000)/1000000;
  5. ll[1] = Math.round(ll[1]*1000000)/1000000;
  6. $j('#long').html(ll[0]);
  7. $j('#lat').html(ll[1]);
  8. 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";
  9. $j('#googleMaps').html("- <a href=\"" + msg + "\" target=\"new\">show position in Google Maps!</a>");
  10.  
  11. var long = ll[0];
  12. var long_deg = Math.floor(long);
  13. if (long < 0) long_deg = Math.floor(long) + 1;
  14. var long_min = Math.floor((long - long_deg)*60);
  15. if (long < 0) long_min = Math.floor((long - long_deg)*60 + 1) * -1;
  16. var long_sec = Math.round((((long - long_deg)*60) - Math.floor(((long - long_deg)*60)))*60*1000)/1000;
  17. if (long < 0) long_sec = Math.round((((long - long_deg)*60) - Math.floor(((long - long_deg)*60 + 1)))*60*1000)/1000 * -1;
  18.  
  19. $j('#long_deg').html(long_deg);
  20. $j('#long_min').html(long_min);
  21. $j('#long_sec').html(long_sec);
  22.  
  23. var lat = ll[1];
  24. var lat_deg = Math.floor(lat);
  25. if (lat < 0) lat_deg = Math.floor(lat) + 1;
  26. var lat_min = Math.floor((lat - lat_deg)*60);
  27. if (lat < 0) lat_min = Math.floor((lat - lat_deg)*60 + 1) * -1;
  28. var lat_sec = Math.round((((lat - lat_deg)*60) - Math.floor(((lat - lat_deg)*60)))*60*10000)/10000;
  29. if (lat < 0) lat_sec = Math.round((((lat - lat_deg)*60) - Math.floor(((lat - lat_deg)*60 + 1)))*60*1000)/1000 * -1;
  30. $j('#lat_deg').html(lat_deg);
  31. $j('#lat_min').html(lat_min);
  32. $j('#lat_sec').html(lat_sec);
  33.  
  34. }
  35.  
  36. var txt = "northing, easting, zone\n7042000,510000,32\n7042010,510010,32";
  37. $j('#utmList').html("<" + "textarea id=\"utmListArea\" cols=30 rows=5\">" + txt + "<" + "/textarea>");
  38.  
  39. function convert(){
  40. var txt = "7042000,510000,32\n7042010,510010,32";
  41. txt = $j('#utmListArea').val();
  42. var points = txt.split("\n");
  43. var converted = "northing, easting, zone, longitude, latitude\n";
  44. var converted2 = "<b>Check the conversions in Google Map!</b><br/>";
  45. converted2 += "northing, easting, zone, longitude, latitude<br/>";
  46. for (i = 1; i < points.length; i++) {
  47. var point = points[i].split(",");
  48. var east = parseFloat(point[0]);
  49. var north = parseFloat(point[1]);
  50. var zone = parseInt(point[2]);
  51. var utmLL = UTMtoLL(east,north,zone);
  52. converted += east + "," + north + "," + zone + "," + utmLL[0] + "," + utmLL[1] + "\n";
  53. 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";
  54. var gooMap = "<a href=\"" + goo + "\" target=\"_blank\">Google Maps!</a>";
  55. converted2 += east + "," + north + "," + zone + "," + utmLL[0] + "," + utmLL[1] + "," + gooMap + "<br/>";
  56. }
  57.  
  58. $j('#utmList').html("<" + "textarea id=\"utmListArea\" cols=60 rows=5>" + converted + "<" + "/textarea>");
  59. $j('#utmList2').html(converted2);
  60.  
  61. }
  62.  
  63. function resetList(){
  64. var txt = "northing, easting, zone\n7042000,510000,32\n7042010,510010,32";
  65. $j('#utmList').html("<" + "textarea id=\"utmListArea\" cols=30 rows=5>" + txt + "<" + "/textarea>");
  66. $j('#utmList2').html("");
  67.  
  68. }
  69.  
  70.  
  71. function UTMtoLL(f,f1,j) {
  72. var d = 0.99960000000000004;
  73. var d1 = 6378137;
  74. var d2 = 0.0066943799999999998;
  75.  
  76. var d4 = (1 - Math.sqrt(1-d2))/(1 + Math.sqrt(1 - d2));
  77. var d15 = f1 - 500000;
  78. var d16 = f;
  79. var d11 = ((j - 1) * 6 - 180) + 3;
  80.  
  81. var d3 = d2/(1 - d2);
  82. var d10 = d16 / d;
  83. var d12 = d10 / (d1 * (1 - d2/4 - (3 * d2 *d2)/64 - (5 * Math.pow(d2,3))/256));
  84. 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);
  85. var d13 = d14 * 180 / Math.PI;
  86. var d5 = d1 / Math.sqrt(1 - d2 * Math.sin(d14) * Math.sin(d14));
  87. var d6 = Math.tan(d14)*Math.tan(d14);
  88. var d7 = d3 * Math.cos(d14) * Math.cos(d14);
  89. var d8 = (d1 * (1 - d2))/Math.pow(1-d2*Math.sin(d14)*Math.sin(d14),1.5);
  90.  
  91. var d9 = d15/(d5 * d);
  92. 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);
  93. d17 = d17 * 180 / Math.PI;
  94. 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);
  95. d18 = d11 + d18 * 180 / Math.PI;
  96. return [d18,d17];
  97. }
  98.  
  99. $j( document ).ready(function() {
  100. calculate();
  101. });
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
Advertisement
Add Comment
Please, Sign In to add comment