阅读:3991回复:7
请问如何查询图层在SDE数据库里面的名称?
<P>我加载一个SDE数据库图层在IMapControlDefault控件里面,为了直观,因此采用别名作为图层名称。</P>
<P>现在我要查询这个图层ILayer对象,对应在SDE里面的图层名称。我实在找不到采用什么接口。</P> <P>有明白的朋友,请指教指教。。。 </P> |
|
|
1楼#
发布于:2006-12-12 13:16
<P>有点看不明白你要找什么名称。以下代码可能有你要找东西,图层的名称和别名都有了。</P>
<P>ILayer pLayer = IMapControlDefault.Layer(X);</P> <P>IFeatureLayer pFeatureLayer = pLayer;</P> <P>IFeatureClass pFeatureClass = pFeatureLayer.FeatrueClass;</P> <P>pFeatureClass.AliasName就是图层的别名了。</P> <P>pLayer.Name就是数据库表名了。</P> <P>如果不是你想要的,你直接用PL/SQL打开SDE数据表空间,查看GDB_ObjectClasses表名的内容就知道了,至于代码可以用SQL语句做到,不过不建议你直接用SQL查看或打开SDE配置表。</P> |
|
|
2楼#
发布于:2006-12-12 20:05
<P>谢谢老兄指点。我确实没有把问题描述清楚。我是说,把图层打开到MapControl里面时候,图层名称我采用的是别名。如下图:
<P>现在我想知道一个图层的名称,这个名称自然不是目录里面的别名,而是打开图层时候采用的名称,比如:SDE.CENAME。也就是说,怎么通过一个ILayer去得到这个SDE.CENAME,而不是目录里面显示别名。</P> |
|
|
3楼#
发布于:2006-12-13 23:28
IMap pMap = this.axMapControl1.Map;<BR> ILayer pLayer = pMap.get_Layer(0);<BR> IFeatureLayer pFeatureLayer = pLayer as FeatureLayer; <BR> IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;<BR> IDataset pDataset = pFeatureClass as IDataset;<BR> MessageBox.Show(pDataset.Name);
|
|
|
4楼#
发布于:2006-12-13 23:58
十分感谢老兄热心指点!!!
|
|
|
5楼#
发布于:2006-12-14 13:07
<img src="images/post/smile/dvbbs/em02.gif" />
|
|
|
6楼#
发布于:2006-12-15 16:07
<img src="images/post/smile/dvbbs/em01.gif" />
|
|
7楼#
发布于:2007-01-03 11:51
<img src="images/post/smile/dvbbs/em01.gif" />
|
|