本帖最后由 daitianci 于 2014-3-18 19:12 编辑
前阵子发表了一篇《ArcMap点转线的操作和理解,稍稍的扩展 》的帖子,介绍了如果根据速度以及方位来构造箭头趋势图,里面涵盖了excel展点,点转线工具的深入了解,在这个基础上,趋势图已经可以顺利画出来了。就当我挺开心的时候,前辈又提了一些建议,让我有些头疼,如下: 1、速度以及方位处理出来的文件最好能直接导入ArcMap内与其交互,你现在导出成文本格式,通过UE黏贴如Excel二次编辑,分割成经纬度,在50+张图的制作上要多产生很多文本,而且浪费很多时间去Excel二次编辑,繁琐!!!; 2、在Excel文件制作完以后,把Excel文件导入进去ArcMap以后,你首先得展点位,然后导出点shp文件,然后再点转线工具得出线文件。粗粗地看,貌似一环扣一环,但是你产生了很多不必要的中间文件。一个是缓存在默认数据库的展点位文件,二是点shp文件。可能你会觉得这个没什么,但是在50+张图的制作中,你就会凌乱了,因为太多的文件让你眼花缭乱,而且一环一环的重复操作让人有点厌烦,真的是不能忍,你能不能避免!!!; 3、你制作的趋势图的箭头表示方向,那么每一段都代表多少,你需要一个比例尺,这个比例尺总不能用手去画一段线吧,这样不准而且不科学,你得想一个好法子。 毕竟前辈,思路非常的开阔,给我指明了前进的方向。想想也是,能做一件事,做好一件事,又快又好的做一件事,这三个级别是完全不一样的,一个人的提高总是要不断挖掘自己的缺陷,然后去面对它、改善它。我前天晚上失眠了,躺着翻来覆去的时候,无聊时候才思考这个事,到天亮的时候总算有个所以然了。针对第1个问题,解决方法是这样的:既然ArcMap支持Excel,那么我就直接把坐标文件直接导出成ArcMap支持的Excel文件格式(还有一种思路就是Arcmap直接支持txt点位文件,这个没有找到好的解决办法,有的话请教教我,感激不尽!),导出Excel文件我想到了NPOI这个工具,妥妥的,因为用olede来写还是有些问题。在这里会提供一份可以运行的NPOI的小例子(已经把.Net降成4.0版本)。还有一个比较有意思的细节发现,就是你把经度列的Head改成X,纬度列的改成Y,这样展点的时候会自动识别;针对第二个问题,我的思路是这样的,首先是重复繁琐操作的解决办法,那就是自定义工具箱。之前也有想研究研究工具箱,看了一段时间的python,后来才发现,有时候代码都可以不用写就可以私人定制。是的,我们都喜欢创造,但是有时候灵活运用更为关键。其实,系统自带的工具箱已经相当全了,而且ArcMap很人性化,我们可以通过自带的工具去组合出我们要的工具。在这里跟大家介绍一个模型的概念。你可以新建一个工具箱,然后就可以创造模型,然后右键编辑,你就可以往里拖工具了,Arcmap支持这样的操作,我在这个思路上把展点工具、导出图层工具还有点转线工具集合在一起了。这个问题解决了,接下来是中间件问题,那么多没有必要的中间文件怎么处理,毕竟程序员,在订制模型的时候,我把中间件放在内存中了,这样就不会产生那么多的文件。针对第三个问题,其实很简单,思路的转换罢了。我们呢,把图例的箭头起始的地方当作一个站点,方位设为90,速度设100,然后就可以画出一条线了,而这条线就可以代替图例,你要做的就是加个标注。 改良以后的操作与之前的操作相比,真的有一个质的飞跃,今天前辈很开心,觉得我长大了一点,挺好的。我不是一个特别好学的人,算是一个比较懒的人,把一件事简单化是我最想做的事,这样才有更多时间去好好玩耍。 看到这里你可以看视频了,如果对程序也感兴趣,或者你也遇到别的需求,或者你有别的思路,欢迎指导交流。 技术没有秘密,分享才是王道,一起努力,共同进步。
|