jixg1800
路人甲
路人甲
  • 注册日期2006-06-05
  • 发帖数15
  • QQ
  • 铜币158枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2536回复:2

[求助]Java+Arcgis Engine转换CAD文件到SDE数据库

楼主#
更多 发布于:2008-04-05 09:11
<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编辑过]
喜欢0 评分0
jzy2lll
路人甲
路人甲
  • 注册日期2008-07-16
  • 发帖数1
  • QQ
  • 铜币103枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2008-08-06 16:06
我也在找 顶一下
举报 回复(0) 喜欢(0)     评分
softone
路人甲
路人甲
  • 注册日期2006-05-26
  • 发帖数10
  • QQ
  • 铜币125枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2008-11-05 09:44
<P>请问这个问题解决了吗</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部