/// <summary> /// 批量加载卫星观测区 根据卫星观测区所属的任务id加载 /// </summary> /// <param name="pMapCtr"></param> /// <param name="id"></param> public static void LoadSatelliteResaultAreasByTaskID(ESRI.ArcGIS.Controls.AxMapControl pMapCtr, int id, DateTime begin, DateTime end) { //读取并图上显示卫星观测区信息 Core.Map.MapHelper map = new Core.Map.MapHelper(pMapCtr); map.ClearAllElement(); //卫星观测区域 Core.DAL.SatelliteResault dal_satelliteResault = new Core.DAL.SatelliteResault(); list_model = new List <Core.Model.SatelliteResault>(); IEnvelope envelope = null; try { list_model = dal_satelliteResault.GetListByTaskID(id, begin, end); if (list_model.Count == 0) { MessageBox.Show("该灾区尚未生成任务区!"); return; } //加载 foreach (Core.Model.SatelliteResault t_model in list_model) { try { LoadSatelliteResaultArea(map, t_model); IPolygon pPolygon = Core.Generic.Convertor.ToPolygon(t_model.POLYGONSTRING); //获取多个Polygon的Envelope外包矩形 if (envelope == null) { envelope = pPolygon.Envelope; } else { envelope.Union(pPolygon.Envelope); } } catch (Exception ex) { continue; } } if (!envelope.IsEmpty) { envelope.Expand(1.1, 1.1, true); } pMapCtr.Extent = envelope; pMapCtr.ActiveView.Refresh(); } catch (Exception ex) { MessageBox.Show("错误:" + ex); } }
/// <summary> /// 加载观测区域列表 /// </summary> /// <param name="pnode"></param> public static void LoadSatelliteResaultList(ESRI.ArcGIS.Controls.AxMapControl pMapCtr, TreeNode pnode, bool timeChecked) { int pid; int.TryParse(pnode.Tag.ToString().Substring(3), out pid); Core.DAL.SatelliteResault dal = new Core.DAL.SatelliteResault(); List <Core.Model.SatelliteResault> list_model = new List <Core.Model.SatelliteResault>(); TreeNode node; try { if (timeChecked) { list_model = dal.GetListByTaskIDTime(pid); } else { list_model = dal.GetListByTaskID(pid); } if (list_model.Count != 0) { pnode.Nodes.Clear(); } foreach (Core.Model.SatelliteResault model in list_model) { Core.Model.ImgLayoutTempTimewindow imgLayoutTempTimewindow = new Core.Model.ImgLayoutTempTimewindow(); Core.DAL.ImgLayoutTempTimewindow dal_imgLayoutTempTimewindow = new Core.DAL.ImgLayoutTempTimewindow(); imgLayoutTempTimewindow = dal_imgLayoutTempTimewindow.GetModel(model.LSTR_SEQID.ToString()); node = new TreeNode(); node.Text = imgLayoutTempTimewindow.STARTTIME.ToString("yyyy-MM-dd HH:mm:ss") + "\\" + imgLayoutTempTimewindow.SAT_STKNAME + "\\" + imgLayoutTempTimewindow.SENSOR_STKNAME; node.Tag = "I1|" + model.LSTR_SEQID;//I--表示观测结果,model.LSTR_SEQID--表示为观测结果ID node.ImageIndex = 4; node.SelectedImageIndex = 5; pnode.Nodes.Add(node); } } catch (Exception ex) { throw (ex); } finally { list_model = null; dal = null; } }