因为爱GIS,我们聚集于此
  • 快捷登录:
查看: 62|回复: 1
收起左侧

[求助] 请教,这个层的类型究竟如何获取?

[复制链接]

该用户从未签到

发表于 2016-12-19 11:43:37 | 显示全部楼层 |阅读模式

有你,GIS才会更精彩,马上注册,我们一起学GIS。

您需要 登录 才可以下载或查看,没有帐号?立即注册 用百度帐号登录

x
SDK范例里有一个EDITING\EXERCISE1.MXD,其下的层:Imagery basemap layer 类型是BasemapLayer,再下有层DOQQ imagery (local),看的出应该是RasterLayer,将其拖出Imagery basemap layer单独成层后
取得ILayerPtr p;则 IRasterLayerPtr p1=p,或者 p->QuieryInterface(IID_IRasterLayer,(void **)&p1) 都可以成功。


但在保持BasemapLayer下,取得BasemapLayerPtr pBas后

再用
HRESULT hRst;
long i,nLayers;

ICompositeLayerPtr pGrp=NULL;
hRst = pBas->QueryInterface(IID_ICompositeLayer,(void **)&pGrp);//正确,返回S_OK


hRst = pGrp->get_Count(&nLayers);//正确,返回S_OK
for(i=0;i<nLayers;i++)
{
          ILayerPtr pL;
          hRst =pGrp->get_Layer(i,&pL);//正确,返回S_OK,pL也不为空

                                                           //______________________________________________________________________________
          IRasterLayerPtr p1=pL,            //这时p1不能取得值,也就是说DOQQ imagery (local)此时不是RasterLayer,它应该是什么类型的层呢
                                                         //______________________________________________________________________________
}

该用户从未签到

 楼主| 发表于 2016-12-19 11:49:06 | 显示全部楼层
另:
IBasemapSubLayerPtr p1=PL;也不会成功
您需要登录后才可以回帖 登录 | 立即注册 用百度帐号登录

本版积分规则

关闭

热门推荐上一条 /1 下一条

© 2013-2014 GIS520 ( 陕ICP备14003560号-1 )Powered by Discuz! X3.2 Template by giscafer   
快速回复 返回顶部 返回列表