コード例 #1
0
        //初始化加载底图
        private void InitMapCtr()
        {
            IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactoryClass();
            IWorkspace        pWorkspace        = pWorkspaceFactory.OpenFromFile(@"D:\RasterMaSysTemp\hhData", 0);
            IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;

            if (pFeatureWorkspace != null)
            {
                IFeatureClass pFeatureClass = pFeatureWorkspace.OpenFeatureClass("洪湖水域.shp");
                IFeatureLayer pFeatureLayer = new FeatureLayerClass();
                pFeatureLayer.Name         = "洪湖水域";
                pFeatureLayer.FeatureClass = pFeatureClass;
                //设置为湖泊符号渲染
                IGeoFeatureLayer pGeoFeatureLayer = (IGeoFeatureLayer)pFeatureLayer;
                IFillSymbol      pFillSymbol      = new SimpleFillSymbolClass();
                pFillSymbol.Color = DataShowControl.GetColor(151, 219, 242);
                ILineSymbol pLineSymbol = new SimpleLineSymbolClass();
                pLineSymbol.Color   = DataShowControl.GetColor(64, 101, 235);
                pLineSymbol.Width   = 0.4;
                pFillSymbol.Outline = pLineSymbol;
                ISimpleRenderer pSimpleRenderer = new SimpleRendererClass();
                pSimpleRenderer.Symbol    = (ISymbol)pFillSymbol;
                pGeoFeatureLayer.Renderer = pSimpleRenderer as IFeatureRenderer;
                //添加图层
                axMapControl1.Map.AddLayer(pGeoFeatureLayer);
                axMapControl1.ActiveView.Extent = axMapControl1.ActiveView.FullExtent;
            }
        }
コード例 #2
0
        //点击确认后开始提取湖区面积
        private void btn_OK_Click(object sender, EventArgs e)
        {
            string input     = this.txb_input.Text.Trim();
            int    threshold = Convert.ToInt32(this.thresholdNum.Value);
            string output    = this.txb_output.Text.Trim();
            bool   diaplay   = this.isDisplayResult.Checked;

            this.WriteRemapAscii(threshold);

            if (!File.Exists(output))
            {
                //调用GP工具进行湖区提取
                GpToolsClass gpTools = new GpToolsClass();
                gpTools.CalculateBoundary(input, output);

                //调用显示工具进行显示
                if (diaplay && File.Exists(output))
                {
                    DataShowControl dataShow = new DataShowControl(this._axMapControl.Map);
                    dataShow.DisplayShp(output);
                }
            }
            else
            {
                MessageBox.Show("指定的输出文件已存在,请修改输出名称");
            }
        }
コード例 #3
0
        //辐射定标
        private void btn_OK_Click(object sender, EventArgs e)
        {
            string inputStr  = this.txb_input.Text.Trim();
            string outputStr = this.txb_output.Text.Trim();

            //检查输入的头文件和保存路径是否正确
            if (File.Exists(inputStr) && Directory.Exists(outputStr))
            {
                FileInfo fileInfo = new FileInfo(inputStr);
                if (fileInfo.Extension == ".txt")
                {
                    //调用辐射定标函数
                    string[] resultStr = IdlProcess.IdlRadCalibration(inputStr, outputStr);
                    //如果勾选显示结果,则调用影像显示函数
                    if (isDisplayResult.Checked)
                    {
                        DataShowControl imgShow = new DataShowControl(pMapControl.Map);
                        imgShow.DisplayImg(resultStr[0]);
                        imgShow.DisplayImg(resultStr[1]);
                    }
                    //完成定标和显示后关闭当前窗口
                    this.Dispose();
                }
                else
                {
                    MessageBox.Show("输入的Landsat头文件格式不正确,正确格式为*._MTL.txt");
                }
            }
            else
            {
                MessageBox.Show("输入的文件或文件夹不存在,请修改!");
            }
        }
コード例 #4
0
        //保存图片
        private void btn_saveImg_Click(object sender, EventArgs e)
        {
            IMap pMap  = this.axPageLayoutControl1.ActiveView.FocusMap;
            int  count = pMap.LayerCount;

            if (count > 0)
            {
                string savePath = InitInput.InitSaveFile("bmp图像|*.bmp");
                DataShowControl.SaveCurrentToImage(this.axPageLayoutControl1, savePath);
                MessageBox.Show("图像保存成功!");
            }
        }
コード例 #5
0
        //  刷新按钮,刷新波段选择
        private void btn_refresh_Click(object sender, EventArgs e)
        {
            //首先获取图层列表
            //获取用户选择的展示要求,灰度还是RGB
            //获取波段设置
            //刷新显示
            var selectLayerName = cmb_layerList.SelectedItem.ToString();

            //store band setting
            var bandSet = new int[3];

            bandSet[0] = cmb_bandR.SelectedIndex;
            bandSet[1] = cmb_bandG.SelectedIndex;
            bandSet[2] = cmb_bandB.SelectedIndex;

            //process Method
            var imgShow = new DataShowControl(axMapControl1.Map);

            imgShow.SetImgBand(selectLayerName, bandSet);
        }
コード例 #6
0
        //查看按钮
        private void btn_showData_Click(object sender, EventArgs e)
        {
            //先清除底图之外的图层
            int count = this.axMapControl1.Map.LayerCount;

            if (count > 1)
            {
                for (int i = 0; i < count - 1; i++)
                {
                    ILayer layer = this.axMapControl1.get_Layer(i);
                    if (layer.Name != "洪湖水域")
                    {
                        this.axMapControl1.Map.DeleteLayer(layer);
                    }
                }
            }
            //获取选择信息
            string selectShp   = this.cmb_dataList.SelectedValue.ToString();
            string selectFiled = this.cmb_FieldList.SelectedValue.ToString();
            //打开数据,获取要素图层
            IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactoryClass();
            IWorkspace        pWorkspace        = pWorkspaceFactory.OpenFromFile(@"D:\RasterMaSysTemp\hhWaterQuality", 0);
            IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;

            if (pFeatureWorkspace != null)
            {
                IFeatureClass pFeatureClass = pFeatureWorkspace.OpenFeatureClass(selectShp);
                IFeatureLayer pFeatureLayer = new FeatureLayerClass();
                pFeatureLayer.FeatureClass = pFeatureClass;
                pFeatureLayer.Name         = selectShp;
                if (pFeatureClass != null)
                {
                    //添加水质数据并分级渲染显示
                    DataShowControl dataShow = new DataShowControl(this.axMapControl1.Map);
                    dataShow.SimpleRenderByColor(pFeatureLayer, selectFiled);
                }
            }
        }
コード例 #7
0
        //点击确定,开始校正
        private void btn_OK_Click(object sender, EventArgs e)
        {
            string inputFile = "";

            if (this.cmb_inputIMG.SelectedItem != null)
            {
                inputFile = this.cmb_inputIMG.ValueMember;
            }
            else
            {
                inputFile = this.cmb_inputIMG.Text;
            }
            string outputName = this.txb_output.Text.Trim();

            //进行大气校正
            IdlProcess.IdlAtmoCorrection(inputFile, outputName);
            //展示结果
            if (this.isDisplayResult.Checked)
            {
                DataShowControl imgShowControl = new DataShowControl(this._axMapControl.Map);
                imgShowControl.DisplayImg(outputName);
            }
            this.Dispose();
        }