Walk体系基本知识和编码规范.doc_第1页
Walk体系基本知识和编码规范.doc_第2页
Walk体系基本知识和编码规范.doc_第3页
Walk体系基本知识和编码规范.doc_第4页
Walk体系基本知识和编码规范.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Walk体系基本知识Walk体系是面向对象、基于网络和数据库的,空间数据具有图属一体化的特点。Walk是用工作空间和层来组织和管理数据,用数据库来存储数据,按实体概念来描述现实世界,用地物来表示现实世界中的实体。工作空间(Workspace) Walk按任务来组织数据,任务在Walk中用工作空间来表示。工作空间记录图形比例尺、地图投影和坐标系,记录为完成一项任务所使用的层,以便在完成同样的工作时,恢复和启用为完成该项任务所使用的层,您可以在工作空间中添加和移去层,打开和关闭层等操作。工作空间是一个比较抽象的概念,如果您对Mapinfo或ArcGIS等一些GIS软件熟悉的话,就不难理解Walk的工作空间。 工作空间对数据组织和管理的信息保存在工程文件中(*.WKS),这些信息包括当前工作空间中调用了哪些数据库,打开了哪些层,关闭了哪些层,各层的状态如何等,当下一次打开该工程文件时,可以恢复到上次工作现场。 数据库(Database) WalkISurvey用数据库来存储数据。顾名思义,数据库是存储数据的仓库,是有组织的数据集合。Walk数据库采用普通关系型数据库,如Access、SQL-Server数据库等。关系型数据库是用多张二维表格来存储数据,表格中的行叫做记录,列叫做字段。 在WalkISurvey中,使用Access数据库(MDB格式)以方便作业,但不要求您的计算机上安装MSAccess数据库管理系统,因为在安装WalkISurvey时选择安装了相应的ODBC驱动程序,Walk使用ODBC技术与数据库连接。在Walk数据库中,每一实体(地物)在表中以一条记录表示,在一条记录中,记录了实体的创建时间、几何形状和属性等内容,您可以任意拓展实体的属性部分,这就是真正的“图属一体化”。 在每个Walk数据库中,都有一个符号库(一张表),用来存放用户自定义符号,WalkISurvey的符号库中预置了最新国标地形图图式,您可通过“符号编辑”方便地对其进行修改和扩充,建立自已的符号体系。 图层(Layer) 大多数制图软件都有图层的概念。层可以有效地管理图形,可以把图形按某一性质进行归类,通常习惯把同类性质的图形画在同一个层上,在图形显示、编辑和输出时可以对图形按层进行筛选。对于面向图形的制图软件来说,“层”只不过是图形的一个属性,就象图形的颜色、线型一样,存储时,同一层的所有图形不一定存储在一起。 WalkISurvey采用数据库来存储图形和属性信息,数据的组织方式与其它制图软件完全不同,因此在WalkISurvey中,层具有更深刻的含义。层是按专题要求组织数据的集合,如国标中将基础地理信息要素分为水系、居民地及设施、交通、管线、境界与政区、地貌、植被与土质八大类。层具有GIS的数据组织意义,每一层表达一项专题,层内的所有对象都应具有相同的属性结构,如在房地产管理信息系统中,要求明确房屋的属性,每幢房屋都要有楼层数、结构、幢号、建成年份等。因此在WalkISurvey中,层一般是按数据的属性来划分的,即将具有相同属性的数据放入同一个层中。 地物(Feature) Walk系列产品所处理的核心是地物(Feature),如一个控制点,一条道路,一幢房屋,一块稻田等。地物是地理空间中的基本单位,每个地物都具有以下特点: 空间属性:地物的几何形状和形态信息,分为点、线、面和格网型(如非规则三角形网、规则栅格网等)。 非空间属性:地物的专题属性,如楼房的结构、层数、幢名等。 时间属性:地物图形的创建时间等。 位置属性:如坐标系、投影等。 地物标识:地物归属的层、地物在层内的唯一标识。 地物可视式样:地物可视化表达,如符号、颜色、纹理、线宽等。 所以地物决不仅仅是测量意义上的图形表达,其中包含了更加丰富的信息。 注记(Annotation) 在地图上起说明作用的各种文字、数字,统称注记。注记常和符号相配合,说明地图上所表示的地物的名称、位置、范围、高低、等级、主次等等。在Walk中,除了文字、数字之外,图层中加入的影像也属于注记。 式样(Style) 在Walk中通过式样来表现数据。Walk将现实世界中复杂的实体最终归结为由点、线、面组成,在制图时,还需要用注记来做进一步的说明,点、线、面、注记在地图上的表现方式,如符号、颜色、线宽等就构成式样。Walk的式样分为点式样、线式样、面式样和注记式样四种。 点式样如图 1-2所示,可使用的点状符号有TrueType符号、位图符号和用户自定义矢量符号等。 线式样如图 1-3所示,可使用的线状符号有普通线、空线和用户自定义线。用户自定义线符号包括:简单线L、符号线LG、简单宽线LD、图元线LM、复合线LC和双轴线DL六种。 面式样如图 1-4所示,可使用的面状符号有无填充、颜色填充、线填充、纹理填充和符号填充等五种类型。面的边界可以是任意一种线状符号,并且具有自己的颜色和线宽等。 注记式样同MS-Word,可指定注记的字体、默认尺寸、下划线、阴影、填充等。 比例尺(Scale) 比例尺是表示图上距离比实地距离缩小或扩大的程度。在Walk中有两种比例尺,一种是系统比例尺,一种是视图比例尺。系统比例是Walk中符号和文字大小的参考比例。在Walk中符号和字的大小都是相对于图纸的,即图纸上的大小,如文字大小设置为24,则在系统比例尺下打印出来的文字大小为2.4mm(由于Windows字体高度包括一定的内空距,实际字符的高度要小于2.4mm)。所以当图形编辑时应将系统比例设置为打印的比例,这样在出图时符号和文字都按正常大小绘制。 视图比例是屏幕上的距离与实际距离的比值,当放大或缩小视图时,视图比例会随之改变。 标签(Label) 标签是对地物的动态标注,是在图上用地物的属性对地物进行文字描述,也就是在地物旁边显示出地物的某一项属性。标签不是文字实体(不能被选中),但标签比文字更能方便地表达地物的属性,因为文字是独立于地物的,而标签使用地物本身的属性。例如用全站仪测碎部点时,仪器中记录了碎部点的点号,用WalkISurvey引入碎部点时,同时引入了点号,点号是碎部点的一个属性,在进行内业编辑时,设置标签的显示内容为点号,这样就可以对照草图连线成图,当图形完成之后,不需要显示碎部点的点号时,就可以将标签关闭。 由于标签不随视图比例缩放,因此当视图缩小到某个比例之后,标签就会重叠在一起,这时可以为标签设定一个显示的比例范围,当超出这个范围时,标签将不会显示,这样当缩小视图时就不会因为标签而影响视图效果。此外,标签还可以设置其文字的字体、大小、颜色和相对于地物的位置。 在Walk中地物包含了其空间和非空间属性,由空间属性推导出的面积和周长以及地物的高程等都可用于标签。另外,Walk为了特定专业的要求还提供了一些特殊标签项,如线段边长标注、图根点的上下标注、等高线标注等,这些特定标注可生成为标签文字,可以一次性删除。WalkLan编码规范 制订规范的基本原则 1. 建议规范的目标是增强代码可读性,目标在于清晰的展现编码逻辑,并有助于理解问题、分析问题、并良好的解决问题。并非追求外观的美化与风格的一致。 2. 建议规范并不强制限制个人喜好、不拘泥于小节、标准规范的主要目的在于减轻思维复杂度,而不是为编码增加负担。 1)、规范不限制注释的风格,但是应当记住尽量编写精简、有价值的注释,不要重复说明代码可以充分表达的意图。 2)、规范不限制你在何处应当使用空格,何处不应当使用空格。只要语法规则允许你这样做。 3. 本规范尽可能兼容流行的编码习惯、约定。 4. 本规范只是一份建议和参考,不是必须遵守的法则。 5. 应用规范有利于减少笔误造成的错误。根据一些研究成果,编码的错误5%由于开发工具、系统原因,95%由于程序员造成,而其中36%是因为笔误。 目 录 WalkLan编码规范 .1 制订规范的基本原则 .1 1 排版 .3 2 注释 .7 3 标识符命名 . 11 4 可读性 . 12 5 函数、过程 . 13 6 可测性 . 16 7 程序效率 . 17 8 质量保证 . 20 1 排版 缩进、空行、长句分行、一句一行、关键字单独行、的使用、在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;2 注释 一般情况下,源程序有效注释量必须在20以上。 说明:注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。 1、说明性文件(如头文件.h文件、.wsp等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明。 2、源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等。 3、注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。 4、对于所有有物理含义的变量、常量,如果其命名不是充分自注释的,在声明时都必须加以注释,说明其物理含义。变量、常量、宏的注释应放在其上方相邻位置或右方。 5、将注释与其上面的代码用空行隔开。 6、对变量的定义和分支语句(条件分支、循环语句等)必须编写注释。 说明:这些语句往往是程序实现某一特定功能的关键,对于维护人员来说,良好的注释帮助更好的理解程序,有时甚至优于看设计文档。 7、避免在一行代码或表达式的中间插入注释。 说明:除非必要,不应在代码或表达中间插入注释,否则容易使代码可理解性变差。 8、通过对函数或过程、变量、结构等正确的命名以及合理地组织代码的结构,使代码成为自注释的。 说明:清晰准确的函数、变量等的命名,可增加代码可读性,并减少不必要的注释。 9、在代码的功能、意图层次上进行注释,提供有用、额外的信息。 10、注释应考虑程序易读及外观排版的因素,使用的语言若是中、英兼有的,建议多使用中文,除非能用非常流利准确的英文表达。 3 标识符命名 3-1:标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。 3-2:命名中若使用特殊约定或缩写,则要有注释说明。 3-3:自己特有的命名风格,要自始至终保持一致,不可来回变化。 4 可读性 4-1:避免使用不易理解的数字,用有意义的标识来替代。涉及物理状态或者含有物理意义的常量,不应直接使用数字,必须用有意义的枚举或宏来代替。 4-2:源程序中关系较为紧密的代码应尽可能相邻。 5 函数、过程 5-1:对所调用函数的错误返回码要仔细、全面地处理。 5-2:明确函数功能,精确(而不是近似)地实现函数设计。 5-3:在同一项目组应明确规定对接口函数参数的合法性检查应由函数的调用者负责还是由接口函数本身负责,缺省是由函数调用者负责。 5-4:函数的规模尽量限制在200行以内。 5-5:一个函数仅完成一件功能。 5-6:为简单功能编写函数。 5-7:避免设计多参数函数,不使用的参数从接口中去掉。 5-8:非调度函数应减少或防止控制参数,尽量只使用数据参数。 5-9:检查函数所有参数输入的有效性。 5-10:检查函数所有非参数输入的有效性,如数据文件、公共变量等。 5-11:函数名应准确描述函数的功能。 5-12:让函数在调用点显得易懂、容易理解。 5-13:避免函数中不必要语句,防止程序中的垃圾代码。 说明:程序中的垃圾代码不仅占用额外的空间,而且还常常影响程序的功能与性能,很可能给程序的测试、维护等造成不必要的麻烦。 5-14:功能不明确较小的函数,特别是仅有一个上级函数调用它时,应考虑把它合并到上级函数中,而不必单独存在。 说明:模块中函数划分的过多,一般会使函数间的接口变得复杂。所以过小的函数,特别是扇入很低的或功能不明确的函数,不值得单独存在。 5-15:减少函数本身或函数间的递归调用。 6 可测性 6-1:在同一项目组或产品组内,要有一套统一的为集成测试与系统联调准备的调测开关及相应打印函数,并且要有详细的说明。 说明:本规则是针对项目组或产品组的。 6-2:在同一项目组或产品组内,调测打印出的信息串的格式要有统一的形式。信息串中至少要有所在模块名(或源文件名)及行号。 说明:统一的调测信息格式便于集成测试。 6-3:在进行集成测试/系统联调之前,要构造好测试环境、测试项目及测试用例,同时仔细分析并优化测试用例,以提高测试效率。 说明:好的测试用例应尽可能模拟出程序所遇到的边界值、各种复杂环境及一些极端情况等。 6-4:正式软件产品中应把调测代码去掉。 说明:加快软件运行速度。 7 程序效率 7-1:在保证软件系统的正确性、稳定性、可读性及可测性的前提下,提高代码效率。 说明:不能一味地追求代码效率,而对软件的正确性、稳定性、可读性及可测性造成影响。 7-2:局部效率应为全局效率服务,不能因为提高局部效率而对全局效率造成影响。 7-3:循环体内工作量最小化。 说明:应仔细考虑循环体内的语句是否可以放在循环体之外,使循环体内工作量最小,从而提高程序的时间效率。 7-4:仔细分析有关算法,并进行优化。 7-5:在多重循环中,应将最忙的循环放在最内层。 7-6:尽量减少循环嵌套层次。 7-7:避免循环体内含判断语句,应将循环语句置于判断语句的代码块之中。 说明:目的是减少判断次数。循环体中的判断语句是否可以移到循环体外,要视程序的具体情况而言,一般情况,与循环变量无关的判断语句可以移到循环体外,而有关的则不可以。 8 质量保证 8-1:在软件设计过程中构筑软件质量。 8-2:代码质量保证优先原则 (1)正确性,指程序要实现设计要求的功能。 (2)稳定性、安全性,指程序稳定、可靠、安全。 (3)可测试性,指程序要具有良好的可测试性。 (4)规范/可读性,指程序书写风格、命名规则等要符合规范。 (5)全局效率,指软件系统的整体效率。 (6)局部效率,指某个模块/子模块/函数的本身效率。 (7)个人表达方式/个人方便性,指个人编程习惯。 8-3:过程/函数中申请的(为打开文件而使用的)文件句柄,在过程/函数退出之前要关闭。 说明:分配的内存不释放以及文件句柄不关闭,是较常见的错误,而且稍不注意就有可能发生。这类错误往往会引起很严重后果,且难以定位。 示例:下函数在退出之前,没有把分配的内存释放。 /求西安80高斯坐标转西安80的地心坐标 / 【in】pt中x=E,y=N;以米为单位 void xian80_to_centro(wkPoint &pt) wkTrans xian80, centro80; jectCreate(proj4_xian80); jectCreate(+proj=geocent +proj4_xian80_ellps); if (!USE_H) pt.z=0; ject(pt, centro80); 应改为如下。 WalkLan编码规范 void xian80_to_centro(wkPoint &pt) wkTrans xian80, centro80; jectCreate(proj4_xian80); jectCreate(+proj=geocent +proj4_xian80_ellps); if (!USE_H) pt.z=0; ject(pt, centro80); jectFree(); jectFree(); 8-4:编程时,要防止差1错误。 说明:此类错误一般是由于把“=”误写成“=”误写成“”等造成的,由此引起的后果,很多情况下是很严重的,所以编程时,一定要在这些地方小心。当编完程序后,应对这些操作符进行彻底检查。 8-5:要时刻注意易混淆的操作符。当编完程序后,应从头至尾检查一遍这些操作符,以防止拼写错误。 说明:形式相近的操作符最容易引起误用,如C/C+中的“=”与“=”、“|”与“|”、“&”与“&”等,若拼写错了,编译器不一定能够检查出来。 8-6:有可能的话,if语句尽量加上else分支,对没有else分支的语句要小心对待;switch语句必须有default分支。WalkScript体系结构n WalkScript 是在Walk平台基础上构建起的一个Walk语言解释器。该解释器依附于Walk软件产品,可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论