已阅读5页,还剩103页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
gis设计与开发第一章 gis及其设计与开发概述41.1 gis及其发展历史41.1.1 gis的定义41.1.2 gis的组成要素51.1.3 gis的发展历史71.2 gis软件工程概述91.2.1 gis软件工程的基本原理91.2.2 需求和可行性分析111.2.3 总体设计111.2.4 详细设计121.2.2 gis开发模式121.3 arcgis与arcobjects14第二章 地图控件162.1 mapcontrol控件的接口162.2 mapcontrol控件的属性162.3 mapcontrol控件的方法172.4 扩展实例:放大和缩小212.4.1 使用可视化组件对象controls212.4.2 使用工具条控件toolbarcontrol21第三章 地图显示223.1 地图对象map223.1.1 map对象的主要接口223.1.2 map对象的主要相关对象233.2 图形外观233.2.1 markersymbol对象233.2.2 linesymbol对象273.2.3 fillsymbol对象283.2.4 textsymbol对象313.2.5 3dchartsymbol对象313.3 地图着色313.3.1 simplerenderer对象323.3.2 classbreaksrenderer对象323.3.3 uniquevaluerenderer对象353.3.4 proportionalsymbolrenderer对象363.3.5 其他着色方案383.4 地图标注383.4.1 textelement标注383.4.2 annotation注记403.5 可视化交互423.5.1 生成图形元素423.5.2 移动图形元素节点453.5.3 移动图形元素493.5.4 其它displayfeedback对象523.6 扩展实例:onextentupdated事件55第四章数据操作584.1 地理数据库模型geodatabase584.2 工作空间workspace594.2.1 创建与打开工作空间604.2.2 访问工作空间的数据集614.2.3 生成要素类624.2.4 编辑要素类644.3 数据集dataset654.4 表及其相关对象674.4.1 表table674.4.2 对象类objectclass和要素类featureclass694.4.3 字段field和字段集fields694.4.4 索引index704.4.5 子类subtypes714.4.6 值域domain72第五章地图查询735.1 游标对象cursor和查询过滤对象queryfilter735.2 查询排序对象tablesort775.3选择集selectionset785.4 查询并更新要素80第六章空间分析836.1 几何形状对象geometry836.1.1 点对象point836.1.2 点集对象multipoint856.1.3 包络线对象envelope866.1.4 片段对象segment866.1.5 路径对象path和环对象ring886.1.6 多义线对象polyline和多边形对象polygon886.2 几何形状集合接口886.2.1 几何形状集合接口igeometrycollection886.2.2 片段集合接口isegmentcollection896.2.3 点集合接口ipointcollection896.3 空间拓扑分析896.3.1 缓冲区分析906.3.2 集合分析916.3.3 其它分析946.4 空间关系分析986.5 空间距离分析1006.6 空间分析扩展:动态跟踪101第七章地图输出1047.1 打印输出1047.2 转换输出1047.2.1 栅格转换输出1057.2.2 矢量转换输出1067.2.3 转换输出对话框exportfiledialog107第一章 gis及其设计与开发概述作为一门由测量学、地理学、计算机科学、信息科学等多学科交叉而成的综合性学科,地理信息系统(geographic information system, gis)在过去的几十年中得到了飞速的发展,并建立了完整的理论与技术体系,已经成为当今信息产业中不可或缺的重要组成部分。由于gis在空间数据采集上具有灵活、快速、图形化显示等优点,而且可以对空间数据进行有效的处理和分析,所以gis已经在城市规划、环境管理、灾害评估、土地利用等诸多领域中得到了广泛的应用。gis按照其内容可以分为工具型和应用型两类。前者是一种通用的操作平台或软件包,具有空间数据输入、处理、存储、分析、输出等gis的一般功能;后者是在工具型gis基础上,根据用户需求和目的而开发的用以解决实际问题的地理信息系统。gis的设计与开发主要针对的应用型gis,本章首先概述gis的定义、组成要素和发展历史,然后阐述gis软件工程一般的gis设计与开发方法,最后介绍常用的以及在本文中所采用的开发环境和工具。1.1 gis及其发展历史1.1.1 gis的定义随着现代社会的飞速发展,信息的作用显得越来越重要,而作为信息管理与决策工作中的一种主要手段,信息系统是以计算机技术为支撑,对信息进行采集、管理、加工、处理和输出,并根据应用目的而建立的技术与组织体系。很多时候,人们在规划与决策中需要使用到地理信息,如我们所熟知的地图等,这就促使了“地理信息系统”这一信息系统类型的产生。迄今为止,不同的学者和机构对地理信息系统给予了不同的定义:1)国际标准化组织地理信息标准化技术委员会iso/tc211(international standards organization/technical committee 211)认为地理信息系统是获取地理空间数据的合成、分析和解释等结果的计算机系统。2)美国地质勘探局usgs(united states geological survey)认为地理信息系统是关于地理信息的收集、存储、处理和显示等操作的平台。3)美国联邦数字地图协调委员会ficcdc(federal interagency coordinating committee on digital cartography)关于地理信息系统的定义为:“由计算机硬件、软件和不同方法组成的系统,用来支持空间数据的采集、管理、处理、分析、建模和显示,以便解决复杂的规划和管理问题。”4)加拿大著名学者roger f. tomlinson认为地理信息系统是支持对多种地理数据进行查询和分析的数字信息处理系统。5)北京大学的邬伦等综合了国内外众多学者的观点,提出了较为综合性的定义:“以地理空间数据库为基础,采用地理模型分析方法,适时提供多种空间和动态的地理信息,为地理研究和地理决策服务的计算机技术系统。”6)我国著名学者陈述彭等则认为地理信息系统是由计算机系统、地理数据和用户组成的,通过对地理数据的集成、存储、检索、操作和分析,生成并输出各种地理信息,从而为土地利用、资源管理、环境监测、交通运输、经济建设、城市规划以及政府部门行政管理提供新的知识,为工程设计和规划、管理决策服务。然而,上述的不同定义却反映了一些地理信息系统所具有的基本特点:1)地理信息系统表现为计算机技术系统,对计算机软硬件有着很高的要求;2)地理信息系统的操作对象是地理空间数据,这也是地理信息系统所独具的丰富和复杂的数据类型;3)由于处理的是地理空间数据,所以地理信息系统往往具有庞大的数据量;4)地理信息系统以地理学、测绘学、地图制图学、计算机科学等诸多学科交叉而形成的综合学科为技术依托;5)在功能上,地理信息系统的技术优势是其对空间数据的查询和分析能力。1.1.2 gis的组成要素gis的组成要素由内到外主要有数据即地理空间数据、计算机软件、计算机硬件和用户等四部分,如图1-1所示。图1-1 gis的组成要素1)地理空间数据位于gis的最内层,包括图形数据、属性数据和时间数据。图形数据有矢量数据和栅格数据两类,前者以坐标点的方式记录以点、线、面等形式表现的抽象地理实体,并根据拓扑关系模型构建地理实体间的邻接、包含等拓扑关系;后者是用数字表示的像元阵列。属性数据描述的是地理实体所具有的位置、分布、形状等属性信息,而针对矢量数据和栅格数据,属性数据分别表现为向量模型和专题模型。此外,gis需要将空间数据和属性数据连接起来,建立相同的内部标识,以便查询和分析。2)计算机软件是按照一定的制度、法规和作业方针所建立的软件环境,包括系统软件(操作系统)、基础软件(空间数据管理软件)和gis专业软件,而gis专业软件用以实现数据输入、编辑、管理、分析和输出等gis基本功能以及特定的应用目的。3)计算机硬件是地理空间数据和计算机软件的载体,包括处理设备(计算机、工作站等)、存储设备(光盘、磁盘等)、数据输入设备(数字化仪、扫描仪等)和数据输出设备(绘图仪、打印机等)。4)用户位于gis的最外层,根据作业级别和知识水平可以分为很多层次,有一般的用户,也有高级的决策人员。由这些组成要素构成的gis系统的一般作业流程如图1-2所示:图1-2 gis的一般作业流程按照不同的分类侧重,gis可以分为很多种类型:1)按研究内容可以分为综合gis、专题gis等。2)按应用功能可以分为工具型、应用型等。3)按数据类型可以分为矢量型、栅格型、混合型等。4)按学科专业可以分为水质、森林、海洋等领域中应用的gis系统。5)按发布类型可以分为桌面型、网络型等。1.1.3 gis的发展历史gis萌芽于北美,加拿大著名测量学家roger f. tomlinson于1963年首先提出了地理信息系统的概念,并建立了世界上第一个地理信息系统cgis,用于对土地等自然资源信息进行初步的分析和管理。同时,美国哈佛大学计算机图形与空间分析实验室开发出世界上第一个通用的制图软件包symap,开启了基于图形方式(矢量数据格式)的通用地理信息系统形式。在随后的数十年间,gis得到了飞速的发展,如图1-3所示:图1-3 gis的发展历史1)起步阶段(20世纪60年代 70年代)这一阶段的发展着重于空间数据的地学处理和管理,国家及国际的相关机构开始建立,如美国城市与区域地理信息系统联合会(urisa)、美国环境系统研究所(esri)、integraph公司、erdas公司等。在此基础上,各种gis软件相继问世,商业及学术活动日益频繁。2)推广阶段(20世纪80年代)这一阶段的发展着重于空间数据查询和决策支持分析,gis系统的功能由简单走向综合,矢量和栅格技术实现了一体化。同时,遥感、gps等空间技术集成进来,数据采集和处理样式更加多样。此外,gis的使用部门从政府和专门学术机构迈进各企业和商用单位,应用领域也从传统的地理、资源和环境等扩展到众多领域。这一阶段也是gis发展中的重要时期,发生了很多标志性事件:1981年,esri arc/info gis发布;1985年,gps成为可运行系统;1986年,mapinfo公司建立;1986年,spot卫星首次发射;1987年,名为地理信息系统的国际期刊出版;1988年,美国人口调查局(united states census bureau, uscb)第一次公开发布拓扑图形整合地理编码参照(topological integrated geographic encoding and referencing, tiger);1988年,gis world 杂志首次发行;1989年,integraph 公司发布mge。3)飞跃阶段(20世纪90年代至今)这一阶段的发展着重于gis的社会化与国际化,地理信息科学或地球信息科学这一包括基础理论和技术应用在内的完整学科开始形成。在gis开发中,组件式gis成为主流的发展方向,网络及面向对象开发技术的应用使得gis系统更加成熟,并具有很强的共享性和社会化程度。此外,gis的视觉开始变得越来越丰富和复杂,三维等表现形式使得gis的应用更加直观。1.2 gis软件工程概述1.2.1 gis软件工程的基本原理软件工程是运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文档,是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。1)程序:为实现特定目标或解决特定问题而用某种计算机语言编写的指令或语句的集合;2)文档:记录软件开发活动和阶段性成果、理解软件所必需的阐述性资料,包括需求分析文档、软件设计文档等,以促进对软件的开发、管理和维护。软件工程的目标是在既定的成本、进度等条件下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。图1-4 软件工程的目标1)可修改性(modifiability):允许对软件系统进行修改但不增加原系统的复杂度;2)有效性(efficiency):最有效地利用计算机的时间和空间资源;3)可靠性(reliability):能防止因概念、设计和结构等方面的不完善而造成的软件失效;4)可理解性(understandability):结构清晰,直接反映目的和需求;5)可维护性(maintainability):支持后续修改,改正潜在错误和改进性能和属性;6)可重用性(reusability):软件系统的功能模块可以不加修改而在多种场合应用;7)可适应性(adaptability):在不同的运行环境下满足需求;8)可移植性(portability):从一个计算机环境迁移到另一个计算机环境;9)可追踪性(traceability):根据软件需求对软件设计和程序进行正向追踪,或根据软件设计和程序对软件需求进行逆向追踪,保证软件的完整和一致;10)可互操作性(interoperability):软件之间的相互通信和协同操作。软件工程在过去几十年的探索实践中涌现了很多理论和方法,如传统的软件生存周期模型法和新兴的以面向对象技术为基础的面向对象建模技术法等。软件生存周期模型(software life cycle model)要求将设计和开发由始至终划分为若干阶段并规定每个阶段的任务,再按一定的规则按部就班逐一完成。瀑布模型是最典型的软件生存周期法,如图1-5所示,将软件生存周期划分为制定计划、需求分析、软件设计、程序编写、软件测试、运行维护等6个步骤,并由上至下、相互衔接地执行。此外,软件生存周期模型还有演化模型、螺旋模型、喷泉模型等方法。图1-5 软件生存周期之瀑布模型法面向对象建模(object oriented modeling technique)技术法是将面向对象技术(抽象、封装、继承、多态)引入到软件工程中,独立于程序设计语言之外对软件的设计和开发阶段进行概念化的方法。然而,无论是基于哪一种理论,软件工程都可以分为分析(需求和可行性分析)、设计(总体设计、详细设计)、开发、测试和维护等主要阶段。gis软件与一般的软件相比,有着下列显著特点:1)存储方式:gis数据主要包括图形数据和属性数据,对这两种数据分别采用空间数据库和属性数据库进行存储。2)数据组织和处理模式:使用地图处理的模式,分为地理实体、图层、地图和图库几个层次,以图层作为处理的基本单元。3)系统功能:使用了地理空间数据模型以及空间数据库,需要完成复杂和专业的查询和分析工作。4)系统组成:支持分布式环境,采用树形结构和主从工作模式,数据交换以图层为单位。5)数据管理显示 :二维空间数据为主,支持三维的处理和显示;6)数据共享:不同格式的空间数据之间的转换。然而,任何软件都会面临种种瓶颈,而gis软件工程需要解决的主要问题有:1)时间和经费:庞大的数据量和复杂的系统结构,加上有时开发经验的缺乏。2)用户需求的满足:开发者和用户之间的知识掌握和交流程度。3)可靠性和可维护性:软件工程的主要问题,错误修改和功能改进存在困难,软件质量差甚至无法使用。4)数据工程量:数据采集和处理量巨大。5)软件生产率:需求与生产的矛盾,开发人员和设备不足。6)可重用性:存在重复劳动,浪费人力资源。gis软件工程的阶段:需求和可行性分析、总体设计、详细设计、程序开发、系统测试和维护。1.2.2 需求和可行性分析需求分析是一切种类的gis应用系统设计的基础和出发点,通过对系统潜在用户书面或口头的交流与了解,归纳整理系统的设计要求。需求分析的内容:1)用户情况调查:调查范围包括用户的范围、数量和专业知识程度等,了解系统的服务对象、服务类型和服务规模,确定系统设计的依据以及开发方法和工具。2)系统目的和任务确定:在用户情况调查基础上,根据用户需求确定系统的目的和任务。3)数据源调查:调查和分析数据的来源、种类、质量和形式,规划数据库的结构、大小以及输入输出方式。4)经费、人员和工作量评估:根据上述调查,估算投资规模,确定人员组成和分配工作量。 可行性研究是根据拟建系统的经济和技术条件,确定系统开发的必要性和可行性,包括理论上、技术上和经济上的可行性。 1)理论上的可行性:包括数据结构、数据模型、分析方法以及所运用的gis技术的可行性。2)技术上的可行性:包括开发技术、人力设备状况等的可行性。3)经济上的可行性:包括经济可行性评估(投入-产出分析)和社会效益分析。1.2.3 总体设计系统的总体设计是在需求和可行性分析的基础上,从宏观的角度构建系统的总体结构。系统总体设计的内容包括确定系统目标、设计系统结构、配置系统构成、确定系统运行管理和更新方式、经费开支预算、实施计划等内容。1)确定系统目标:根据需求分析结果将系统建设的目的具体化,目标应细化且具有针对性,但切忌过于繁杂。2)设计系统结构:确定系统的逻辑框架和数据库构成,其中数据库的设计包括数据类型、属性信息以及地理实体间关系(定性关系、定位关系、拓扑关系),还应考虑坐标系统、投影系统、比例尺等因素。3)配置系统构成:包括硬件、软件和相关的组织机构和人员等。总体设计时需要兼顾系统的完备性、标准性、先进性、兼容性、可靠性、适用性和运行效率等因素。 1.2.4 详细设计系统的详细设计是对总体设计的细化和具体化,包括功能设计、数据库设计、模型与方法设计、用户界面设计等。1)功能设计:数据经过采集和编辑存入数据库后在系统中的应用,包括一般的空间信息查询和分析以及为满足用户需求而设计的功能。2)数据库设计:设计系统的空间数据库模型,管理空间数据和属性数据。gis软件多采用基于关系型数据库的数据库模型,常见的数据库结构模型有混合结构模型、扩展结构模型和统一结构模型。混合结构模型是用两个数据库系统分别存储和检索空间数据和属性数据,两个系统之间使用内部标识进行联系,检索目标时必须同时检索两个系统。扩展结构模型使用一个数据库系统存储空间数据和属性数据,即在标准的关系型数据库中增加一个空间数据管理层,将地理结构查询语言转换成标准的sql语言,实现空间查询和索引。统一结构模型是建立在开放型数据库基础上的,扩展出空间数据的表达功能。3)应用模型和方法设计:解决专业问题的应用模型和主要的空间分析方法,是一个应用型gis系统有无鲜明特色和应用价值的关键。4)数据输入输出方法设计:设计数据库建立与更新的实现接口以及产品的输出方式。5)用户界面设计:建立适合特点应用群体并具有专业特点的用户界面,兼顾简易性、艺术性、专业性、系统性、一致性等原则。6)开发环境及方法设计:选择适合的开发平台和语言,并设计总体的开发思路和步骤。1.2.2 gis开发模式在gis设计中规划的系统功能,最终都需要通过软件开发技术来实现,所以gis开发是建立地理信息系统的最重要环节。gis的开发模式主要有以下三种:1)独立开发:不依赖任何gis工具软件,从空间数据的采集、编辑到数据的处理、分析及结果输出,所有算法都由开发者独立设计并选择程序设计语言编程实现。这种开发模式的优点是独立性强,成本低;但缺点是往往事倍功半甚至作无用功,功能也难以与商业化的gis软件相比。2)单纯二次开发:使用gis工具软件本身所提供的宏语言(如arcview的avenue、mapinfo的mapbasic等)进行二次开发。这种开发模式的优点是以gis工具软件为平台,省时省力;但所用的宏语言功能较弱。3)集成二次开发:利用gis工具软件实现gis的基本功能,并以软件开发工具尤其是可视化开发工具(如visual c+、visual basic、delphi等)为开发平台,进行二者的集成开发,主要有ole式和组件(com)式两种,而后者为当前主流的开发方式。这种开发模式既可以利用gis工具软件对空间数据的管理和分析功能,又可以利用可视化开发平台具有的高效、方便等编程特点,具有很高的开发效率、很好的外观效果、很强的使用功能,并且易于移植、便于维护。然而,集成二次开发的缺点是成本高,所以前期的需求和可行性分析就显得非常重要。在软件开发领域,组件技术日趋成熟,已经成为主流的技术模式,大大提高了软件产业的生产效率。简而言之,组件技术使用的是组件对象模型(component object model, com),是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种软件开发技术。在com构架下,人们可以开发出各种各样功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。由此带来的好处是:可以替换系统中的组件,以便随时进行系统的升级和定制;可以在多个应用系统中重复利用同一个组件;可以方便地将应用系统扩展到网络环境下使用;com与语言、平台无关的特性使所有的程序员都可以充分发挥自己的才智与专长编写组件模块。gis开发技术的发展经历了模块式、集成式、模块化式、和核心式,进而发展到现在的组件式和网络式。1)模块式阶段:早期的gis由于受到技术的限制,gis软件一般只是一些功能模块,并没有形成完整的系统,模块之间也无法协同工作。2)集成式阶段:gis功能模块经过集成而形成gis软件包,如esri的arcinfo等。由于集成了gis的各项功能,所以系统较为独立和完整,但结构复杂庞大,成本高且难以使用。3)模块化式阶段:将gis系统按照功能划分为一系列模块,运行于统一的环境或平台之上,如integraph的mge等。模块化的gis具有很强的针对性,便于使用,而且用户可以选择自己需要的模块,但和集成式gis一样,都很难再与其他的系统或模型进行集成。4)核心式阶段:为克服集成式和模块化式gis的缺点,核心式gis提供了一系列动态链接库(dll),开发时使用高级编程语言,通过应用程序接口(api)访问gis功能。动态链接库的方式可以给用户提供更大的灵活性,但核心的gis功能过于底层,开发难度很大。与传统的开发技术不同,组件式gis具有以下的优点:1)高效、无缝的集成性。组件式gis将功能划分为组件,组件本身不依赖任何开发语言,组件之间可以使用可视化编程语言,通过消息传递而互相调用、协同工作,所以集成更为高效而无缝。2)对开发语言的不依赖性。3)开发难度小且成本低廉。4)可扩展性强。具有庞大的组件资源库,用户所开发的各式各样的组件可以广泛的共享和扩展。5)大众化和社会化程度高。1.3 arcgis与arcobjects arcgis是美国esri生产的gis产品体系,目前已更新到arcgis 10.0,具有强大的对地理控件数据进行管理、编辑、显示和分析等功能。arcgis体系庞大,主要有arcmap、arccatalog、arctoolbox、arcscene、arcglobe等子系统,包含了客户端软件、服务器端软件和数据模型产品等。arcgis采用完全com化的结构,给开发者提供了强大的灵活性,可以根据需要定制适合自己的结构以及进行功能扩展和程序开发。以arcgis 9.0为例,图1-6是arcgis 9.0的系统框架图1-6 arcgis 9.0系统框架 1)桌面gis:专业gis应用的完整套件,功能由弱至强分为arcview、arceditor和arcinfo三个层次,包括arcmap、arccatalog、arctoolbox、modelbuilder、arcglobe等子系统。2)服务器gis:包括arcsde、arcims和arcgis server三种软件,提供多种类型的集中式gis计算,网络发布和处理地理信息。3)移动gis:提供移动的gis解决方案,包括arcpad以及为平板电脑使用的arcgis desktop和engine。4)arcgis engine:完整的嵌入式gis组件库,用于构建定制应用。早期的arcgis提供给用户一个独立的地图应用组件mapobjects(mo),能够在标准的windows编程环境下,与其他图形、多媒体和数据库开发技术组成完全独立的综合性应用软件。mo由一个称为mapcontrol的控件和5类共45个对象(包括数据访问对象、地图显示对象、几何图形对象、地址匹配对象和实用对象)组成,具有支持较广泛的数据格式、外部数据库访问、图形数据及操作、投影变换、空间分析等功能,简捷灵活,开发成本低廉,在早期的gis二次开发中担当了重要的角色。然而,mo只含有一个单独的组件,所封装的对象较少,所以功能较弱,已经不再包含在arcgis的新版本中,渐渐推出了历史的舞台。与之相比,arcobjects(ao)是通用的二次开发组件集,是arcgis的核心,也是不同产品的基础部件和标准接口,是当前最底层和最流行的开发方式。ao总共含有45个组件库,约6144个对象,其中主要的组件库如下:1)system库:位于最底层的组件库,提供最基本的供其它组件库使用的组件,如数组、集合、stream对象等等。2)systemui库:被arcgis用户界面组件使用的对象,如icommand。3)geometry库:几何形体对象和空间参考对象。4)display库:显示图形所需要的组件对象,如display、color、colorramp等。5)displayui库:具有可视化界面的辅助图形显示对象。6)controls库:可视化组件对象,如mapcontrol。7)arcmapui库:为arcmap程序提供且不能脱离arcmap结构使用的可视化用户界面对象。8)framework库:arcgis内在框架对象。9)carto库:数据显示服务对象,如地图网格对象map grids和着色对象renderers等。10)cartoui库:具有可视化界面的数据显示服务对象,如identifydialog。11)geodatabase库:地理数据库模型对象,如workspace、dataset等。12)output库:输出对象,包括printer和export两类,前者用于打印输出,后者用于转换输出。第二章 地图控件地图控件(mapcontrol)对应于arcmap中的数据(data)视图,封装了地图对象(map),提供了额外的属性、方法和事件,用于管理控件外观、显示属性和地图属性、添加和管理控件中的数据图层、加载地图文档(.mxd),还可以加载一些其它应用程序的数据。2.1 mapcontrol控件的接口mapcontrol控件的主要接口如图2-1所示:图2-1 mapcontrol控件的接口1)imapcontroldefault接口:地图控件缺省接口,多数情况时,其属性和方法可以自动使用。mapcontrol是一个自动化控件,在窗体生成后,就会自动产生一个axmapcontrol1的对象,直接可以使用imapcontroldefault接口的属性和方法。imapcontroldefault代表了mapcontrol控件最新版本的接口(当前版本为imapcontrol4)。2)imapcontrol接口:设置控件外观和显示属性、添加和管理数据图层和地图文档、绘制图形和返回几何形体对象geometry等。3)imapcontrolevents接口:事件接口,定义mapcontro控件所能处理的全部事件,如onmousedown、onafterdraw等。2.2 mapcontrol控件的属性mapcontrol控件的属性如表2-1所列,其中有些属性可以直接赋值,而有些属性需要使用其它接口的属性和方法来设置。mapcontrol的常规属性有appearance、borderstyle、layercount等,下面为这些常规属性的使用实例: private sub form1_load(byval sender as object, byval e as system.eventargs) handles me.load 加载shape文件 axmapcontrol1.addshapefile(application.startuppath & data, 行政.shp) mapcontrol控件外观 axmapcontrol1.appearance = esri.arcgis.controls.esricontrolsappearance.esri3d mapcontrol控件的边框样式 axmapcontrol1.borderstyle = esri.arcgis.controls.esricontrolsborderstyle.esriborder 地图比例 axmapcontrol1.mapscale = 0.001 地图单位 axmapcontrol1.mapunits = esri.arcgis.esrisystem.esriunits.esricentimeters 参考比例 axmapcontrol1.referencescale = 0.002 mapcontrol控件的鼠标指针样式 axmapcontrol1.mousepointer = sri.arcgis.controls.esricontrolsmousepointer.esripointerarrow 地图旋转角度 axmapcontrol1.rotation = 30 是否显示控件的滚动条 axmapcontrol1.showscrollbars = true 最后加载的地图文档名称 axmapcontrol1.documentfilename = document 最后加载的地图文件名称 axmapcontrol1.documentmap = map 是否显示地图tip信息 axmapcontrol1.showmaptips = true 地图tip信息的显示样式 axmapcontrol1.tipstyle = esri.arcgis.systemui.esritipstyle.esritipstylesolid 对话框显示当前地图数据层数(只读) msgbox(axmapcontrol1.layercount) end sub2.3 mapcontrol控件的方法 mapcontrol控件的专有方法如表2-2所列,其中有些方法涉及到地图显示、图形绘制等高级使用,将在以后章节中集中探讨,这里仅介绍一些常规的即一般的方法,其实例如下:1)添加shape文件 private sub form1_load(byval sender as object, byval e as system.eventargs) handles me.load axmapcontrol1.addshapefile(application.startuppath & data, 行政.shp) axmapcontrol1.addshapefile(application.startuppath & data, 河流.shp)end sub 2)由lyr文件添加图层 private sub form1_load(byval sender as object, byval e as system.eventargs) handles me.load axmapcontrol1.addlayerfromfile(application.startuppath & data河流.lyr, 0) axmapcontrol1.addlayerfromfile(application.startuppath & data行政.lyr, 1) end sub 3)加载地图文档 private sub form1_load(byval sender as object, byval e as system.eventargs) handles me.load axmapcontrol1.loadmxfile(application.startuppath & datatest.mxd)end sub 4)删除单个图层 在窗体中新建名为delete的按钮,并创建按钮点击响应事件。 private sub delete_click(byval sender as system.object, byval e as system.eventargs) handles delete.click axmapcontrol1.deletelayer(0) end sub 5)清除所有图层 在窗体中新建名为clear的按钮,并创建按钮点击响应事件。private sub clear_click(byval sender as system.object, byval e as system.eventargs) handles clear.click axmapcontrol1.clearlayers()end sub6)移动图层层次 在窗体中新建名为move的按钮,并创建按钮点击响应事件。private sub move_click(byval sender as system.object, byval e as system.eventargs) handles move.click axmapcontrol1.movelayerto(0, 1)end sub7)地图漫游创建mapcontrol控件的onmousedown响应事件。 private sub axmapcontrol1_onmousedown(byval sender as object, byval e as esri.arcgis.controls.imapcontrolevents2_onmousedownevent) handles axmapcontrol1.onmousedown axmapcontrol1.pan()end sub表2-1 mapcontrol控件的主要属性名称说明数值类型activeviewmapcontrol控件中激活的map实例对象关联iactiveview接口appearancemapcontrol控件的外观esricontrolsappearance(esri3d、esriflat)backcolormapcontrol控件的背景颜色ole_colorborderstylemapcontrol控件的边框风格esricontrolsborderstyle(esriborder、esrinoborder)currenttoolmapcontrol控件使用的工具对象关联itool接口enabledmapcontrol控件是否被激活booleanextentmapcontrol控件的显示范围关联envelope接口fullextentmapcontrol控件的全局范围关联envelope接口hwndmapcontrol的句柄,即控件的标识longlayermapcontrol控件中激活的图层对象关联ilayer接口layercountmapcontrol中的数据图层数longmapmapcontrol控件激活的地图对象关联imap接口mapscalemapcontrol中的地图比例doublemapunitsmapcontrol中的地图单位esriunits(esricentimeters等14种)mouseiconmapcontrol的鼠标样式对象关联ipicturedisp接口mousepointermapcontrol控件中的鼠标指针样式esricontrolsmousepointer(esripointerarrow等32种)referencescalemapcontrol控件中的参考比例doublerotationmapcontrol控件中地图的旋转角度double(degree)showscrollbarsmapcontrol控件的滚动条是否被显示booleanspatialreferencemapcontrol的空间参考对象关联ispatialreference接口customproperty自定义属性,记录用户需要的信息variantdocumentfilenamemapcontrol控件中(最后)加载的地图文档名称stringdocumentmapmapcontrol控件中(最后)加载的地图文件名stringkeyintercept键盘按键信息longshowmaptips地图的tip信息是否被显示booleantipdelay地图tip信息显示的延迟时间longtipstyle地图tip信息的显示样式esritipstyle(esritipstylesolid、esritipstyletransparent)trackcancelmapcontrol控件中监视的键盘行为对象关联itrackcancel接口visibleregionmapcontrol控件中的可见区域对象关联igeometry接口表2-1 mapcontrol控件的主要方法名称说明调用格式aboutbox显示介绍窗口aboutbox ()addlayer添加图层addlayer (layer as esri.arcgis.carto.ilayer)addlayer (layer as esri.arcgis.carto.ilayer, toindex as integer)addlayerfromfile由文件添加图层addlayerfromfile (lyrpath as string)addlayerfromfile (lyrpath as string, toindex as integer)addshapefile添加shape文件addshapefile (path as string, filename as string)centerat设置地图中心点centerat (centerpoint as esri.arcgis.geometry.ipoint)checkmxfile检查当前地图文档是否有效checkmxfile (filename as string) as booleanclearlayers清除所有图层clearlayers ()deletelayer删除单个图层deletelayer (index as integer)drawshape控件中绘制图形drawshape (shape as esri.arcgis.geometry.igeometry)drawshape (shape as esri.arcgis.geometry.igeometry, byref symbol as object)drawtext绘制文本drawtext (pgeometry as esri.arcgis.geometry.igeometry, text as string)drawtext (pgeometry as esri.arcgis.geometry.igeometry, text as string, byref symbol as object)flashshape绘制闪烁图形flashshape (pshape as esri.arcgis.geometry.igeometry)flashshape (pshape as esri.arcgis.geometry.igeometry, nflashes
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度二手房买卖合同标的物使用现状说明
- 2024年度茶叶独家代理经营合同
- 2024年度地材环保达标合同3篇
- 2024年度企业知识产权管理与许可合同3篇
- 2024年度地铁邻近餐饮店面独家租赁协议2篇
- 《ab培训课程》课件
- 2024年度影视作品定制创作合同
- 2024中国石油长庆油田分公司春季校园招聘(70人)易考易错模拟试题(共500题)试卷后附参考答案
- 2024中国电信海口分公司招聘易考易错模拟试题(共500题)试卷后附参考答案
- 2024中国烟草郑州烟草研究院招聘4人易考易错模拟试题(共500题)试卷后附参考答案
- 公务员2022年国考《申论》真题(副省级)及参考答案
- 2024秋期国家开放大学《国际法》一平台在线形考(形考任务1至5)试题及答案
- 慢性阻塞性肺疾病急性加重围出院期管理与随访指南(2024年版)解读
- 课件:七年级道德与法治上册(统编版2024)-【新教材解读】义务教育教材内容解读课件
- 2024年艾滋病防治知识竞赛考试题库200题(含答案)
- DL∕T 5210.4-2018 电力建设施工质量验收规程 第4部分:热工仪表及控制装置
- 《建筑外墙外保温系统修缮标准 JGJ376-2015》
- 水利水电工程单元工程施工质量验收评定表及填表说明
- HG-T 2006-2022 热固性和热塑性粉末涂料
- 2.3.2《抛物线的简单几何性质》省公开课一等奖全国示范课微课金奖课件
- 城市综合体消防技术标准 DG-TJ08-2408-2022
评论
0/150
提交评论