用(AE+C#)和ArcGIS中设置IDW插值后的栅格的空间范围

在AE中我想用IRasterAnalysisEnvironment接口的SetExtent方法来设置范围,虽然没报错,但是还是原先的样子。

private void toolStripMenuItem9_Click(object sender, EventArgs e)
        {
            IInterpolationOp pInterpolationOp;
            pInterpolationOp = new RasterInterpolationOpClass();

            IFeatureClass pFeatureClass;//进行插值的图层
            pFeatureClass = pTocFeatureLayer.FeatureClass;

            //根据范围矢量图层的名称获取其序号
            ind = OperateMap.GetLayerIndexByName(mainMapControl, "乡镇复制_pro");
            IFeatureLayer featureLayer = this.mainMapControl.Map.get_Layer(ind) as IFeatureLayer;//点图层在axMapControl控件的第一个,索引为0

            //设置搜索半径,本例为12
            IRasterRadius pRadius;
            pRadius = new RasterRadiusClass();
            object maxDistance = Type.Missing;
            pRadius.SetVariable(12, ref maxDistance);

            //设置进行插值的属性字段
            IFeatureClassDescriptor pFCDescriptor;
            pFCDescriptor = new FeatureClassDescriptorClass();
            string FieldName = " ";//注意,引号内为Idw插值中的Z值,即属性表中要进行对其进行插值的字段名
            pFCDescriptor.Create(pFeatureClass, null, FieldName);
            
            //设置输出像元大小 
            IRasterAnalysisEnvironment pEnv;
            pEnv = new RasterAnalysis();
            object dCellSize = 144.337439931631;//设置像元值(参考ARCMAP)
            pEnv = pInterpolationOp as IRasterAnalysisEnvironment;
            pEnv.SetCellSize(esriRasterEnvSettingEnum.esriRasterEnvValue, ref dCellSize);
            object objectbarrier = Type.Missing;

            //设置空间处理范围
            object extent;
            IGeoDataset geo = featureLayer.FeatureClass as IGeoDataset;//featureLayer为“乡镇复制”
            extent = geo.Extent;
            pEnv.SetExtent(esriRasterEnvSettingEnum.esriRasterEnvValue, ref extent, ref maxDistance);

            //执行IDW,并输出栅格
            IGeoDataset rasDataset;
            rasDataset = pInterpolationOp.IDW((IGeoDataset)pFCDescriptor, 2, pRadius, ref objectbarrier);
            IRaster pOutRaster;
            pOutRaster = rasDataset as IRaster;
            pOutRasLayer = new RasterLayerClass();
            pOutRasLayer.CreateFromRaster(pOutRaster);

            this.mainMapControl.AddLayer(pOutRasLayer, 0);// 输出结果至axMapControl1,并放置在第一层
            mainMapControl.ActiveView.Refresh();//刷新视图
        }

在ArcGIS中,修改空间范围的两个方法:
(1)修改图层的数据框属性
用(AE+C#)和ArcGIS中设置IDW插值后的栅格的空间范围_第1张图片点击右下角的环境——处理范围——选择“与 某矢量图层 相同"
用(AE+C#)和ArcGIS中设置IDW插值后的栅格的空间范围_第2张图片点击确定即可。

(2)在插值时的界面上设置环境中的处理范围。
右击 内容列表中的 最上面的图层——选择属性
在这里插入图片描述

用(AE+C#)和ArcGIS中设置IDW插值后的栅格的空间范围_第3张图片范围设置为自动——裁剪选项中选择“裁剪至形状"——点击”指定形状“
用(AE+C#)和ArcGIS中设置IDW插值后的栅格的空间范围_第4张图片选择“要素的轮廓"——选择范围矢量图层

你可能感兴趣的:(ArcGis,VS,AE)