00001 using System; 00002 using System.Collections.Generic; 00003 using System.ComponentModel; 00004 using System.Data; 00005 using System.Drawing; 00006 using System.Linq; 00007 using System.Text; 00008 using System.Windows.Forms; 00009 00010 namespace UtmConvert { 00011 public partial class UtmConvertMainForm : Form { 00012 00013 ConvertLatLonUtm con; 00014 XmlParser _parser; 00015 internal XmlParser Parser { 00016 get { return _parser; } 00017 } 00018 00019 public UtmConvertMainForm() { 00020 InitializeComponent(); 00021 _parser = new XmlParser(); 00022 con = new ConvertLatLonUtm(); 00023 foreach (Datum d in Datums.datumList) 00024 datumsListBox.Items.Add(d.Name); 00025 datumsListBox.SelectedIndex = 0; 00026 northSouthComboBox.SelectedIndex = 0; 00027 eastWestComboBox.SelectedIndex = 1; 00028 latLonFormatToolStripComboBox.SelectedIndex = 0; 00029 convertLatLonToUtm(); 00030 } 00031 00032 private void datumsListBox_SelectedIndexChanged(object sender, EventArgs e) { 00033 foreach (Datum d in Datums.datumList) { 00034 if (d.Name == datumsListBox.SelectedItem.ToString()) { 00035 datumPropertyGrid.SelectedObject = d; 00036 con.Datum = d; 00037 } 00038 } 00039 } 00040 00041 00042 private void convertButton_Click(object sender, EventArgs e) { 00043 if (latLonToUtmRadioButton.Checked) 00044 convertLatLonToUtm(); 00045 else 00046 convertUtmToLatLon(); 00047 } 00048 00049 private void convertLatLonToUtm() { 00050 double lat = 0, lon = 0; 00051 bool nS = (northSouthComboBox.Text != "N"); 00052 bool eW = (eastWestComboBox.Text != "E"); 00053 if (latDegTextBox.Text != "" && latMinTextBox.Text != "" && latSecTextBox.Text != "") 00054 lat = ConvertDegRad.getRadians(latDegTextBox.Text, latMinTextBox.Text 00055 , latSecTextBox.Text, northSouthComboBox.Text[0]); 00056 else if (latDegTextBox.Text != "" && latMinTextBox.Text != "") 00057 lat = ConvertDegRad.getRadians(latDegTextBox.Text 00058 , latMinTextBox.Text, northSouthComboBox.Text[0]); 00059 else if (latDegTextBox.Text != "") 00060 lat = ConvertDegRad.getRadians(latDegTextBox.Text, northSouthComboBox.Text[0]); 00061 latInRad.Text = Math.Round(lat, 4).ToString(); 00062 if (lonDegTextBox.Text != "" && lonMinTextBox.Text != "" && lonSecTextBox.Text != "") 00063 lon = ConvertDegRad.getRadians(lonDegTextBox.Text, lonMinTextBox.Text 00064 , lonSecTextBox.Text, eastWestComboBox.Text[0]); 00065 else if (lonDegTextBox.Text != "" && lonMinTextBox.Text != "") 00066 lon = ConvertDegRad.getRadians(lonDegTextBox.Text 00067 , lonMinTextBox.Text, eastWestComboBox.Text[0]); 00068 else if (lonDegTextBox.Text != "") 00069 lon = ConvertDegRad.getRadians(lonDegTextBox.Text, eastWestComboBox.Text[0]); 00070 lonInRad.Text = Math.Round(lon, 4).ToString(); 00071 con.convertLatLonToUtm(lat, lon); 00072 eastingTextBox.Text = Math.Round(con.Easting, 2).ToString(); 00073 northingTextBox.Text = Math.Round(con.Northing, 2).ToString(); 00074 zoneTextBox.Text = con.Zone; 00075 latToolStripStatusLabel.Text = ConvertDegRad.getDegrees(Math.Abs(lat)).ToString() 00076 + " " + northSouthComboBox.Text + ", "; 00077 lonToolStripStatusLabel.Text = ConvertDegRad.getDegrees(Math.Abs(lon)).ToString() 00078 + " " + eastWestComboBox.Text + ", "; 00079 } 00080 00081 private void convertUtmToLatLon() { 00082 if (eastingTextBox.Text != "" || northingTextBox.Text != "") { 00083 double e = 0, n = 0; 00084 double.TryParse(eastingTextBox.Text, out e); 00085 double.TryParse(northingTextBox.Text, out n); 00086 con.convertUtmToLatLon(e, n, zoneTextBox.Text); 00087 if (con.Latitude > 0) 00088 northSouthComboBox.SelectedIndex = 0; 00089 else 00090 northSouthComboBox.SelectedIndex = 1; 00091 latDegTextBox.Text = ConvertDegRad.getDegrees(Math.Abs(con.Latitude)).ToString(); 00092 latMinTextBox.Clear(); 00093 latSecTextBox.Clear(); 00094 if (con.Longitude > 0) 00095 eastWestComboBox.SelectedIndex = 0; 00096 else 00097 eastWestComboBox.SelectedIndex = 1; 00098 lonDegTextBox.Text = ConvertDegRad.getDegrees(Math.Abs(con.Longitude)).ToString(); 00099 lonMinTextBox.Clear(); 00100 lonSecTextBox.Clear(); 00101 } 00102 } 00103 00104 private void convertingUTMToLatitudeLongitudepdfToolStripMenuItem_Click(object sender, EventArgs e) { 00105 DocViewer dv = new DocViewer(); 00106 dv.Show(); 00107 ToolStripMenuItem t = (ToolStripMenuItem)sender; 00108 dv.viewDocument(t.Text); 00109 } 00110 00111 private void theUniversalTransverseMercatorSystempdfToolStripMenuItem_Click(object sender, EventArgs e) { 00112 DocViewer dv = new DocViewer(); 00113 dv.Show(); 00114 ToolStripMenuItem t = (ToolStripMenuItem)sender; 00115 dv.viewDocument(t.Text); 00116 } 00117 00118 private void utmzonesjpgToolStripMenuItem_Click(object sender, EventArgs e) { 00119 DocViewer dv = new DocViewer(); 00120 dv.Show(); 00121 ToolStripMenuItem t = (ToolStripMenuItem)sender; 00122 dv.viewDocument(t.Text); 00123 } 00124 00125 private void uTMConversions1xlsToolStripMenuItem_Click(object sender, EventArgs e) { 00126 DocViewer dv = new DocViewer(); 00127 dv.Show(); 00128 ToolStripMenuItem t = (ToolStripMenuItem)sender; 00129 dv.viewDocument(t.Text); 00130 } 00131 00132 private void zoneCentralMeridianspdfToolStripMenuItem_Click(object sender, EventArgs e) { 00133 DocViewer dv = new DocViewer(); 00134 dv.Show(); 00135 ToolStripMenuItem t = (ToolStripMenuItem)sender; 00136 dv.viewDocument(t.Text); 00137 } 00138 00139 private void exitToolStripMenuItem_Click(object sender, EventArgs e) { 00140 this.Dispose(); 00141 } 00142 00143 private void sourceCodeToolStripMenuItem_Click(object sender, EventArgs e) { 00144 DocViewer dv = new DocViewer(); 00145 dv.Show(); 00146 dv.viewDocument(".\\html\\index.html"); 00147 } 00148 00149 private void aboutUtmConvertToolStripMenuItem_Click(object sender, EventArgs e) { 00150 AboutBoxMainForm a = new AboutBoxMainForm(); 00151 a.Show(); 00152 } 00153 00154 private void openToolStripMenuItem_Click(object sender, EventArgs e) { 00155 xmlOpenFileDialog.ShowDialog(); 00156 } 00157 00158 private void xmlOpenFileDialog_FileOk(object sender, CancelEventArgs e) { 00159 _parser = new XmlParser(); 00160 _parser.readFile(xmlOpenFileDialog.FileName); 00161 inputXmlTextBox.Text = _parser.FileString; 00162 if (xmlOpenFileDialog.FileName.EndsWith(".gpx")) { 00163 _parser.parseGPX(); 00164 } else { 00165 _parser.Parse(latLonFormatToolStripComboBox.Text); 00166 } 00167 parserToolStripStatusLabel.Text = "Read: " + _parser.Status + ", "; 00168 utmPointsTextBox.Clear(); 00169 utmPointsTextBox.AppendText("x:\ty:\r\n"); 00170 foreach (UtmPointSet ps in _parser.UtmPointSetList) { 00171 foreach(UtmPoint pt in ps.Points) 00172 utmPointsTextBox.AppendText(pt.Point.X + "\t" + pt.Point.Y + "\r\n"); 00173 } 00174 if (_parser.UtmPointSetList.Count > 0) { 00175 Printer print = new Printer(); 00176 printerToolStripStatusLabel.Text = 00177 print.writeUtmXmlFile(_parser.UtmPointSetList); 00178 outputXmlTextBox.Text = print.Output; 00179 } 00180 latLonPointsTextBox.Clear(); 00181 foreach (LatLonPointSet ps in _parser.LatLonPointSetList) { 00182 foreach (LatLonPoint pt in ps.Points) 00183 latLonPointsTextBox.AppendText("lat: " 00184 + pt.Lat + ", ns: " + pt.Ns 00185 + ", lon: " + pt.Lon + ", ew: " 00186 + pt.Ew + ", n: " + pt.Note + "\r\n"); 00187 } 00188 if (_parser.LatLonPointSetList.Count > 0) { 00189 Printer print = new Printer(); 00190 printerToolStripStatusLabel.Text = 00191 print.writeLatLonXmlFile(_parser.LatLonPointSetList); 00192 outputXmlTextBox.Text = print.Output; 00193 } 00194 utmPointsTextBox.AppendText("Status: " + _parser.Status); 00195 latLonPointsTextBox.AppendText("Status " + _parser.Status); 00196 } 00197 00198 } 00199 }