www.pudn.com > Buffer.rar > Form1.cs


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.Display; 
using ESRI.ArcGIS.esriSystem; 
using ESRI.ArcGIS.Geodatabase; 
using ESRI.ArcGIS.Geometry; 
 
 
namespace Buffer 
{ 
    public partial class Form1 : Form 
    { 
        public Form1() 
        { 
            InitializeComponent(); 
        } 
 
        private void ButtonBuffer_Click(object sender, EventArgs e) 
        { 
            //第一步,得到地图的空间坐标系,及获得feature cursor对象 
            IMap pMap; 
            IFeatureLayer pFeatureLayer; 
            IFeatureCursor pFcursor; 
            ISpatialReference pSpatialReference; 
 
            pMap = this.axMapControl1.Map; 
            pSpatialReference = pMap.SpatialReference; 
            pFeatureLayer = (IFeatureLayer)pMap.get_Layer(0); 
            pFcursor = pFeatureLayer.Search(null, false); 
 
            //第二步,定义输出的设置 
            IWorkspaceName pBufWSName; 
            IDatasetName pBufDatasetName; 
            IFeatureClassName pBufFCName; 
 
            pBufFCName = new FeatureClassNameClass(); 
            pBufDatasetName = (IDatasetName)pBufFCName; 
            pBufWSName = new WorkspaceNameClass(); 
            pBufWSName.WorkspaceFactoryProgID = "esriDataSourceFile.ShapeFileWorkspaceFactory"; 
            pBufWSName.PathName=@"F:\gisdeveloperdata\chap9"; 
            pBufDatasetName.WorkspaceName = pBufWSName; 
            pBufDatasetName.Name = "BuffResultC"; 
 
            //第三步,进行缓冲处理 
            IFeatureCursorBuffer2 pFeatureCursorBuffer2; 
            pFeatureCursorBuffer2 = new FeatureCursorBufferClass(); 
            pFeatureCursorBuffer2.FeatureCursor = pFcursor; 
            pFeatureCursorBuffer2.Dissolve = true; 
            pFeatureCursorBuffer2.ValueDistance = 200; 
            pFeatureCursorBuffer2.BufferSpatialReference = pSpatialReference; 
            pFeatureCursorBuffer2.DataFrameSpatialReference = pSpatialReference; 
            pFeatureCursorBuffer2.SourceSpatialReference = pSpatialReference; 
            pFeatureCursorBuffer2.TargetSpatialReference = pSpatialReference; 
            pFeatureCursorBuffer2.Buffer(pBufFCName); 
 
            //第四步,创建输出层并加入到当前地图中 
            IName pName; 
            IFeatureClass pBufFC; 
            IFeatureLayer pBufFL; 
 
            pName = (IName)pBufFCName; 
            pBufFC = (IFeatureClass)pName.Open(); 
            pBufFL = new FeatureLayerClass(); 
            pBufFL.FeatureClass = pBufFC; 
            pBufFL.Name = "BufferResult"; 
            pMap.AddLayer((ILayer)pBufFL); 
         
        } 
    } 
}