private void Wspolrzedne_wczytanie() { { using (var con2 = new SqlConnection(Properties.Settings.Default.Database1ConnectionString)) // using (var cmd = new SqlCommand()) { // cmd.CommandText = "DELETE FROM PunktyNieznane"; // cmd.Connection = con2; // con2.Open(); // int numberDeleted = cmd.ExecuteNonQuery(); // all rows deleted } SqlDataAdapter da = new SqlDataAdapter(); DataSet ds = new DataSet(); DataTable dt = new DataTable(); SqlConnection con; con = new SqlConnection(); con.ConnectionString = Properties.Settings.Default.Database1ConnectionString; con.Open(); da.SelectCommand = new SqlCommand(@"SELECT * FROM Wspolrzedne Where Staly = 1", con); da.Fill(ds, "Stale"); dt = ds.Tables["Stale"]; this.transformacjaTableAdapter.Fill(this.database1DataSet.Transformacja); con.Close(); //punktyNieznaneDataGridView.DataSource = dt; var modultransformacji = new Transformacja(); foreach (DataRow row in dt.Rows) { bool nazwapkt = database1DataSet.Transformacja.Any(punkt => punkt.Nazwa.Equals(row[1])); if (nazwapkt == false) { var X = Convert.ToDouble(row[2]); var Y = Convert.ToDouble(row[3]); var Z = Convert.ToDouble(row[4]); var a = Properties.Settings.Default.elipsoida_a; var b = Properties.Settings.Default.elipsoida_b; var f = Properties.Settings.Default.elipsoida_f; double fi, lambda, h, xGk, yGk, ksi, eta; modultransformacji.Hirvonen(X, Y, Z, a, b, out fi, out lambda, out h); modultransformacji.GaussKruger1(fi, lambda, lambda, out xGk, out yGk); modultransformacji.odczytBL(fi, lambda, out ksi, out eta); transformacjaTableAdapter.Insert(row[1].ToString(), X, Y, Z, fi, lambda, h, xGk, yGk, ksi, eta, null, null, null); } } this.transformacjaTableAdapter.Fill(this.database1DataSet.Transformacja); bool czyjuż = false; this.wektoryTableAdapter.Fill(this.database1DataSet.Wektory); while (czyjuż != true) { czyjuż = true; foreach (DataRow row in database1DataSet.Wektory.Rows) { var nazwaRover = row["koniec"].ToString(); var nazwaBaza = row["poczatek"].ToString(); bool istnieje = database1DataSet.Transformacja.Any(punkt => punkt.Nazwa.Equals(nazwaRover)); DataRow wspBazy = database1DataSet.Transformacja.Where(rowcel => rowcel.Nazwa.Equals(nazwaBaza)).FirstOrDefault(); if (wspBazy != null && istnieje != true) { var DX = (double)row["DX"]; var DY = (double)row["DY"]; var DZ = (double)row["DZ"]; var X = (double)wspBazy["X"] + DX; var Y = (double)wspBazy["Y"] + DY; var Z = (double)wspBazy["Z"] + DZ; var a = Properties.Settings.Default.elipsoida_a; var b = Properties.Settings.Default.elipsoida_b; var f = Properties.Settings.Default.elipsoida_f; double fi, lambda, h, xGk, yGk, ksi, eta; modultransformacji.Hirvonen(X, Y, Z, a, b, out fi, out lambda, out h); modultransformacji.GaussKruger1(fi, lambda, lambda, out xGk, out yGk); modultransformacji.odczytBL(fi, lambda, out ksi, out eta); transformacjaTableAdapter.Insert(nazwaRover, X, Y, Z, fi, lambda, h, xGk, yGk, ksi, eta, null, null, null); czyjuż = false; } transformacjaTableAdapter.Fill(this.database1DataSet.Transformacja); } } this.transformacjaTableAdapter.Fill(this.database1DataSet.Transformacja); } }
void odczyt() { this.tachimetrTableAdapter.Fill(this.database1DataSet.Tachimetr); this.transformacjaTableAdapter.Fill(this.database1DataSet.Transformacja); var rtBotworz = new FormOtworzRTB(); rtBotworz.MdiParent = this.MdiParent; rtBotworz.Show(); var oblazymut = new Wspprzyb(); double azymut = 0; double odczyt_nawiazania = 0; bool nawiazanie = false; string stanowsikopoprzednie = ""; bool czyjuz = false; bool braknawiazania = true; var obliczenia = new Transformacja(); var b = Properties.Settings.Default.elipsoida_b; var a = Properties.Settings.Default.elipsoida_a; var f = Properties.Settings.Default.elipsoida_f; var modultransformacji = new Transformacja(); int licznik = 0; toolStripProgressBar1.Maximum = database1DataSet.Tachimetr.Rows.Count; while (czyjuz != true) { toolStripProgressBar1.Value = 0; czyjuz = true; foreach (DataRow row in database1DataSet.Tachimetr.Rows) { var stanowisko = row.ItemArray[1].ToString(); if (stanowisko != stanowsikopoprzednie) { nawiazanie = false; } var cel = row.ItemArray[2].ToString(); string wynikc, wyniks; bool celistnieje = database1DataSet.Transformacja.Any(punkt => punkt.Nazwa.Equals(cel)); if (celistnieje) { wynikc = "Znany "; } else { wynikc = "Nieznany"; czyjuz = false; } bool stanowiskoistnieje = database1DataSet.Transformacja.Any( punkt => punkt.Nazwa.Equals(stanowisko)); if (stanowiskoistnieje) { wyniks = "Znany "; } else { wyniks = "Nieznany"; czyjuz = false; } string dowyswietlenia = string.Format("stanowisko: {0} {3} cel: {1} {2}\n", stanowisko, cel, wynikc, wyniks); if (celistnieje && stanowiskoistnieje) { bool stanowisko3 = database1DataSet.Transformacja.Any(punkt => punkt.Nazwa.Equals(stanowisko)); DataRow celRow = database1DataSet.Transformacja.Where(rowcel => rowcel.Nazwa.Equals(cel)).FirstOrDefault(); DataRow stRow = database1DataSet.Transformacja.AsEnumerable() .Where(rowst => rowst.Nazwa == stanowisko) .FirstOrDefault(); //tu coś zmienic double sB = Convert.ToDouble(stRow["B"]); double sL = Convert.ToDouble(stRow["L"]); double cB = Convert.ToDouble(celRow["B"]); double cL = Convert.ToDouble(celRow["L"]); obliczenia.Vincenty(sB, sL, cB, cL, a, b, f, out azymut); dowyswietlenia = dowyswietlenia + "azymut: " + azymut + "\n"; nawiazanie = true; odczyt_nawiazania = Convert.ToDouble(row.ItemArray[3]); braknawiazania = false; } if (celistnieje == false && stanowiskoistnieje && nawiazanie) { DataRow stRow = database1DataSet.Transformacja.AsEnumerable() .Where(rowst => rowst.Nazwa == stanowisko) .FirstOrDefault(); double sx = Convert.ToDouble(stRow["X"]); double sy = Convert.ToDouble(stRow["Y"]); double sz = Convert.ToDouble(stRow["Z"]); var odl = Convert.ToDouble(row[5]); var hi = Convert.ToDouble(row[6]); var hc = Convert.ToDouble(row[7]); var alfa = Convert.ToDouble(row[3]); var beta = Convert.ToDouble(row[4]); var przyrosty = oblazymut.Oblbiegunowe(0, 0, 0, odl, alfa, 0, 0 , beta, hi, hc); var eta = (double)stRow["eta"]; var ksi = (double)stRow["ksi"]; /*var temp=ksi; * ksi = eta; * eta = temp;*/ var ksirad = ksi * Math.PI / (180 * 60 * 60); var etarad = eta * Math.PI / (180 * 60 * 60); double B = Convert.ToDouble(stRow["B"]); double L = Convert.ToDouble(stRow["L"]); var Brad = B * Math.PI / 180; var Lrad = L * Math.PI / 180; Matrix <double> xyz = DenseMatrix.OfArray(new double[, ] { { przyrosty.X }, { przyrosty.Y }, { przyrosty.H } }); dowyswietlenia += " Odnaleziono punkt " + cel + "\n"; var sigma = azymut - odczyt_nawiazania; sigma = sigma * Math.PI / 200; var sigma2 = sigma; //sigma = 0; Matrix <double> R3 = DenseMatrix.OfArray(new double[, ] { { Math.Cos(sigma), Math.Sin(sigma), 0 }, { -Math.Sin(sigma), Math.Cos(sigma), 0 }, { 0, 0, 1 } }); Matrix <double> R2 = DenseMatrix.OfArray(new double[, ] { { 1, -etarad * Math.Tan(Brad), -ksirad }, { etarad *Math.Tan(Brad), 1, -etarad }, { ksirad, etarad, 1 } }); Matrix <double> R13 = DenseMatrix.OfArray(new double[, ] { { -Math.Sin(Brad) * Math.Cos(Lrad), -Math.Sin(Brad) * Math.Sin(Lrad), Math.Cos(Brad) }, { -Math.Sin(Lrad), Math.Cos(Lrad), 0 }, { Math.Cos(Brad) * Math.Cos(Lrad), Math.Cos(Brad) * Math.Sin(Lrad), Math.Sin(Brad) } }); var wynik = R13.Transpose() * R2.Transpose() * R3.Transpose() * xyz; // wektory2TableAdapter.Insert(stanowisko, cel, wynik[0, 0], wynik[1, 0], wynik[2, 0], "Klasyczne-wsp.przyb.", przyrosty.X, przyrosty.Y, przyrosty.H); var X = wynik[0, 0] + sx; var Y = wynik[1, 0] + sy; var Z = wynik[2, 0] + sz; double fi, lambda, h, xGk, yGk, ksi2, eta2; modultransformacji.Hirvonen(X, Y, Z, a, b, out fi, out lambda, out h); modultransformacji.GaussKruger1(fi, lambda, lambda, out xGk, out yGk); modultransformacji.odczytBL(fi, lambda, out ksi2, out eta2); transformacjaTableAdapter.Insert(cel, X, Y, Z, fi, lambda, h, xGk, yGk, ksi2, eta2, przyrosty.X, przyrosty.Y, przyrosty.H); } stanowsikopoprzednie = stanowisko; toolStripProgressBar1.Increment(1); rtBotworz.richTextBox1.AppendText(dowyswietlenia); } if (braknawiazania) { rtBotworz.richTextBox1.AppendText("Brak nawiązania!!"); break; } this.transformacjaTableAdapter.Fill(this.database1DataSet.Transformacja); toolStripProgressBar1.Value = 0; this.wektory2TableAdapter.Fill(this.database1DataSet.Wektory2); oblicz_GK(); } }