Advertisement
Mihao

Untitled

Jan 16th, 2017
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.62 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10.  
  11. using GMap.NET;
  12. using GMap.NET.MapProviders;
  13. using GMap.NET.WindowsForms;
  14. using GMap.NET.WindowsForms.Markers;
  15.  
  16. namespace Praca_inżynierska_v4
  17. {
  18. public partial class Form1 : Form
  19. {
  20.  
  21. GMarkerGoogle marker;
  22. GMapOverlay markerOverlay;
  23. DataTable dt;
  24.  
  25. bool RysowanieTrasy = false;
  26. int LicznikTrasy = 0;
  27. PointLatLng inicio;
  28. PointLatLng final;
  29.  
  30. int SelectRow = 0;
  31. double LatFirst = 52.430407;
  32. double LngFirst = 16.940514;
  33. public Form1()
  34. {
  35. InitializeComponent();
  36. }
  37.  
  38. private void Form1_Load(object sender, EventArgs e)
  39. {
  40. dt = new DataTable();
  41. dt.Columns.Add(new DataColumn("Opis", typeof(string)));
  42. dt.Columns.Add(new DataColumn("Szer.", typeof(double)));
  43. dt.Columns.Add(new DataColumn("Dług.", typeof(double)));
  44.  
  45. //Wstawianie danych na listę
  46. dt.Rows.Add("Lokalizacja 1", LatFirst, LngFirst);
  47. dataGridView1.DataSource = dt;
  48.  
  49. //Wpisywanie na listę szerokości i długości
  50. dataGridView1.Columns[1].Visible = false;
  51. dataGridView1.Columns[2].Visible = false;
  52.  
  53.  
  54. gMapControl1.DragButton = MouseButtons.Left;
  55. gMapControl1.CanDragMap = true;
  56. gMapControl1.MapProvider = GMapProviders.GoogleMap;
  57. gMapControl1.Position = new PointLatLng(LatFirst, LngFirst);
  58. gMapControl1.MinZoom = 0;
  59. gMapControl1.MaxZoom = 24;
  60. gMapControl1.Zoom = 9;
  61. gMapControl1.AutoScroll = true;
  62.  
  63. //Znacznik
  64. markerOverlay = new GMapOverlay("Znacznik");
  65. marker = new GMarkerGoogle(new PointLatLng(LatFirst, LngFirst), GMarkerGoogleType.green);
  66. markerOverlay.Markers.Add(marker); //Dodanie do mapy
  67.  
  68. //Dodawanie podpowiedzi do zakładki
  69. marker.ToolTipMode = MarkerTooltipMode.Always;
  70. marker.ToolTipText = string.Format("Lokalizacja \n Szerokość: {0} \n Długość: {1}", LatFirst, LngFirst);
  71.  
  72. // Dodawanie mapy i znaczników
  73. gMapControl1.Overlays.Add(markerOverlay);
  74. }
  75.  
  76. private void SelectRegistration(object sender, DataGridViewCellMouseEventArgs e)
  77. {
  78. SelectRow = e.RowIndex; // Wybór
  79.  
  80. txtOpis.Text = dataGridView1.Rows[SelectRow].Cells[0].Value.ToString();
  81. txtSzerokosc.Text = dataGridView1.Rows[SelectRow].Cells[1].Value.ToString();
  82. txtDlugosc.Text = dataGridView1.Rows[SelectRow].Cells[2].Value.ToString();
  83. //opis
  84. marker.Position = new PointLatLng(Convert.ToDouble(txtSzerokosc.Text), Convert.ToDouble(txtDlugosc.Text));
  85.  
  86. // opis 2
  87. gMapControl1.Position = marker.Position;
  88. }
  89.  
  90. private void gMapControl1_MouseDoubleClick(object sender, MouseEventArgs e)
  91. {
  92. // Dodawanie kolejnych znaczników
  93.  
  94. double lat = gMapControl1.FromLocalToLatLng(e.X, e.Y).Lat;
  95. double lng = gMapControl1.FromLocalToLatLng(e.X, e.Y).Lng;
  96.  
  97. txtSzerokosc.Text = lat.ToString();
  98. txtDlugosc.Text = lng.ToString();
  99.  
  100. marker.Position = new PointLatLng(lat, lng);
  101.  
  102. marker.ToolTipText = string.Format("Lokalozacja: \n Szerokość: {0} \n Długość: {1}",lat, lng);
  103.  
  104. TworzenieAdresuTrasy(lat, lng);
  105. }
  106.  
  107. private void btnAkceptuj_Click(object sender, EventArgs e)
  108. {
  109. dt.Rows.Add(txtOpis.Text, txtDlugosc.Text, txtSzerokosc.Text); // Dodawanie tekstu do tabeli
  110. }
  111.  
  112. private void btnAnuluj_Click(object sender, EventArgs e)
  113. {
  114. dataGridView1.Rows.RemoveAt(SelectRow); //usuwanie tekstu z tabeli
  115. }
  116.  
  117. private void btnPole_Click(object sender, EventArgs e) //Rysowanie pola
  118. {
  119. GMapOverlay Pole = new GMapOverlay("Pole");
  120. List<PointLatLng> kropki = new List<PointLatLng>();
  121.  
  122. double lng, lat;
  123.  
  124. for (int wiersze = 0; wiersze < dataGridView1.Rows.Count;wiersze++)
  125. {
  126. lat = Convert.ToDouble(dataGridView1.Rows[wiersze].Cells[1].Value);
  127. lng = Convert.ToDouble(dataGridView1.Rows[wiersze].Cells[2].Value);
  128. kropki.Add(new PointLatLng(lat, lng));
  129.  
  130.  
  131. }
  132. GMapPolygon punktyPola = new GMapPolygon(kropki, "Pole");
  133. Pole.Polygons.Add(punktyPola);
  134. gMapControl1.Overlays.Add(Pole);
  135. gMapControl1.Zoom = gMapControl1.Zoom + 1;
  136. gMapControl1.Zoom = gMapControl1.Zoom - 1;
  137. }
  138.  
  139. private void btnTrasa_Click(object sender, EventArgs e) //Łącznie punktów na mapie
  140. {
  141. GMapOverlay Trasa = new GMapOverlay("Pole");
  142. List<PointLatLng> kropki = new List<PointLatLng>();
  143.  
  144. double lng, lat;
  145.  
  146. for (int wiersze = 0; wiersze < dataGridView1.Rows.Count; wiersze++)
  147. {
  148. lat = Convert.ToDouble(dataGridView1.Rows[wiersze].Cells[1].Value);
  149. lng = Convert.ToDouble(dataGridView1.Rows[wiersze].Cells[2].Value);
  150. kropki.Add(new PointLatLng(lat, lng));
  151.  
  152.  
  153. }
  154. GMapRoute punktyTrasy = new GMapRoute(kropki, "Trasa");
  155. Trasa.Routes.Add(punktyTrasy);
  156. gMapControl1.Overlays.Add(Trasa);
  157. gMapControl1.Zoom = gMapControl1.Zoom + 1;
  158. gMapControl1.Zoom = gMapControl1.Zoom - 1;
  159. }
  160.  
  161. private void btnNawigacja_Click(object sender, EventArgs e)
  162. {
  163. RysowanieTrasy = true;
  164. btnNawigacja.Enabled = false;
  165. }
  166. public void TworzenieAdresuTrasy(double lat, double lng) //Nawigacja
  167. {
  168. if (RysowanieTrasy)
  169. {
  170. switch (LicznikTrasy)
  171. {
  172. case 0:
  173. LicznikTrasy++;
  174. inicio = new PointLatLng(lat, lng);
  175. break;
  176.  
  177.  
  178.  
  179.  
  180. case 1:
  181. LicznikTrasy++;
  182. final = new PointLatLng(lat, lng);
  183. GDirections direccion;
  184.  
  185. var RutasDireccion = GMapProviders.GoogleMap.GetDirections(out direccion, inicio, final, false, false, false, false, false);
  186. //GMapRoute RutaObtenida = new GMapRoute(direccion.Route, "Lokalizacja na mapie");
  187.  
  188. /* *** TUTAJ MOJ KOD NA 3 PUNKTY *** */
  189.  
  190. GMapOverlay routes = new GMapOverlay("routes");
  191. List<PointLatLng> points = new List<PointLatLng>();
  192. points.Add(new PointLatLng(52.399, 16.900));
  193. points.Add(new PointLatLng(52.312, 17.579));
  194. points.Add(new PointLatLng(52.530, 17.610));
  195. GMapRoute route = new GMapRoute(points, "Poznan -> Wrzesnia -> Gniezno");
  196.  
  197.  
  198.  
  199. GMapOverlay CapaRutas = new GMapOverlay("Warstwa trasy");
  200. CapaRutas.Routes.Add(RutaObtenida);
  201. gMapControl1.Overlays.Add(CapaRutas);
  202. gMapControl1.Zoom = gMapControl1.Zoom + 1;
  203. gMapControl1.Zoom = gMapControl1.Zoom - 1;
  204. LicznikTrasy = 0;
  205. RysowanieTrasy = false;
  206. btnNawigacja.Enabled = true;
  207.  
  208. break;
  209.  
  210.  
  211.  
  212. }
  213.  
  214. }
  215.  
  216. }
  217.  
  218. private void btnSat_Click(object sender, EventArgs e) //Wybór mapy satelitarnej
  219. {
  220. gMapControl1.MapProvider = GMapProviders.GoogleChinaSatelliteMap;
  221. }
  222.  
  223. private void btnOryginal_Click(object sender, EventArgs e) //Wybór mapy normalnej
  224. {
  225. gMapControl1.MapProvider = GMapProviders.GoogleMap;
  226. }
  227.  
  228. private void button3_Click(object sender, EventArgs e) //Wybór mapy terenowej
  229. {
  230. gMapControl1.MapProvider = GMapProviders.GoogleTerrainMap;
  231. }
  232.  
  233. private void timer1_Tick(object sender, EventArgs e)
  234. {
  235. trackBar1.Value = Convert.ToInt32(gMapControl1.Zoom);
  236. }
  237.  
  238. private void trackBar1_ValueChanged(object sender, EventArgs e) //Zoom na suwaku
  239. {
  240. gMapControl1.Zoom = trackBar1.Value;
  241. }
  242. }
  243. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement