基于ArcEngine开发的心得体会

地理信息系统( GIS)是一个采集、存储、管理、分析、显示和应用地理信息的计算机系统, 是处理、分析和应用海量地理数据的交叉学科。经过几十年的发展, 目前, 组件式G IS技术已经成为G IS软件开发的主流。

目前, 地理信息系统已广泛地应用于众多领域,为各个相关行业提供了高效的空间信息处理能力和强大的决策支持服务。为满足需求,GIS 开发人员需要具有构建领域专用且易于使用的应用软件的能力,软件需将广泛应用的GIS技术与友好用户的经验结合起来。这些软件如果从头开始构建, 将是一项繁冗的开发工作, 会很耗费时间, 并且成本不菲。现阶段,组件技术已经广泛的被引入到GIS 软件的设计与开发中, 使得高效便捷的开发应用型地理信息系统成为现实。国内外著名的GIS厂商都相继推出了他们的GIS组件, 其中以EsRI公司的组件产品Arcobjet, 最为著名。ArcGIs Engine是一组打包的核心ARCobjects组件, 相比Arcobect, 降低了开发难度, 也大大提高GIS应用程序的开发效率。

ArcGIS是一组集成家庭式的GIS软件产品, 可在单项工程、工作组以及企业级项目中用于发布完善的、可升级的GIS系统。它是基于一个可共享的GI S组件一Arcobjects 的公用库来构建的。Arcobjects是基于MicmsoftCOM 技术所构建的一系列COM组件产品, 不是为最终用户而是专门为开发人员提供的二次开发软件, 通过Arcobjects, 用户可以非常方便地开发出功能强大的GIS 应用系统。但它不是一个独立的应用产品, 不能脱离Arc GIS平台, 只有在购买ArcGIS产品后, 才能利用其提供的组件对象进行应用开发。

ArcGIs Engin是一组完备的并且打包的嵌人式GIS组件库和工具库, 开发人员可用来创建新的或扩展已有的桌面应用程序。使用Arc GI S E n gi ne , 开发人员可以将GI S 功能嵌人到已有的应用软件中, 或嵌入到商业生产应用软件中, 还可以创建集中式自定义应用软件, 并将其发送给机构内的多个用户。ArcGISEngine由两个产品组成: 构建软件所用的开发工具包以及使已完成的应用程序能够运行的可再发布的Runtime (运行时环境)。ArcGIs Engine开发工具包是一个基于组件的软件开发产品, 可用于构建自定义Gls和制图应用软件。ArcGISE ngineRuntime是一个使终端用户软件能够运行的核心Arcobjects组件产品, 并且将被安装在每一台运行AGls Engine应用程序的计算机上。AGls Engine 二次开发包包括三个关键部分:

(l) 控件是ArcGI用户界面的组成部分, 包括地图控件和框架控件, 地图控件提供了可视化的组件允许开发者对数据进行渲染、交互、分析等, 比如地图控件: MapControl、page layout Control 和Seene Control;框架控件TOolbar Control 和TOC Control 在平常G IS功能中大部分都与地图控件打交道, 可以把地图控件与框架控件进行关联, 能快速直接反映地图控件中图层的变化及可见性。

(2) 工具条是GI S 工具的集合, 在应用程序中用它来和地图及地理信息交互。工具包括平移、缩放、点击查询和与地图交互的各种选择工具。工具在应用界面上用工具条的方式展现。通过调用一套丰富的常规的工具和工具条, 建立定制应用的过程被简化了。开发者可以很容易地将选择的工具拖放到定制应用中或创建自己定制的工具来实现与地图的交互。

(3 )对象库是可编程Arcobjects组件的集合, 包括几何图形到制图、GIS数据源和geodata base等一系列库。在Windows , UNIX, 和LINUX平台的开发环境下

使用这些库, 程序员可以开发出从低级到高级的各种定制的应用

ArcGIS Engine的特点

ESRI的ArcGIS Engine是一个用于建立自定义独立地理信息系统( GIS)应用程序的平台, 支持多种应用程序接口( Application Program Interfaces, APIs), 拥有许多高级G IS功能, 而且构建在工业标准基础之上。ArcGIS Engine是开发人员用于建立自定义应用程序的嵌入式GIS组件的一个完整类库。开发人员可以使用A rcGIS Engine将G IS功能嵌入到现有的应用程序中。ArcGIS Engine包括两个产品: Engine开发包, 是组件、APIs和工具的集合, 是创建自定义的GIS 和制图应用的工具包; Engine运行时, 是为了运行自定义的Engine应用的可分发的A rcObjects。

A rcGIS Engine的功能非常强大, 用Engine开发可以实现以下功能:

( 1)地图交互: 地图漫游、缩放、识别、书签等;

( 2)地图创建: 地图显示、投影、符号化、分类、标注、打印等;

( 3)地图分析: 地图选择、计算, 缓冲区分析, 切割等;

( 4)数据创建: 数据创建、编辑, 地理编码, 读写MXD文件;

( 5)应用程序的开发;

( 6)控件开发等。

ArcGIS Engine提供了大量的高级开发控件, 使开发人员可以建立或扩展GIS应用程序和创建高质量的地图用户界面。这些控件包括MapCon trol、PageLayout Control、ReaderControl、TOCControl 和ToolbarControl。GlobeControl和SceneContro l也可以获得, 但使用这两个控件的应用程序必须具有ArcGIS Engine的3D分析选项 。ArcG IS Engine 包括了ArcOb jects 的核心功能。ArcObjects组件库的每一个组件中定义有不同的类,类下面定义了不同接口, 接口中包含不同的属性和方法。类之间有类型继承( TypeInheritance)关系, 接口之间有互相调用( Query Interface )及相互继承关系( Interface inheritance)。当使用ArcObjects对象库开发具体功能时, 为了获得实现具体功能所需要的方法(函数), 需要从这些封装了方法(函数) 的COM 类中取得接口的引用。

类型库的引入:

为了在VisualBasic中使用ArcGIS对象, 首先必须引用包含该对象的ESRI库。选择VisualBasicProject菜单中的References来显示References对话框, 设置了对象库的引用后, 就可以在对象浏览器中找到特定的对象及其方法和属性了。然后点击工程菜单下的组件( Components), 选中Controls下的ESRIM apControl、ESRI TOCControl、ESRI Too lbarControl确定后可以看到工具箱里多了几个控件图标, 通过这几个控件, 我们可以实现一些最基本的功能。

信息查询:

信息查询功能主要实现由属性查询空间对象, 由空间对象查询属性以及基于空间关系的查询这3种类型的查询, 下面分别介绍在V isual Basic中如何利用

A rcG IS Engine来实现这3种类型的查询。

( 1)由属性查空间对象

根据空间对象的某些属性信息, 查找符合一定条件的空间对象在实际应用开发过程中是一种很常见的应用。如果要实现由属性来查找空间对象的位置信

息, 首先要使用ArcGIS Engine的查询过滤器QueryFilter, 通过WhereClause属性来设置查询的条件, 查询条件可以是简单的SQL查询条件, 也可以是较复杂的组合SQL查询条件, 对目标要素类使用该查询条件即可获得符合条件的要素集。 ( 2)由空间对象查属性

由空间对象查询属性时, 一般采用用户交互方式,当用户选择某些空间对象以后, 根据用户的选择结果,利用ArcGIS Engine的要素属性信息集合, 遍历空间对象的属性域, 就可以查询到用户选择空间对象的属性信息。

( 3)空间关系查询

地理实体具有属性特征、空间位置特征和实体间的相对空间位置关系(拓扑关系, Topology )。空间拓扑关系为地理信息系统数据库的有效建立、空间查询、空间分析、辅助决策等提供了最基本的关系。地理实体之间的空间区位关系可抽象为点、线、多边形之间的空间几何关系。空间实体之间的主要关系有相等( Equals)、包含( Contains)、包含于(W ithin)、相交( Crosses)、相离( Disjoint)、叠加( Overlaps)、相接(Touches)。空间关系查询的实现原理是: 首先选择一个空间对象作为空间查询的目标对象, 然后在一个要素类中,分别分析各个要素与目标对象之间的空间关系, 如果要素与目标对象的空间关系与查询条件中设置的空间关系相同, 那么该要素就是符合条件的查询结果。

组件式开发技术现在已经成为GIS开发的主流, 采用组件式结构的地理信息系统, 与传统的开发方式相比,可以降低开发难度, 提高开发效率, 增强系统的灵活性和开放性。ArcGIS Engine是ESRI公司最新发布的组件库产品, 利用Eng ine, 开发人员可以完全脱离ArcGIS环境,在应用程序中实现对地图的操作、编辑与分析, 再结合VisualBasic简单易用的界面开发功能, 可以快速的开发出功能强大, 适应用户实际需求的GIS软件。

 

第二篇:关于教学资源开发的心得体会

关于教学资源开发的心得体会

在信息技术发展的今天,单纯的教材内容显然已经不能适应新形势的要求,因此,教材在教学中要联系生活实际,吸收并引进与现实、生活、科技等密切相关的具有时代性、地方性的数学信息资料来处理教材,重组教材内容。经过重组的教材由于具有开放性和弹性,给老师留有开发和选择的空间,也能给学生留出选择和拓展的余地,以满足不同学生学习和发展的需要,为此,教师要增强课程意识,重视课程资源的利用和开发,使教学资源更加丰富多彩。现结合教学谈几点自己的做法。

一、充分开发和利用教材资源。

教材是主要的课程资源,但不是唯一的课程资源,新教材已充分显示其优越性,它已不仅仅局限于学科知识,更有利于学生利用已有的知识和经验主动地探索知识的发生与发展,有利于培养学生的创新精神和实践能力,所以新教材的编写符合课程标准的要求,遵循了学生的心理发展特点,从学生的兴趣与经验出发,以多样、有趣、富有探索性的教材展示了教育的内容,因此,在教学中要立足教材,要充分开发和利用教材资源。

例如,我在教学四边形这一课时,充分的利用主题图,

这幅图是学校操场示意图,是学生比较熟悉的生活场景,学生感到非常亲切、非常有趣,学生从熟悉的主题图中找出许多关于“图形”的信息。如:长方形的篮球场、通道、窗户;正方形的地砖;平行四边形的推拉门、楼梯护栏等。联系学生的生活经验,丰富其对图形特别是四边形的感性认识,并从整体上感知自己生活中的几何图形。

二、运用生活素材,开发和利用教学资源。

教学来源于生活,生活离不开数学,在教学中,我善于运用生活素材,激发学生的学习兴趣,帮助学生学好数学。例如,在教学万以内数的读法时,我了解到许多学生早已会读很多万以内的数了,只是个别中间或末尾有零的数在读时有点困难,因此,再上课的前一天,布置调查作业,请学生收集日常生活中他们见到过的万以内的数,学生从报纸、杂志、超市广告等材料中发现了许多万以内的数。如:电脑每台4805元,洗衣机2800元。在课堂上,首先让每个学生把他们所找到的数在四人小组内交流,然后每组选择两个最喜欢的数写在卡片上后贴在黑板上,接着请学生将黑板上的数进行分类,学生很快分出了四类:没有零的数;中间有零的数;末尾有零的数及中间末尾都有零的数。没有零的数大家都会读了,每个学生自己读一读,而中间或末尾有零的数的读法,通过生生互教、生生互学的形式总结读法,而本节课

的重点则是解决中间、末尾有零的数的读法。掌握了数的读法后,在练习中又设了让学生读一读珠穆郎玛峰的高度,人民大会堂的座位数,泰国象的重量,学校图书馆的藏书数,这样的设计,将教材中枯燥,缺少生活气息的题材改编成学生亲临的活生生的题目,使学生感受到生活中处处皆数学,从而激发他们学习数学的兴趣,提高应用数学的能力。

三、学生的知识经验是学习数学的重要资源。

学生在运用已有知识解决问题的过程,不仅仅是对已学知识的巩固,还有在此基础上对知识的进一步理解,这种理解是新知的最原始状态,是知识与方法迁移的结果,学生多次运用已有知识而获得的经验。例如,我在教学口算乘法时,20*4等于多少,放手让学生思考,给予学生自主探索、合作交流的空间,学生在表内乘法的基础上迁移,类推出口算方法,并用自己的方法展示思维的过程和结果,提高了口算能力,这样设计能激发学生积极的心态,调动原有的知识和经验尝试解决新问题,在学生自身的再创造活动中建构数学知识。

四、充分开发和利用校内外教学资源。

我们知道教材不是唯一的教学资源,要善于开发和利用校内外教学资源,拓宽学生的知识面,丰富学生的视野,让学生体会到数学与生活的紧密联系,在生活中学习数学,体

会其应用价值。例如,我在教学元、角、分时,让学生收集一些超市的价格广告,课堂上进行出示,让学生读出商品价格,并运用图片让学生提问题、解决问题。大大激发了学生的学习兴趣,学生很快掌握了有小数的元角分的读法。又如,教学周长时,让学生量一量课桌的长和宽,算一算周长;测量一下房间的长和宽、餐桌的长和宽,并算出周长,让学生在动手操作活动中,通过量一量、算一算,进一步理解了周长的含义。

总之,只要我们善于观察、善于发现、善于创造运用,课程资源就会取之不尽、用之不竭。以上是我在教学中的一些尝试,今后还需不断的探索,让更多的课程资源为我们教学所服务,让课堂变得更加生动、活泼、有生机。

相关推荐