On Thursday, October 11, 2012 7:53:22 PM UTC+2, Lew wrote: > > Karl Kristian Markman wrote: > >> So here is the code I use to transform the Lat long to UTM ( in case >> anyone else wouders..) >> >> [code] >> >> public void convert (){ >> >> double a = 6378137; >> > > Strictly speaking, you should use a double constant to initialize a double > variable. > Fortunately Java does the conversion for you. > > >> double b = 6356752.3142; >> >> e = Math.sqrt(1-Math.pow(b,2)/Math.pow(a, 2)); // a and >> b are constants. >> > > 'a' and 'b' are not constants in the Java sense unless they're declared > 'final'. > > 'Math.pow()' for squares, really? Why? > > >> e2 = e*e/(1-(e*e)); >> > > Yet here you use the multiplication idiom for squares. Why the difference? > > >> n =(a-b)/(a+b); >> A0 = a*(1 - n + (5/4)*(Math.pow(n,2) - Math.pow(n,3)) + >> (81/64)*(Math.pow(n,4) - Math.pow(n,5))); >> B0 =(3*a*n/2)*(1 - n - (7*n*n/8)*(1-n) + (55/64)*(Math.pow(n, >> 4)-Math.pow(n, 5))); >> C0 =(15*a*n*n/16)*(1 - n +(3*n*n/4)*(1-n)); >> D0 =(35*a*Math.pow(n, 3)/48)*(1 - n + 11*n*n/16); >> E0 =(315*a*Math.pow(n,4)/51)*(1-n); >> zone = (int) (31 + (lngdeg/6)); >> double pi = 6* zone -183; >> double pii = (lngdeg-pi)*Math.PI/180; >> double rho1 = (1-(e*e) * (Math.sin(lat)*( Math.sin(lat)))); >> rho = a * (1-e*e)/ Math.pow(rho1, (3/2)); >> nu = a/(Math.pow((1-(e*e *(Math.sin(lat))*(Math.sin(lat)))), (1/2))); >> S = A0* lat - B0 * Math.sin(2*lat) + C0 * Math.sin(4*lat) - D0 * >> Math.sin(6*lat) + E0 * Math.sin(8*lat); >> double Ki = S * knu; >> double Kii = knu * nu *Math.sin(lat)*Math.cos(lat)/2; >> double Kiii = (knu * nu >> *Math.sin(lat)*Math.pow(Math.cos(lat),3)/24)*(5-Math.pow(Math.tan(lat),2)+9*Math.pow(e2,2)*Math.pow(Math.cos(lat),2)+4*Math.pow(e2 >> >> ,2)*Math.pow(Math.cos(lat),4)); >> double Kiv = knu * nu *Math.cos(lat); >> double Kv = knu * >> Math.pow(Math.cos(lat),3)*(nu/6)*(1-Math.pow(Math.tan(lat),2)+e2*Math.pow(Math.cos(lat),2)); >> >> double UTMni = (Ki+Kii*Math.pow(pii, 2)+ Kiii * Math.pow(pii,4)); >> double UTMei = 500000 + (Kiv*pii + Kv * Math.pow(pii, 3)); >> UTMn = (int) UTMni; >> UTMe = (int) UTMei; >> } >> [/code] >> > > OMFG, dude! You are just all over the place with this. Variables out of > nowhere, > terse obscure names, varying idioms for the same kinds of calculations, > utter > lack of comments or whitespace, except for the exorbitant indentation, > variable names > that imply different values, and the one and only comment you include > tells nothing > except for a falsehood that isn't relevant anyway, and would have been > self-explanatory > in code if the variables had been constants. > > I gather this code is meant neither to be re-used, shared nor maintained. > > -- > Lew >
Have you see the formulas for converting Lew? Yes i agree I have not been good with comments. If its any constalation I will update the code mow that its working.... -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en