矢量图层叠加求交分析

AE开发中,矢量图层叠加分析需要用到的主要类为BasicGeoprocessor,其主要接口为IBasicGeoprocessorIBasicGeoprocessor接口提供了基本的空间数据处理的方法和属性,其中包括叠加求交(Interset)和叠加求和(Union)

下面提供两个叠加求交的开发实例:

一、  VB+AE9.1叠加求交示例代码:

 

 1 矢量图层叠加求交分析 Private   Sub  M_OverLayer_Click()
 2 矢量图层叠加求交分析 '  Get the input layer and feature class
 3 矢量图层叠加求交分析    Dim  pLayer  As  ILayer
 4 矢量图层叠加求交分析   Set  pLayer  =  MapControl1.Layer( 0 )
 5 矢量图层叠加求交分析   Dim  pInputFeatLayer  As  IFeatureLayer
 6 矢量图层叠加求交分析   Set  pInputFeatLayer  =  pLayer
 7 矢量图层叠加求交分析   '  Use the Itable interface from the Layer (not from the FeatureClass)
 8 矢量图层叠加求交分析   
 9 矢量图层叠加求交分析   Dim  pInputTable  As  ITable
10 矢量图层叠加求交分析   Set  pInputTable  =  pLayer
11 矢量图层叠加求交分析   '  Get the input feature class.
12 矢量图层叠加求交分析    '  The Input feature class properties, such as shape type,
13 矢量图层叠加求交分析    '  will be needed for the output
14 矢量图层叠加求交分析   
15 矢量图层叠加求交分析   Dim  pInputFeatClass  As  IFeatureClass
16 矢量图层叠加求交分析   Set  pInputFeatClass  =  pInputFeatLayer.FeatureClass
17 矢量图层叠加求交分析   '  Get the overlay layer
18 矢量图层叠加求交分析    '  Use the Itable interface from the Layer (not from the FeatureClass)
19 矢量图层叠加求交分析    Set  pLayer  =  MapControl1.Layer( 1 )
20 矢量图层叠加求交分析   Dim  pOverlayTable  As  ITable
21 矢量图层叠加求交分析   Set  pOverlayTable  =  pLayer
22 矢量图层叠加求交分析  
23 矢量图层叠加求交分析   '  Error checking
24 矢量图层叠加求交分析    If  pInputTable  Is   Nothing   Then
25 矢量图层叠加求交分析     MsgBox   " Table QI failed "
26 矢量图层叠加求交分析     Exit   Sub
27 矢量图层叠加求交分析   End   If
28 矢量图层叠加求交分析  
29 矢量图层叠加求交分析   If  pOverlayTable  Is   Nothing   Then
30 矢量图层叠加求交分析     MsgBox   " Table QI failed "
31 矢量图层叠加求交分析     Exit   Sub
32 矢量图层叠加求交分析   End   If
33 矢量图层叠加求交分析  
34 矢量图层叠加求交分析   '  Define the output feature class name and shape type (taken from the
35 矢量图层叠加求交分析    '  properties of the input feature class)
36 矢量图层叠加求交分析    Dim  pFeatClassName  As  IFeatureClassName
37 矢量图层叠加求交分析   Set  pFeatClassName  =   New  FeatureClassName
38 矢量图层叠加求交分析   With  pFeatClassName
39 矢量图层叠加求交分析    .FeatureType  =  esriFTSimple
40 矢量图层叠加求交分析    .ShapeFieldName  =   " Shape "
41 矢量图层叠加求交分析    .ShapeType  =  pInputFeatClass.ShapeType
42 矢量图层叠加求交分析   End   With
43 矢量图层叠加求交分析  
44 矢量图层叠加求交分析   '  Set output location and feature class name
45 矢量图层叠加求交分析    Dim  pNewWSName  As  IWorkspaceName
46 矢量图层叠加求交分析   Set  pNewWSName  =   New  WorkspaceName
47 矢量图层叠加求交分析  pNewWSName.WorkspaceFactoryProgID  =   " esriCore.ShapeFileWorkspaceFactory.1 "
48 矢量图层叠加求交分析  pNewWSName.PathName  =   " C:\temp "
49 矢量图层叠加求交分析  
50 矢量图层叠加求交分析   Dim  pDatasetName  As  IDatasetName
51 矢量图层叠加求交分析   Set  pDatasetName  =  pFeatClassName
52 矢量图层叠加求交分析  pDatasetName.Name  =   " Intersect_result "
53 矢量图层叠加求交分析   Set  pDatasetName.WorkspaceName  =  pNewWSName
54 矢量图层叠加求交分析   '  Set the tolerance. Passing 0.0 causes the default tolerance to be used.
55 矢量图层叠加求交分析    '  The default tolerance is 1/10,000 of the extent of the data frame's spatial domain
56 矢量图层叠加求交分析   
57 矢量图层叠加求交分析   Dim  tol  As   Double
58 矢量图层叠加求交分析  tol  =   0 #       '  Perform the intersect
59 矢量图层叠加求交分析    Dim  pBGP  As  IBasicGeoprocessor
60 矢量图层叠加求交分析   Set  pBGP  =   New  BasicGeoprocessor
61 矢量图层叠加求交分析  
62 矢量图层叠加求交分析   Dim  pOutputFeatClass  As  IFeatureClass
63 矢量图层叠加求交分析   Set  pOutputFeatClass  =  pBGP.Intersect(pInputTable,  False , pOverlayTable,  False , _
64 矢量图层叠加求交分析    tol, pFeatClassName)
65 矢量图层叠加求交分析    
66 矢量图层叠加求交分析   '  Add the output layer to the map
67 矢量图层叠加求交分析    Dim  pOutputFeatLayer  As  IFeatureLayer
68 矢量图层叠加求交分析   Set  pOutputFeatLayer  =   New  FeatureLayer
69 矢量图层叠加求交分析   Set  pOutputFeatLayer.FeatureClass  =  pOutputFeatClass
70 矢量图层叠加求交分析  pOutputFeatLayer.Name  =  pOutputFeatClass.AliasName
71 矢量图层叠加求交分析  MapControl1.AddLayer pOutputFeatLayer
72 矢量图层叠加求交分析 End Sub
73 矢量图层叠加求交分析
74 矢量图层叠加求交分析
75 矢量图层叠加求交分析

二、C#+AE9.1叠加求交示例代码:

 1 矢量图层叠加求交分析          private   void  M_OverLayer_Click( object  sender, System.EventArgs e)
 2 矢量图层叠加求交分析         {
 3矢量图层叠加求交分析            try
 4矢量图层叠加求交分析            {
 5矢量图层叠加求交分析                //分析层
 6矢量图层叠加求交分析                ILayer pLayer=this.axMapControl1.get_Layer(0);
 7矢量图层叠加求交分析                IFeatureLayer pInputFeatLayer=pLayer as IFeatureLayer;    
 8矢量图层叠加求交分析                ITable pInputTable=pLayer as ITable;
 9矢量图层叠加求交分析                IFeatureClass pInputFeatClass=pInputFeatLayer.FeatureClass;
10矢量图层叠加求交分析
11矢量图层叠加求交分析                //叠加表
12矢量图层叠加求交分析                pLayer=this.axMapControl1.get_Layer(1);
13矢量图层叠加求交分析                ITable pOverlayTable=pLayer as ITable;
14矢量图层叠加求交分析
15矢量图层叠加求交分析                //叠加分析表
16矢量图层叠加求交分析                IFeatureClassName pFeatClassName=new FeatureClassNameClass();
17矢量图层叠加求交分析                pFeatClassName.FeatureType=esriFeatureType.esriFTSimple;
18矢量图层叠加求交分析                pFeatClassName.ShapeFieldName="shape";
19矢量图层叠加求交分析                pFeatClassName.ShapeType=pInputFeatClass.ShapeType;
20矢量图层叠加求交分析
21矢量图层叠加求交分析                //工作空间名称
22矢量图层叠加求交分析                IWorkspaceName pNewWSName=new WorkspaceNameClass();
23矢量图层叠加求交分析                pNewWSName.WorkspaceFactoryProgID = "esriDataSourcesFile.ShapefileWorkspaceFactory";
24矢量图层叠加求交分析                pNewWSName.PathName = @"C:\temp";
25矢量图层叠加求交分析
26矢量图层叠加求交分析                //数据集名称
27矢量图层叠加求交分析                IDatasetName pDatasetName=pFeatClassName as IDatasetName;
28矢量图层叠加求交分析                pDatasetName.Name="ss";
29矢量图层叠加求交分析                pDatasetName.WorkspaceName=pNewWSName; 
30矢量图层叠加求交分析
31矢量图层叠加求交分析                //几何处理
32矢量图层叠加求交分析                IBasicGeoprocessor pBGP=new BasicGeoprocessorClass();
33矢量图层叠加求交分析                IFeatureClass pOutputFeatClass=pBGP.Intersect(pInputTable,false,pOverlayTable,false,0.01,pFeatClassName);  
34矢量图层叠加求交分析   
35矢量图层叠加求交分析                //输出要素层设置
36矢量图层叠加求交分析                IFeatureLayer pOutputFeatLayer=new FeatureLayerClass();
37矢量图层叠加求交分析                pOutputFeatLayer.FeatureClass=pOutputFeatClass;
38矢量图层叠加求交分析                pOutputFeatLayer.Name=pOutputFeatClass.AliasName;
39矢量图层叠加求交分析
40矢量图层叠加求交分析                this.axMapControl1.AddLayer((ILayer)pOutputFeatClass,0);
41矢量图层叠加求交分析                axMapControl1.Update();
42矢量图层叠加求交分析            }

43矢量图层叠加求交分析            catch(Exception ex)
44矢量图层叠加求交分析            {
45矢量图层叠加求交分析                MessageBox.Show(ex.Message);
46矢量图层叠加求交分析            }

47矢量图层叠加求交分析        }

你可能感兴趣的:(分析)