阅读:1585回复:1
数据格式转换问题,请教!!
<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" /> |
|