阅读:1247回复:1
如何读SDE中图层名?
<P>我已经完成SDE的连接,将Shape数据通过SDE导入Microsoft SQL Server 2000中。</P>
<P>现在先完成SDE的连接,再将导入的图层读入ListBox 中,就不知道如何实现了?</P> <P>以下是连接SDE代码:</P> <P> Dim pWorkspaceFactory As IWorkspaceFactory<BR> Dim pWorkspace As IFeatureWorkspace<BR> Dim pPropSet As IPropertySet<BR> Dim pClass As IFeatureClass<BR> Dim pLayer As IFeatureLayer<BR> Dim pMxDoc As IMxDocument<BR> Set pWorkspaceFactory = New SdeWorkspaceFactory<BR> Set pPropSet = New PropertySet<BR> With pPropSet '设置ArcSDE连接属性<BR> .SetProperty "SERVER", Server<BR> .SetProperty "INSTANCE", Instance<BR> .SetProperty "USER", User<BR> .SetProperty "PASSWORD", Password<BR> .SetProperty "VERSION", version '可选,缺省为SDE.DEFAULT版本<BR> End With<BR> Set pWorkspace = pWorkspaceFactory.Open(pPropSet, 0)</P> <P> '如何将图层加载到List1?</P> <P> '谢谢!</P> <img src="images/post/smile/dvbbs/em12.gif" /> |
|
1楼#
发布于:2006-08-05 12:57
<P>AE的例子</P>
<DIV class=O v:shape="_x0000_s1026"> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• IPropertySetPtr ps(__uuidof(PropertySet)); </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• COleVariant v="gis-mobile"; </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• ps->SetProperty(L"SERVER",v); </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• v="ESRI_SDE"; </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• ps->SetProperty(L"INSTANCE",v); </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• v="SDE"; </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• ps->SetProperty(L"DATABASE",v); </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• v="sde"; </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• ps->SetProperty(L"USER",v); </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• v="sde"; </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• ps->SetProperty(L"PASSWORD",v); </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• v="SDE.DEFAULT"; </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• ps->SetProperty(L"VERSION",v); </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216"></DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• IWorkspaceFactoryPtr wf(__uuidof(SdeWorkspaceFactory)); </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• IWorkspacePtr w; </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• wf->Open(ps,NULL,;w); </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216"></DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• //自己添加 </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• IEnumDatasetNamePtr edn; </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• w->get_DatasetNames(esriDTAny,;edn); </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• edn->Reset(); </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• IDatasetNamePtr dn; </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• edn->Next(;dn); </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216"></DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• CComBSTR bstr; </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• CString str; </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• while(dn!=NULL) </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• { </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• dn->get_Name(;bstr); </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• str=bstr; </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• AfxMessageBox(str); </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• edn->Next(;dn); </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 20 0'; mso-margin-left-alt: 216">• } </DIV> <DIV 1; mso-kinsoku-overflow: 1; mso-line-spacing: '80 50 0'; mso-margin-left-alt: 216"></DIV></DIV> |
|