MapGIS更改某图层里的简单要素类

郑重声明:此文为本人原创,旨在为参加 全国高校GIS技能大赛 的同学们以及初学MapGIS的朋友提供一些参考,若有疑问可留言提问,转载请注明出处!

本示例代码实现的功能是:点击某点图层后,进行放大闪烁。

实现原理:首先需要明确图层和简单要素类之间的关系,图层仅仅是个容器,图层里面放的是简单要素类,简单要素类里面存放的才是数据。鉴于此,我们准备两个同样的点类型的简单要素类,两者不同仅仅在于符号大小不同。最初图层里面加载的是符号较小的简单要素类。当需要点击查询时,用代码将本图层里面的简单要素类重新绑定为样式符号较大的简单要素类。更改图层里的简单要素类并进行闪烁的示例代码如下:

 

IBasCls BasCls = null;//类接口,是矢量、栅格、网络、关系等类接口的基接口

mcGDBServer m_GDBSvr = new mcGDBServer();//地理数据库服务器对象

mcGDataBase m_GDB = new mcGDataBase();//地理数据库对象

//连接数据源,打开数据库

int a = 0;

a = m_GDBSvr.Connect("MapGislocal", "", "");

if (a < 0)//打开结果判断

{

MessageBox.Show("connect error");

return;

}

m_GDB = m_GDBSvr.get_gdb("test");//打开名为test的数据库

if (m_GDB == null)//判断打开是否成功

{

MessageBox.Show("open gdb error");

return;

}

//打开待闪烁的简单要素类

m_FCLs = m_GDB.get_XClass(meXClsType.meXSFCls) as mcSFeatureCls;

int b = 0;

b = m_FCLs.Open("参照图层2", 1);//打开对应样式符号较大的简单要素类

if (b <= 0)

{

MessageBox.Show("打开失败!");

}

//以下是进行查询闪烁

mcQueryDef def = new mcQueryDef();

mcRecordSet rcd = new mcRecordSet();//记录集对象,用来存放要显示属性的范围

def.Filter = "name = '闪烁'";

int g = -1;

g = m_FCLs.Select(def, out rcd);//根据查询条件执行查询,将查询结果存放到rcd中

axMapXView1.AppendFlashSet(rcd);//闪烁当前选中记录范围

axMapXView1.StartFlash();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值