private void markStoreLocation(Store store) { var lat = Convert.ToDouble(store.location.latitude); var lon = Convert.ToDouble(store.location.longitude); GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed m = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed(new GMap.NET.PointLatLng(lat, lon)); string tooltiptext = store.name + "\n" + store.location.displayAddress; m.ToolTipText = tooltiptext; markerOverlay.Markers.Add(m); }
//метод для отслежки клиента private void button4_Click(object sender, EventArgs e) { if (comboBox1234.Text == String.Empty) { MessageBox.Show("Выберите клиента чтобы отследить!"); } else { //Очищаем таблицу перед загрузкой данных. dtRouter.Rows.Clear(); //Создаем список способов перемещения. List <string> mode = new List <string>(); //Автомобильные маршруты по улично-дорожной сети. mode.Add("driving"); //Пешеходные маршруты по прогулочным дорожкам и тротуарам. mode.Add("walking"); //Велосипедные маршруты по велосипедным дорожкам и предпочитаемым улицам. mode.Add("bicycling"); //Маршруты общественного транспорта. mode.Add("transit"); //Фрмируем запрос к API маршрутов Google. string url = string.Format( "http://maps.googleapis.com/maps/api/directions/xml?origin={0},&destination={1}&sensor=false&language=ru&mode={2}", Uri.EscapeDataString(textBox1.Text), Uri.EscapeDataString(textBox2.Text), Uri.EscapeDataString(mode[comboBox1.SelectedIndex])); //Выполняем запрос к универсальному коду ресурса (URI). System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url); //Получаем ответ от интернет-ресурса. System.Net.WebResponse response = request.GetResponse(); //Экземпляр класса System.IO.Stream //для чтения данных из интернет-ресурса. System.IO.Stream dataStream = response.GetResponseStream(); //Инициализируем новый экземпляр класса //System.IO.StreamReader для указанного потока. System.IO.StreamReader sreader = new System.IO.StreamReader(dataStream); //Считываем поток от текущего положения до конца. string responsereader = sreader.ReadToEnd(); //Закрываем поток ответа. response.Close(); System.Xml.XmlDocument xmldoc = new System.Xml.XmlDocument(); xmldoc.LoadXml(responsereader); if (xmldoc.GetElementsByTagName("status")[0].ChildNodes[0].InnerText == "OK") { System.Xml.XmlNodeList nodes = xmldoc.SelectNodes("//leg//step"); //Формируем строку для добавления в таблицу. object[] dr; for (int i = 0; i < nodes.Count; i++) { //Указываем что массив будет состоять из //восьми значений. dr = new object[8]; //Номер шага. dr[0] = i; //Получение координат начала отрезка. dr[1] = xmldoc.SelectNodes("//start_location").Item(i).SelectNodes("lat").Item(0).InnerText.ToString(); dr[2] = xmldoc.SelectNodes("//start_location").Item(i).SelectNodes("lng").Item(0).InnerText.ToString(); //Получение координат конца отрезка. dr[3] = xmldoc.SelectNodes("//end_location").Item(i).SelectNodes("lat").Item(0).InnerText.ToString(); dr[4] = xmldoc.SelectNodes("//end_location").Item(i).SelectNodes("lng").Item(0).InnerText.ToString(); //Получение времени необходимого для прохождения этого отрезка. dr[5] = xmldoc.SelectNodes("//duration").Item(i).SelectNodes("text").Item(0).InnerText.ToString(); //Получение расстояния, охватываемое этим отрезком. dr[6] = xmldoc.SelectNodes("//distance").Item(i).SelectNodes("text").Item(0).InnerText.ToString(); //Получение инструкций для этого шага, представленные в виде текстовой строки HTML. dr[7] = HtmlToPlainText(xmldoc.SelectNodes("//html_instructions").Item(i).InnerText.ToString()); //Добавление шага в таблицу. dtRouter.Rows.Add(dr); } //Выводим в текстовое поле адрес начала пути. textBox1.Text = xmldoc.SelectNodes("//leg//start_address").Item(0).InnerText.ToString(); //Выводим в текстовое поле адрес конца пути. textBox2.Text = xmldoc.SelectNodes("//leg//end_address").Item(0).InnerText.ToString(); //Выводим в текстовое поле время в пути. textBox3.Text = xmldoc.GetElementsByTagName("duration")[nodes.Count].ChildNodes[1].InnerText; //Выводим в текстовое поле расстояние от начальной до конечной точки. textBox4.Text = xmldoc.GetElementsByTagName("distance")[nodes.Count].ChildNodes[1].InnerText; //Переменные для хранения координат начала и конца пути. double latStart = 0.0; double lngStart = 0.0; double latEnd = 0.0; double lngEnd = 0.0; //Получение координат начала пути. latStart = System.Xml.XmlConvert.ToDouble(xmldoc.GetElementsByTagName("start_location")[nodes.Count].ChildNodes[0].InnerText); lngStart = System.Xml.XmlConvert.ToDouble(xmldoc.GetElementsByTagName("start_location")[nodes.Count].ChildNodes[1].InnerText); //Получение координат конечной точки. latEnd = System.Xml.XmlConvert.ToDouble(xmldoc.GetElementsByTagName("end_location")[nodes.Count].ChildNodes[0].InnerText); lngEnd = System.Xml.XmlConvert.ToDouble(xmldoc.GetElementsByTagName("end_location")[nodes.Count].ChildNodes[1].InnerText); //Выводим в текстовое поле координаты начала пути. textBox5.Text = latStart + ";" + lngStart; //Выводим в текстовое поле координаты конечной точки. textBox6.Text = latEnd + ";" + lngEnd; //Устанавливаем заполненную таблицу в качестве источника. dataGridView1.DataSource = dtRouter; //Устанавливаем позицию карты на начало пути. gMapControl1.Position = new GMap.NET.PointLatLng(latStart, lngStart); //Создаем новый список маркеров, с указанием компонента //в котором они будут использоваться и названием списка. GMap.NET.WindowsForms.GMapOverlay markersOverlay = new GMap.NET.WindowsForms.GMapOverlay(gMapControl1, "marker"); //Инициализация нового ЗЕЛЕНОГО маркера, с указанием координат начала пути. GMap.NET.WindowsForms.Markers.GMapMarkerGoogleGreen markerG = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleGreen( new GMap.NET.PointLatLng(latStart, lngStart)); markerG.ToolTip = new GMap.NET.WindowsForms.ToolTips.GMapRoundedToolTip(markerG); //Указываем, что подсказку маркера, необходимо отображать всегда. markerG.ToolTipMode = GMap.NET.WindowsForms.MarkerTooltipMode.Always; //Формируем подсказку для маркера. string[] wordsG = textBox1.Text.Split(','); string dataMarkerG = string.Empty; foreach (string word in wordsG) { dataMarkerG += word + ";\n"; } //Устанавливаем текст подсказки маркера. markerG.ToolTipText = dataMarkerG; //Инициализация нового Красного маркера, с указанием координат конца пути. GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed markerR = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed( new GMap.NET.PointLatLng(latEnd, lngEnd)); markerG.ToolTip = new GMap.NET.WindowsForms.ToolTips.GMapRoundedToolTip(markerG); //Указываем, что подсказку маркера, необходимо отображать всегда. markerR.ToolTipMode = GMap.NET.WindowsForms.MarkerTooltipMode.Always; //Формируем подсказку для маркера. string[] wordsR = textBox2.Text.Split(','); string dataMarkerR = string.Empty; foreach (string word in wordsR) { dataMarkerR += word + ";\n"; } //Текст подсказки маркера. markerR.ToolTipText = dataMarkerR; //Добавляем маркеры в список маркеров. markersOverlay.Markers.Add(markerG); markersOverlay.Markers.Add(markerR); //Очищаем список маркеров компонента. gMapControl1.Overlays.Clear(); //Создаем список контрольных точек для прокладки маршрута. List <GMap.NET.PointLatLng> list = new List <GMap.NET.PointLatLng>(); //Проходимся по определенным столбцам для получения //координат контрольных точек маршрута и занесением их //в список координат. for (int i = 0; i < dtRouter.Rows.Count; i++) { double dbStartLat = double.Parse(dtRouter.Rows[i].ItemArray[1].ToString(), System.Globalization.CultureInfo.InvariantCulture); double dbStartLng = double.Parse(dtRouter.Rows[i].ItemArray[2].ToString(), System.Globalization.CultureInfo.InvariantCulture); list.Add(new GMap.NET.PointLatLng(dbStartLat, dbStartLng)); double dbEndLat = double.Parse(dtRouter.Rows[i].ItemArray[3].ToString(), System.Globalization.CultureInfo.InvariantCulture); double dbEndLng = double.Parse(dtRouter.Rows[i].ItemArray[4].ToString(), System.Globalization.CultureInfo.InvariantCulture); list.Add(new GMap.NET.PointLatLng(dbEndLat, dbEndLng)); } //Очищаем все маршруты. markersOverlay.Routes.Clear(); //Создаем маршрут на основе списка контрольных точек. GMap.NET.WindowsForms.GMapRoute r = new GMap.NET.WindowsForms.GMapRoute(list, "Route"); //Указываем, что данный маршрут должен отображаться. r.IsVisible = true; //Устанавливаем цвет маршрута. r.Stroke.Color = Color.DarkGreen; //Добавляем маршрут. markersOverlay.Routes.Add(r); //Добавляем в компонент, список маркеров и маршрутов. gMapControl1.Overlays.Add(markersOverlay); //Указываем, что при загрузке карты будет использоваться //9ти кратное приближение. gMapControl1.Zoom = 9; //Обновляем карту. gMapControl1.Refresh(); } } }
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e) { int deviceId = Convert.ToInt32(checkedListBox1.Items[e.Index]); if (e.NewValue == CheckState.Unchecked) { foreach (GMapMarker item in markersOverlay.Markers) { if (Convert.ToInt32(item.Tag) == deviceId) { markersOverlay.Markers.Remove(item); break; } } RemoveDataPerDevice(deviceId); //pictureBox1.ImageLocation = parserXml.DeviceImage; //pictureBox1.Update(); } if (e.NewValue == CheckState.Checked) { RequestDeviceData(deviceId, false); List<Measurement> last = RequestDeviceData(deviceId, true); //String filepath = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + @"\Images\smile.png"; //CustomMarker marker = new CustomMarker(new PointLatLng(34.6961334816182, 25.2985095977783), new Bitmap(filepath)); //marker.Size = new Size(11, 11); System.Globalization.NumberFormatInfo nmf = new System.Globalization.NumberFormatInfo(); nmf.NumberDecimalSeparator = "."; if (last.Count > 0) { if (Convert.ToDouble(last[0].temprature) > 25.0) { //GMapMarker marker = new GMap.NET.WindowsForms.Markers.GMapMarker(new PointLatLng(Convert.ToDouble(last[0].latitude, nmf), Convert.ToDouble(last[0].longitude, nmf))); GMapMarker marker = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed(new PointLatLng(Convert.ToDouble(last[0].latitude, nmf), Convert.ToDouble(last[0].longitude, nmf))); marker.Tag = deviceId; markersOverlay.Markers.Add(marker); } else { GMapMarker marker = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleGreen(new PointLatLng(Convert.ToDouble(last[0].latitude, nmf), Convert.ToDouble(last[0].longitude, nmf))); marker.Tag = deviceId; markersOverlay.Markers.Add(marker); } } pictureBox1.ImageLocation = String.Format("http://chemigallego.es:2013/SmartCity/GetImage.aspx?device={0}", deviceId); pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; pictureBox1.Update(); } foreach (GMapMarker item in markersOverlay.Markers) { gMapControl1.UpdateMarkerLocalPosition(item); } gMapControl1.ZoomAndCenterMarkers("markers"); dataGridView1.DataSource = null; dataGridView1.DataSource = Data; dataGridView1.Refresh(); // Make sure this comes first dataGridView1.Parent.Refresh(); // Make sure this comes second }
private void LoadTrackData(Track track, bool clearFirst = false) { Feng.Async.AsyncHelper.Start(() => { IList<TrackPoint> trackPoints = TrackPointDao.GetTrackPoints(track); if (trackPoints.Count == 0) { if (track.StartTime.HasValue) { if (!track.EndTime.HasValue) track.EndTime = DateTime.MaxValue; trackPoints = TrackPointDao.GetTrackPoints(track.VehicleName, track.StartTime.Value, track.EndTime.Value); } } return trackPoints; }, (result) => { var trackPoints = result as IList<TrackPoint>; List<PointLatLng> points = new List<GMap.NET.PointLatLng>(); foreach (var p in trackPoints) { points.Add(new PointLatLng(p.Latitude, p.Longitude)); } if (clearFirst) { ClearTrack(); } DarwTrack(points); if (trackPoints.Count > 0) { //DrawCircle(); var p = trackPoints[trackPoints.Count - 1]; var p2 = new PointLatLng(p.Latitude, p.Longitude); var m = new GMap.NET.WindowsForms.Markers.GMapMarkerCircle(p2); m_trackOverlay.Markers.Add(m); m_MainMap.Position = p2; } if (tsm显示路线点地址.Checked) { // Show Start, End for (int i = 0; i < trackPoints.Count; i += trackPoints.Count - 1) { var p = trackPoints[i]; var m = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed(new PointLatLng(p.Latitude, p.Longitude)); m.ToolTipText = (i == 0 ? "Start" : "End") + ", " + p.GpsTime.ToLongTimeString(); m_trackOverlay.Markers.Add(m); } try { DrawTrackPointAddr(trackPoints); } catch (Exception) { } } if (tsm显示路线点.Checked) { IList<WayPoint> wayPoint = WayPointDao.GetWaypoints(track); foreach (var p in wayPoint) { if (!string.IsNullOrEmpty(p.Action)) { var m = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed(new PointLatLng(p.Latitude, p.Longitude)); m.ToolTipText = p.Action + "," + p.GpsTime.ToLongTimeString(); m_trackOverlay.Markers.Add(m); } } } if (!track.EndTime.HasValue) { if (m_timer == null) { m_timer = new System.Timers.Timer(30 * 1000); m_timer.Elapsed += new System.Timers.ElapsedEventHandler(m_timer_Elapsed); } m_timer.AutoReset = true; m_timer.Enabled = true; } if (track.Route != null) { LoadRoute(track.Route.Name); } }); }
private void Form1_Load(object sender, EventArgs e) { //Настройки для компонента GMap. gMapControl1.Bearing = 0; //CanDragMap - Если параметр установлен в True, //пользователь может перетаскивать карту ///с помощью правой кнопки мыши. gMapControl1.CanDragMap = true; //Указываем что перетаскивание карты осуществляется //с использованием левой клавишей мыши. //По умолчанию - правая. gMapControl1.DragButton = MouseButtons.Left; gMapControl1.GrayScaleMode = true; //MarkersEnabled - Если параметр установлен в True, //любые маркеры, заданные вручную будет показаны. //Если нет, они не появятся. gMapControl1.MarkersEnabled = true; //Указываем значение максимального приближения. gMapControl1.MaxZoom = 18; //Указываем значение минимального приближения. gMapControl1.MinZoom = 2; //Устанавливаем центр приближения/удаления //курсор мыши. gMapControl1.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter; //Отказываемся от негативного режима. gMapControl1.NegativeMode = false; //Разрешаем полигоны. gMapControl1.PolygonsEnabled = true; //Разрешаем маршруты. gMapControl1.RoutesEnabled = true; //Скрываем внешнюю сетку карты //с заголовками. gMapControl1.ShowTileGridLines = false; //Указываем, что при загрузке карты будет использоваться //18ти кратной приближение. gMapControl1.Zoom = 18; //Указываем, что все края элемента управления //закрепляются у краев содержащего его элемента //управления(главной формы), а их размеры изменяются //соответствующим образом. gMapControl1.Dock = DockStyle.Fill; //Указываем, что будем использовать карты Google. gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.GoogleMap; GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerOnly; //Если вы используете интернет через прокси сервер, //указываем свои учетные данные. GMap.NET.MapProviders.GMapProvider.WebProxy = System.Net.WebRequest.GetSystemWebProxy(); GMap.NET.MapProviders.GMapProvider.WebProxy.Credentials = System.Net.CredentialCache.DefaultCredentials; //Указываем элементу управления, //что необходимо при открытии карты прейти по //координатам красной площади в Москве. gMapControl1.Position = new GMap.NET.PointLatLng(55.75393, 37.620795); //Создаем новый список маркеров, с указанием компонента //в котором они будут использоваться и названием списка. GMap.NET.WindowsForms.GMapOverlay markersOverlay = new GMap.NET.WindowsForms.GMapOverlay(gMapControl1, "marker"); //Инициализация нового ЗЕЛЕНОГО маркера, с указанием его координат. GMap.NET.WindowsForms.Markers.GMapMarkerGoogleGreen markerG = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleGreen( //Указываем координаты Красной площади new GMap.NET.PointLatLng(55.75393, 37.620795)); markerG.ToolTip = new GMap.NET.WindowsForms.ToolTips.GMapRoundedToolTip(markerG); //Текст отображаемый при наведении на маркер. markerG.ToolTipText = "Красная площадь"; //Инициализация нового КРАСНОГО маркера, с указанием его координат. GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed markerR = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed( //Указываем координаты Красной площади new GMap.NET.PointLatLng(55.75393, 37.620695)); markerR.ToolTip = new GMap.NET.WindowsForms.ToolTips.GMapBaloonToolTip(markerG); //Текст отображаемый при наведении на маркер. markerR.ToolTipText = "Красная площадь"; //Добавляем маркеры в список маркеров. //Зеленый маркер markersOverlay.Markers.Add(markerG); //Красный маркет markersOverlay.Markers.Add(markerR); //Добавляем в компонент, список маркеров. gMapControl1.Overlays.Add(markersOverlay); }
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e) { int deviceId = Convert.ToInt32(checkedListBox1.Items[e.Index]); if (e.NewValue == CheckState.Unchecked) { foreach (GMapMarker item in markersOverlay.Markers) { if (Convert.ToInt32(item.Tag) == deviceId) { markersOverlay.Markers.Remove(item); break; } } RemoveDataPerDevice(deviceId); //pictureBox1.ImageLocation = parserXml.DeviceImage; //pictureBox1.Update(); } if (e.NewValue == CheckState.Checked) { RequestDeviceData(deviceId, false); List <Measurement> last = RequestDeviceData(deviceId, true); //String filepath = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + @"\Images\smile.png"; //CustomMarker marker = new CustomMarker(new PointLatLng(34.6961334816182, 25.2985095977783), new Bitmap(filepath)); //marker.Size = new Size(11, 11); System.Globalization.NumberFormatInfo nmf = new System.Globalization.NumberFormatInfo(); nmf.NumberDecimalSeparator = "."; if (last.Count > 0) { if (Convert.ToDouble(last[0].temprature) > 25.0) { //GMapMarker marker = new GMap.NET.WindowsForms.Markers.GMapMarker(new PointLatLng(Convert.ToDouble(last[0].latitude, nmf), Convert.ToDouble(last[0].longitude, nmf))); GMapMarker marker = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed(new PointLatLng(Convert.ToDouble(last[0].latitude, nmf), Convert.ToDouble(last[0].longitude, nmf))); marker.Tag = deviceId; markersOverlay.Markers.Add(marker); } else { GMapMarker marker = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleGreen(new PointLatLng(Convert.ToDouble(last[0].latitude, nmf), Convert.ToDouble(last[0].longitude, nmf))); marker.Tag = deviceId; markersOverlay.Markers.Add(marker); } } pictureBox1.ImageLocation = String.Format("http://chemigallego.es:2013/SmartCity/GetImage.aspx?device={0}", deviceId); pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; pictureBox1.Update(); } foreach (GMapMarker item in markersOverlay.Markers) { gMapControl1.UpdateMarkerLocalPosition(item); } gMapControl1.ZoomAndCenterMarkers("markers"); dataGridView1.DataSource = null; dataGridView1.DataSource = Data; dataGridView1.Refresh(); // Make sure this comes first dataGridView1.Parent.Refresh(); // Make sure this comes second }
private void gMapControl1_Load(object sender, EventArgs e) { //Настройки для компонента GMap. gMapControl1.Bearing = 0; //CanDragMap - Если параметр установлен в True, //пользователь может перетаскивать карту ///с помощью правой кнопки мыши. gMapControl1.CanDragMap = true; //Указываем, что перетаскивание карты осуществляется //с использованием левой клавишей мыши. //По умолчанию - правая. gMapControl1.DragButton = MouseButtons.Left; gMapControl1.GrayScaleMode = true; //MarkersEnabled - Если параметр установлен в True, //любые маркеры, заданные вручную будет показаны. //Если нет, они не появятся. gMapControl1.MarkersEnabled = true; //Указываем значение максимального приближения. gMapControl1.MaxZoom = 18; //Указываем значение минимального приближения. gMapControl1.MinZoom = 2; //Устанавливаем центр приближения/удаления //курсор мыши. gMapControl1.MouseWheelZoomType = GMap.NET.MouseWheelZoomType.MousePositionAndCenter; //Отказываемся от негативного режима. gMapControl1.NegativeMode = false; //Разрешаем полигоны. gMapControl1.PolygonsEnabled = true; //Разрешаем маршруты gMapControl1.RoutesEnabled = true; //Скрываем внешнюю сетку карты //с заголовками. gMapControl1.ShowTileGridLines = false; //Указываем, что при загрузке карты будет использоваться //18ти кратное приближение. gMapControl1.Zoom = 5; //Указываем что все края элемента управления //закрепляются у краев содержащего его элемента //управления(главной формы), а их размеры изменяются //соответствующим образом. gMapControl1.Dock = DockStyle.Fill; //Указываем что будем использовать карты Google. gMapControl1.MapProvider = GMap.NET.MapProviders.GMapProviders.GoogleMap; GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerOnly; //Если вы используете интернет через прокси сервер, //указываем свои учетные данные. GMap.NET.MapProviders.GMapProvider.WebProxy = System.Net.WebRequest.GetSystemWebProxy(); GMap.NET.MapProviders.GMapProvider.WebProxy.Credentials = System.Net.CredentialCache.DefaultCredentials; // Создаем новый список маркеров, с указанием компонента //в котором они будут использоваться и названием списка GMap.NET.WindowsForms.GMapOverlay markersOverlay = new GMap.NET.WindowsForms.GMapOverlay(gMapControl1, "marker"); int scetchik = 1; for (int i = 0; i < genetic.fmap.Length; i++) { GeoPoint an = new GeoPoint(); an = MarkerF.Coord(C.g[genetic.fmap[i]]); { //Инициализация нового ЗЕЛЕНОГО маркера, с указанием его координат GMap.NET.WindowsForms.Markers.GMapMarkerGoogleGreen marker = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleGreen( new GMap.NET.PointLatLng(an.Lat, an.Long)); marker.ToolTip = new GMap.NET.WindowsForms.ToolTips.GMapRoundedToolTip(marker); //Текст отображаемый при наведении на маркер marker.ToolTipText = scetchik.ToString(); //Добавляем маркер в список маркеров markersOverlay.Markers.Add(marker); //Добавляем в компонент, список маркеров gMapControl1.Overlays.Add(markersOverlay); } scetchik++; } GeoPoint startmarker = new GeoPoint(); startmarker = MarkerF.Coord(C.start); GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed markerR = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed( new GMap.NET.PointLatLng(startmarker.Lat, startmarker.Long)); markerR.ToolTip = new GMap.NET.WindowsForms.ToolTips.GMapRoundedToolTip(markerR); //Текст отображаемый при наведении на маркер markerR.ToolTipText = "Start"; //Добавляем маркер в список маркеров markersOverlay.Markers.Add(markerR); //Добавляем в компонент, список маркеров gMapControl1.Overlays.Add(markersOverlay); }
/// <summary> /// Show the geo map location of an item /// </summary> private void SetGeoMapLocation(GeoMapLocation Location, int LayerItem = 1) { if (Location.Latitude == 0 && Location.Longitude == 0) return; //GMapToolTip objToolTip; //objToolTip.Font = Font.; //objToolTip //ToolTip objToolTip = new ToolTip(); //objToolTip.ToolTipIcon = ToolTipIcon.Info; //objToolTip m_objPosition = new PointLatLng(Location.Latitude, Location.Longitude); m_objMarker = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed(m_objPosition); m_objMarker.ToolTipText = Location.Tooltip; m_objMarker.ToolTipMode = MarkerTooltipMode.Always; //m_objMarker.ToolTip = objToolTip; m_objOverlay = new GMapOverlay(gMapControl, "Layer_" + LayerItem.ToString()); m_objOverlay.Markers.Add(m_objMarker); gMapControl.Overlays.Add(m_objOverlay); if (LayerItem == 1) { gMapControl.Position = new PointLatLng(Location.Latitude, Location.Longitude); m_DefaultLatitude = Location.Latitude; m_DefaultLongitude = Location.Longitude; } }
private void LoadTrackData(Track track, bool clearFirst = false) { Feng.Async.AsyncHelper.Start(() => { IList <TrackPoint> trackPoints = TrackPointDao.GetTrackPoints(track); if (trackPoints.Count == 0) { if (track.StartTime.HasValue) { if (!track.EndTime.HasValue) { track.EndTime = DateTime.MaxValue; } trackPoints = TrackPointDao.GetTrackPoints(track.VehicleName, track.StartTime.Value, track.EndTime.Value); } } return(trackPoints); }, (result) => { var trackPoints = result as IList <TrackPoint>; List <PointLatLng> points = new List <GMap.NET.PointLatLng>(); foreach (var p in trackPoints) { points.Add(new PointLatLng(p.Latitude, p.Longitude)); } if (clearFirst) { ClearTrack(); } DarwTrack(points); if (trackPoints.Count > 0) { //DrawCircle(); var p = trackPoints[trackPoints.Count - 1]; var p2 = new PointLatLng(p.Latitude, p.Longitude); var m = new GMap.NET.WindowsForms.Markers.GMapMarkerCircle(p2); m_trackOverlay.Markers.Add(m); m_MainMap.Position = p2; } if (tsm显示路线点地址.Checked) { // Show Start, End for (int i = 0; i < trackPoints.Count; i += trackPoints.Count - 1) { var p = trackPoints[i]; var m = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed(new PointLatLng(p.Latitude, p.Longitude)); m.ToolTipText = (i == 0 ? "Start" : "End") + ", " + p.GpsTime.ToLongTimeString(); m_trackOverlay.Markers.Add(m); } try { DrawTrackPointAddr(trackPoints); } catch (Exception) { } } if (tsm显示路线点.Checked) { IList <WayPoint> wayPoint = WayPointDao.GetWaypoints(track); foreach (var p in wayPoint) { if (!string.IsNullOrEmpty(p.Action)) { var m = new GMap.NET.WindowsForms.Markers.GMapMarkerGoogleRed(new PointLatLng(p.Latitude, p.Longitude)); m.ToolTipText = p.Action + "," + p.GpsTime.ToLongTimeString(); m_trackOverlay.Markers.Add(m); } } } if (!track.EndTime.HasValue) { if (m_timer == null) { m_timer = new System.Timers.Timer(30 * 1000); m_timer.Elapsed += new System.Timers.ElapsedEventHandler(m_timer_Elapsed); } m_timer.AutoReset = true; m_timer.Enabled = true; } if (track.Route != null) { LoadRoute(track.Route.Name); } }); }