xyc4276
路人甲
路人甲
  • 注册日期2004-11-25
  • 发帖数29
  • QQ
  • 铜币233枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1460回复:1

数据格式转换问题,请教!!

楼主#
更多 发布于:2005-11-28 12:20
<P>本人最近做了一个将Coverage数据转换成GeodataBase的批量处理程序,IFeatureDataConverter Interface下两个Method :<BR>ConvertFeatureDataset用这个函数时可以将coverage的要素全部转到GeoDatabase中,但是用ConvertFeatureClass时,根据数据字典中的各个要素进行转换,例在数据字典中coverage层名为Bount,对应的要素有<BR>polygon,<BR>region.prov,<BR>region.dist,<BR>region,cnty,<BR>Arc<BR>在用ConvertFeatureClass转化后,Polygon,Arc可以转到GeodataBase中,但是象region.prov,  region.dist  region.cnty则无法转到GeodataBase中</P>
<P>转换的部分代码如下,<BR>Option Explicit<BR>Dim pOutAcWorkspaceName As IWorkspaceName</P>
<P>Public Sub CovToGeo(path As String)</P>
<P>On Error GoTo XYC:<BR>  Dim pOutAcFeatDSName As IFeatureDatasetName<BR>  Dim pOutAcDSName As IDatasetName<BR>  Dim pInCovWorkspaceName As IWorkspaceName<BR>  Dim pFeatureDatasetName As IFeatureDatasetName<BR>  Dim pCovDatasetName As IDatasetName<BR>  Dim pCovtoFD As IFeatureDataConverter<BR>  Dim pInFCName As IFeatureClassName<BR>  Dim pOutAcFCName As IFeatureClassName<BR>  <BR>  <BR>  Set pOutAcFCName = New FeatureClassName<BR>  Set pOutAcDSName = pOutAcFCName<BR>  Set pOutAcDSName.WorkspaceName = pOutAcWorkspaceName<BR>  pOutAcDSName.Name = str_Dataset(nFlagNum) ; "_" ; str_FeatureClass(nFlagNum)</P>
<P><BR><FONT color=#f70909>  Set pInCovWorkspaceName = New WorkspaceName<BR>  pInCovWorkspaceName.PathName = path<BR>  pInCovWorkspaceName.WorkspaceFactoryProgID = "esriCore.ArcInfoWorkspaceFactory.1"<BR>  Set pInFCName = New FeatureClassName<BR>  Set pCovDatasetName = pInFCName<BR>  pCovDatasetName.Name = str_Dataset(nFlagNum) ; ":" ; str_FeatureClass(nFlagNum)<BR>  Set pCovDatasetName.WorkspaceName = pInCovWorkspaceName</FONT></P>
<P>  ' now use the conversion function convert the coverage to an Access feature dataset<BR>  Set pCovtoFD = New FeatureDataConverter<BR>  pCovtoFD.ConvertFeatureClass pInFCName, Nothing, Nothing, pOutAcFCName, Nothing, Nothing, "", 1000, 0</P>
<P>Exit Sub<BR>XYC:<BR>  MsgBox Err.Description</P>
<P>End Sub</P>
<P><BR>Public Sub CreatAccessWorkspace(path As String, MapName As String)<BR>On Error GoTo XYCAc:</P>
<P>  Dim pPropset As IPropertySet<BR>  Dim pOutAcFact As IWorkspaceFactory</P>
<P>  Set pPropset = New PropertySet<BR>  pPropset.SetProperty "Database", path</P>
<P>  Set pOutAcFact = New AccessWorkspaceFactory<BR>  Set pOutAcWorkspaceName = pOutAcFact.Create(path, MapName, pPropset, 0)<BR>  <BR>  Exit Sub<BR>XYCAc:<BR>  MsgBox Err.Description<BR>End Sub<BR>本人以为是一段红色代码部分有问题,,错误是Open FeatureClass Failed!.如何改正,还请各位大侠指教</P><img src="images/post/smile/dvbbs/em12.gif" /><img src="images/post/smile/dvbbs/em12.gif" />
喜欢0 评分0
游客

返回顶部