竹林桥外87
路人甲
路人甲
  • 注册日期2009-04-23
  • 发帖数7
  • QQ
  • 铜币125枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1653回复:0

Globecontrol里面显示不出新创建的内存要素层?

楼主#
更多 发布于:2009-08-13 15:17
<b >Globecontrol里面显示不出新创建的内存要素层?</b>  <br><br>






<a href="http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=26432;amp" target="_blank" >        BSTR workspaceNameBSTR=_bstr_t("workspacename.mdb");<br>        IWorkspaceFactoryPtr workspaceFactory(CLSID_InMemoryWorkspaceFactory);<br>        // Create an InMemory geodatabase.<br>        IWorkspaceNamePtr workspaceName;<br>        workspaceFactory->Create(_bstr_t(""),workspaceNameBSTR,NULL,0,;workspaceName);<br>        // Cast for IName.<br>        INamePtr name = workspaceName;        <br>        IWorkspacePtr pworkspace;<br>        IUnknownPtr unknown;<br>        name->Open(;unknown);<br>        pworkspace=unknown;        <br>        IFeatureWorkspacePtr featWorkspace = pworkspace;<br>        <br>        BSTR nameFeatureClass=_bstr_t("featureclassname");<br>        ISpatialReferenceFactoryPtr pSpatialRefFactory(CLSID_SpatialReferenceEnvironment);<br>        IGeographicCoordinateSystemPtr pGeographicCoordSys;<br>        long wgs=4326;<br>        pSpatialRefFactory->CreateGeographicCoordinateSystem(4326,;pGeographicCoordSys);<br>        ISpatialReferencePtr pSpaRef = pGeographicCoordSys;<br>        pSpaRef->SetDomain(-180, 180, -90, 90);        <br>     <br>        IFieldsEditPtr pFldsEdt(CLSID_Fields);<br>         IFieldEditPtr pFldEdt(CLSID_Field);<br>        IFieldPtr pFld;<br>        ipFields->get_Field(0,;pFld);<br>         pFldsEdt->AddField(pFld);<br>        <br>        double dGridSize = 1000;<br>        IGeometryDefEditPtr pGeoDef(CLSID_GeometryDef);    <br>        pGeoDef->put_GeometryType(esriGeometryPolygon);<br>        pGeoDef->putref_SpatialReference(pSpaRef);<br>        pGeoDef->put_GridCount(1);<br>        pGeoDef->put_GridSize(0, dGridSize);<br>        pGeoDef->put_AvgNumPoints(0);<br>        pGeoDef->put_HasM(VARIANT_FALSE);<br>        pGeoDef->put_HasZ(VARIANT_FALSE);        <br>        IFieldEditPtr pFldEdt2(CLSID_Field);<br>        pFldEdt2->put_Type(esriFieldTypeGeometry);<br>        pFldEdt2->put_Name(_bstr_t("SHAPE"));<br>        pFldEdt2->put_AliasName(_bstr_t("SHAPE"));<br>        pFldEdt2->putref_GeometryDef(pGeoDef);<br>        pFldsEdt->AddField(pFldEdt2);<br><br>        IFieldEditPtr pFldEdt3(CLSID_Field);<br>        pFldEdt3->put_Type(esriFieldTypeInteger);<br>        pFldEdt3->put_Name(_bstr_t("name"));<br>        pFldEdt3->put_AliasName(_bstr_t("name"));<br>        pFldsEdt->AddField(pFldEdt3);<br><br>        IFeatureClassPtr pFClass;      /////////////////////////////////创建要素层次<br>  
    featWorkspace->CreateFeatureClass(nameFeatureClass, pFldsEdt,
NULL, NULL, esriFTSimple, _bstr_t("SHAPE"),_bstr_t(""),;pFClass);<br></a><br><br>创建的内存要素层,创建两个字段,并添加了一个要素<br>
<br>
但是在Globecontrol显示时却是黑的<br>
m_ipGlobe->AddLayerType(ipLayer,esriGlobeLayerTypeDraped,VARIANT_TRUE);<br>
<br>
我可以重新读取该要素的字段值,并且自己做的空间点击查询,也能点出这个面要素的空间范围是个多边形,也就是说实际上这个要素是存在于Globecontrol中的,但是就是显示是黑的,不知为何,请高人指教,^_^<br>
<br>
通过ISimpleRenderer设过要素的背景和边框也都不好使,求助
喜欢0 评分0
游客

返回顶部