コード例 #1
0
        private Mission Parse_Mission()
        {
            Mission Parsed_Misison = new Mission();
            string  Search_Area_Text, Waypoint_Text, Emergent_Target_Text, Airdrop_Text, Off_Axis_target_Text;

            FlyZone_List[FlyZone_Select_Combobox.SelectedIndex] = FlyZone_Textbox.Text;
            Search_Area_Text     = Search_Area_Textbox.Text;
            Waypoint_Text        = Waypoint_Textbox.Text;
            Emergent_Target_Text = Emergent_Target_Textbox.Text;
            Airdrop_Text         = Airdrop_Textbox.Text;
            Off_Axis_target_Text = Off_Axis_Target_Textbox.Text;


            if (Interoperability.getinstance().Settings["geo_cords"] == "DD.DDDDDD")
            {
                Parsed_Misison.fly_zones.Clear();
                for (int i = 0; i < FlyZone_List.Count; i++)
                {
                    Parsed_Misison.fly_zones.Add(new FlyZone(Max_Alt_MSL_List[i], Min_Alt_MSL_List[i], DDtoWaypoints(FlyZone_List[i]),
                                                             Border_Colour_List[i], Fill_Colour_List[i]));
                }

                //Add Search Areas
                Parsed_Misison.search_grid_points = DDtoWaypoints(Search_Area_Text);

                //Add Waypoints
                Parsed_Misison.mission_waypoints = DDwithAltitudetoWaypoints(Waypoint_Text);


                if (DDtoWaypoints(Emergent_Target_Text).Count != 0)
                {
                    Parsed_Misison.emergent_last_known_pos.latitude  = DDtoWaypoints(Emergent_Target_Text)[0].latitude;
                    Parsed_Misison.emergent_last_known_pos.longitude = DDtoWaypoints(Emergent_Target_Text)[0].longitude;
                }
                if (DDtoWaypoints(Airdrop_Text).Count != 0)
                {
                    Parsed_Misison.air_drop_pos.latitude  = DDtoWaypoints(Airdrop_Text)[0].latitude;
                    Parsed_Misison.air_drop_pos.longitude = DDtoWaypoints(Airdrop_Text)[0].longitude;
                }
                if (DDtoWaypoints(Off_Axis_target_Text).Count != 0)
                {
                    Parsed_Misison.off_axis_target_pos.latitude  = DDtoWaypoints(Off_Axis_target_Text)[0].latitude;
                    Parsed_Misison.off_axis_target_pos.longitude = DDtoWaypoints(Off_Axis_target_Text)[0].longitude;
                }
            }
            else
            {
                //Add Fly Zones
                Parsed_Misison.fly_zones.Clear();
                for (int i = 0; i < FlyZone_List.Count; i++)
                {
                    Parsed_Misison.fly_zones.Add(new FlyZone(Max_Alt_MSL_List[i], Min_Alt_MSL_List[i], DMStoWaypoints(FlyZone_List[i])));
                }

                //Add Search Areas
                Parsed_Misison.search_grid_points = DMStoWaypoints(Search_Area_Text);

                //Add Waypoints
                Parsed_Misison.mission_waypoints = DMSwithAltitudetoWaypoints(Waypoint_Text);

                if (DMStoWaypoints(Emergent_Target_Text).Count != 0)
                {
                    Parsed_Misison.emergent_last_known_pos.latitude  = DMStoWaypoints(Emergent_Target_Text)[0].latitude;
                    Parsed_Misison.emergent_last_known_pos.longitude = DMStoWaypoints(Emergent_Target_Text)[0].longitude;
                }
                if (DMStoWaypoints(Airdrop_Text).Count != 0)
                {
                    Parsed_Misison.air_drop_pos.latitude  = DMStoWaypoints(Airdrop_Text)[0].latitude;
                    Parsed_Misison.air_drop_pos.longitude = DMStoWaypoints(Airdrop_Text)[0].longitude;
                }
                if (DMStoWaypoints(Off_Axis_target_Text).Count != 0)
                {
                    Parsed_Misison.off_axis_target_pos.latitude  = DMStoWaypoints(Off_Axis_target_Text)[0].latitude;
                    Parsed_Misison.off_axis_target_pos.longitude = DMStoWaypoints(Off_Axis_target_Text)[0].longitude;
                }
            }

            return(Parsed_Misison);
        }
コード例 #2
0
        private void Refresh_Map_Button_Click(object sender, EventArgs e)
        {
            Temporary_Mission = Parse_Mission();

            MAP_Update_Overlay();
            MAP_Clear_Overlays();


            for (int i = 0; i < Temporary_Mission.fly_zones.Count; i++)
            {
                MAP_addStaticPoly(Temporary_Mission.fly_zones[i].boundary_pts, "Geofence" + i.ToString(), Temporary_Mission.fly_zones[i].border_color,
                                  Temporary_Mission.fly_zones[i].fill_color, 3, 50);
            }

            MAP_addStaticPoly(Temporary_Mission.search_grid_points, "Search_Area", Color.Green, Color.Green, 3, 90);

            MAP_updateWP(Temporary_Mission.mission_waypoints);
            MAP_updateWPRoute(Temporary_Mission.mission_waypoints);

            MAP_updateOFAT_EN_DROP(Temporary_Mission);

            MAP_Update_Overlay();

            List <double> lat = new List <double>();
            List <double> lng = new List <double>();

            for (int i = 0; i < Temporary_Mission.fly_zones.Count; i++)
            {
                for (int j = 0; j < Temporary_Mission.fly_zones[i].boundary_pts.Count; j++)
                {
                    lat.Add(Temporary_Mission.fly_zones[i].boundary_pts[j].latitude);
                    lng.Add(Temporary_Mission.fly_zones[i].boundary_pts[j].longitude);
                }
            }
            for (int i = 0; i < Temporary_Mission.search_grid_points.Count; i++)
            {
                lat.Add(Temporary_Mission.search_grid_points[i].latitude);
                lng.Add(Temporary_Mission.search_grid_points[i].longitude);
            }
            if (Temporary_Mission.air_drop_pos.latitude != 0 || Temporary_Mission.air_drop_pos.longitude != 0)
            {
                lat.Add(Temporary_Mission.air_drop_pos.latitude);
                lng.Add(Temporary_Mission.air_drop_pos.longitude);
            }
            if (Temporary_Mission.emergent_last_known_pos.latitude != 0 || Temporary_Mission.emergent_last_known_pos.longitude != 0)
            {
                lat.Add(Temporary_Mission.emergent_last_known_pos.latitude);
                lng.Add(Temporary_Mission.emergent_last_known_pos.longitude);
            }
            if (Temporary_Mission.off_axis_target_pos.latitude != 0 || Temporary_Mission.off_axis_target_pos.longitude != 0)
            {
                lat.Add(Temporary_Mission.off_axis_target_pos.latitude);
                lng.Add(Temporary_Mission.off_axis_target_pos.longitude);
            }

            gMapControl1.SetZoomToFitRect(new RectLatLng((lat.Max() + lat.Min()) / 2, (lng.Max() + lng.Min()) / 2, lng.Max() - lng.Min(), lat.Max() - lat.Min()));
            gMapControl1.Position = new PointLatLng((lat.Max() + lat.Min()) / 2, (lng.Max() + lng.Min()) / 2);


            /*List<Waypoint> temp2 = new List<Waypoint>();
             * temp2.Add(new Waypoint(lat.Max(), lng.Max()));
             * temp2.Add(new Waypoint(lat.Max(), lng.Min()));
             * temp2.Add(new Waypoint(lat.Min(), lng.Min()));
             * temp2.Add(new Waypoint(lat.Min(), lng.Max()));
             * MAP_addStaticPoly(temp2, "idk", Color.Red, Color.Transparent, 3, 0);*/
        }