|||
环境信息经验之二:地图程序
讲的是一些不太成功的经验,目的是激励年轻人:有激情也要有耐力,因为程序要一句一句地写,但风险和机会并存。
这里提供一个地图C++源程序,因为也是DOS系统下的,而现在GIS风行,这个程序的应用价值不大,但可以用来做练习。
1989年在上海市新华书店的外文科技书架上(内部影印书),发现了一本讲环境信息系统和地理信息系统的论文集,感觉到“思绪顿开”,产生了自己动手的想法。可能是1991或1992年,购买了Boland C++ 2.0正版软件(可能刚推出3.0,因此2.0在降价促销,当时是500元人民币,包括一箱厚厚的十几本原版说明书)。凑巧又得到了一个研究项目,有了任务,便真的启动了。
然而当时困难大:自学C++,计算机设备落后,WINDOWS 3.11的中文版和“中文之星”还没有出台,数据库还是DBASE II。但工作慢慢前进了:购置了在西文系统上可以显示中文点阵字符的模块,汉语拼音输入法模块,汉字点阵和多个矢量字库等。
第一个工作是地图程序,完成后的工作界面如图(没编辑好,图弄到最后面去了)。
该地图程序特点:
1、DOS系统,西文系统下显示中文;
2、地图数据是矢量形式,数据库参照了AUTO-CAD的DXF格式;
3、字库有点阵和矢量两种形式,可以汉语拼音输入汉字;
4、可以输入主要的地图要素,同时增加了一些有用的图标;可以移动、放大缩小、转动;
5、“单线”有线型、线宽、颜色的选择;如果封闭,允许填充颜色;
6、“双线”以实线为主,双线间可以添色,可应用于河流或道路;“铁路”有特色,能自动产生习惯上的标识:黑白段相间产生;
7、“字符”可输入中文或英文,矢量字体,可以放大缩小和转动;
缺点:
1、在DOS系统下工作;
2、底层开发,包括按钮和鼠标,而且上面显示的“鼠标”是假的(当时还没来得及学会操作鼠标),实际用上下左右按键操作;
3、考虑了屏幕输入和绘图仪输入两种形式,但绘图仪输入尚未安装;
4、没有上传地图,再进行矢量化操作的能力;
附件是C++源程序(1993年的),为了下载简单,把多个分别编写的模块放到一起了。 “H”是头文件;“V.OBJ”和“G.LIB”文件也是必须的,前一个是英文系统下显示点阵汉字的模块,后一个是Boland C++的图形库,C++编译时要用。
下面几个文件在运行时放在和地图执行程序同一子目录下:
“HZPY.COD”是汉字拼音模块;
“PCLIB”是汉字点阵字库;
“SLHZ”是汉字单线矢量字库;
“SH.JMP”是已经输入好的上海市地图数据库,参考用。
1996年到美国西棕榈海滩参加过一个华人地理信息系统(GIS)协会的研讨会,记得有一个主旨发言是ARC/INFO公司的技术负责人,他说将来ARC/INFO也会进化成象C++具有的应用模块(如函数或图形)那样,可以由程序员自由调用,当时觉得激动人心,是一个正确的发展方向。然而十五年过去了,GIS的商业化趋势并没有得到遏制,环境信息方向的研究生只得花费大量精力于学会使用商业GIS软件,不少论文起首写“基于GIS…”,实际上以商业GIS软件的应用为主要内容。环境信息具有地理属性没错,空间分析是一个重要方面,但是环境问题的决策是以“空间分析”为主吗?环境信息学的进一步发展,是否应当考虑摆脱商业软件的制约?
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-21 01:45
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社