爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3114|回复: 3

强大的MouseTools及一个建议

[复制链接]

新浪微博达人勋

发表于 2014-1-18 17:29:29 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 Mc.Fish 于 2014-1-20 15:06 编辑

MouseMode这个枚举太强大了。将MouseMode改为绘制线条、多边形、面、点和编辑状态,就直接可以实现了MeteoInfo的功能。
越加佩服MeteoInfoC的设计,二次开发非常方便。

增加量算的功能:
QQ截图20140119131347.png
只需要在按钮的函数添加语句:(在例子代码的基础上)
            this.mapView1.MouseTool = MouseTools.Measurement;
            this.layersLegend1.MapLayout.MeasurementForm = this.mapView1.MeasurementForm;
            this.layersLegend1.MapLayout.MouseMode = MouseMode.Map_Measurement;
            this.SetCurrentTool((ToolStripButton)sender);

就可以了.

类似地,要实现画多变形的功能:
QQ截图20140119131646.png
this.mapView1.MouseTool = MouseTools.New_Polygon;
            this.layersLegend1.MapLayout.MouseMode = MouseMode.New_Polygon;
            this.SetCurrentTool((ToolStripButton)sender);

编辑多边形的功能:
QQ截图20140119131706.png
this.mapView1.MouseTool = MouseTools.EditVertices;
            this.layersLegend1.MapLayout.MouseMode = MouseMode.EditVertices;
            this.SetCurrentTool((ToolStripButton)sender);
            if (this.tabControl1.SelectedIndex == 0)
            {
                this.mapView1.PaintLayers();
            }
            else
            {
                this.layersLegend1.MapLayout.PaintGraphics();
            }



甚至,画多边形形后的右键菜单也有了.
QQ截图20140119131920.png
这是选择平滑的效果.
QQ截图20140119131935.png

学习的结果就到这里了.

建议在右键菜单上增加一个功能:
Create SHPs
QQ截图20140119132228.png
当选择的编辑图形是同一类型时(可以有多个),这个选项是可用的,点击后完成将选择的编辑图形创建为一个SHP文件
添加到layerlegend中.
并把现有的图形删除.
这样就可以把画的图形应用于业务中了.
在这个帖子里
http://bbs.06climate.com/forum.php?mod=viewthread&tid=18686
有示例,但建议增加这个功能.

再次膜拜MeteoInfo这个牛软件.


评分

参与人数 1威望 +5 金钱 +30 贡献 +10 体力 +200 收起 理由
MeteoInfo + 5 + 30 + 10 + 200 很给力!

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-1-20 09:26:42 | 显示全部楼层
楼主举一反三的能力很强,能把自己的心得分享给大家,大赞!!!

将编辑图形保存成shape文件的菜单功能会抽空加上的。也准备把MeteoInfo桌面程序开源(类库的开源以后再考虑),不过还需要改进一下插件开发机制,再选一个源代码托管网站(比如Github或者Bitbucket),大家有什么好的建议也可以提出来,也希望楼主这样能做开发的人可以为MeteoInfo的完善做些贡献。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-1-20 15:28:57 | 显示全部楼层
谢谢王老师.
如果这个可以实现了,还可以利用代码实现对画框中的数据的修改.
比如:

手动画框->弹出修改的框,写上改后的结果->
画的框保存->检查落在框中的站点->将修改后的值赋给选中的站点.

MeteoInfo的显示和分析功能已经很强了,就是没有实现修改数据的能力.
希望MeteoInfo越来越强大.
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-1-22 08:35:49 | 显示全部楼层
很好很强大啊!!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表