Ejemplo n.º 1
0
        private void showAirSpave(GMapOverlay overlay, double lat, double lang, String name)
        {
            overlay.Markers.Clear();
            // 展示鼠标点击点
            if (overlay.Equals(portSelOverlay))
            {
                PointLatLng point1  = new PointLatLng(lat, lang);
                GMapAirPort airPort = new GMapAirPort(point1, name);
                overlay.Markers.Add(airPort);
                gMapControl1.Refresh();
                return;
            }
            // 根据name获取要展示的空域信息
            List <Dictionary <string, object> > result = ProfileHelper.Instance.Select("SELECT * FROM AirSpace WHERE Name = \"" + name + "\"");

            if (result.Count > 0)
            {
                overlay.Clear();
                int type = Convert.ToInt16(result[0]["Type"]);
                if (1 == type)
                {
                    // 圆形
                    double           t                = Convert.ToDouble(result[0]["Lat"]);
                    double           g                = Convert.ToDouble(result[0]["Lng"]);
                    double           radius           = Convert.ToDouble(result[0]["Radius"]);
                    PointLatLng      point            = new PointLatLng(t, g);
                    GMapMarkerCircle gMapMarkerCircle = new GMapMarkerCircle(point, (int)radius);
                    overlay.Markers.Add(gMapMarkerCircle);
                }
                if (0 == type)
                {
                    // 多边形
                    List <PointLatLng> points = new List <PointLatLng>();
                    foreach (Dictionary <string, object> dictionary in result)
                    {
                        double      t     = Convert.ToDouble(dictionary["Lat"]);
                        double      g     = Convert.ToDouble(dictionary["Lng"]);
                        PointLatLng point = new PointLatLng(t, g);
                        points.Add(point);
                    }
                    GMapPolygon polygon = new GMapPolygon(points, "mypolygon");
                    polygon.Fill   = new SolidBrush(Color.FromArgb(50, Color.Red));
                    polygon.Stroke = new Pen(Color.Red, 1);
                    overlay.Polygons.Add(polygon);
                }
            }

            gMapControl1.Refresh();
        }
Ejemplo n.º 2
0
        private void showAirPort(GMapOverlay overlay, double lat, double lang, String name, int num, double length)
        {
            overlay.Markers.Clear();
            PointLatLng point1  = new PointLatLng(lat, lang);
            GMapAirPort airPort = new GMapAirPort(point1, name);

            overlay.Markers.Add(airPort);

            while (num > 0)
            {
                GMapMarkerCircle gMapMarkerCircle = new GMapMarkerCircle(point1, (int)length * num);
                overlay.Markers.Add(gMapMarkerCircle);
                num--;
            }

            gMapControl1.Refresh();
        }