Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using GMap.NET;
- using GMap.NET.MapProviders;
- using GMap.NET.WindowsForms;
- using GMap.NET.WindowsForms.Markers;
- namespace Praca_inżynierska_v4
- {
- public partial class Form1 : Form
- {
- GMarkerGoogle marker;
- GMapOverlay markerOverlay;
- DataTable dt;
- bool RysowanieTrasy = false;
- int LicznikTrasy = 0;
- PointLatLng inicio;
- PointLatLng final;
- int SelectRow = 0;
- double LatFirst = 52.430407;
- double LngFirst = 16.940514;
- public Form1()
- {
- InitializeComponent();
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- dt = new DataTable();
- dt.Columns.Add(new DataColumn("Opis", typeof(string)));
- dt.Columns.Add(new DataColumn("Szer.", typeof(double)));
- dt.Columns.Add(new DataColumn("Dług.", typeof(double)));
- //Wstawianie danych na listę
- dt.Rows.Add("Lokalizacja 1", LatFirst, LngFirst);
- dataGridView1.DataSource = dt;
- //Wpisywanie na listę szerokości i długości
- dataGridView1.Columns[1].Visible = false;
- dataGridView1.Columns[2].Visible = false;
- gMapControl1.DragButton = MouseButtons.Left;
- gMapControl1.CanDragMap = true;
- gMapControl1.MapProvider = GMapProviders.GoogleMap;
- gMapControl1.Position = new PointLatLng(LatFirst, LngFirst);
- gMapControl1.MinZoom = 0;
- gMapControl1.MaxZoom = 24;
- gMapControl1.Zoom = 9;
- gMapControl1.AutoScroll = true;
- //Znacznik
- markerOverlay = new GMapOverlay("Znacznik");
- marker = new GMarkerGoogle(new PointLatLng(LatFirst, LngFirst), GMarkerGoogleType.green);
- markerOverlay.Markers.Add(marker); //Dodanie do mapy
- //Dodawanie podpowiedzi do zakładki
- marker.ToolTipMode = MarkerTooltipMode.Always;
- marker.ToolTipText = string.Format("Lokalizacja \n Szerokość: {0} \n Długość: {1}", LatFirst, LngFirst);
- // Dodawanie mapy i znaczników
- gMapControl1.Overlays.Add(markerOverlay);
- }
- private void SelectRegistration(object sender, DataGridViewCellMouseEventArgs e)
- {
- SelectRow = e.RowIndex; // Wybór
- txtOpis.Text = dataGridView1.Rows[SelectRow].Cells[0].Value.ToString();
- txtSzerokosc.Text = dataGridView1.Rows[SelectRow].Cells[1].Value.ToString();
- txtDlugosc.Text = dataGridView1.Rows[SelectRow].Cells[2].Value.ToString();
- //opis
- marker.Position = new PointLatLng(Convert.ToDouble(txtSzerokosc.Text), Convert.ToDouble(txtDlugosc.Text));
- // opis 2
- gMapControl1.Position = marker.Position;
- }
- private void gMapControl1_MouseDoubleClick(object sender, MouseEventArgs e)
- {
- // Dodawanie kolejnych znaczników
- double lat = gMapControl1.FromLocalToLatLng(e.X, e.Y).Lat;
- double lng = gMapControl1.FromLocalToLatLng(e.X, e.Y).Lng;
- txtSzerokosc.Text = lat.ToString();
- txtDlugosc.Text = lng.ToString();
- marker.Position = new PointLatLng(lat, lng);
- marker.ToolTipText = string.Format("Lokalozacja: \n Szerokość: {0} \n Długość: {1}",lat, lng);
- TworzenieAdresuTrasy(lat, lng);
- }
- private void btnAkceptuj_Click(object sender, EventArgs e)
- {
- dt.Rows.Add(txtOpis.Text, txtDlugosc.Text, txtSzerokosc.Text); // Dodawanie tekstu do tabeli
- }
- private void btnAnuluj_Click(object sender, EventArgs e)
- {
- dataGridView1.Rows.RemoveAt(SelectRow); //usuwanie tekstu z tabeli
- }
- private void btnPole_Click(object sender, EventArgs e) //Rysowanie pola
- {
- GMapOverlay Pole = new GMapOverlay("Pole");
- List<PointLatLng> kropki = new List<PointLatLng>();
- double lng, lat;
- for (int wiersze = 0; wiersze < dataGridView1.Rows.Count;wiersze++)
- {
- lat = Convert.ToDouble(dataGridView1.Rows[wiersze].Cells[1].Value);
- lng = Convert.ToDouble(dataGridView1.Rows[wiersze].Cells[2].Value);
- kropki.Add(new PointLatLng(lat, lng));
- }
- GMapPolygon punktyPola = new GMapPolygon(kropki, "Pole");
- Pole.Polygons.Add(punktyPola);
- gMapControl1.Overlays.Add(Pole);
- gMapControl1.Zoom = gMapControl1.Zoom + 1;
- gMapControl1.Zoom = gMapControl1.Zoom - 1;
- }
- private void btnTrasa_Click(object sender, EventArgs e) //Łącznie punktów na mapie
- {
- GMapOverlay Trasa = new GMapOverlay("Pole");
- List<PointLatLng> kropki = new List<PointLatLng>();
- double lng, lat;
- for (int wiersze = 0; wiersze < dataGridView1.Rows.Count; wiersze++)
- {
- lat = Convert.ToDouble(dataGridView1.Rows[wiersze].Cells[1].Value);
- lng = Convert.ToDouble(dataGridView1.Rows[wiersze].Cells[2].Value);
- kropki.Add(new PointLatLng(lat, lng));
- }
- GMapRoute punktyTrasy = new GMapRoute(kropki, "Trasa");
- Trasa.Routes.Add(punktyTrasy);
- gMapControl1.Overlays.Add(Trasa);
- gMapControl1.Zoom = gMapControl1.Zoom + 1;
- gMapControl1.Zoom = gMapControl1.Zoom - 1;
- }
- private void btnNawigacja_Click(object sender, EventArgs e)
- {
- RysowanieTrasy = true;
- btnNawigacja.Enabled = false;
- }
- public void TworzenieAdresuTrasy(double lat, double lng) //Nawigacja
- {
- if (RysowanieTrasy)
- {
- switch (LicznikTrasy)
- {
- case 0:
- LicznikTrasy++;
- inicio = new PointLatLng(lat, lng);
- break;
- case 1:
- LicznikTrasy++;
- final = new PointLatLng(lat, lng);
- GDirections direccion;
- var RutasDireccion = GMapProviders.GoogleMap.GetDirections(out direccion, inicio, final, false, false, false, false, false);
- //GMapRoute RutaObtenida = new GMapRoute(direccion.Route, "Lokalizacja na mapie");
- /* *** TUTAJ MOJ KOD NA 3 PUNKTY *** */
- GMapOverlay routes = new GMapOverlay("routes");
- List<PointLatLng> points = new List<PointLatLng>();
- points.Add(new PointLatLng(52.399, 16.900));
- points.Add(new PointLatLng(52.312, 17.579));
- points.Add(new PointLatLng(52.530, 17.610));
- GMapRoute route = new GMapRoute(points, "Poznan -> Wrzesnia -> Gniezno");
- GMapOverlay CapaRutas = new GMapOverlay("Warstwa trasy");
- CapaRutas.Routes.Add(RutaObtenida);
- gMapControl1.Overlays.Add(CapaRutas);
- gMapControl1.Zoom = gMapControl1.Zoom + 1;
- gMapControl1.Zoom = gMapControl1.Zoom - 1;
- LicznikTrasy = 0;
- RysowanieTrasy = false;
- btnNawigacja.Enabled = true;
- break;
- }
- }
- }
- private void btnSat_Click(object sender, EventArgs e) //Wybór mapy satelitarnej
- {
- gMapControl1.MapProvider = GMapProviders.GoogleChinaSatelliteMap;
- }
- private void btnOryginal_Click(object sender, EventArgs e) //Wybór mapy normalnej
- {
- gMapControl1.MapProvider = GMapProviders.GoogleMap;
- }
- private void button3_Click(object sender, EventArgs e) //Wybór mapy terenowej
- {
- gMapControl1.MapProvider = GMapProviders.GoogleTerrainMap;
- }
- private void timer1_Tick(object sender, EventArgs e)
- {
- trackBar1.Value = Convert.ToInt32(gMapControl1.Zoom);
- }
- private void trackBar1_ValueChanged(object sender, EventArgs e) //Zoom na suwaku
- {
- gMapControl1.Zoom = trackBar1.Value;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement