AE的栅格计算代码,供参考


gis中实现栅格计算器的功能,对多个删格图层进行各种数学运算,ArcGIS Engine 开发平台(gis achieve grid calculator function, a plurality of layers Raster various mathematical operations, ArcGIS Engine Development Platform),实现对重分类或者原有栅格数量的计算
资源截图
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.DataSourcesRaster;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.SpatialAnalyst;
using ESRI.ArcGIS.GeoAnalyst;

namespace Math
{
    public partial class FrmMath : Form
    {
        public FrmMath()
        {
            InitializeComponent();
        }

        private IGeoDataset inGeodataset1;//输入数据1
        private IGeoDataset inGeodataset2;//输入数据2
        private IGeoDataset result;//返回结果

        private IMathOp mathOp;//数学计算对象
        private ILogicalOp logicalOp;//逻辑运算对象
        private ITrigOp trigOp;//三角函数计算对象
        private IBitwiseOp bitwiseOp;//按位计算对象
        

        #region 参数设置
        private void cmbInputData1_MouseClick(object sender MouseEventArgs e)
        {
            ComboBox c = sender as ComboBox;
            c.Items.Clear();

            IMap map = axMapControl1.Map;
            if (map != null)
            {
                for (int i = 0; i < map.layerCount; i++)
                {
                    c.Items.Add(map.get_layer(i).Name);
                }
            }
        }
        //设置输入数据1 
        private void cmbInputData1_SelectedIndexChanged(object sender EventArgs e)
        {
            try
            {
                ilayer layer = getlayerFromName(cmbInputData1.SelectedItem.ToString());
                IRasterlayer rasterlayer = layer as IRasterlayer;

                IRaster raster = rasterlayer.Raster;
                inGeodataset1 = raster as IGeoDataset;
            }
            catch {
                MessageBox.Show(“请输入栅格数据!“);
            };
        }
        //设置输入数据2
        private void cmbInputData2_SelectedIndexChanged(object sender EventArgs e)
        {
            try
            {
                ilayer layer = getlayerFromName(cmbInputData2.SelectedItem.ToString());
                IRasterlayer rasterlayer = layer as IRasterlayer;

                IRaster raster = rasterlayer.Raster;
                inGeodataset2 = raster as IGeoDataset;
            }
            catch
            {
                MessageBox.Show(“请输入栅格数据!“);
            };
        }
        //对象实例化
        private void FrmMath_Load(object sender EventArgs e)
        {
            mathOp = new RasterMathOpsClass();
            logicalOp = new RasterMathOpsClass();
            trigOp = new RasterMathOpsClass();
            bitwiseOp = new RasterMathOpsClass();
        }
        #endregion

        #region 数学计算
        private void btnPlus_Click(object sender EventArgs e)
        {
            try
            {
                if (cmbInputData1.SelectedItem == null || cmbInputData2.SelectedItem == null)
                    return;
                result = mathOp.Plus(inGeodataset1

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      31232  2015-01-29 11:43  栅格计算codeMathinDebugMath.exe

     文件      69120  2015-01-29 11:43  栅格计算codeMathinDebugMath.pdb

     文件      11608  2015-01-29 11:43  栅格计算codeMathinDebugMath.vshost.exe

     文件        490  2010-03-17 22:39  栅格计算codeMathinDebugMath.vshost.exe.manifest

     文件      30208  2015-01-29 11:42  栅格计算codeMathinReleaseMath.exe

     文件      48640  2015-01-29 11:42  栅格计算codeMathinReleaseMath.pdb

     文件      11608  2015-01-29 11:42  栅格计算codeMathinReleaseMath.vshost.exe

     文件        490  2010-03-17 22:39  栅格计算codeMathinReleaseMath.vshost.exe.manifest

     文件          1  2015-01-23 21:22  栅格计算codeMathClassDiagram1.cd

     文件      10700  2015-01-29 11:41  栅格计算codeMathFrmMath.cs

     文件      23678  2015-01-27 10:53  栅格计算codeMathFrmMath.Designer.cs

     文件      11637  2015-01-27 10:53  栅格计算codeMathFrmMath.resx

     文件        754  2015-01-23 21:22  栅格计算codeMathLicenseInitializer.cs

     文件      15234  2015-01-23 21:22  栅格计算codeMathLicenseInitializer.Designer.cs

     文件       9149  2015-01-23 21:22  栅格计算codeMathMath.csproj

     文件        452  2015-01-23 21:22  栅格计算codeMathMath.csproj.user

     文件     249347  2015-01-28 14:27  栅格计算codeMathobjx86DebugDesignTimeResolveAssemblyReferences.cache

     文件       7277  2015-01-29 11:43  栅格计算codeMathobjx86DebugDesignTimeResolveAssemblyReferencesInput.cache

     文件       2625  2015-01-29 11:43  栅格计算codeMathobjx86DebugMath.csproj.FileListAbsolute.txt

     文件        977  2015-01-27 10:56  栅格计算codeMathobjx86DebugMath.csproj.GenerateResource.Cache

     文件     262372  2015-01-28 21:16  栅格计算codeMathobjx86DebugMath.csprojResolveAssemblyReference.cache

     文件      31232  2015-01-29 11:43  栅格计算codeMathobjx86DebugMath.exe

     文件       4050  2015-01-27 10:56  栅格计算codeMathobjx86DebugMath.FrmMath.resources

     文件      69120  2015-01-29 11:43  栅格计算codeMathobjx86DebugMath.pdb

     文件        180  2015-01-23 21:22  栅格计算codeMathobjx86DebugMath.Properties.Resources.resources

     文件       4608  2015-01-23 21:22  栅格计算codeMathobjx86DebugTempPEProperties.Resources.Designer.cs.dll

     文件     124772  2015-01-29 11:10  栅格计算codeMathobjx86ReleaseDesignTimeResolveAssemblyReferences.cache

     文件       7281  2015-01-29 11:42  栅格计算codeMathobjx86ReleaseDesignTimeResolveAssemblyReferencesInput.cache

     文件        780  2015-01-29 11:42  栅格计算codeMathobjx86ReleaseMath.csproj.FileListAbsolute.txt

     文件        977  2015-01-28 21:16  栅格计算codeMathobjx86ReleaseMath.csproj.GenerateResource.Cache

............此处省略278个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)