You are on page 1of 23

CODIGO PARA LA VENTANA DE MENU

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pryconversiones;

/**
*
* @author Javier
*/
public class frmMenu extends javax.swing.JFrame {

/**
* Creates new form frmMenu
*/
public frmMenu() {
initComponents();
}

/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jPanel1 = new javax.swing.JPanel();


jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Menu Opciones"));

jButton1.setText("Conversión UTM a Geográficas");


jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jButton2.setText("Conversión Geográfica a UTM");


jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});

jButton3.setText("Cerrar Programa");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);


jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()
.addContainerGap(49, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING,
false)
.addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton3, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, 199, Short.MAX_VALUE))
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jButton1)
.addGap(7, 7, 7)
.addComponent(jButton2)
.addGap(7, 7, 7)
.addComponent(jButton3)
.addContainerGap(13, Short.MAX_VALUE))
);

getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(330, 140, 270,


130));

jLabel1.setFont(new java.awt.Font("Arial Black", 0, 18)); // NOI18N


jLabel1.setText("Universidad Nacional de Chimborazo");
getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(180, 10, -1, 30));

jLabel2.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N


jLabel2.setText("Topografía I");
getContentPane().add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 40, -1, -1));

jLabel3.setFont(new java.awt.Font("Tahoma", 3, 18)); // NOI18N


jLabel3.setForeground(new java.awt.Color(255, 0, 0));
jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel3.setText("CONVERSIÓN DE UNIDADES ");
jLabel3.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
getContentPane().add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(310, 60, 270,
20));

jLabel4.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/pryconversiones/folder/coo_geograficas.jpg"))); //
NOI18N
getContentPane().add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 90, -1, -1));

pack();
}// </editor-fold>

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
frmConversion obj=new frmConversion();
obj.show();
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
frmCoversion2 obj=new frmCoversion2();
obj.show();
}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
System.exit(0);
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(frmMenu.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(frmMenu.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(frmMenu.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(frmMenu.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
}
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new frmMenu().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JPanel jPanel1;
// End of variables declaration
}
CODIGO PARA LA CONVERSION 1

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pryconversiones;

import java.text.NumberFormat;

/**
*
* @author Javier
*/
public class frmConversion extends javax.swing.JFrame {

String[] elipsoides={
"Airy 1830-6377563.396-6356256.91",
"Airy Modificad 1965-6377340.189-6356034.4479",
"Bessel 1841-6377397.155000-6356078.962840",
"Clarke 1866-6378206.400000-6356583.800000",
"Clarke 1880-6378249.145000-6356514.869550",
"Fischer 1960-6378166.000000-6356784.280000",
"Fischer 1968-6378150.000000-6356768.330000",
"GRS 1980-6378137.000000-6356752.314140",
"Hayford 1909-6378388.000000-6356911.946130",
"Helmert 1906-6378200.000000-6356818.170000",
"Hough 1960-6378270.000000-6356794.343479",
"Internacional 1909-6378388.000000-6356911.946130",
"Internacional 1924-6378388.000000-6356911.946130",
"Krasovsky 1940-6378245.000000-6356863.018800",
"Mercury 1960-6378166.000000-6356784.283666",
"Mercury Modificado 1968-6378150.000000-6356768.337303",
"Nuevo International 1967-6378157.500000-6356772.200000",
"Sudamericano 1969-6378160.000000-6356774.720000",
"Walbeck 1817-6376896.000000-6355834.846700",
"WGS66-6378145.000000-6356759.769356",
"WGS72-6378135.000000-6356750.519915",
"WGS84-6378137.000000-6356752.314245"};
/**
* Creates new form frmConversion
*/
double sexaDecimalLongEW=0.0;
double sexaDecimalLatNS=0.0;

double radianesLon=0.0;
double radianesLat=0.0;

double huso;

double meridhuso;

double lambda;

double A;

double Xi;

double Eta;

double exentricidad,exentricidad1,exentricidad2,radioCurvatura ;
double Ni;
double A1;
double A2;
double J2;
double J4;
double J6;
double Alfa;
double Beta;
double Gamma;
double B_fi;
double X;
double Y;

double Zeta=0.0;
public frmConversion() {
initComponents();
LlenarElipsoides();
}

/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
lonGra = new javax.swing.JTextField();
latGra = new javax.swing.JTextField();
lonMin = new javax.swing.JTextField();
latMin = new javax.swing.JTextField();
cboLatLonEW = new javax.swing.JComboBox<>();
cboLatLonNS = new javax.swing.JComboBox<>();
lonSeg = new javax.swing.JTextField();
latSeg = new javax.swing.JTextField();
jLabel8 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
jLabel10 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
UtmEsteX = new javax.swing.JTextField();
UtmNorteY = new javax.swing.JTextField();
Huso = new javax.swing.JTextField();
btnConvertir = new javax.swing.JButton();
jLabel7 = new javax.swing.JLabel();
cboElipsoide = new javax.swing.JComboBox<>();
jLabel13 = new javax.swing.JLabel();
jLabel14 = new javax.swing.JLabel();
jLabel15 = new javax.swing.JLabel();
lblExcentricidad = new javax.swing.JLabel();
jLabel17 = new javax.swing.JLabel();
lbl_c_radioPolar = new javax.swing.JLabel();
lblA = new javax.swing.JLabel();
lblB = new javax.swing.JLabel();
lbl2daExce = new javax.swing.JLabel();
jLabel22 = new javax.swing.JLabel();
lblExccuadrado = new javax.swing.JLabel();
jLabel24 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

jLabel1.setText("Coordenadas");
getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 180, -1, -1));

jLabel2.setText("Longitud: ");
getContentPane().add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 200, -1, -1));

jLabel3.setText("Latitud: ");
getContentPane().add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 220, -1, -1));

jLabel4.setText("GRADOS");
getContentPane().add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 180, -1, -
1));

jLabel5.setText("MINUTOS");
getContentPane().add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 180, -1, -
1));
jLabel6.setText("SEGUNDOS");
getContentPane().add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(280, 180, -1, -
1));

lonGra.setText("0");
getContentPane().add(lonGra, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 200, 60, -
1));

latGra.setText("0");
getContentPane().add(latGra, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 220, 60, -1));

lonMin.setText("0");
getContentPane().add(lonMin, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 200, 60, -
1));

latMin.setText("0");
getContentPane().add(latMin, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 220, 60, -
1));

cboLatLonEW.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "W", "E" }));


getContentPane().add(cboLatLonEW, new org.netbeans.lib.awtextra.AbsoluteConstraints(350, 200,
80, -1));

cboLatLonNS.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "N", "S" }));


getContentPane().add(cboLatLonNS, new org.netbeans.lib.awtextra.AbsoluteConstraints(350, 220,
80, -1));

lonSeg.setText("0");
getContentPane().add(lonSeg, new org.netbeans.lib.awtextra.AbsoluteConstraints(280, 200, 70, -
1));

latSeg.setText("0");
getContentPane().add(latSeg, new org.netbeans.lib.awtextra.AbsoluteConstraints(280, 220, 70, -1));

jLabel8.setText("Longitud/Latitud");
getContentPane().add(jLabel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(350, 180, -1, -
1));

jLabel9.setText("COORDENADAS CONVERTIDAS");
getContentPane().add(jLabel9, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 270, -1, -
1));

jLabel10.setText("UTM Este X=");


getContentPane().add(jLabel10, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 290, -1, -
1));

jLabel11.setText("UTM Norte Y=");


getContentPane().add(jLabel11, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 310, -1, -
1));

jLabel12.setText("Huso");
getContentPane().add(jLabel12, new org.netbeans.lib.awtextra.AbsoluteConstraints(150, 330, -1, -
1));
getContentPane().add(UtmEsteX, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 290,
140, -1));
getContentPane().add(UtmNorteY, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 310,
140, -1));
getContentPane().add(Huso, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 330, 140, -
1));

btnConvertir.setText("Convertir");
btnConvertir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnConvertirActionPerformed(evt);
}
});
getContentPane().add(btnConvertir, new org.netbeans.lib.awtextra.AbsoluteConstraints(350, 250,
80, -1));

jLabel7.setText("Seleccione elipsoide: ");


getContentPane().add(jLabel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 50, -1, -1));

cboElipsoide.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
cboElipsoideItemStateChanged(evt);
}
});
cboElipsoide.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
cboElipsoideMouseClicked(evt);
}
});
getContentPane().add(cboElipsoide, new org.netbeans.lib.awtextra.AbsoluteConstraints(150, 50,
270, -1));

jLabel13.setText("semi eje mayor (a): ");


getContentPane().add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 80, -1, -1));

jLabel14.setText("semi eje menor (b): ");


getContentPane().add(jLabel14, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 100, -1, -
1));

jLabel15.setText("Excentrcidad: ");
getContentPane().add(jLabel15, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 120, -1, -
1));

lblExcentricidad.setText("...");
getContentPane().add(lblExcentricidad, new org.netbeans.lib.awtextra.AbsoluteConstraints(150,
120, 170, -1));

jLabel17.setText("2da e': ");


getContentPane().add(jLabel17, new org.netbeans.lib.awtextra.AbsoluteConstraints(310, 80, -1, -
1));

lbl_c_radioPolar.setText("...");
getContentPane().add(lbl_c_radioPolar, new org.netbeans.lib.awtextra.AbsoluteConstraints(390,
120, 170, -1));

lblA.setText("...");
getContentPane().add(lblA, new org.netbeans.lib.awtextra.AbsoluteConstraints(150, 80, 170, -1));

lblB.setText("...");
getContentPane().add(lblB, new org.netbeans.lib.awtextra.AbsoluteConstraints(150, 100, 170, -1));

lbl2daExce.setText("...");
getContentPane().add(lbl2daExce, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 80, 150,
-1));

jLabel22.setText("e'(cuadrado): ");
getContentPane().add(jLabel22, new org.netbeans.lib.awtextra.AbsoluteConstraints(310, 100, -1, -
1));

lblExccuadrado.setText("...");
getContentPane().add(lblExccuadrado, new org.netbeans.lib.awtextra.AbsoluteConstraints(390,
100, 160, -1));

jLabel24.setText("c(radio polar): ");


getContentPane().add(jLabel24, new org.netbeans.lib.awtextra.AbsoluteConstraints(310, 120, -1, -
1));

pack();
}// </editor-fold>
public void LlenarElipsoides(){
for(int i=0;i<elipsoides.length;i++)
{ String[] partes=elipsoides[i].split("-");
cboElipsoide.addItem(partes[0].toString());
}

}
private void btnConvertirActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(cboLatLonEW.getSelectedItem().toString().equals("W")){
double p1=(Double.parseDouble(lonSeg.getText().toString())/60)/60;
double p2=Double.parseDouble(lonMin.getText().toString())/60;
double p3=Double.parseDouble(lonGra.getText().toString());
sexaDecimalLongEW= -1*(p1+p2+p3);

}
else
{
double p1=(Double.parseDouble(lonSeg.getText().toString())/60)/60;
double p2=Double.parseDouble(lonMin.getText().toString())/60;
double p3=Double.parseDouble(lonGra.getText().toString());
sexaDecimalLongEW=p1+p2+p3;

}
if(cboLatLonNS.getSelectedItem().toString().equals("S")){
double p1=(Double.parseDouble(latSeg.getText().toString())/60)/60;
double p2=Double.parseDouble(latMin.getText().toString())/60;
double p3=Double.parseDouble(latGra.getText().toString());
sexaDecimalLatNS= -1*(p1+p2+p3);
}
else{
double p1=(Double.parseDouble(latSeg.getText().toString())/60)/60;
double p2=Double.parseDouble(latMin.getText().toString())/60;
double p3=Double.parseDouble(latGra.getText().toString());
sexaDecimalLatNS=p1+p2+p3;
}
radianesLon=(sexaDecimalLongEW*Math.PI)/180;
radianesLat=(sexaDecimalLatNS*Math.PI)/180;

double dou=(sexaDecimalLongEW/6)+31;
String vdStr=Double.toString(dou);
String pe="";
for(int i=0;i<vdStr.length();i++)
{
if(vdStr.charAt(i)=='.')
break;
pe+=vdStr.charAt(i);
}

huso=Double.parseDouble(pe);

meridhuso = 6*huso-183;
lambda = +(radianesLon)-((meridhuso*Math.PI)/180);

A = Math.cos(radianesLat)*Math.sin(lambda);

Xi=(0.5)*Math.log((1+A)/(1-A));

Eta= Math.atan( Math.tan(radianesLat)/Math.cos(lambda))-radianesLat;

double p1=Math.pow(Math.cos(radianesLat),2);
double p2=1+Double.parseDouble(lblExccuadrado.getText())*p1;
double p3=Math.pow(p2, ((double)1/2));
double p4=Double.parseDouble(lbl_c_radioPolar.getText());
Ni= (p4/p3)*0.9996;

double p11=Math.cos(radianesLat)*Math.cos(radianesLat);
double p22=Xi*Xi;
double p33=Double.parseDouble(lblExccuadrado.getText())/2;
Zeta=p11*p22*p33;

A1 = Math.sin(2*radianesLat);
A2= A1*(Math.cos(radianesLat)*Math.cos(radianesLat));
J2=radianesLat+(A1/2);
J4=((3*J2)+A2)/4;
J6=(5*J4+A2*(Math.cos(radianesLat)*Math.cos(radianesLat)))/3;
Alfa=((double)3/4)*Double.parseDouble(lblExccuadrado.getText());
Beta=((double)5/3)*(Alfa*Alfa);
Gamma=((double)35/27)*(Alfa*Alfa*Alfa);
B_fi=0.9996*Double.parseDouble(lbl_c_radioPolar.getText())*(radianesLat-(Alfa*J2)+(Beta*J4)-
(Gamma*J6));

System.out.println(sexaDecimalLongEW);
System.out.println(sexaDecimalLatNS);

System.out.println(radianesLon);
System.out.println(radianesLat);

System.out.println("Calculo uso="+huso);

System.out.println("Meridiano uso= "+meridhuso);


System.out.println("Lambda="+lambda);

System.out.println("A="+A);
System.out.println("Xi="+Xi);
System.out.println("Eta="+Eta);
System.out.println("Ni="+Ni);
System.out.println("Zeta: "+Zeta);
System.out.println("A1="+A1);
System.out.println("A2="+A2);
System.out.println("J2="+J2);
System.out.println("J4="+J4);
System.out.println("J6="+J6);
System.out.println("Alfa="+Alfa);
System.out.println("Beta="+Beta);
System.out.println("Gamma="+Gamma);
System.out.println("B_fi="+B_fi);

X=Xi*Ni*(1+Zeta/3)+500000;
if(cboLatLonNS.getSelectedItem().toString().equals("S")){
Y=Eta*Ni*(1+Zeta)+B_fi+10000000;
}
else{
Y=Eta*Ni*(1+Zeta)+B_fi;
}

UtmEsteX.setText(""+X);
UtmNorteY.setText(""+Y);
Huso.setText(""+huso);
}

private void cboElipsoideMouseClicked(java.awt.event.MouseEvent evt) {


// TODO add your handling code here:

private void cboElipsoideItemStateChanged(java.awt.event.ItemEvent evt) {


// TODO add your handling code here:
int pos=cboElipsoide.getSelectedIndex();
String[] partes=elipsoides[pos].split("-");
lblA.setText(partes[1]);
lblB.setText(partes[2]);
double a=Double.parseDouble(lblA.getText());
double b=Double.parseDouble(lblB.getText());
exentricidad=Math.sqrt((a*a)-(b*b))/a;
exentricidad1=Math.sqrt((a*a)-(b*b))/b;
radioCurvatura=+(a*a)/b;
exentricidad2=exentricidad1*exentricidad1;
lblExcentricidad.setText(""+exentricidad);
lbl2daExce.setText(""+exentricidad1);
lblExccuadrado.setText(""+exentricidad2);
lbl_c_radioPolar.setText(""+radioCurvatura);

}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(frmConversion.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(frmConversion.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(frmConversion.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(frmConversion.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
}
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new frmConversion().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JTextField Huso;
private javax.swing.JTextField UtmEsteX;
private javax.swing.JTextField UtmNorteY;
private javax.swing.JButton btnConvertir;
private javax.swing.JComboBox<String> cboElipsoide;
private javax.swing.JComboBox<String> cboLatLonEW;
private javax.swing.JComboBox<String> cboLatLonNS;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel17;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel22;
private javax.swing.JLabel jLabel24;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JTextField latGra;
private javax.swing.JTextField latMin;
private javax.swing.JTextField latSeg;
private javax.swing.JLabel lbl2daExce;
private javax.swing.JLabel lblA;
private javax.swing.JLabel lblB;
private javax.swing.JLabel lblExccuadrado;
private javax.swing.JLabel lblExcentricidad;
private javax.swing.JLabel lbl_c_radioPolar;
private javax.swing.JTextField lonGra;
private javax.swing.JTextField lonMin;
private javax.swing.JTextField lonSeg;
// End of variables declaration
}
CODIGO PARA LA CONVERSION 2

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pryconversiones;

import java.sql.DriverManager;

/**
*
* @author Javier
*/
public class frmCoversion2 extends javax.swing.JFrame {
String[] elipsoides={
"Airy 1830-6377563.396-6356256.91",
"Airy Modificad 1965-6377340.189-6356034.4479",
"Bessel 1841-6377397.155000-6356078.962840",
"Clarke 1866-6378206.400000-6356583.800000",
"Clarke 1880-6378249.145000-6356514.869550",
"Fischer 1960-6378166.000000-6356784.280000",
"Fischer 1968-6378150.000000-6356768.330000",
"GRS 1980-6378137.000000-6356752.314140",
"Hayford 1909-6378388.000000-6356911.946130",
"Helmert 1906-6378200.000000-6356818.170000",
"Hough 1960-6378270.000000-6356794.343479",
"Internacional 1909-6378388.000000-6356911.946130",
"Internacional 1924-6378388.000000-6356911.946130",
"Krasovsky 1940-6378245.000000-6356863.018800",
"Mercury 1960-6378166.000000-6356784.283666",
"Mercury Modificado 1968-6378150.000000-6356768.337303",
"Nuevo International 1967-6378157.500000-6356772.200000",
"Sudamericano 1969-6378160.000000-6356774.720000",
"Walbeck 1817-6376896.000000-6355834.846700",
"WGS66-6378145.000000-6356759.769356",
"WGS72-6378135.000000-6356750.519915",
"WGS84-6378137.000000-6356752.314245"};

double meridianoCentral;
double YAlSerEcuador;

double Fi;
double exentricidad,exentricidad1,exentricidad2,radioCurvatura ;
double Ni;
double A1;
double A2;
double J2;
double J4;
double J6;
double Alfa;
double Beta;
double Gamma;
double B_fi;
double X;
double Y;
double a;
double b;
double Zeta;
double Xi;
double Eta;
double Senh;
double Delta;
double Tau;
double FnRad;
double SxDecimal1;
double SxDecimal2;
/**
* Creates new form frmCoversion2
*/
public frmCoversion2() {
initComponents();
LlenarCombox();
LlenarElipsoides();
}

public void LlenarElipsoides(){


for(int i=0;i<elipsoides.length;i++)
{ String[] partes=elipsoides[i].split("-");
cboElipsoide.addItem(partes[0].toString());
}

}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jLabel1 = new javax.swing.JLabel();


jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
txtUtmEsteX = new javax.swing.JTextField();
txtUtmNorteY = new javax.swing.JTextField();
cboHemisferio = new javax.swing.JComboBox<>();
cboHuso = new javax.swing.JComboBox<>();
txtGradosLon = new javax.swing.JTextField();
txtMinutosLon = new javax.swing.JTextField();
txtSegundosLon = new javax.swing.JTextField();
txtGradosLat = new javax.swing.JTextField();
txtMinutosLat = new javax.swing.JTextField();
txtSegundosLat = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
btnConvertir = new javax.swing.JButton();
jLabel8 = new javax.swing.JLabel();
cboElipsoide = new javax.swing.JComboBox<>();
jLabel13 = new javax.swing.JLabel();
jLabel14 = new javax.swing.JLabel();
jLabel15 = new javax.swing.JLabel();
lblExcentricidad = new javax.swing.JLabel();
jLabel17 = new javax.swing.JLabel();
lbl_c_radioPolar = new javax.swing.JLabel();
lblA = new javax.swing.JLabel();
lblB = new javax.swing.JLabel();
lbl2daExce = new javax.swing.JLabel();
jLabel22 = new javax.swing.JLabel();
lblExccuadrado = new javax.swing.JLabel();
jLabel24 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

jLabel1.setText("DATOS DE ENTRADA");
getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 140, -1, -1));

jLabel2.setText("UTM Este X=");


getContentPane().add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 170, -1, -1));

jLabel3.setText("UTM Norte Y= ");


getContentPane().add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 200, -1, -1));

jLabel4.setText("Huso: ");
getContentPane().add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 220, -1, -1));

jLabel5.setText("Hemisferio: ");
getContentPane().add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 250, -1, -1));
getContentPane().add(txtUtmEsteX, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 170,
140, -1));

txtUtmNorteY.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtUtmNorteYActionPerformed(evt);
}
});
getContentPane().add(txtUtmNorteY, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 190,
139, -1));

cboHemisferio.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "S", "N" }));


getContentPane().add(cboHemisferio, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 240,
-1, -1));

getContentPane().add(cboHuso, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 220, -1, -


1));
getContentPane().add(txtGradosLon, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 310,
119, -1));

txtMinutosLon.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtMinutosLonActionPerformed(evt);
}
});
getContentPane().add(txtMinutosLon, new org.netbeans.lib.awtextra.AbsoluteConstraints(240,
310, 119, -1));
getContentPane().add(txtSegundosLon, new org.netbeans.lib.awtextra.AbsoluteConstraints(360,
310, 150, -1));
getContentPane().add(txtGradosLat, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 340,
119, -1));
getContentPane().add(txtMinutosLat, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 340,
119, -1));
getContentPane().add(txtSegundosLat, new org.netbeans.lib.awtextra.AbsoluteConstraints(360,
340, 150, -1));

jLabel6.setText("Lambda (Longitud)");
getContentPane().add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 310, -1, -1));

jLabel7.setText("Fi (Latitud)");
getContentPane().add(jLabel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 340, -1, -1));

btnConvertir.setText("Convertir");
btnConvertir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnConvertirActionPerformed(evt);
}
});
getContentPane().add(btnConvertir, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 220, -
1, -1));

jLabel8.setText("Seleccione elipsoide: ");


getContentPane().add(jLabel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 10, -1, -1));

cboElipsoide.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
cboElipsoideItemStateChanged(evt);
}
});
cboElipsoide.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
cboElipsoideMouseClicked(evt);
}
});
getContentPane().add(cboElipsoide, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 10,
270, -1));

jLabel13.setText("semi eje mayor (a): ");


getContentPane().add(jLabel13, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 40, -1, -1));

jLabel14.setText("semi eje menor (b): ");


getContentPane().add(jLabel14, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 60, -1, -1));

jLabel15.setText("Excentrcidad: ");
getContentPane().add(jLabel15, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 80, -1, -1));

lblExcentricidad.setText("...");
getContentPane().add(lblExcentricidad, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 80,
170, -1));

jLabel17.setText("2da e': ");


getContentPane().add(jLabel17, new org.netbeans.lib.awtextra.AbsoluteConstraints(290, 40, -1, -
1));

lbl_c_radioPolar.setText("...");
getContentPane().add(lbl_c_radioPolar, new org.netbeans.lib.awtextra.AbsoluteConstraints(370,
80, 170, -1));

lblA.setText("...");
getContentPane().add(lblA, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 40, 170, -1));

lblB.setText("...");
getContentPane().add(lblB, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 60, 170, -1));

lbl2daExce.setText("...");
getContentPane().add(lbl2daExce, new org.netbeans.lib.awtextra.AbsoluteConstraints(370, 40, 150,
-1));

jLabel22.setText("e'(cuadrado): ");
getContentPane().add(jLabel22, new org.netbeans.lib.awtextra.AbsoluteConstraints(290, 60, -1, -
1));

lblExccuadrado.setText("...");
getContentPane().add(lblExccuadrado, new org.netbeans.lib.awtextra.AbsoluteConstraints(370, 60,
160, -1));

jLabel24.setText("c(radio polar): ");


getContentPane().add(jLabel24, new org.netbeans.lib.awtextra.AbsoluteConstraints(290, 80, -1, -
1));

pack();
}// </editor-fold>
private void txtUtmNorteYActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void txtMinutosLonActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
}

private void btnConvertirActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
meridianoCentral=6*Double.parseDouble(cboHuso.getSelectedItem().toString())-183;
if(cboHemisferio.getSelectedItem().equals("S")){
YAlSerEcuador=Double.parseDouble(txtUtmNorteY.getText())-10000000;
}
else{
YAlSerEcuador=Double.parseDouble(txtUtmNorteY.getText());
}
Fi=YAlSerEcuador/(6366197.724*0.9996);

double p1=Math.pow(Math.cos(Fi),2);
double p2=1+Double.parseDouble(lblExccuadrado.getText())*p1;
double p3=Math.pow(p2, ((double)1/2));
double p4=Double.parseDouble(lbl_c_radioPolar.getText());
Ni= (p4/p3)*0.9996;
a=(Double.parseDouble(txtUtmEsteX.getText())-500000)/Ni;
A1=Math.sin(2*Fi);
A2=A1*(Math.cos(Fi)*Math.cos(Fi));
J2=Fi+(A1/2);
J4=(3*J2+A2)/4;
J6=(5*J4+A2*(Math.cos(Fi)*Math.cos(Fi)))/3;
Alfa=((double) 3/4)*Double.parseDouble(lblExccuadrado.getText());
Beta=((double) 5/3)*Alfa*Alfa;
Gamma=((double) 35/27)*Alfa*Alfa*Alfa;
B_fi=0.9996*Double.parseDouble(lbl_c_radioPolar.getText())*(Fi-(Alfa*J2)+(Beta*J4)-(Gamma*J6));
b=(YAlSerEcuador-B_fi)/Ni;
Zeta=((Double.parseDouble(lblExccuadrado.getText())*a*a)/2)*(Math.cos(Fi)*Math.cos(Fi));
Xi=a*(1-(Zeta/3));
Eta=b*(1-Zeta)+Fi;
Senh=(Math.exp(Xi)-Math.exp(-Xi))/2;
Delta=Math.atan((Senh)/(Math.cos(Eta)));
Tau=Math.atan(Math.cos(Delta)*Math.tan(Eta));

double k3=Double.parseDouble(lblExccuadrado.getText());
double c2f=Math.cos(Fi)*Math.cos(Fi);
double sf=Math.sin(Fi);
double cf=Math.cos(Fi);
FnRad=Fi+((1+k3*c2f)-((double)3/2)*k3*sf*cf*(Tau-Fi))*(Tau-Fi);

SxDecimal1=+(Delta/Math.PI)*180+meridianoCentral;
SxDecimal2=+(FnRad/Math.PI)*180;

System.out.println("Meridiano central: "+meridianoCentral);


System.out.println("Y al sur del ecuador: "+YAlSerEcuador);
System.out.println("Fi: "+Fi);
System.out.println("Ni: "+Ni);
System.out.println("a:"+a);
System.out.println("A1:"+A1);
System.out.println("A2:"+A2);
System.out.println("J2:"+J2);
System.out.println("J4:"+J4);
System.out.println("J6:"+J6);
System.out.println("Alfa:"+Alfa);
System.out.println("Beta:"+Beta);
System.out.println("Gamma:"+Gamma);
System.out.println("B_fi:"+B_fi);
System.out.println("b:"+b);
System.out.println("Zeta:"+Zeta);
System.out.println("Xi:"+Xi);
System.out.println("Eta:"+Eta);
System.out.println("Senh:"+Senh);
System.out.println("Delta:"+Delta);
System.out.println("Tau:"+Tau);
System.out.println("FnRad:"+FnRad);
System.out.println("SxDecimal1:"+SxDecimal1);
System.out.println("SxDecimal2:"+SxDecimal2);

txtGradosLon.setText(truncar(SxDecimal1));
txtGradosLat.setText(truncar(SxDecimal2));

double mlong=(SxDecimal1-Double.parseDouble(txtGradosLon.getText()))*60;
double mlat=(SxDecimal2-Double.parseDouble(txtGradosLat.getText()))*60;

System.out.println("mlong:"+mlong);
System.out.println("mlat:"+mlat);

txtMinutosLon.setText(truncar(mlong));
txtMinutosLat.setText(truncar(mlat));

double slong=(((SxDecimal1-Double.parseDouble(txtGradosLon.getText()))*60)-
Double.parseDouble(txtMinutosLon.getText()))*60;
double slat=(((SxDecimal2-Double.parseDouble(txtGradosLat.getText()))*60)-
Double.parseDouble(txtMinutosLat.getText()))*60;

txtSegundosLon.setText(""+slong);
txtSegundosLat.setText(""+slat);

public String truncar(double num){


String vdStr=Double.toString(num);
String pe="";
for(int i=0;i<vdStr.length();i++)
{
if(vdStr.charAt(i)=='.')
break;
pe+=vdStr.charAt(i);
}
return (pe);
}
private void cboElipsoideItemStateChanged(java.awt.event.ItemEvent evt) {
// TODO add your handling code here:
int pos=cboElipsoide.getSelectedIndex();
String[] partes=elipsoides[pos].split("-");
lblA.setText(partes[1]);
lblB.setText(partes[2]);
double a=Double.parseDouble(lblA.getText());
double b=Double.parseDouble(lblB.getText());
exentricidad=Math.sqrt((a*a)-(b*b))/a;
exentricidad1=Math.sqrt((a*a)-(b*b))/b;
radioCurvatura=+(a*a)/b;
exentricidad2=exentricidad1*exentricidad1;
lblExcentricidad.setText(""+exentricidad);
lbl2daExce.setText(""+exentricidad1);
lblExccuadrado.setText(""+exentricidad2);
lbl_c_radioPolar.setText(""+radioCurvatura);

private void cboElipsoideMouseClicked(java.awt.event.MouseEvent evt) {


// TODO add your handling code here:

public void LlenarCombox(){


for(int i=1;i<=60;i++)
cboHuso.addItem(""+i);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(frmCoversion2.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(frmCoversion2.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(frmCoversion2.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(frmCoversion2.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
}
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new frmCoversion2().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JButton btnConvertir;
private javax.swing.JComboBox<String> cboElipsoide;
private javax.swing.JComboBox<String> cboHemisferio;
private javax.swing.JComboBox<String> cboHuso;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel17;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel22;
private javax.swing.JLabel jLabel24;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel lbl2daExce;
private javax.swing.JLabel lblA;
private javax.swing.JLabel lblB;
private javax.swing.JLabel lblExccuadrado;
private javax.swing.JLabel lblExcentricidad;
private javax.swing.JLabel lbl_c_radioPolar;
private javax.swing.JTextField txtGradosLat;
private javax.swing.JTextField txtGradosLon;
private javax.swing.JTextField txtMinutosLat;
private javax.swing.JTextField txtMinutosLon;
private javax.swing.JTextField txtSegundosLat;
private javax.swing.JTextField txtSegundosLon;
private javax.swing.JTextField txtUtmEsteX;
private javax.swing.JTextField txtUtmNorteY;
// End of variables declaration
}

You might also like