コード例 #1
0
        public void btnClip_Click(object sender, EventArgs e)
        {
            string rstNm = cmbInRaster1.Text;
            string outNm = txtOutName.Text;

            if (rstNm == "" || rstNm == null)
            {
                MessageBox.Show("You must have a raster layer selected and a valid value", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (outNm == "" || outNm == null)
            {
                MessageBox.Show("You must specify an output raster name", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            this.Visible = false;
            esriUtil.Forms.RunningProcess.frmRunningProcessDialog rp = new RunningProcess.frmRunningProcessDialog(false);
            DateTime dt = DateTime.Now;

            rp.addMessage("Transforming Raster. This may take a while...");
            rp.stepPGBar(10);
            rp.TopMost = true;
            try
            {
                IRaster rst = rstDic[rstNm];
                switch (sType)
                {
                case rasterUtil.surfaceType.SLOPE:
                    outraster = rsUtil.returnRaster(rsUtil.calcSlopeFunction(rst));
                    break;

                case rasterUtil.surfaceType.ASPECT:
                    outraster = rsUtil.createRaster(rsUtil.calcAspectFunction(rst));
                    break;

                case rasterUtil.surfaceType.EASTING:
                    outraster = rsUtil.createRaster(rsUtil.calcEastWestFunction(rst));
                    break;

                case rasterUtil.surfaceType.NORTHING:
                    outraster = rsUtil.createRaster(rsUtil.calcNorthSouthFunction(rst));
                    break;

                default:
                    outraster = rsUtil.createRaster(rsUtil.flipRasterFunction(rst));
                    break;
                }

                if (mp != null && addToMap)
                {
                    rp.addMessage("Calculating Statistics...");
                    rp.Show();
                    rp.Refresh();
                    IRasterLayer rstLyr = new RasterLayerClass();
                    //rsUtil.calcStatsAndHist(((IRaster2)outraster).RasterDataset);
                    rstLyr.CreateFromRaster(outraster);
                    rstLyr.Name    = outNm;
                    rstLyr.Visible = false;
                    mp.AddLayer(rstLyr);
                }
                outrastername     = outNm;
                this.DialogResult = DialogResult.OK;
            }
            catch (Exception ex)
            {
                rp.addMessage(ex.ToString());
            }
            finally
            {
                DateTime dt2 = DateTime.Now;
                TimeSpan ts  = dt2.Subtract(dt);
                string   t   = " in " + ts.Days.ToString() + " days " + ts.Hours.ToString() + " hours " + ts.Minutes.ToString() + " minutes and " + ts.Seconds.ToString() + " seconds .";
                rp.stepPGBar(100);
                rp.addMessage("Finished Setting Values Raster" + t);
                rp.enableClose();
                this.Close();
            }
        }