阅读:1655回复:0
Globecontrol里面显示不出新创建的内存要素层?
<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设过要素的背景和边框也都不好使,求助 |
|