使用视图书签

    也许你会频繁地访问地图上的某个地方，或者需要在固定的某几个地方跳转，那么你可以使用软件为您提供的视图书签功能。

    管理视图书签需要用到工具条按钮和右侧的“视图书签” 面板。工具条中的视图按钮从左到右分别是添加视图、删除当前视图、跳到上一视图、跳到下一视图。具体对视图的管理步骤如下：

  1. 将地图导航到你需要的地方，然后点击工具条上的添加视图按钮，这样右侧的面板会自动切换到【视图管理】一页，促使创建的书签都是“[未命名书签]”，您可以在右侧的书签面板上为其更名。
  2. 要创建更多的视图书签，请导航到其他地方，再次单击工具条上的添加视图书签按钮。
  3. 要在视图间跳转，可以单击工具条上的【上一视图】和【下一视图】按钮，也可以双击右侧的【视图管理】面板中的项目。
  4. 要删除当前视图，请单击工具条上的删除当前视图书签按钮，这将删除右侧【视图管理】面板的视图列表中当前选中的视图。
  5. 要删除所有视图，请单击右侧【视图管理】面板上的【删除所有视图】按钮。

    在退出程序时，这些视图书签会自动保存。

武汉人·公交查询系统


维护数据库

    对于一个公交查询系统（或曰电子地图系统），数据量的庞大是可想而知的。 而仅仅依赖于开发者的力量，数据录入难免会有些遗漏和错误，所以本软件还提供了方便的数据库维护的功能，任何一个使用本软件的用户都可以对自己熟知的地方进行增删和修改，如果您对武汉的交通自信有足够的了解，您还可以把您维护好的数据库文件发送给软件开发者。:D

    目前本软件仅提供了公交站和公交线路的维护功能，具体使用方法如下。

    1.　维护公交站坐标数据。
         如果您知道某个公交站的确切地理位置，您可以方便地为其指定或修正。先将地图放大、平移到该公交站所处的位置，然后单击菜单【工具】【维护数据库】，在“搜索”后面的文本框中输入该公交站的名字或首字母，然后点击【搜索】按钮就可以在列表中定位到该公交站。确认列表框中选中了您需要设置的公交站，点击定位按钮【+】，这时数据库维护窗口就会自动最小化。在地图中点击该公交站的准确地理位置，点击完毕，数据库维护窗口会自动还原，并且已显示出了正确的坐标数据。如果觉得不对，可以单击【+】按钮，再次在地图上定位。要屏蔽掉某个公交站（在地图上不绘制它），可以手动修改其坐标值为(0,0)即可。具体操作方法是先在公交站列表中选中该公交站，上面的编辑框中就会出现其名字和坐标，将横纵坐标的值都改为０，然后点击【手动修改】按钮即可。

    2. 删除公交站。
         要删除某个公交站，先在列表框中选中它，然后单击【删除公交站】按钮。如果该公交站正在被某条公交线路经过，则不能被删除。如果一定要删除，请先修改相关的公交线路。

    3. 增加公交站。
         并不能直接增加公交站。在您维护公交线路的过程中，如果系统发现有新的公交站，会自动加入。

    4. 维护公交线路数据库。
         在数据库维护窗口中切换至【维护公交线路数据】一页， 单击【新增】按钮可以新增公交线路。在弹出的窗口中按如下格式输入即可：“公交线路号，经过的公交站１，经过的公交站２，……”，可以使用中文或英文的逗号。然后单击【确定】按钮，如果您在输入的过程中输入了新的公交站，则系统会提示您是否要将新的公交站添加到公交站数据库中。请检查是否确实是要输入要增加新的公交站或是输入错误。

    数据录入或修改完毕后，需要点击【更新数据库】按钮将改动保存到磁盘文件中。如果您增删了公交站，则在更新数据库的过程中会自动重建公交线路的公交站索引。更新数据库的过程完全是自动的，您仅需要等待几秒钟或几十秒钟即可。在更新数据库前，系统会先将当前数据库自动备份。更新完数据库后，地图上的公交线路和公交站会自动相应调整。

    如果您确认您自己的数据库绝对权威和全面，可以将您的数据库发送到我们的邮箱。该数据库文件位于程序的安装目录下的data目录下的扩展名为db的文件。我们的邮箱地址是：zeng_goomoo@yahoo.com.cn。谢谢您的合作。

武汉人·公交查询系统


《武汉人•公交查询系统1

《武汉人·公交查询系统1.0》开发技术文档

《武汉人·公交查询系统》是一款基于武汉市电子地图的公交线路查询系统，它允许你非常方便地搜寻武汉市从甲地到乙地的行车线路并将行车线路在地图上绘制出来，快速准确地查找离某地最近的公交站，查找某公交站的位置，查看某公交线路所经过的站名并绘制于地图之上，在后续版本中将增加搜索其他地理位置（公司、企业、医院、学校、商场等等……）。

本程序核心技术：

1. 完全采用面向对象的编程方法。因为本程序设计到很多矢量图绘制，所以最适合采用面向对象的方法来开发了。有几个重要的类说明如下：

1> 交通图元类。这是所有交通元素类的基类，包含了名称、颜色、描述、是否被选中等几个属性和绘制到内存位图、绘制到画板等几个方法。

2> 点图元类。该类用来描述仅仅用于定位的交通元素，比如公交站、学校、企业等，该类继承自交通图元类，新增加有　取横坐标，取纵坐标，置横坐标，置纵坐标，取边界矩形等方法。

3> 公交站类。该类用来描述公交站，继承自点图元类。增加了　从字符串创建、取点半径、置点半径、取字体大小、置字体大小、绘制到画板、绘制到内存位图等方法。

4> 公交线路类。本类用来描述公交线路，提供了以下方法：查询公交站在公交线路中的索引、从数字字符串创建、绘制到内存位图、取边界矩形、取公交线路号、取公交站编号、取经过的公交站名、取数字化的线路文本、是否经过某公交站等。

5> 连通线路类。本类用来描述两个公交站之间的连通线路，提供了　绘制到内存位图、取边界矩形、取详细信息、是否要专车、检验索引、置公交线路一、置公交线路二、置线路一起止索引、置线路二起止索引、重置等方法。

6> 视图历史类。本来用来记录视图书签，提供以下方法：清除视图历史、取当前视图、取当前索引、取视图、取视图名称、取视图总数、删除当前视图、上一视图、是否可删除视图、是否有上一视图、是否有下一视图、跳到视图、下一视图、显示于列表框、置视图名称、追加视图等。

7> 内存位图类。本来用来增强易语言自身的画板，因为易语言自身的画板未提供绘制ＥＭＦ文件和ＥＭＦ字节集的方法，所以专门写了这个类。这个类很多方法跟易语言自身的画板差不多，扩展的方法有　创建位图、复制到画板、复制到画布、洪水填充、画ＥＭＦ文件、画ＥＭＦ字节集、画多边形点数组、画多义线点数组、画多边形横纵坐标数组、画多义线横纵坐标数组、画曲线点数组、画曲线横纵坐标数组、绘制文本在矩形内、拉伸复制到画板、拉伸复制到画布、取高度、取宽度、取画布句柄、取位图句柄、实色填充、置画笔属性、置交叉线画刷、置实色画刷、置文本属性等。主要增加了两个画ＥＭＦ的方法和画曲线的方法。

8> 图层类。本类用来组织各种交通图元，只可惜易语言目前尚不支持方法覆盖和强制类型转换，不得已采用全局数组来替换它了。

2. 矢量图形绘制技术。在程序中要绘制地图，显然地图不能直接使用位图，因为要无限放大，要分层叠加，而且始终清晰，这样就必然要使用矢量图形技术。幸好Windows 已经为我们提供了操作矢量图形 EMF文件的相关函数，这里我已将其封装到内存位图中去了。

3. 快速的路径寻找。在实际乘坐公交的过程中，难免会有转车的现象发生。本程序通过建立公交站索引的方法，能够快速搜索出所有的直达车或一次转车线路，通常这已经能够满足需求，能够搜索出可行的乘车方案。对于两次或两次以上的转车方案，本程序没有实现，一方面实现起来难度大，另一方面也没有必要，因为在实际乘车的过程中，极少有要转两次车的情况。

4. 方便的数据库维护。对于一个公交查询（或曰电子地图）系统来说，数据量之大是可想而知的。偌大一个城市，一个人不可能完全了解其公交站和公交线路的分布情况，况且公交线路也经常处于变化之中，所以本程序提供了灵活的方法允许用户自己来维护数据库的方便方法。具体操作方法请查看本软件帮助。

源代码总共3600行。

武汉人·公交查询系统