// 地面站距离环 void frm_changebox10_event(Boolean selected) { if (selected) { landDistenceCircle = true; landCircleOverlay.Clear(); this.gMapControl1.Overlays.Add(landCircleOverlay); if (landStation) { List <Dictionary <string, object> > result = ProfileHelper.Instance.Select("SELECT * FROM LandStation"); foreach (Dictionary <string, object> dictionary in result) { String name = Convert.ToString(dictionary["Name"]); double lat = Convert.ToDouble(dictionary["Lat"]); double lang = Convert.ToDouble(dictionary["Lng"]); double length = Convert.ToDouble(dictionary["Length"]); int num = Convert.ToInt16(dictionary["Num"]); while (num > 0) { PointLatLng point = new PointLatLng(lat, lang); GMapMarkerCircle gMapMarkerCircle = new GMapMarkerCircle(point, (int)length * num); landCircleOverlay.Markers.Add(gMapMarkerCircle); num--; } } } } else { landDistenceCircle = false; landCircleOverlay.Clear(); this.gMapControl1.Overlays.Remove(landCircleOverlay); } gMapControl1.Refresh(); }
// 展示航迹圈圆 private void showFlightCircle(double lat, double lang, int length) { PointLatLng point1 = new PointLatLng(lat, lang); GMapMarkerCircle gMapMarkerCircle = new GMapMarkerCircle(point1, length); planeOverlay.Markers.Add(gMapMarkerCircle); }
/* * 空域box * */ void frm_changebox2_event(Boolean selected, int flag) { if (selected || (2 == flag && airSpace == true)) { airSpace = true; airSpaceOverlay.Clear(); this.gMapControl1.Overlays.Add(airSpaceOverlay); listAirSpace = new List <String>(); List <Dictionary <string, object> > nameResult = ProfileHelper.Instance.Select("SELECT DISTINCT Name FROM AirSpace"); foreach (Dictionary <string, object> dictionary in nameResult) { String name = Convert.ToString(dictionary["Name"]); listAirSpace.Add(name); } foreach (String name in listAirSpace) { List <Dictionary <string, object> > result = ProfileHelper.Instance.Select("SELECT * FROM AirSpace WHERE Name = \"" + name + "\""); if (result.Count > 0) { 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); airSpaceOverlay.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); airSpaceOverlay.Polygons.Add(polygon); } } } gMapControl1.Refresh(); } else { if (1 == flag) { airSpace = false; airSpaceOverlay.Clear(); this.gMapControl1.Overlays.Remove(airSpaceOverlay); gMapControl1.Refresh(); } } }