我的toc

来源:互联网 发布:大刀王五与谭嗣同知乎 编辑:程序博客网 时间:2024/06/09 18:13

看到别人有自己的blog,心里实在是有点羡慕,没想到,我也有了自己的空间,那可不能这样浪费着,还是利用一下吧!

这些日子其实很烦,偏偏那头猪让我解决一下我想了好长时间,但是没有找到一个好的解决方案的问题,所以也从来没有动手实现。就是让我坐一个类似TOC的一个东西,这个东西我在做mo开发的时候就考虑了一些时间,看到那个丑陋的molegend我就想arcmaptoc,他们是怎么做出来的呢?但是觉得很难,所以懒得去继续想!但是那时候是读书,做不出来老师不怎么管,但现在是工作,想不出来怎么办呢?

于是去查资料,没有类似的东西,或者是有人做了没有公开或者共享!没办法,只好自己想解决方案了。


Treeview
控制图层


Engine
里面提供的toc控件

自己开发个控件,觉得自己能力不够,还是利用已经有了的吧。看着vb中能利用的控件类似toc的也只有treeview了,还是利用treeview来写吧。目前treeview存在的问题是没有图例,怎么样把map里面的地图图例在treeview中显示出来呢?也只有利用treeviewimage属性了。这样终于有点眉目了!要动态的输出图片,并把图片和treenode联系起来!

并且如果要做到像toc那样,把图例放在node的下边,怎么办呢?怎么看toc的图例符号像该node的一个子nodetext为空(“”),有图片。好了,至少有几分神似!呵呵,心中有点高兴了!

下面就开始来实现这些想法,如果要动态的输出的话,所以,我需要另外一个mapcontrol,就叫map2吧,我事先做好了三个shapefile,分别是点,线,面要素,并且每一个shapefile里面只有一个要素。先从map1里面读一层layer,看这个layershapetyperender,按shapetype确定加入map2中的是点还是线或者是面shapefile,然后,让map2rendermap1里面的layerrender相同,把这个图片输出,并加入到imagelist中。并在该节点下加入子节点,设置该节点的nodeimageindex,然后循环读map1layer,重复以上操作,就可以得到一个类似toc的东西,大家看像不像?下面的图就是我自己做出来的类似toc的东西,给个意见?


    我知道这样的解决方法有点像歪门邪道,呵呵,但是,总算还是把工作应付过去了,大家对toc的自己开发有什么观点?我怎么也考虑不出该怎么做了,这样做弊端很多,比如速度问题,内存问题等等,大家有什么意见,讨论讨论!

 

 

这也是我的第一篇,希望以后能有空多总结一下,以免走弯路!呵呵!希望大家与我交流,我的专业是地理信息系统,从事开发和数据处理方面比较多。邮箱:windlyc@yahoo.com.cn; QQ;86138544:发送信息GIS就可以了。

原创粉丝点击