Ejemplo n.º 1
0
        /// <summary>
        /// Prompts the user to a file dialog and select the input raster file.
        /// </summary>
        private void openInputRasterBbutton_Click(object sender, EventArgs e)
        {
            RasterFileDialog openFileDialog = new RasterFileDialog(FileDialogType.Open);
            openFileDialog.Multiselect = false;

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    inputRasterComboBox.Text = openFileDialog.FileName;
                    editLayer = new RasterLayerClass();
                    editLayer.CreateFromFilePath(openFileDialog.FileName);
                    ShowExtent(editLayer);

                }
                catch (Exception ex)
                {
                    MessageBox.Show(string.Format("Unfortunately, the application meets an error.\n\nSource: {0}\nSite: {1}\nMessage: {2}", ex.Source, ex.TargetSite, ex.Message), "Error");
                    inputRasterComboBox.Text = "";
                    editLayer = null;
                }
            }

            this.BringToFront();
        }
Ejemplo n.º 2
0
        private void Form1_Load(object sender, EventArgs e)
        {
            this.StartPosition = FormStartPosition.CenterScreen;

            ImageList imgList = new ImageList();

            imgList.ImageSize             = new Size(1, 20);
            this.listView1.SmallImageList = imgList;
            this.listView1.GridLines      = true;
            this.listView1.View           = View.Details;
            this.listView1.LabelEdit      = true;
            this.listView1.Scrollable     = true;
            this.listView1.HeaderStyle    = ColumnHeaderStyle.Clickable;
            this.listView1.FullRowSelect  = true;

            this.listView1.Columns.Clear();
            this.listView1.Columns.Add("编号", 40, HorizontalAlignment.Center);
            this.listView1.Columns.Add("类别名称", 80, HorizontalAlignment.Center);
            this.listView1.Columns.Add("样本个数", 80, HorizontalAlignment.Center);
            this.listView1.Columns.Add("颜  色", 80, HorizontalAlignment.Center);
            this.listView1.Columns.Add("多边形", 80, HorizontalAlignment.Center);
            baseRasterLayer.CreateFromFilePath(imageFilePath);
            axMapControl1.AddLayer(baseRasterLayer);
            this.Text        = "正在选择ROI:" + System.IO.Path.GetFileName(imageFilePath);
            spatialReference = axMapControl1.Map.SpatialReference;
        }
Ejemplo n.º 3
0
        internal static void OpenProfilesSetIn3D(ArcSceneArguments layers)
        {
            OpenArcScene();

            try
            {
                IObjectFactory objFactory = m_application as IObjectFactory;

                Type   rasterLayerType   = typeof(RasterLayerClass);
                string typeRasterLayerID = rasterLayerType.GUID.ToString("B");

                IRasterLayer elevationRasterLayer = (IRasterLayer)objFactory.Create(typeRasterLayerID);
                elevationRasterLayer.CreateFromFilePath(layers.DemLayer);
                ILayer layer = (ILayer)elevationRasterLayer;

                var line3DLayer    = CreateLayer(layers.Line3DLayer, objFactory);
                var point3DLayer   = CreateLayer(layers.Point3DLayer, objFactory);
                var polygon3DLayer = CreateLayer(layers.Polygon3DLayer, objFactory);

                var polygonLayerEffects = (ILayerEffects)polygon3DLayer;
                polygonLayerEffects.Transparency = 50;

                IBasicDocument document = (IBasicDocument)m_application.Document;

                document.AddLayer(layer);
                document.AddLayer(line3DLayer);
                document.AddLayer(point3DLayer);
                document.AddLayer(polygon3DLayer);

                document.UpdateContents();
            }
            catch (Exception ex) { }
        }
Ejemplo n.º 4
0
        private void btnOpen_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();

            openFileDialog1.InitialDirectory = this.txtOutPath.Text;
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                this.comboBoxInData.Text = openFileDialog1.FileName;
                string filePath = openFileDialog1.FileName;
                m_pRasterLyr = new RasterLayerClass();
                m_pRasterLyr.CreateFromFilePath(filePath);
            }
        }
Ejemplo n.º 5
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            //get the MapControl
            m_mapControl = (IMapControl3)axMapControl1.Object;
            activeView   = m_mapControl.ActiveView;
            LayerMenu.SetHook(m_mapControl);
            LayerMenu.AddItem(new ZoomToLayer(), 0, 0, false, esriCommandStyles.esriCommandStyleIconAndText);

            //打开两张影像。
            if (BaseMap != null && TopMap != null)
            {
                topRasterLayer.CreateFromFilePath(TopMap);
                axMapControl1.AddLayer(topRasterLayer, 0);
                baseRasterLayer.CreateFromFilePath(BaseMap);
                axMapControl1.AddLayer(baseRasterLayer, 1);
                geoReference           = topRasterLayer as IGeoReference;
                this.Text              = "正在配准:" + System.IO.Path.GetFileName(TopMap) + " -> " + System.IO.Path.GetFileName(BaseMap);
                TransparencyLabel.Text = "顶层透明度:" + TransparencyTrackBar.Value.ToString() + "%";
            }
        }
Ejemplo n.º 6
0
 private void MainForm_Load(object sender, EventArgs e)
 {
     try
     {
         m_mapControl = (IMapControl3)axMapControl1.Object;
         if (BaseMap != null)
         {
             baseRasterLayer.CreateFromFilePath(BaseMap);
             axMapControl1.AddLayer(baseRasterLayer);
             this.Text        = "正在选择ROI:" + System.IO.Path.GetFileName(BaseMap);
             spatialReference = axMapControl1.Map.SpatialReference;
             //string dir = @"D:\Desktop\qwq";
             string dir = System.IO.Path.GetTempPath();
             //featureWorkspace = workspaceFactory.Create(dir, "owo", null, 0) as IFeatureWorkspace;
             featureWorkspace = workspaceFactory.OpenFromFile(dir, 0) as IFeatureWorkspace;
         }
     }
     catch (Exception err)
     {
         MessageBox.Show(err.ToString());
     }
 }
Ejemplo n.º 7
0
        // Skapar distanslager.
        public void createDistance(System.String costPath, System.String sourcePath, System.String outPath)
        {
            if (costPath == "" || sourcePath == "" || outPath == "")
            {
                MessageBox.Show("Check your rasters");
            }
            else
            {
                Geoprocessor gp = new Geoprocessor();
                gp.OverwriteOutput = true;
                //gp.AddOutputsToMap = false;

                CostDistance distanceTool = new CostDistance();
                distanceTool.in_cost_raster      = cost;
                distanceTool.in_source_data      = source;
                distanceTool.out_distance_raster = outPath;

                IGeoProcessorResult geoProcessorResult = (IGeoProcessorResult)gp.Execute(distanceTool, null);
                costDist = new RasterLayer();
                costDist.CreateFromFilePath(outPath);
            }
        }
Ejemplo n.º 8
0
 private void btnOpenData_Click(object sender, EventArgs e)
 {
     OpenFileDialog openFileDialog1 = new OpenFileDialog();
     openFileDialog1.InitialDirectory = this.txtOutPath.Text;
     if (openFileDialog1.ShowDialog() == DialogResult.OK)
     {
         comboBoxInData.Text = openFileDialog1.FileName;
         string filePath = openFileDialog1.FileName;
         m_pRasterLyr = new RasterLayerClass();
         m_pRasterLyr.CreateFromFilePath(filePath);
     }
 }
Ejemplo n.º 9
0
        /// <summary>
        /// Prompts the user to a file dialog and select the input raster file.
        /// </summary>
        private void openInputRasterBbutton_Click(object sender, EventArgs e)
        {
            RasterFileDialog openFileDialog = new RasterFileDialog(FileDialogType.Open);
            openFileDialog.Multiselect = false;

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    inputRasterComboBox.Text = openFileDialog.FileName;
                    editLayer = new RasterLayerClass();
                    editLayer.CreateFromFilePath(openFileDialog.FileName);
                    ShowExtent(editLayer);

                }
                catch (Exception ex)
                {
                    MessageBox.Show(string.Format("Unfortunately, the application meets an error.\n\nSource: {0}\nSite: {1}\nMessage: {2}", ex.Source, ex.TargetSite, ex.Message), "Error");
                    inputRasterComboBox.Text = "";
                    editLayer = null;
                }
            }

            this.BringToFront();
        }
Ejemplo n.º 10
0
        //插值
        private void btn_interpolation_Click(object sender, EventArgs e)
        {
            this.label_fun.Text = "";
            //获取加密点矢量
            IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactoryClass();
            IWorkspace        pWorkspace        = pWorkspaceFactory.OpenFromFile(@"D:\RasterMaSysTemp\hhData", 0);
            IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace;
            IFeatureClass     pFeatureClass     = pFeatureWorkspace.OpenFeatureClass("加密点.shp");
            //获取栅格波段
            IRasterDataset pRasterDataset = GetDataClass.GetRasterDataset(this.txb_inputImg.Text);
            InversionClass inversionClass = new InversionClass(new RichTextBox());

            double[][] imgAllBands = inversionClass.GetImgCellValue(pFeatureClass, pRasterDataset);

            //所有波段组合的值
            Dictionary <string, double[]> imgBandscomb = calculateBandscomb(imgAllBands);

            string selectMethod     = this.GetSelectRadText(gb_regressionMethod);
            string selectFieldRad   = this.GetSelectRadText(gb_waterFields);
            string selectWaterField = _waterFieldsDictionary[selectFieldRad];

            _labelFun = string.Format("回归拟合方程为:{0}=", selectWaterField);
            //获取结果值
            if (selectMethod == "二次模型" || selectMethod == "指数模型")
            {
                MessageBox.Show("请选择其他拟合算法");
                return;
            }
            List <double> resultList = this.GetResultValue(imgBandscomb, selectMethod, imgAllBands[0].Length);

            //显示拟合函数
            this.label_fun.Text += _labelFun;

            //更新加密点属性
            if (resultList.Count == 0)
            {
                MessageBox.Show("获取数据失败");
                return;
            }
            this.UpdatePointValue(pFeatureClass, selectWaterField, resultList);

            //插值
            if (this.txb_output.Text.Trim() != "")
            {
                GpToolsClass gpTools = new GpToolsClass();
                gpTools.CalKriging(selectWaterField, this.txb_output.Text);
            }
            //如果生成插值图成功,则添加显示
            if (File.Exists(this.txb_output.Text))
            {
                if (File.Exists(@"D:\RasterMaSysTemp\hhData\水质插值专题图.mxd"))
                {
                    MapDocument mapDoc = new MapDocumentClass();
                    mapDoc.Open(@"D:\RasterMaSysTemp\hhData\水质插值专题图.mxd", "");
                    axPageLayoutControl1.PageLayout = mapDoc.PageLayout;

                    IMap         pMap         = mapDoc.get_Map(0);
                    IRasterLayer pRasterLayer = pMap.Layer[0] as IRasterLayer;
                    pRasterLayer.CreateFromFilePath(this.txb_output.Text);
                    axPageLayoutControl1.PageLayout.ZoomToWhole();
                    IPage page = axPageLayoutControl1.Page;
                    axPageLayoutControl1.Refresh();
                }
                else
                {
                    IMap         pMap         = this.axPageLayoutControl1.ActiveView.FocusMap;
                    IRasterLayer pRasterLayer = new RasterLayerClass();
                    pRasterLayer.CreateFromFilePath(this.txb_output.Text);
                    pMap.AddLayer(pRasterLayer);
                }
            }
            else
            {
                MessageBox.Show("处理失败!");
            }
        }