コード例 #1
0
ファイル: Form1.cs プロジェクト: hraj17/usergrid
 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);
 }
コード例 #2
0
        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);
        }
コード例 #3
0
        //метод для отслежки клиента
        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();
                }
            }
        }
コード例 #4
0
ファイル: Form1.cs プロジェクト: ReNASAsense/SmartCity
        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
        }
コード例 #5
0
        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);
                        }
                    });
        }
コード例 #6
0
ファイル: Form1.cs プロジェクト: makmen/WinForms
        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);
        }
コード例 #7
0
ファイル: Form1.cs プロジェクト: ReNASAsense/SmartCity
        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
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        /// <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;
            }
        }
コード例 #10
0
        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);
                }
            });
        }