《武汉人·公交查询系统1.0》开发技术文档
曾劲松 2005/6/5
《武汉人·公交查询系统》是一款基于武汉市电子地图的公交线路查询系统,它允许你非常方便地搜寻武汉市从甲地到乙地的行车线路并将行车线路在地图上绘制出来,快速准确地查找离某地最近的公交站,查找某公交站的位置,查看某公交线路所经过的站名并绘制于地图之上,在后续版本中将增加搜索其他地理位置(公司、企业、医院、学校、商场等等……)。
本程序核心技术:
1. 完全采用面向对象的编程方法。因为本程序设计到很多矢量图绘制,所以最适合采用面向对象的方法来开发了。有几个重要的类说明如下:
1> 交通图元类。这是所有交通元素类的基类,包含了名称、颜色、描述、是否被选中等几个属性和绘制到内存位图、绘制到画板等几个方法。
2> 点图元类。该类用来描述仅仅用于定位的交通元素,比如公交站、学校、企业等,该类继承自交通图元类,新增加有 取横坐标,取纵坐标,置横坐标,置纵坐标,取边界矩形等方法。
3> 公交站类。该类用来描述公交站,继承自点图元类。增加了 从字符串创建、取点半径、置点半径、取字体大小、置字体大小、绘制到画板、绘制到内存位图等方法。
4> 公交线路类。本类用来描述公交线路,提供了以下方法:查询公交站在公交线路中的索引、从数字字符串创建、绘制到内存位图、取边界矩形、取公交线路号、取公交站编号、取经过的公交站名、取数字化的线路文本、是否经过某公交站等。
5> 连通线路类。本类用来描述两个公交站之间的连通线路,提供了 绘制到内存位图、取边界矩形、取详细信息、是否要专车、检验索引、置公交线路一、置公交线路二、置线路一起止索引、置线路二起止索引、重置等方法。
6> 视图历史类。本来用来记录视图书签,提供以下方法:清除视图历史、取当前视图、取当前索引、取视图、取视图名称、取视图总数、删除当前视图、上一视图、是否可删除视图、是否有上一视图、是否有下一视图、跳到视图、下一视图、显示于列表框、置视图名称、追加视图等。
7> 内存位图类。本来用来增强易语言自身的画板,因为易语言自身的画板未提供绘制EMF文件和EMF字节集的方法,所以专门写了这个类。这个类很多方法跟易语言自身的画板差不多,扩展的方法有 创建位图、复制到画板、复制到画布、洪水填充、画EMF文件、画EMF字节集、画多边形点数组、画多义线点数组、画多边形横纵坐标数组、画多义线横纵坐标数组、画曲线点数组、画曲线横纵坐标数组、绘制文本在矩形内、拉伸复制到画板、拉伸复制到画布、取高度、取宽度、取画布句柄、取位图句柄、实色填充、置画笔属性、置交叉线画刷、置实色画刷、置文本属性等。主要增加了两个画EMF的方法和画曲线的方法。
8> 图层类。本类用来组织各种交通图元,只可惜易语言目前尚不支持方法覆盖和强制类型转换,不得已采用全局数组来替换它了。
2. 矢量图形绘制技术。在程序中要绘制地图,显然地图不能直接使用位图,因为要无限放大,要分层叠加,而且始终清晰,这样就必然要使用矢量图形技术。幸好Windows 已经为我们提供了操作矢量图形 EMF文件的相关函数,这里我已将其封装到内存位图中去了。
3. 快速的路径寻找。在实际乘坐公交的过程中,难免会有转车的现象发生。本程序通过建立公交站索引的方法,能够快速搜索出所有的直达车或一次转车线路,通常这已经能够满足需求,能够搜索出可行的乘车方案。对于两次或两次以上的转车方案,本程序没有实现,一方面实现起来难度大,另一方面也没有必要,因为在实际乘车的过程中,极少有要转两次车的情况。
4. 方便的数据库维护。对于一个公交查询(或曰电子地图)系统来说,数据量之大是可想而知的。偌大一个城市,一个人不可能完全了解其公交站和公交线路的分布情况,况且公交线路也经常处于变化之中,所以本程序提供了灵活的方法允许用户自己来维护数据库的方便方法。具体操作方法请查看本软件帮助。
源代码总共3600行。
本程序需要易语言4.0以上版本才可以使用:
易语言 V5.1 完美破解版下载:
软件大小: 102.25 MB
Win7 / Vista / Win2003 / WinXP / Win2000
http://www.xiazaiba.com/html/409.html
http://xiazai.xiazaiba.com/Soft/E/e_V5.1_XiaZaiBa.exe
易语言资源网
http://zy.dywt.com.cn/index.asp
源代码交易网
http://www.ydmjy.com/
2024-02-06 07:33:53
806KB
1