阅读:2082回复:2
执行相交的代码生成shape文件,请教如何生成MDB里面的要素呢
<P>以下为执行相交,生成shape文件的代码(先在arcmap里加载两个图层,生成后并加载到arcmap中,执行正常。</P>
<P> '产生新的要素<BR> Dim pfeatureclassname As ESRI.ArcGIS.Geodatabase.IFeatureClassName<BR> pfeatureclassname = New ESRI.ArcGIS.Geodatabase.FeatureClassName<BR> '产生新的工作空间<BR> Dim pworkspacename As ESRI.ArcGIS.Geodatabase.IWorkspaceName<BR> pworkspacename = New ESRI.ArcGIS.Geodatabase.WorkspaceName<BR> pworkspacename.WorkspaceFactoryProgID = "esriDataSourcesFile.ShapefileWorkspaceFactory"<BR> pworkspacename.PathName = "D:\"<BR> '产生新的数据集<BR> Dim pdatasetname As ESRI.ArcGIS.Geodatabase.IDatasetName<BR> pdatasetname = pfeatureclassname<BR> pdatasetname.Name = "ccc"<BR> pdatasetname.WorkspaceName = pworkspacename<BR> '产生新的基本地理处理器<BR> Dim pbasicgeoprocessor As ESRI.ArcGIS.Carto.IBasicGeoprocessor<BR> pbasicgeoprocessor = New ESRI.ArcGIS.Carto.BasicGeoprocessor<BR> '定义基本地理处理器参数<BR> Dim pinputtable As ESRI.ArcGIS.Geodatabase.ITable<BR> pinputtable = pmap.Layer(0)<BR> Dim poverlaytable As ESRI.ArcGIS.Geodatabase.ITable<BR> poverlaytable = pmap.Layer(1)<BR> '执行相交<BR> Dim poutputfeatureclass As ESRI.ArcGIS.Geodatabase.IFeatureClass<BR> poutputfeatureclass = pbasicgeoprocessor.Intersect(pinputtable, False, poverlaytable, False, 0.0#, pfeatureclassname)<BR> '将生成的数据添加到当前地图中<BR> Dim poutputfeaturelayer As ESRI.ArcGIS.Carto.IFeatureLayer<BR> poutputfeaturelayer = New ESRI.ArcGIS.Carto.FeatureLayer<BR> poutputfeaturelayer.FeatureClass = poutputfeatureclass<BR> poutputfeaturelayer.Name = poutputfeatureclass.AliasName<BR> pdoc.FocusMap.AddLayer(poutputfeaturelayer)</P> |
|
1楼#
发布于:2008-12-01 22:38
<P>怎么没人知道吗,高手帮帮忙啊</P>
|
|
2楼#
发布于:2008-11-28 22:38
<P>将 产生新的工作空间改为创建mdb数据库后,在执行poutputfeatureclass = pbasicgeoprocessor.Intersect(pinputtable, False, poverlaytable, False, 0.0#, pfeatureclassname)这句时就过不去,请问哪位高人知道怎么弄,感谢!<BR> '产生新的要素<BR> Dim pfeatureclassname As ESRI.ArcGIS.Geodatabase.IFeatureClassName<BR> pfeatureclassname = New ESRI.ArcGIS.Geodatabase.FeatureClassName<BR> '产生新的工作空间<BR> Dim pworkspacefactory As New ESRI.ArcGIS.DataSourcesGDB.AccessWorkspaceFactory<BR> Dim pworkspacename As ESRI.ArcGIS.Geodatabase.IWorkspaceName<BR> pworkspacename = pworkspacefactory.Create("d:\", "aaaa", Nothing, 0)<BR> '产生新的数据集<BR> Dim pdatasetname As ESRI.ArcGIS.Geodatabase.IDatasetName<BR> pdatasetname = pfeatureclassname<BR> pdatasetname.Name = "ccc"<BR> pdatasetname.WorkspaceName = pworkspacename<BR> '产生新的基本地理处理器<BR> Dim pbasicgeoprocessor As ESRI.ArcGIS.Carto.IBasicGeoprocessor<BR> pbasicgeoprocessor = New ESRI.ArcGIS.Carto.BasicGeoprocessor<BR> '定义基本地理处理器参数<BR> Dim pinputtable As ESRI.ArcGIS.Geodatabase.ITable<BR> pinputtable = pmap.Layer(0)<BR> Dim poverlaytable As ESRI.ArcGIS.Geodatabase.ITable<BR> poverlaytable = pmap.Layer(1)<BR> '执行相交<BR> Dim poutputfeatureclass As ESRI.ArcGIS.Geodatabase.IFeatureClass<BR> poutputfeatureclass = pbasicgeoprocessor.Intersect(pinputtable, False, poverlaytable, False, 0.0#, pfeatureclassname)<BR> '将生成的数据添加到当前地图中<BR> Dim poutputfeaturelayer As ESRI.ArcGIS.Carto.IFeatureLayer<BR> poutputfeaturelayer = New ESRI.ArcGIS.Carto.FeatureLayer<BR> poutputfeaturelayer.FeatureClass = poutputfeatureclass<BR> poutputfeaturelayer.Name = poutputfeatureclass.AliasName<BR> pdoc.FocusMap.AddLayer(poutputfeaturelayer)</P>
|
|