Micaps3.2二次开发实例教程-9

第九节        实例四:换掉Micaps的数据检索插件

上面几节的例子实现了给Micaps增加菜单、工具条按钮、浮动窗口等,但仅仅是给Micaps的界面上增加元素(除了全屏功能),却无具体功能。如何让插件与Micaps进行交互呢?这个还是有些难度的,因为这一套大部分是由Micaps开发人员定义的,必须要有详细的文档才能进行。

本节我们将新建一个浮动窗口,在此窗口里实现数据检索功能。在前一节的基础上,在新建的用户控件中放入TreeView控件,然后递归遍历综合图目录中的文件添加到TreeView中,为了方便,还可以给它加上右键菜单、工具条等。这些都是C#的基础知识,我这里就不罗嗦了(直接将我做的FreeMicaps的数据检索控件移植过来)。

本插件的关键是在插件代码中让Micaps打开选中的文件并显示出来。看如下代码:

       
 /// <summary>
        /// 打开文件
        /// </summary>
        /// <param name="fn"></param>
        private void OpenFile(string fn)
        {
            if (System.IO.File.Exists(fn))
            {
                Cursor.Current = Cursors.WaitCursor;
                try
                {
                    //取得当前视图
                    IRenderView activeViewContent = WorkspaceSingleton.Workspace.ActiveViewContent as IRenderView;
                    OpenLayer(activeViewContent, fn);
                }
                catch (Exception exp)
                {
                    ShowExceptionMessage(exp.Message);
                }
                finally
                {
                    Cursor.Current = Cursors.Default;
                }
            }
        } 
        /// <summary>
        /// 在指定View中打开文件
        /// </summary>
        /// <param name="view"></param>
        /// <param name="fileName"></param>
        internal static void OpenLayer(IRenderView view, string fileName)
        {
            if (view != null)
            {
                ILayer item = FileService.OpenLayerFile(fileName);
                if (item != null)
                {
                    view.Layers.Add(item);
                }
            }
        }

两个函数实现了打开文件的代码。过程是这样:

1、 取得当前视图(就是地图区域)

2、 根据要打开的文件创建图层

3、 将图层加入当前视图中

在我们的TreeView里单击文件名时,调用OpenFile()函数,Micaps即可在当前视图中打开显示数据。

有了这两个函数,就可以发挥想象力,做出更加好用的数据检索窗口来。

       好了,编译好后,运行Micaps,左边的已经有了我们新山寨出来的数据检索浮动窗口:

       例子中,我还给它添加了一个能够定制的定制的工具条,以方便切换综合图和数据路径,另外,还增加了右键菜单,用来实现更多操作,直接就能编辑查看综合图和数据文件内容。是不是很方便?呵呵。


       做了新的数据检索浮动窗口,如何让替换掉Micaps默认的数据窗口呢?很简单,看MICAPS3.2\data\Layouts目录下,各种布局定义文件,修改默认布局文件,替换一下就行了。如果你想让两个数据检索窗口并存,也没问题,添加一项就行。布局文件是XML格式,当然它也是SharpDevelop定义的,SharpDevelop本身自带了布局编辑保存功能,被Micaps去掉了,你可以在SharpDevelop中编辑对照修改。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值