Advertisement
Guest User

Untitled

a guest
Dec 5th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. %WGS84toTWD97
  2. clear
  3. WGS=input('緯度/精度:');
  4. [i,j]=size(WGS);
  5. latd=WGS(:,1);
  6. lond=WGS(:,2);
  7. a = 6378137.0;
  8. b = 6356752.314245;
  9. long0 = pi/180*121;
  10. k0 = 0.9999;
  11. dx = 250000;
  12. lat=latd.*(pi/180);
  13. lon=lond.*(pi/180);
  14.  
  15. e = (1-b^2/a^2)^(0.5);
  16. e2 = e^2/(1-e^2);
  17. n = (a-b)/(a+b);
  18. for z=1:i
  19. nu(z) = a/(1-(e^2)*(sin(lat(z))^2))^0.5;
  20. end
  21. p = (lon-long0)';
  22.  
  23. A = a*(1 - n + (5/4.0)*(n^2 - n^3) + (81/64.0)*(n^4 - n^5));
  24. B = (3*a*n/2.0)*(1 - n + (7/8.0)*(n^2 - n^3) + (55/64.0)*(n^4 - n^5));
  25. C = (15*a*(n^2)/16.0)*(1 - n + (3/4.0)*(n^2 - n^3));
  26. D = (35*a*(n^3)/48.0)*(1 - n + (11/16.0)*(n^2 - n^3));
  27. E = (315*a*(n^4)/51.0)*(1 - n);
  28. for z=1:i
  29. S(z) = A*lat(z) - B*sin(2*lat(z)) + C*sin(4*lat(z)) - D*sin(6*lat(z)) + E*sin(8*lat(z));
  30. end
  31. K1 = S.*k0;
  32. for z=1:i
  33. K2(z) = k0*nu(z)*sin(2*lat(z))/4.0;
  34. K3(z) = (k0*nu(z)*sin(lat(z))*(cos(lat(z))^3)/24.0)*(5 - tan(lat(z))^2 + 9*e2*(cos(lat(z))^2) + 4*(e2^2)*(cos(lat(z))^4));
  35. K4(z) = k0*nu(z)*cos(lat(z));
  36. K5(z) = (k0*nu(z)*(cos(lat(z))^3)/6.0)*(1 - tan(lat(z))^2 + e2*(cos(lat(z))^2));
  37. end
  38. for z=1:i
  39. y(z) = K1(z) + K2(z)*(p(z)^2) + K3(z)*(p(z)^4);
  40. x(z) = K4(z)*p(z) + K5(z)*(p(z)^3) + dx;
  41. end
  42. for z=1:i
  43. TWD97(z,1)=x(z);
  44. TWD97(z,2)=y(z);
  45. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement