ArcView脚本培训教程

上传人:飞*** 文档编号:32965897 上传时间:2018-02-13 格式:DOC 页数:45 大小:173KB
返回 下载 相关 举报
ArcView脚本培训教程_第1页
第1页 / 共45页
ArcView脚本培训教程_第2页
第2页 / 共45页
ArcView脚本培训教程_第3页
第3页 / 共45页
ArcView脚本培训教程_第4页
第4页 / 共45页
ArcView脚本培训教程_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《ArcView脚本培训教程》由会员分享,可在线阅读,更多相关《ArcView脚本培训教程(45页珍藏版)》请在金锄头文库上搜索。

1、GIS 二次开发(AVENUE 编程)1、AVENUE 基础1.1 AVENUE 简介ArcView 提供了显示、浏览、查询与分析地理数据的方法。AVENUE 是 ArcView 面向对象的程序设计语言。ESRI 公司开发 AVENUE 的目的是为用户提供按自己的要求建立 ArcView 应用程序。用户编写的 AVENUE 程序可以在任何具有ArcView 的平台上运行。ArcView 自身的某些部分以及许多直接服务于用户的功能都是用 AVENUE 实现的。利用 AVENUE 可以做如下工作:定制 ArcView 的界面:可以去除不需要的控制单元,改变控制单元的排列及显示形式。如我们可以汉化

2、ArcView 的界面。开发新的功能:用户可以通过 AVENUE 开发 ArcView 没有提供的功能。连接 ArcView 和其它应用程序:在工作中可能同时用到几个软件,如利用 WORD 进行文字处理,利用 EXCEL 管理数据,利用 ArcView 分析地理数据。有时侯需要在软件之间进行数据交换,如利用 ArcView 更新 EXCEL 数据,执行其它的应用程序等。按用户的要求开发应用系统:根据用户要求,包括功能、界面、人机对话方式等开发应用系统。1.2 Script (脚本)编辑器ArcView 提供了 Script (脚本)编辑器用于建立、编译和修改 AVENUE 程序(即 Scrip

3、t) 。与其它 ArcView 文档一样,Script 编辑器也有一套自己的菜单、按钮和工具。ArcView 中的每一个标准菜单、按钮和工具都有相应的 Script,这些 Script 称为系统 Script。通过 Script 编辑窗口可以打开和编辑 Script。可以通过对系统 Script 的修改来产生新的满足要求的 Script,如我们希望在显示某一特征时同时进行放大,可以把放大工具的 Script 文件增加到显示属性信息工具的 Script 中。任何 Script 都是与项目文件一同存储的,但也可以把它存储为文本文件。Script 输入Script 编辑器提供各种控制单元,帮助用户创

4、建 Script 源代码。源代码的输入有三种方式:从键盘输入:可以将 AVENUE 的语句直接从键盘输入到 Script 窗口。ArcView 提供了方便编辑操作的按钮,可以实现文本内容的剪切、粘贴等。装载文本文件:用户可以使用该按钮 选择某个文本文件,并将它插入到 Script 窗口中。被装载的文本文件可以用任何一种文本编辑器编辑。拷贝已有的 Script:当用户点击该按钮 系统将打开 Script 管理器,选择需要拷贝的 Script,该 Script 将插入到 Script 编辑窗口中。编译和运行 Script点击编译(Compile)按钮 ,AVENUE 将检查源代码的语法错误。如果没

5、有错误,用户就可以执行该 Script。如果 Script语法有错,用户必须根据错误信息,修改并再次编译,一直到编译没有错误。点击运行(Run )按钮 ,将执行经编译的 Script。以下是一个 Script 及运行后的结果。Script 的调试Script 编辑器提供了一些调试按钮,用于帮助用户调试 Script 代码。逐步追逐调试按钮 : 当 Script 已经正确编译,利用该按钮可以使用户逐步跟踪 Script 的运行。断点按钮 :可以通过设置断点中止 Script 的正常运行。如果 Script 在编译过程中出错,光标会停留在 Script 出错的地方。这时。可以在此行之前设置一个断点

6、,然后编译并运行 Script,并在断点处检查变量的值。该按钮是开关按钮。显示变量值的按钮 :可以显示全局和局部变量的值。1.3 事件(Events)与 Script 的运行当用户点击一个按钮、在某个文档窗口使用一个工具或更新一个文档,都称为事件的发生。AVENUE 支持三种类型事件:点击(Click) 、应用(Apply)和更新( Update) 。点击:当用户点击一个按钮、一个菜单子项或工具时,就发生了一个点击事件,这个事件会立即引起相应的 Script 的执行。应用:当用户在某个窗口中使用某个工具,就发生了一个应用事件。同样,该事件也会立即引起相应的 Script 的执行。更新:当文档的

7、状态发生变化(例如,向视图中加入主题,激活表格中的某个字段)时,就会发生一个更新事件。不同的控制单元识别不同类型的事件。按钮和菜单子项识别点击和更新事件。工具识别应用、点击和更新事件。菜单仅识别更新事件。菜单菜单子项按钮工具 更新点击点击点击 更新更新应用 更新在 ArcView 应用程序的总体设计和建立符合用户需求的 ArcView 界面时,必须考虑到这些差异。例如,如果编写的 Script需要用户从视图中选择时,Script 必须与某个工具的 Apply 事件相联。1.4 定制对话框( Customize Dialog Box)定制对话框提供了可视化的框架,用户可以利用它,按照自身的要求安

8、排 ArcView 的菜单、按钮、和工具。Arcview 提供了两种方法打开定制对话框:从项目的 Project 菜单中选择 Customize 项,或者两次点击按钮或工具条的空白区。双击空白处定制对话框有 6 个部分:文档类型(Document Type) 用户可以在此选择具有所需控制单元的文档类型。控制单元的分类(Control Category) 在此选择用户所需的控制单元集合。用户作出选择后,对应的控制单元集合就会显示在控制单元编辑器(Control Editor) 。控制单元属性列表(Properties List) 与选中的控制单元及当前的设置相关的所有属性信息显示在控制单元属性列

9、表中。通过属性列表可以修改和设置菜单、按钮、工具的事件响应程序及属性信息。Reset 按钮 “Reset”按钮用于将当前文档类型重新设置为初始的安装设置。初始设置存在 ArcView 的安装目录的 ECT 子目录下的 default.apr 文件中。Make Default 按钮 使用“Make Default”按钮将当前文档设置为用户的缺省设置。它替代用户家目录下 default.apr 文件。控制单元编辑器中有一系列的按钮,它随着文档类型和控制单元的不同而不同。然而有三个按钮保持不变,New、Separator、Delete。New 按钮是新建一个控制单元,Separator 是分割不同类

10、的控制单元,Delete 是删除控制单元。下面以 View 文档为例来介绍控制单元编辑器的操作。上图是上海市河网演变系统的一个界面,是通过定制对话框用户化和汉化的结果。汉化操作是对控制单元 Label 属性修改的结果,由于 Arcview 地理信息系统软件的内核支持双字节,所以只需在 Label 中输入汉字即可。首先选中“File”,双击其 Label 属性,输入 “文件”,如图所示,确定后就可得到上图所示的结果。在上海市河网演变系统中没有 Graphics 菜单,我们可以通过两种方法达到这一结果。一种是选中此菜单按 Delete 钮删除,这样同时删除其子菜单,且无法恢复,因此一般不推荐此方法

11、;第二种是选中此菜单修改其 Invisible 属性,把“False”改为“True”即隐藏此菜单,这种方法可以再次修改 Invisible 属性而恢复原先的情况。New 按钮可以在选中的控制单元之后创建一个新的控制单元。选中 Graphics 按 NewMenu,则产生一个新的菜单,在其Label 属性中输入 “图层”,选中“图层” 按 NewItem 生成子菜单。如图所示:以上是对菜单的操作,对按钮(Buttons)和工具(Tools )的操作与之相类似。不同的是按钮有一个 Icon(图标属性) ,双击弹出图标管理器,从中选择或导入所需图标。如图所示:至于快捷菜单(Popups)除了本身响

12、应右击事件外,与一般菜单的设计完全相同。建立 Script 与控制单元的关联建立 Script 与控制单元关联的方法是双击控制单元属性列表中的事件属性,并从出现的 Script 管理器中选择当某个事件发生时需要执行的 Script。一个 Script 可以同时与多个控制单元建立关联。例如,诱发更新事件(如使控制单元生效或无效)的 Script 可以为多个控制单元所共享。建立 Script 和项目的关联在项目属性表中可建立 Script 与项目的启动(Startup)与关闭(Shutdown)事件的关联。当项目文件打开时,StartUp事件执行一个 Script ,而关闭项目文件时,ShutDo

13、wn 事件执行另一个 Script。这类事件可用于项目的环境初始化,例如,数据库联结,删除临时文件或表格。视图、表格、图表等其它一些文档打开或关闭时也执行 Script。2 AVENUE 是如何工作2.1 理解对象AVENUE 是面向对象的程序设计语言。面向对象程序设计实际上是把复杂的问题分解成很多单元(称为对象) ,这些对象是封装的,包含了数据和数据操作的代码。编程人员不需要去了解对象内部情况,如果要操作这些对象,只要发送相应请求。如要制造汽车,不需要了解汽车如何生产,只要发送命令。对象有特性(properties)、动作( Actions)和状态(States) 。如汽车,型号、颜色、车门

14、数等特性;有启动、停车、左转、右转等动作;有方向(北) 、速度(60mph)等状态。一个对象可以以很多方式与其它对象联系。一个对象可以包含其他对象,如汽车可以有音响、方向盘和座位等。一个对象也可以利用其他对象,如汽车使用燃料运行。对象也可以被其他对象利用,如某人驾驶汽车。在 ArcView,我们操作的每一事都是对象,打开一个视图,我们就操作视图对象;增加一个主题到视图,我们就操作主题对象;增加按钮到界面,我们就操作按钮对象;利用用户界面的操作实际上就操作 ArcView 对象。面向对象的编程就是操作对象。在 ArcView 中,除了项目、视图和主题是对象外,还有一些我们原先可能不认为是对象,如

15、数字和文本,Nil空对象,布尔值。具有相同特性的对象被组织成类。在某一类中的所有对象被定义成有相同特性,同一类中产生的对象是类的例子(instances) ,如图中下面两辆车是车这一类型的例子,具有车这个类型的特性(如,有轮子、车门等) 。同样,在ArcView,View1、View2、View3 都是 View 这一类型的例子。类分抽象类和具体类。抽象类没有直接的例子,它仅用于组织所有下级类共有的特性。具体类有自己直接的例子。类可以通过层次图(class hierarchy)进一步组织,定义类之间关系。类关系可以以三种方式描述:继承、集合和关联。演示这些关系的一种方式是通过对象模式图。对象模

16、式图的基本组成是方框(表示类)和线(连接类显示类之间关系) 。通过分析类模式图,我们可以类及对象之间的关系。继承表示一个类型,轿车是汽车的一个类型。汽车是一个超类,定义了所有汽车的一些特性。子类可以继承超类定义的特性。通过继承,层次中的特性只需要定义一次,没有继承的特性在类本身中定义。继承的符号是一个开放的三角形。汽车轿车 卡车 救护车 同样,ArcView 中,视图是文档的一种类型,视图继承文档的特性,如包含在一个窗口,有图形用户界面等,但它也定义了自己的特性,如视图有主题和内容表。集合表示组成关系,一辆汽车包括一个发动机,四个轮胎,一个汽车音响,座位。当然,一辆有很多东西组成,在示意图显示所有内容是不可能的。在 ArcView 关系图上,实际上只显示最重要的关系。集合的符号是菱形。另外,一个实心圆表示不止一个,空心圆表示可选。关联表示类之间物理上或概念上的联系;汽车用汽油来运行,同样,汽车需要人来驾驶。单一线指示一个相关对象。对象模式图显示了类之间的关系。一旦理解了这些关系,就可以操作属于某一类的对象。如放大音响声音,首

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号