public override void OnClick() { if (m_Hook == null) { return; } //LogFile log = new LogFile(m_Hook.tipRichBox, m_Hook.strLogFilePath); //if (log != null) //{ // log.Writelog("标准图幅"); //} if (m_Hook.ArcGisMapControl.Map.LayerCount == 0) { MessageBox.Show("当前没有调阅数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); if (this.WriteLog) { Plugin.LogTable.Writelog("出森林资源现状分幅图 提示‘当前没有调阅数据!’", m_Hook.tipRichBox); } return; } ISpatialReference pSpatialRefrence = m_Hook.ArcGisMapControl.SpatialReference; if (!(pSpatialRefrence is IProjectedCoordinateSystem)) { //MessageBox.Show("请设置地图的投影坐标!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); //Plugin.LogTable.Writelog("标准分幅制图 提示‘请设置地图的投影坐标!’", m_Hook.tipRichBox); //return; } try { IFeatureClass xzqFC = ModGetData.GetXZQFC("//LayerConfig/County"); if (xzqFC == null) { SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "未找到县级行政区图层!"); return; } string xzqdmFD = ModGetData.GetXZQFd("//LayerConfig/County"); if (xzqdmFD == null) { SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "未找到县节点的行政区代码字段名称!"); return; } if (this.WriteLog) { Plugin.LogTable.Writelog("森林资源现状分幅图", m_Hook.tipRichBox); } m_Hook.ArcGisMapControl.CurrentTool = null; FrmSheetMapUserSet_ZT fmSMUS = new FrmSheetMapUserSet_ZT(m_Hook.ArcGisMapControl, m_frmhook.MainForm, "", xzqFC, xzqdmFD); fmSMUS.Show(m_frmhook.MainForm); fmSMUS.WriteLog = WriteLog;//ygc 2012-9-12 是否写日志 } catch (Exception ex) { SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", ex.Message); } }
public override void OnClick() { if (m_Hook == null) { return; } //LogFile log = new LogFile(m_Hook.tipRichBox, m_Hook.strLogFilePath); //if (log != null) //{ // log.Writelog("导入范围出图"); //} if (m_Hook.ArcGisMapControl.Map.LayerCount == 0) { MessageBox.Show("当前没有调阅数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } try { OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "个人数据库(*.mdb)|*.mdb|shp数据|*.shp|文本文件|*.txt"; if (dlg.ShowDialog() == DialogResult.Cancel) { return; } IPolygon pGon = new PolygonClass(); pGon = GetPolyGonFromFile(dlg.FileName); if (pGon == null) { return; } if (this.WriteLog) { Plugin.LogTable.Writelog("总体规划图"); } IFeatureClass xzq_xianFC = ModGetData.GetXZQFC("//City"); if (xzq_xianFC == null) { SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "未找到相应的行政区图层!"); return; } string xzqdmFD = ModGetData.GetXZQFd("//City"); if (xzqdmFD == null) { SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "未找到相应的行政区配置文件的行政区代码字段名称!"); return; } List <string> lstName = getXZQMC(pGon as IGeometry, xzq_xianFC, xzqdmFD); if (lstName == null || lstName.Count == 0) { SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "行政区配置无效或导入的范围非本地范围。"); return; } IMap pMap = null; bool isSpecial = ModGetData.IsMapSpecial(); if (isSpecial) { pMap = new MapClass(); foreach (string xzq in lstName) { ModGetData.AddMapOfByXZQ(pMap, "ZTGH", "", m_Hook.ArcGisMapControl.Map, xzq); } if (pMap.LayerCount == 0) { SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "未找到总体规划专题!请加载改专题图层。"); return; } ModuleMap.LayersComposeEx(pMap);//图层排序 } else { IObjectCopy pOC = new ObjectCopyClass(); pMap = pOC.Copy(m_Hook.ArcGisMapControl.Map) as IMap; //复制地图 } pGon.SpatialReference = pMap.SpatialReference; //须赋给一致的空间参考 ITopologicalOperator pTopo = pGon as ITopologicalOperator; if (pTopo != null) { pTopo.Simplify(); } drawgeometryXOR(pGon, m_pScreenDisplay); //addGeometryEle(pGon); //GeoDataCenterFunLib.CProgress pgss = new GeoDataCenterFunLib.CProgress("正在加载制图界面,请稍候..."); //pgss.EnableCancel = false; //pgss.ShowDescription = false; //pgss.FakeProgress = true; //pgss.TopMost = true; //pgss.ShowProgress(); //Application.DoEvents(); fmPageLayout = new FrmPageLayout(pMap, pGon as IGeometry, false); //pgss.Close(); fmPageLayout.WriteLog = WriteLog;//ygc 2012-9-12 是否写日志 fmPageLayout.FormClosed += new FormClosedEventHandler(fmPageLayout_FormClosed); fmPageLayout.Show(); Application.DoEvents(); } catch (Exception ex) { SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", ex.Message); } //gpl = new GeoPageLayout.GeoPageLayout(pMap, pGon as ESRI.ArcGIS.Geometry.IGeometry); //gpl.typePageLayout = 2; //gpl.MapOut(); //gpl = null; //m_Hook.MapControl.ActiveView.Refresh(); }