/// <summary> /// 批量加载卫星观测区 根据卫星观测区所属的方案id加载 /// </summary> /// <param name="pMapCtr"></param> /// <param name="id"></param> public static void LoadSatelliteResaultAreas(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.GetListBySchemeID(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="pMapCtr"></param> /// <param name="DID"></param> public static void PositionResaultAreasByTaskID(ESRI.ArcGIS.Controls.AxMapControl pMapCtr, int DID) { Core.DAL.SatelliteResault dal = new Core.DAL.SatelliteResault(); List <Core.Model.SatelliteResault> list_model = new List <Core.Model.SatelliteResault>(); try { list_model = dal.GetListBySchemeID(DID); } catch (Exception ex) { throw (ex); } finally { list_model = null; dal = null; } }