一些杂想

作者: 天涯无情 @ 11/29 2006, 06:26
  也许是看vc的视频教程看累了,也许是吃完饭后想给自己一个休息的理由,于是乎登陆了自己的博客,一一点开了同学们的链接,不经意间就这样花费了1个多小时。不过感觉还是值得的,现在各奔东西的我们,除了偶尔发条短信,见面的机会已经是比较少了。你知道这段时间对方在做什么吗?或许说出来就是一大堆事情,而在他们的博客里却能看到至少是他们认为有价值的东西,简练而不简单。
  每次看weijiali的博客总能让我笑好多次,不愧是个文科生,一件平凡的事情经她的大脑锤炼之后,总能吸引人的眼球。当然这也包括发生在她自己身上的一些搞笑事情。至于几个大学同学,感觉大家都在走自己的路,而且明显感觉出了越来越大的差异。或许这就是不同学校之间的文化差异,当然也跟各自的学习环境相关。仔细一想,这也是正常的,就像现在,我们这边的几个人除了上课之外,好像就没做什么别的事情了,当然如果勤奋一点的人,或许会自发地去泡图书馆,看外文文献。
  当看到别人做了很多事情的时候,心理总会不自然地产生一些嫉妒,觉得别人在做有意义的事情,而自己所做的事情好像都没有多大意义。然而当我认清自己要走的路时,却又坦然了许多。毕竟,我已经渐渐让自己否定了科研道路的可能性。因此,我现在不是扎在书里看一大堆模型,看一大堆学术文章。我现在需要学习能够即可利用起来的东西,同时还需要更多的实践机会。因为,这就是我三年后工作的资本!所以,当别人能拿出一篇篇文章去发表时,我想已经不需要具备攀比心理,我需要的只要能够让我顺利毕业足矣。
  最近刚做完一个不大不小的项目,也是算是自己上大学至今自己独自一人做的一个东西。做完之后,除了拿到了一些报酬,还学到了一些东西,一个比较的发现:自己的学习能力提高了,不知道是不是此前在公司里得到的锻炼而产生的效益?但是总感觉那些东西无论谁去做都会做。工作的时候就凭着这些简单的技能吗?所以一直在思考着将来自己的工作岗位是什么?我现在到底该学什么东西?可是谁能告诉我呢?话虽如此,我是绝不会放弃让自己锻炼的一个机会,这两天争取能将另一个潜在客户搞定,当然如果他的项目启动时间要是安排在我考完试那就太perfect了。这样,我这个月就可以安心复习准备考试了。我可是整整落下了一个月的功课啊!悲惨。

地下水信息系统

作者: 天涯无情 @ 11/27 2006, 07:17

这断时间一直在做这个,差不多完了,感觉还是有点累。贴几张图来纪念一下。这个系统用vb+mo开发而成。

主界面:

属性查询界面:

图表统计界面:

属性信息统计界面:

水位变幅曲面:


终于快结束了

作者: 天涯无情 @ 11/19 2006, 08:38

  到今天为止,这个小系统终于快做完了,剩下的就是界面修饰和测试阶段了.

  奋斗了大约20天左右,还是有点成就的.总结了一下,主要完成了以下工作:

1.数据查询:关键字查询,空间位置查询,属性表查询.

2.图层符号设置.

3.数据编辑.添加,删除,修改.

4.专题图制作:单值,分类专题图.

5.图表统计功能.

6.数据导入,导出,更新以及打印.

7.等值线,等值面,水位变幅曲面的生成.

8.还有基本功能.

可惜系统突然无法上传图片,要不就贴几张图show一下.

 


使用等值线控件的一些经验

作者: 天涯无情 @ 11/13 2006, 22:10

   该控件是外国人做的,在网站http://snowedforest.brinkster.net/免费提供下载,安装完了之后,同时可以看到他们提供的示范程序,包括VB,VC,DEPHI的代码,所以应该说把示范代码看明白了,掌握这个控件的使用方法也就容易多了.但是唯一不足的是,他们并没有提供接口说明,同时每个接口的参数也没有说明.这无疑减缓了学习的进度.同时可能是由于是试用版,每次调用生成等值线&等值曲面的接口时,都会有一个版本对话框弹出.

  就我昨天使用该控件的一些感触在此做个总结.

1.发现该控件有一个规律,就是大部分接口的返回值是作为一个参数传入.如为了判断该控件生成了多少条等值线,需如下使用:

     dim lineCount as long

     contourOCX1.getLineCount  lineCount

同时对于类型的要求也比较严格,不过我们可以借助VB的接口浏览器查看,这样做会方便一点.

2.对数据的文件格式要求:支持从文本文件读取数据,这个接口是.initialRadomPointsFile(,)

文件的格式是.txt的才行;由于看不到帮助文档,所以也不知道能不能从数据库的表中直接读取,看到了.AddDBField()接口,但是不知道怎么用.

我是采用了如下的办法,从数据库得到一个包含所要信息的recordset,然后创建一个临时的.txt文件,将所以信息写入临时文件,完毕之后,将临时文件删除,这样也能达到预期的目的.

3.插值方法的支持:提供了三种插值方法,IDW,CFWAI,Kringing.用三种方法插值的结果都不尽一样,同时CFWAI方法有bug,有些数据,它就执行不了.就因为这个问题,昨天下午困惑了我近两个小时,郁闷啊.所以综合考虑,还是采用kringing,虽然它涉及到的参数多一点,但是大家查下资料也能够解决的.它提供的Kringing方法,Nugget=0.

4.至今还想解决的问题有:

它生成的等值线范围,是输入点的外接矩形,不知道是否可以自定义生成的范围?

怎么去掉版本提示框,非得找它们购买正版?


今天心情不错

作者: 天涯无情 @ 11/12 2006, 10:52

  经过周末两天时间的不懈努力,工作终于有了迅速的进展,总的工作就剩下地下水等值曲线&等值面的绘制了.没想到经过两天努力把图表功能给完成了,效果看起来还不错,比较高兴.

这两天主要解决了以下几个难点:

1.图表控件的选择,最终使用了mschart,发现它的功能还是比较强大的,之前太小瞧它了.通过一系列属性设置同样能够让你的图表美观起来.如标签名,网格间隙都是可以在代码里控制的.

2.mschart的datasource属性只能为一个记录集,因此要画多条曲线的画,在记录集里就应该有多列.我的表只有时间,编码,地下水水位四个字段,而我要实现在某个时段内不同编码的站点的对比图.经过一段时间的考虑,我使用交叉表解决了这个问题,在sqlServer中使用交叉表的方法可查下更详细的资料,举个例子:

SELECT TitleOfCourtesy,
  SUM(CASE City WHEN 'London' THEN ReportsTo ELSE NULL END) AS [London City],
 SUM(CASE City WHEN 'Redmond' THEN ReportsTo ELSE NULL END) AS [Redmond City],
 SUM(CASE City WHEN 'Seattle' THEN ReportsTo ELSE NULL END) AS [Seattle City]
FROM Employees GROUP BY TitleOfCourtesy

同时你还可以结合嵌套查询,联合查询等其它条件,我写的一个简单的语句如下,

select substring(CONVERT(varchar(10), YMDHM, 111),3,10) as ymdhm, sum(case STCD when '" & staCode(0) & "' then " & strFieldN & " else 0 end) as [" & staCode(0) & "] from " & strTableN & " where stcd in (" & staCode(0) & ") and  ymdhm >= '" & strStartTime & "' and ymdhm <= '" & strEndTime & "' group by ymdhm order by ymdhm asc".

3.mschart还支持数据源为数组类型,这次为了做多个年份,同一个站点的水位对比分析,就使用了这种方法.其中需要用到多个循环,所以执行效率可能低一点.

4.突然间发现vb用类的思想设计框架的话,也能够使效率大大提高,更为关键的是灵活性强,而且也使代码更为简洁,这样就不用成天想着怎么去拷贝代码了.



  © 感知世界,感知未来, All rights reserved.