阅读:2694回复:2
[求助]Java+Arcgis Engine转换CAD文件到SDE数据库
<P>[求助]关于用Java开发Arcgis Engine转换CAD文件到SDE数据库</P>
<P>下面的函数是我通过VB的例子转换过来的,但是运行的时候总是抱错</P> <P>public void ConvertCad(IWorkspace pOutWorkspace) throws Exception{<br> try{<br> //Workspaces implement IDataset<br> IDataset pDataset = (IDataset)pOutWorkspace; <br> //Get the Workspace Name <br> IWorkspaceName pWorkspaceName = (IWorkspaceName)pDataset.getFullName();<br> //Open the Cad Workspace <br> IWorkspaceFactory pCADWF = new CadWorkspaceFactory();<br> String sfileName = "C:\\1#";<br> IFeatureWorkspace pInWs = (IFeatureWorkspace)pCADWF.openFromFile(sfileName, 0);<br> //Open the feature dataset<br> IFeatureDataset pFDataset = pInWs.openFeatureDataset("House.dwg");<br> String sbrowseName = pFDataset.getBrowseName();<br> String sName = pFDataset.getName();<br> //loop through the cad feature classes and convert <br> IFeatureClassContainer pFCC = (IFeatureClassContainer)pFDataset;<br> IFeatureClass pFC;<br> IEnumFeatureClass pEnumFc = pFCC.getClasses();<br> pFC = pEnumFc.next();<br> while (pFC != null) {//Get the Input featureclassname<br> IDataset pInDs = (IDataset)pFC;<br> IFeatureClassName pInFcName = (IFeatureClassName)pInDs.getFullName();<br> //Create new output featureclassname<br> //give output featureclass same name as<br> //input cad drawing <br> IFeatureClassName pOutFcName = new FeatureClassName();<br> IDatasetName pDatasetName = (IDatasetName)pOutFcName;<br> String sname = pFC.getFeatureDataset().getName();<br> pDatasetName.setName(sname.replace(".dwg", "_")+pFC.getAliasName());<br> pDatasetName.setWorkspaceNameByRef(pWorkspaceName); <br> //Get fields for input featureclass and run them <br> //through the field checker<br> IFieldChecker pFieldChecker;<br> IFields pFields = pFC.getFields();<br> IFields pOutFields[] = new IFields[1];<br> pFieldChecker = new FieldChecker();<br> pFieldChecker.setInputWorkspace((IWorkspace)pInWs);<br> pFieldChecker.setValidateWorkspaceByRef(pOutWorkspace);<br> pFieldChecker.validate(pFields,null,pOutFields);<br> //Convert the data<br> IFeatureDataConverter pFDC = new FeatureDataConverter();<br> pFDC.convertFeatureClass(pInFcName, null, null, pOutFcName, null, pOutFields[0], "", 100, 0);<br> pFDC = null;<br> //Get the next feature class to convert <br> pFC = pEnumFc.next();<br> }<br> }<br> catch (Exception ex) {<br> System.out.println(<br> "Exception in ConvertCad:" + ex);<br> ex.printStackTrace();<br> }<br> <br>}</P> <P>上面的函数是我通过VB的例子转换过来的,但是运行的时候总是抱错</P> <P>现在错误的地方在IFeatureClassContainer pFCC = (IFeatureClassContainer)pFDataset;</P> <P>这句,提示是Exception in ConvertCad:java.lang.ClassCastException: com.esri.arcgis.geodatabase.IFeatureDatasetProxy<br>java.lang.ClassCastException: com.esri.arcgis.geodatabase.IFeatureDatasetProxy</P> <P>调的这个不知道怎么弄,大家看看应该怎么解决!!!</P> [此贴子已经被作者于2008-4-5 9:13:34编辑过]
|
|
1楼#
发布于:2008-08-06 16:06
我也在找 顶一下
|
|
2楼#
发布于:2008-11-05 09:44
<P>请问这个问题解决了吗</P>
|
|