Avenue是ArcView内置的程序语言及开发环境。作为一种.docVIP

Avenue是ArcView内置的程序语言及开发环境。作为一种.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Avenue是ArcView内置的程序语言与开发环境。作为一种“面向对象的程序语言”,它可以完成ArcView所有的对象(包括请求)的管理工作。可以说,ArcView的图形用户界面及其所有的文档操作与运行都离不开Avenue的语言环境与Avenue脚本文档。 Avenue有许多用途。如前所述,您可以使用Avenue语言去自定义ArcView 的工作界面与工作方式。您可以创建您所需要的GUI,为交互的图形控制项设置内部属性。您甚至可以用Avenue语言开发出一种基于GUI的完整的应用程序。 此外,您还可以将已经编写好的 Avenue 脚本与诸如打开或关闭一个项目一类的其它操作事件相链接。 二、面向对象程序设计语言的基本原理 近年来,面向对象的系统与程序语言普遍受欢迎。描述一种“面向对象的环境”的最好的方式也许就是将其与其他更多的传统程序设计环境相比较。在如同Fortran 或 C 的传统程序语言环境之中,不同语言的差别主要表现在“数据”与展示数据的“动作”之间。这些以编程工具建造的应用程序经常分享着一个强大的中心焦点。 这样,在那些象“速算表”或者“Dbase”管理系统的应用程序之间,一个明显的区别就表现在应用程序与被应用程序操纵的数据之间。 然而,在一个“面向对象的系统”之中,一切都被视作“对象”。数据是对象、应用程序是对象,甚至连用户界面都被看成是一个统一的系统环境之中的对象。在这样的程序语言之中,描述数据的对象与那些专用于数据建模的工具对象之间的区别之不过是被指定的内部属性不同罢了。 在这种系统中,各个对象之间的关系由一个正式建立的等级分类所圈定。一个类就是一个由一些具有相似的普通属性的对象所构成的模板。一个孤立的对象就是一个类的特例。比如:一个项目可能包含许多“视图”,而其中的每一个视图就是一个“视图类”的特例。 因为“类”是对象,所以它们可以依次与更高级的或者是更多的同级类发生联系(如图 7-12)。这样,视图类就应是比其自身更普遍的文档类的成员,而文档类的主要成员除过“视图类”之外,还可能包括“表格类”、“图表类”、“图面配置类”以及“脚本编辑器”等。所有文档类的成员都继承着“文档总类”的通用属性。而组成类的单独成员则继承着将它们统一在一起的附加属性。 “对象”通过相互传递“请求”而相关。“请求”是一种机制,它可以控制一个对象。如打开视图的请求、返回一个对象的相关信息的请求、获得当前活动视图的请求等等。以“获得当前活动视图”的请求为例来说明:该请求将作为一个对象被发送到 Avenue 中,结果返回了另一个对象,该对象就是包含了视图名称的字符串。 一个 Avenue 语句是由“对象”以及发送给对象的“请求”所构成的。返回的对象既可以被贮存到一个变量之中,也可以作为另一种“请求”再次传递出去。当然,“请求”也可以接受“条件”,只有当条件符合时才会返回一个对象。比如:一种只是为了“寻找一个具有指定名称的主题”的请求,就必然要接受一个“条件”。 三、Avenue脚本 一个Avenue脚本,实质上就是一种由一系列Avenue语句组成的,能够完成特定任务的计算机程序。下面讨论两个Avenue脚本的例子: 例一:与“放大”(Zoom In)菜单项相关联的Avenue脚本 程序背景:从视图菜单栏内的“视图”菜单中选取“放大”(Zoom In)项,其对应的Avenue脚本控制语句如下: theView=av.GetActiveDoc theView..GetDisplay.ZoomIn(125) 第一个语句是将“请求”GetActiveDoc 返回的“对象”av指派给变量theView。 第二个语句的意思是:将GetDisplay.对活动文档的“请求”作为返回“对象”,顺序传递给“ZoomIn”请求(注意:活动文档可以返回当前视图能够被拖拉选中的任意屏幕区域)。放大(ZoomIn)请求会将语句给定的数值作为其操作的依据条件,上例中数值为125。 这样,在以上两行脚本中,活动视图的范围被“对象”确定,而且由指定的 125%的数值因子而产生最终的缩放结果。 另一方面,用户也可以通过单击“视图工具条”中的“放大”工具来完成相同的缩放操作。对于缩放所依据的条件,您要么在视图中用“放大”工具拖拉出一个您所希望的矩形放大框,要么直接用鼠标点击出一个放大中心点,两种条件与方式都可满足视图放大的需要。如果在一个Avenue脚本中要同时照顾两种方式,则相应脚本如下: 例二:与“放大”工具相关联的Avenue脚本 theView=av.GetActiveDoc r=theView.ReturnUserRect d=theView.GetDisplay if(r nil) then d.ZoomToRect(r) else

文档评论(0)

0520 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档