界面设计

界面设计原则

在设计阶段,除了设计算法,数据结构等内容外,一个很重要的部分就是系统界面的设计,系统界面是人机交互的接口,包括人如何命令系统以及系统如何向用户提交信息。一个设计良好的用户界面使得用户更容易掌握系统,从而增加用户对系统的接受程度。此外,系统用户界面直接影响了用户在使用系统时的情绪,下面的一些情形无疑会使用户感到厌倦和茫然:

1)过于花哨的界面,使用户难以理解其具体含义,不知从何入手;

2)摸棱两可的提示;

3)长时间(超过十秒)的反应;

4)额外的操作(用户本意是只做这件事情,但是系统除了完成这件事之外,还做了另外的事情)。

与之相反,一个成功的用户界面必然是以用户为中心的,集成的和互动的。

尽管目前图形用户界面(GUI,Graphical User Interface)已经被广泛的采用,并且有很多界面设计工具的支持,但是,由于上述的这些原因,在系统开发过程中应该将界面设计放在相当重要的位置上。

设计用户界面的策略由以下几点构成[Peter Coad,Edward Yourdon]:

1)对人分类

通过仔细研究使用系统的人,对其进行分类,分类的原则包括按照技能层次(初学者,高级人员…),按照组织层次(管理人员,一般员工…),按照身份(职员,顾客…)。通过分类,弄清每类人员使用系统的目的,进而可以确定其相应的人机交互操作。

2)描述人和他们的任务脚本

对人员分类之后,确定每一类人员的特征,包括使用系统的目的,特征(年龄、教育水平、限制等),对系统的期望(必须/想要,喜欢/不喜欢/有偏见),熟练程度,使用系统的任务脚本(scenario)。依据这些特征,可以指导系统的人机交互设计。

3)设计命令层

命令层的设计包括三个方面的工作,即研究现有的用户交互活动的寓意和准则;建立一个初始化的命令层;细化命令层。

在图形用户界面的设计过程中,已经形成了一些形式的或非形式的准则和寓意,如菜单排列(例如,在几乎所有的MS-Windows应用系统中,前三个一级菜单项目总是“文件”、“编辑”、“视图”,而最后的两个则是“窗口”,“帮助”),一些操作(例如,打开文件、保存文件、打印)的图形隐喻等等。遵循这些准则,便于用户更快地熟悉系统。

在细化命令层时,需要考虑排列,整体-部分组合,宽度与深度的对比,最小操作步骤等问题。一个层次太“深”命令项目会让用户难以发现,而太多命令项目则使用户难以掌握。

4)设计详细的交互

人机交互的设计有若干准则,包括:

一致性 采用一致术语、一致的步骤和一致的活动;

操作步骤少 使敲击键盘和点按鼠标的次数减到最少;

不要“哑播放” 长时间的操作需要告诉用户进展的状况;

闭包 用一些小步骤引出定义良好的活动,用户应该感觉到他们的活动中闭包的意义;

Undo 人难免做错事,通常在这种情况下系统应该支持恢复原状,或者至少部分的支持。

减少人脑的记忆负担 不应该要求人从一个窗口记忆或者写下一些信息然后在另一个窗口中使用;

学习的时间和效果 为更多的高级特性提供联机参考信息;

趣味和吸引力 人们通常喜欢使用那些感到有趣的软件。

5)继续做原型

通过做原型系统,可以直接的了解用户对设计界面的反应,然后进行改善,使之臻于完美。

6)设计用户界面类

在完成上面的工作后,就可以着手设计用户界面类。在开发GUI程序时,通常已经提供了一系列通用界面类,如窗口、按钮、菜单等等,只要从这些类派生特定的子类即可。

7)根据图形用户界面进行设计

目前主要的GUI包括Windows,Macintosh,X-Windows,Motif等,基于它们开发应用软件可以使界面的设计简单化,但是事先要清楚其特性,如事件处理方式等等。

GIS界面设计中的要素


对于成功的GIS软件,好的界面是不可或缺的,在进行设计时,同样要遵循上述的原则和步骤。对于地理信息系统软件而言,其界面需要允许用户选择并检索相应的空间数据,操作这些数据,并且表现分析的结果。对于基本的数据检索,操作和表现,与普通的软件是一致的,在GIS中要考虑的是以下几个要素:

数据选择

选择数据采用的过滤器可能包括空间的和非空间的属性,或者是两者的结合,例如(针对一个县级行政区划数据):

  • 检索所有人口大于10万的县;

  • 检索所有有铁路通过的县;

  • 检索所有有铁路通过并且人口大于10万的县;

用户可以通过输入一个命令语句,通过菜单选择,填充一个表单(Form),或者通过直接的操作——例如使用鼠标来选择数据。利用命令语句需要了解数据表的结构,并且需要对传统的SQL进行扩展以支持空间过滤。直接操作选择需要数据显示在屏幕上,它和SQL查询的组合通常要间接的完成。当一些地物显示在相近的位置时,直接操作选择会有二义性。为了方便用户操作,要提供一些额外的操作,如漫游、放大显示、缩小显示等。

数据表现

一种好的数据表现形式有利于用户直接操作以进行进一步的分析,与标准的关系数据库相比,在地理信息系统中,需要更多地考虑其图形显示。图形表现的相似性或者差异可以表达给用户这些地物对象具有某种程度相似性,一些图形显示的变量有:

  • 多边形轮廓:颜色,灰度,黑白;线型;

  • 多边形填充:颜色,灰度,黑白;填充模式;

  • 线:颜色,灰度,黑白;线型;

  • 符号:颜色,灰度,黑白;形状;大小等等。

对于图形显示而言,需要进行仔细设计,以正确地表达地物对象的含义,并被用户理解。

数据处理

数据处理由一系列空间的和非空间的操作组成,一个设计良好的界面使实现这些操作更加容易。与标准的关系数据库相比,GIS所管理的数据更具有面向对象的特征,所以一个面向对象界面有利于用户与系统的交互操作,完成数据处理。在GIS软件中,面向对象的界面设计包括将地理实体,如点、线、多边形以及一些操作以象形的符号表现出来,而用户可以通过简单的点击、拖放等操作实现相应的数据处理。

下面列出了一些具有图形寓意的操作,很容易将图形表现与对应的操作联系起来。

  • 创建:根据给定的图形实体以及相应的属性,创建一个空间对象;

  • 删除:删除一个选定的空间对象;

  • 集合:根据选择的对象形成一个集合;

  • 更新:只显示最后一次操作的结果;

  • 叠合:相当于集合操作中的并运算;

  • 求交:相当于集合操作中的交运算;

  • 求差:相当于集合操作中的差运算;

  • 转换:对选择的地物进行比例、移动、镜象、仿射变换等操作;

  • 检查点:设置检查点,当对后面工作不满意时,可以回退到该点;

  • 回送:返回上一个检查点的状态;

  • 提交:将所有的处理结果传给数据库,并更新之。

SQL


传统的SQL并不能处理空间查询,这是由于关系数据库技术的弱点造成的,对于GIS而言,需要对SQL进行扩展。目前正在制定的SQL/MM,主要应用于多媒体数据,其中包含了全面的GIS操作集合。

采用新的SQL标准,带来了概念上的改变,对于传统的SQL,要实现空间操作,需要将SQL命令嵌入一种编程语言中,如C语言;而新的SQL允许用户定义自己的操作,并嵌入到SQL命令中。

这种扩展的SQL实际上是增加了面向对象的支持,在地理信息系统中,称为GeoSQL,GeoSQL,可以写出形如:

SELECT Soils.Map

From Soils,Parcels

Where Parcels.Value>6000 and Overlay(Soils,Parcels);

的查询命令。

由于完全实现GeoSQL仍然有相当的难度,所以目前大多数GIS软件的实现思路是分别输入标准SQL查询语句以及空间查询(图16-14),然后分开处理,最后将结果合并,其缺点是不够灵活。

../../_images/img_115.png

图16-14:一个实现空间查询的界面,将空间关系和标准SQL分开输入

可视化

由于地理信息系统是基于图形的,其分析和解释的结果通常是以可视化的形式表现出来。可视化是指为了识别、沟通和解释模式或结构,概括性地表现信息的过程。空间分析需要考虑信息模式以及空间特征的感受,对于GIS,可视化可以描述为从信息到知识的转化过程。对于地理信息系统,除了以可视化的形式表现各种信息,实现表达的所见即所得(WYSIWYS, What You See Is What You Get)亦是界面设计的重要原则。

GIS界面样式


在GIS软件界面设计中,有三种基本的用户界面样式,即基于命令的界面、菜单驱动的界面以及基于工作流的GUI界面,这三种界面对于实现和使用各有其长处和短处,在具体实现时,可以同时支持一种或几种样式。

基于命令行的GIS界面(图16-15)

命令行是最简单的界面样式,并且很早就已经在各种操作系统软件中被采用。它只使用文本语言,要求用户了解可以使用的选项,这需要记忆各种命令或者不断查找帮助文档。基于命令行的界面不提供任何提示信息和建议,这使用户要依赖于印刷文档来学习系统。采用命令行界面需要开发一个命令行解释器,在命令行界面软件中,功能模块之间关系较为简单,常常是一个模块的输出作为另一个模块的输入,便于开发实现。利用批命令文件或者脚本文件,可以依次完成多步操作,这是命令行界面的长处。

对于GIS软件,因为包含大量的图形操作,所以采用命令行界面时,需要有一个图形窗口以显示操作结果,这样命令行界面起到控制台的作用。由于支持批命令和脚本文件,可以使用命令行界面来实现批量的、流程化的、耗时的数据处理。

../../_images/img_26.png

图16-15:基于命令行的GIS界面

菜单驱动的GIS界面(图16-16)

在MS-Windows成为PC上的主流操作系统之后,菜单驱动的用户界面几乎在所有的应用软件中被采用。它按照层次,列出了系统提供所有操作,用户可以通过键盘或者指点设备,通常是鼠标,来选择并执行一个操作。每个菜单项目都有相应的帮助信息,便于用户随时参看。

菜单驱动界面最大的长处在于界面友好,便于用户掌握系统。但是对于高级用户而言,与命令行界面相比,它往往显得不够灵活而且效率低下。在GIS中,往往需要连续地对批量数据进行处理,并且需要较长的计算时间,这种情况下采用菜单界面就变得不可忍受。

../../_images/img_34.png

图16-16:Windows环境下菜单驱动的GIS界面

采用数据流图的GIS图形用户界面(图16-17)

在图形数据流界面中,操作者通过一种“可视化的语言”,而不是严格的文本来控制系统,其中,系统用图形符号来表现其提供的功能,称为“图标”。图标不仅可以表示操作,也可以表示数据或者硬件设备。

在基于数据流图的用户界面中,用户可以通过“拖放(Drag and Drop)”操作来实现相应的操作(例如,可以将表示插值计算的图标拖放到表示等值线数据的图标上,以进行等值线插值运算),设计和组织数据处理流程。

数据流图界面适用于数据流清晰,相对比较简单的系统,如数字图像处理软件;其缺点是实现较为困难。

../../_images/img_42.png

图16-17:采用数据流图的GIS图形用户界面