zoukankan      html  css  js  c++  java
  • CAD注记层转到SDE Annotation Features空间参考信息的转换(ArcEngine,C++实现)

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

    首先,是获取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等接口来设置,由于比较简单,就不把代码贴出来了。如果大家有其他好的办法,也欢迎留言交流

  • 相关阅读:
    获取系统版本
    一句代码删除所有子视图
    MAJOR-MINOR-MKDEV
    AF_UNIX和AF_INET域的socket在epoll中的差异
    python-print
    python-class(5)
    python-class(4)
    python-class(3)
    python-class(2)
    python-class(1)
  • 原文地址:https://www.cnblogs.com/junyuz/p/2163482.html
Copyright © 2011-2022 走看看