您的位置:首页 > 编程语言 > C语言/C++

CAD注记层转到SDE Annotation Features空间参考信息的转换(ArcEngine,C++实现)

2011-09-02 11:02 465 查看
在我的上一篇博文里面,谈到了注记的转换问题,但是其中的转换并未包含空间参考信息,所以,再写一篇来记录空间参考信息的转换。

首先,是获取dwg文件中的参考信息,部分关键代码如下

   IWorkspacePtr ipWork;
IWorkspaceFactoryPtr ipWFactory(CLSID_CadWorkspaceFactory);
HRESULT result = ipWFactory->OpenFromFile(CComBSTR(path),
NULL, &ipWork);
IFeatureWorkspacePtr ipFWork = ipWork;

IFeatureDatasetPtr ipDataset;
result = ipFWork->OpenFeatureDataset(CComBSTR(filename), &ipDataset);

IFeatureClassContainerPtr ipFContainer = ipDataset;

IArrayPtr arrLayer(CLSID_Array);
long lClassCount = 0;
ipFContainer->get_ClassCount(&lClassCount);

for (long i = 0; i < lClassCount; i++)
{
IFeatureClassPtr ipFClass;
result = ipFContainer->get_Class(i, &ipFClass);

esriFeatureType type;
ipFClass->get_FeatureType(&type);
//判断是否为注记层
if (esriFTCoverageAnnotation != type)
continue;

IGeoDatasetPtr ipGeoDataset(ipFClass);
ISpatialReferencePtr ipSpaRef;
ipGeoDataset->get_SpatialReference(&ipSpaRef);
}


  接下来,就是把获取到的空间参考信息设置到SDE中的annotation features中,可以通过IFeaturelayer,ILayer等接口来设置,由于比较简单,就不把代码贴出来了。如果大家有其他好的办法,也欢迎留言交流
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: