收藏 分销(赏)

GIS应用开发.ppt

上传人:精*** 文档编号:10251488 上传时间:2025-04-30 格式:PPT 页数:1455 大小:19.66MB
下载 相关 举报
GIS应用开发.ppt_第1页
第1页 / 共1455页
GIS应用开发.ppt_第2页
第2页 / 共1455页
点击查看更多>>
资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,江西理工大学,Developing GIS Applications with ArcObjects using C#.NET,GIS,应 用 开 发,Developing GIS Applications with ArcObjects using C#.NET,江西省研究生优质课程,主讲:,兰小机,GIS,博士、教授,Email:landcom8835,QQ,:,305333315,课件:,ftp:/218.87.136.94/,兰小机简历,主要经历,1988,年,7,月,毕业于南方冶金学院工程测量专业,获,学士学位,,并留校任教,1994,年,6,月,毕业于武汉测绘科技大学工程测量专业,获,硕士学位,,回校任教,2005,年,6,月,毕业于南京师范大学,地图学与地理信息系统,专业,获,理学博士学位,,回校任教,主要研究方向,GIS,应用开发,分布式并行计算环境下空间数据的存储管理,空间数据库理论与,GMLGIS,GML,空间数据挖掘,空间数据集成与共享,科研,项目,国家自然科学基金项目,-,面向,GML,的时空关联规则及序列模式挖掘研究,(,编号:,40971234,),,,35,万元,主持,国家自然科学基金项目,-,本原,GML,空间数据库理论及,GMLGIS,与传统,GIS,集成研究,(编号:,40761017,),,,16,万元,主持,国家自然科学基金项目,-,GML,空间数据存储索引机制研究,(编号:,40401045,),,,26,万元,排名第二,地理信息科学江苏省重点实验室开发基金项目,-,面向对象的,GML,空间数据库及其应用研究,(编号:,JK20050302,),,,5,万元主持,江西省教育厅科技项目,GML,空间数据库理论及,GMLGIS,研究,,,1,万元,主持,萍乡市基础地理信息系统研究与开发,,22,万元,主持,城市公众地理信息服务系统研究与开发,,10,万元,主持,Open,Source,GIS,GIS,软件,GIS,基础平台软件,GIS,应用系统,桌面的,Web,的,移动设备,GIS,组件,Open Source GIS Desktop Applications,GRASS,(Geographic Resources Analysis Support System),Quantum GIS,QGIS,OpenJUMP,SharpMap,MapWindow,gvSIG,uDig,Open Source,Geospatial Libraries,JTS,:Java Topology Suite,GEOS,(Geometry Engine-Open Source),is a C+port of the Java Topology Suite(JTS),NTS,:Net Topology Suite,A C#/.NET port of JTS Topology Suite,Geotools,GeoAPI,OpenMap,GDAL,:Geospatial Data Abstraction Library,DotSpatial,:for MapWindow,FDO,:Feature Data Object,MetaCRS,OSSIM,:Open Source Software Image Map,Rasdaman,:,ras,ter,da,ta,man,ager,Open Source,Spatial,Database,PostGIS,:,is a spatial extension to PostgreSQL,MySQL,Spatial:,is a spatial extension to MySQL,SpatiaLite,:,is a spatial extension to SQLite,Open Source,Web Mapping,deegree,geomajas,GeoMoose,GeoServer,Mapbender,MapBuilder,MapFish,MapGuide Open Source,MapServer,OpenLayers,ZOO-Project,Open Source,GIS Simulation and Analysis,UrbanSim,GeoDa,,,PySal is a python library that builds on the work done with GeoDa,www.osgeo.org/,:,开源地理空间基金会,(Open Source Geospatial Foundation,,简称,OSGeo),为全球性非营利性组织,目标是支持全球性的合作,建立和推广高品质的空间信息开源软件。,SourceF,,又称,SF.net,,是开源软件的开发者进行开发管理的集中式场所,也,是全球最大开源软件开发平台和仓库,。,教学目标,GIS,应用开发,课程是,GIS,本科生、研究生重要的专业课程,通过课程的学习,,了解,ArcGIS,软件体系结构及,ArcObjects,组件构成,并能熟练使用,ArcObjects,进行,应用型,GIS,开发,;,掌握应用型,GIS,开发的基本思路、技术方法,.,教学内容及时间安排,序号,教学内容,学时,1,GIS,应用,开发基础,4,2,ArcGIS,应用程序框架,6,3,使用,ArcObjects,控件编程,6,4,几何形体对象,-GEOMETRY,3,5,地图,及相关对象,5,6,空间数据的符号化,4,7,空间数据管理,6,8,地理处理框架,2,9,空间,查询与空间,分析,6,10,空间数据编辑,6,11,三维,GIS,开发基础,自学,教材及参考材料,教材:,基于,ArcObjects,与,C#.NET,的,GIS,应用开发,,兰小机、刘德儿等编著,冶金工业出版社,,2011,年,12,月,最新课件,参考材料:,ArcObjects SDK for ArcGIS 10.1,Desktop,(,ArcMap,、,ArcCatalog,)基本操作;,了解,Geodatabase,、,ArcSDE,基本概念;,会用,C#,进行程序设计,。,课程考核,开发一个小型的,GIS,应用系统,按,GIS,软件工程的要求进行设计,并提供完整的设计开发方案,开发的小系统应具备,GIS,的基本功能,主要包括:,打开、保存地图文档、添加数据,自定义命令、工具、菜单,空间数据符号化,空间数据管理,空间查询与空间分析,空间数据编辑功能:基本编辑功能、高级编辑功能,计算机组件技术,组件,GIS,组件式的,GIS,应用开发,Chap.1 GIS,应用开发基础,ArcObjects,基础,组件对象模型,.NET,平台概述,.NET,组件与,COM,组件的互操作,ArcGIS,系列产品与开发方式,ArcGIS Visual Studio IDE Integration Framework,ArcGIS,开发资源,1,ArcObjects,基础,ArcObjects,简介,ArcObjects,的组件库,理解对象模型图,1.1 ArcObjects,简介,ArcObjects,是,ESRI,公司,ArcGIS,系列产品的开发平台,它是基于,Microsoft COM,技术,所构建的,GIS,组件产品,,是一套可重用的通用的二次开发组件产品,它可以用于大量开发框架中,包括流行的像,.NET,、,Visual C+,、,Java,等开发环境。,ArcObjects,不是为最终用户而是专门为开发人员提供的二次开发组件。,ArcObjects,是,ArcGIS,系列产品的基础,大部分,ArcGIS,产品都是由,ArcObjects,构建的。,1.2,ArcObjects,的组件库,ArcObjects,是一套庞大的,COM,组件集合,,ArcGIS,各版本各种,COM,类型统计见下表:,Enums,Structs,Interfaces,Classes,Total,ArcGIS 9.0,628,35,3029,2322,6014,ArcGIS 9.1,933,36,3918,3043,7930,ArcGIS 9.2,1100,40,4798,3832,9770,ArcGIS 9.3,1195,51,5206,4050,10502,ArcGIS 10.0,1053,93,5555,4081,10782,为了更好地管理,ArcObjects,中数目众多的,COM,对象,,ESRI,将它们放置在不同的组件库中。,对于,.NET,来说,一个组件库就是一个,程序集,(assembly),,一个程序集包含多个不同的,命名空间,(NameSpace),。,如,ESRI.ArcGIS.ADF.Local,程序集的命名空间包括:,ESRI.ArcGIS.ADF.BaseClasses,ESRI.ArcGIS.ADF.CATIDs,ESRI.ArcGIS.ADF.COMSupport,ESRI.ArcGIS.ADF.Serialization,ArcObjects,10,的组件库共,65,个,(65assemblies),,,详细内容参见,Learning ArcObjects,、,ArcObjects,SDK,API,Reference,如果不记得某个接口或对象属于哪个命名空间的时候,可以通过开发帮助查找。,1.3,理解对象模型图,ESRI,提供了多种方法让用户了解,ArcObjects,组件及不同组件之间的关系,ESRI,提供的一系列,OMD,的,PDF,文件,开发帮助、,API,Reference,VS.NET,中的对象浏览器,通过阅读,ArcObjects,的对象模型图,(Object Model Diagram,,,OMD),,可以快速了解,ArcObjects,的结构和不同组件之间的关系。,OMD,使用,UML(Unified Modeling Language,,统一建模语言,),描述,它补充了在对象浏览器中看不到的信息,,可以帮助程序员了解类之间的关系,如何从一个类到另一个类,选择正确的接口,获取需要的属性和方法等。,VS,中的对象浏览器,1.3.1,类与对象,在,ArcObjects,中存在三种类型的类:,抽象类,(Abstract Class),组件类,(CoClass),普通类,(Class),抽象类,不能用于产生一个新的对象,但是可以用于定义一个子类。,组件类,是一个可以直接用,new,创建对象实例的类,它的实例对象不依赖其他对象的存在而存在,其生存周期也不用其他的对象管理。,普通类,不能够直接产生一个对象,但它可以用其他的普通类或组件类的方法产生,,而不是使用,new,关键字来完成,。,1.3.2,类与类的关系,ArcObjects,的类之间存在四种关系,依赖关系,关联关系,组合关系,类型继承,WorkspaceFactory,Workspace,MapControl,Map,Map,Layer,*,Curve,Segment,Path,PolyCurve,2,组件对象模型,软件开发历史,什么是组件对象模型,2.1,软件开发历史,软件重用,和,开发效率,始终是软件开发的核心问题。,在早期(面向过程语言),人们为了重用,将一些基本的数学计算函数和界面设计函数设计成函数库,让其他软件开发人员调用。它为应用开发者提供了方便,但是重用的粒度太小。,面向对象语言的出现,提高编程的粒度。面向对象语言的基本单位是类,它封装了数据成员和函数成员,将最小组件的粒度提高了一个等级。但是,一个类提供了很多种方法和属性,使用和管理很不方便。,COM,技术(接口)的出现,解决了以上问题,将类的内部属性和方法进行分组。,例如在,Map,类中有好几个接口,在这些接口中定义不同功能组的方法和属性,,Map,实现了这些接口,这样就可以使用接口进行定义。,但,COM,也存在一个严重的问题:,DLL,灾难。,.NET,技术的出现解决了,“,DLL,灾难,”,问题。,2.2,什么是组件对象模型,组件技术已经成为当今软件技术的潮流之一,它已彻底改变软件生产和开发的模式。,组件技术是计算机软件业从手工作坊走向工业化成熟产业的转折点,它给整个,GIS,技术体系和应用模式带来了巨大影响。,用户可根据自己的需求灵活购买软件组件,只需编写一些,“,胶水代码,”,将各个组件,“,粘,”,起来,便可构建自己的应用系统,就如同组装计算机一样简单。,组件技术标准,COM(DCOM),:,微软的组件对象模型,(,D,istributed),C,omponent,O,bject,M,odel,),JavaBean,:,Sun,公司的基于,Java,的组件技术,CORBA,:,对象管理组织,(Object Management Group,,,OMG),的组件技术标准,,公共对象请求代理结构,(Common,Object Request Broker,Architecture,,,CORBA),。,COM,知识要点,COM,是一种二进制级别的组件通信标准,-,接口,(Interface),,它定义了组件之间应该如何通信、一个,COM,对象的不同接口之间如何查询等。,COM,对象也是基于面向对象标准的。,COM,对象可以以,DLL,或者,EXE,文件形式存在,它包含着接口的具体实现。使用者可以通过接口来访问它内部的方法、属性。,COM,对象必须实现,IUnknown,接口,它负责管理,COM,对象生命周期并在运行时刻提供类型查询,,当,COM,对象不使用的时候,是这个接口定义的方法负责释放内存,。,QI,,即所谓查询接口,由于一个,COM,对象有很多个接口,不同的接口管理着,COM,的不同类型的方法、属性,因此从一个接口可以使用的属性方法转到另一个接口可以使用的属性方法的过程称为,QI,。这个过程也是由,IUnknown,接口管理的。,IMap,pMap;,IActiveView,pActiveView;,pMap=axMapControl1.Map;/,获取控件中的地图,pActiveView=pMap as IActiveView;/QI,(,Or,pActiveView=(IActiveView)pMap;,),每个组件都有一个独一无二的标识,GUID,。接口的,GUID,称为,IID,,而组件类的,GUID,称为,CLSID,。,CLSID,还有一个文本别名,即所谓的,ProgID,,它是一个由项目名加组件类类名组成的字符串。,一个,COM,对象可以有多个接口,一个接口也可以被多个,COM,对象实现。,接口分为两种,即内向接口和外向接口。,内向接口,(Inbound Interface),是组织,COM,对象相关的方法和属性,,COM,对象必须实现所有的接口内容;,外向接口,(Outbound Interface),是用于组织,COM,对象相关的事件,,开发人员根据需要实现事件接口,。,接口可以从多个父接口继承(,C#,类呢),接口继承机制是非常有用的,在很多时候程序员可以将一个子接口类型的对象定义为父接口类型的对象,从而实现更一般化的操作,如:,Private void CreateGeometry(,IPolygon,pPolygon),Private void CreateGeometry(,IGeometry,pPolygon),COM,对象的接口一旦被公布,就不能再修改,但可以增加新接口,在,ArcObjects,中有很多以“,2”,、“,3”,结尾的接口,都是这样发展的产物。,COM,组件必须被注册后才能使用。,COM,的缺陷:,由于,COM,对象可以被重用,这样多个程序可能共用一个,COM,对象,如果这个,COM,组件升级了,就很可能出现其中某个程序无法使用新组件,导致程序不能运行的情况,这种情况被称为,“,DLL HELL,”,(DLL,灾难),。,3.NET,平台概述,针对,Windows,平台存在的缺陷,微软提出了全新的,.NET,技术体系,其主要包括,.NET Framework,Visual Studio.NET,Visual Studio.NET,是一套完整的开发工具,用于创建各种类型的应用程序,包括,ASP Web,应用程序,、,XML Web services,、,桌面应用程序,和,移动应用程序,。,.NET Framework,是生成、部署和运行 各种应用程序的平台。,.NET Framework,具有两个主要组成部分:,通用语言运行时(,Common Language Runtime-CLR,),是,.NET Framework,的基础,.NET Framework,类库。,.NET Framework,体系结构,Operating System,Common Language Runtime,(CTS,JIT,Memory Management),Base Class Library,(System.IO,System.Drawing,System.Threading),Data Classes,(ADO.NET,XML,SQL),Windows Forms,Web Applications Web Services,Web Forms ASP.NET Mobile,Common Language Specification,VB,C+,C#,J#,Operating System,Common Language Runtime,(CTS,JIT,Memory Management),Base Class Library,(System.IO,System.Drawing,System.Threading),Data Classes,(ADO.NET,XML,SQL),Windows Forms,Web Applications Web Services,Web Forms ASP.NET Mobile,Visual Studio.NET,3.1,通用语言运行时(,CLR,),通用语言运行时,管理,内存,、,线程执行,、,代码执行,、,代码安全验证,、,编译以及其他系统服务,。,CLR,处于,.NET Framework,的最底层,是,.NET Framework,的基础,它为,C#.NET,、,VB.NET,、,C+,、,J#,等多种语言提供了统一的运行环境,使得用某种高级语言编写的应用程序可以在不同的操作系统和硬件上运行,而不需要按照特定环境重写应用程序。,.NET,环境下程序编译执行过程,Traditional Compilation:,Source Code,Language Compiler,Native,EXE DLL,Compilation,Executing in OS,Execution,Compilation and Execution in.NET,Source code,Compiler,VB.NET,C+,C#,Compiler,Compiler,Operating System Services,Common Language Runtime,JIT Compiler,Native Code,Assemblies,Managed code,IL Code,+Metadata,IL Code,+Metadata,IL Code,+Metadata,Unmanaged,Component,Garbage Collector,具体的运行过程:,使用,VB,、,C#,或任一种,CLR,支持的编程语言编写应用程序源代码,由编程语言对应的编译器将源代码翻译成一个程序集(,Assembly,),-.NET,组件,为一,EXE,或,DLL,文件。这个程序集包括,中间语言,MSIL,代码,、,元数据,和,一个文件清单,。,MSIL,代码,也简称,IL,代码,其特点是独立于特定操作系统和硬件平台。,元数据,详细描述了,MSIL,代码正确执行所需的各种相关数据类型,包括描述,Assembly,的信息,描述类型的信息,描述其它属性的信息等。这样就使,.NET,应用程序代码具备了自描述特性。,清单,则列出了程序集中的所有文件和软件组件,同时指出了,CLR,在哪里可以找到应用程序运行时需要的其它组件。,CLR,加载,IL,代码,同时收集有关应用程序的事实信息。,即时编译器,JIT,将,IL,代码动态编译成可执行的本机代码。,不同的机器使用不同的,JIT,编译器,,所以同一个应用程序的,MSIL,代码经不同机器的,JIT,编译器编译之后,便可以在不同的机器上执行。,Single file assembly,Multi-file assembly,通用类型系统,CLR,借助通用类型系统(,Common Type System,,,CTS,)对代码类型进行严格的安全检查,避免了不同组件之间可能存在的类型不匹配的问题。,3.2,.NET Framework,类库,.NET Framework,类库,(FCL),是一套软件组件,用于编写在,CLR,控制下运行的代码。类库分级组成了一个庞大的功能集,,包括,显示图形用户界面,、,读写,XML,数据,、,在,Internet,上通信,、,访问数据库,等多种功能。,Same classes forall languages!,3.3,.NET,的强命名程序集,以前在,Windows,下开发程序时常会遭遇“,DLL Hell,”,问题,即动态链接库的向后兼容问题。,微软在,.Net,产生前,使用,Guid,来唯一的标识每一个,COM,组件,为了运行,COM,组件就必须在注册表中对其进行注册。,多个应用程序可以共享相同的,COM,组件,当,COM,组件版本升级时,可能导致原来引用此,COM,组件的程序不能正确运行,等等。,在,.Net,中,微软引入了一种新的解决方案:,强命名,(Strong Name),程序集,,以及与之配套的,全局程序集缓存,(,GAC-Global Assembly Cache,),来解决这个问题。,强命名程序集:,.Net,使用,Name,、,Version,、,Culture,、,PublicToken,四个属性来唯一标识一个程序集。,创建一个强命名程序集需要,获得一个用,强命名实用工具,(,StrongNameUtility,,即,SN.exe,)产生的,密钥,。,全局程序集缓存(,GAC,):,如果一个,Assembly,要被多个应用程序访问,那么它就必须放在一个,CLR,已确知的目录下,并且,CLR,在探测到有对该,Assembly,的引用时,它必须能自动到该目录下寻找这个程序集。这个已确知的目录称作,GAC,,就是全局程序集缓存。它一般位于下面的目录下:,C:WindowsAssembly,使用,gacutil.exe,命令可以将具有强命名的程序集添加到全局程序集缓存。,命令行下看到的,GAC,在开发一般的、非共享的程序时,不需要使用强命名的程序集,仅将项目(,Project,)编译成,.DLL,或者,.EXE,即可。,但是,,如果开发的是组件库、框架时,通过对程序集进行强命名,并将其部署到,GAC,中,可以保证程序集不会出现版本问题。,4 .NET,组件与,COM,组件的互操作,COM Model,.NET Model,Type libraries,Metadata,DLL,Assemblies,Interface based,Object based,GUIDs,Strong names,QueryInterface,Cast,Reference counting,Memory management,(Garbage collection),Registry,Global Assembly Cache,(gacutil.exe,可以将具有强命名的程序集添至全局程序集缓存,),本节内容:,COM,包装(,COM Wrappers,),ESRI,提供的,Primary Interop Assemblies,向,COM,公开,.NET,对象,COM,到,.NET,的类型转换,4.1,COM,包装(,COM Wrappers,),为了实现传统的,COM,程序与,.NET,程序之间的相互调用,,.NET,提供了两个包装类:,运行时可调用包装(,runtime callable wrapper,,,RCW,)和,COM,可调用包装(,COM callable wrapper,,,CCW,),。,每当一个,.NET,客户程序调用一个,COM,对象的方法时就会创建一个,RCW,对象;,相反,,每当一个,COM,客户程序调用一个,.NET,对象的方法时就会创建一个,CCW,对象。,4.2,ESRI,提供的,Primary Interop Assemblies,Primary interop assemblies,(,PIAs,,主互操作程序集)是,COM,软件厂商提供的为其,COM,组件在,.NET,环境下运行的互操作程序集,,PIAs,暴露,COM,组件中的所有类、接口和常量,作为,.NET,托管类。,ESRI,为所有的,ArcObjects,类型库提供了,PIAs,,,ArcGIS,的,.NET,开发人员只能使用这些安装在,GAC(Global Assembly Cache,,缺省安装目录为,C:WINDOWSassembly),下的,PIAs.,这些,PIAs,的公钥标记(,public key,)为,8FC3CC631E44AD86.,Controls PIAs,ArcGIS Engine,控件的,RCW,类继承自,.NET Framework,的,AxHost,类,允许这些控件驻留在,.NET,的,Windows,窗体上。,4.3,向,COM,公开,.NET,对象,(Exposing.NET objects to COM),注册,.NET,组件,在,COM,组件类目中注册,.NET,类,4.3.1,注册,.NET,组件,使用,定制的,.NET,组件,来,扩展,ArcGIS,应用程序,,需要,在,COM,注册表中,注册,.NET,组件,并将,.NET,的程序集输出为,COM,的类型库,(tlb),,,完成这一任务有以下途径:,Using ArcGIS class library project templates,Registering by menu option,Registering by command line,Registering by dialog box,Using ArcGIS class library project templates,ArcObjects,SDK,提供的类库模板(,ArcGIS class library,),在项目编译时自动注册,(,调用,esriRegAsm),。,Registering by menu option,当不使用,ArcObjects,SDK,提供的类库模板创建项目时,编译后的,DLL,文件注册:,在,Windows,资源管理器中,右键点击该,DLL,文件,选择“,Register,”,(,安装,ArcObjects,SDK,后增加的功能,),;,在“,Register,”对话框中选择要注册的,ArcGIS,产品完成注册。,Registering by command line,程序集注册,(Regasm.exe),的命令行工具用来注册或注销与,COM,一起使用的程序集。,Regasm.exe,会将有关类的信息添加到系统注册表中,以便,COM,客户端透明地使用,.NET,类。例如:,regasm EditTools.dll/tlb:EditTools.tlb/codebase,ESRIRegAsm,ESRIRegAsm.exe /p:Options,The following are the options:,/uUnregister types,/sSilent(displays no dialog box),/eDisplays error console,/v:Version number,/regfile:fileNameExports to registry file,/f:Category mapping file(.xml or.reg),/w:Keep working files,Registering by,Customize,dialog box,在,.NET,环境下自定义的,ArcGIS,命令和工具可以通过,ArcGIS,的,Customize,对话框中的,Add From File,按钮快速地添加到工具条中。,在这种情况下,只需要简单地浏览,.dll,或,.ocx,或,.tlbs,并打开它即可。,自定义对话框,4.3.2,在,COM,组件类目中注册,.NET,类,大量的,ArcGIS,扩展都依赖,COM,组件类目。事实上,大部分,定制的,ArcGIS,组件类必须注册到合适的,COM,组件类目中才能正常使用,,,例如,所有的,ArcMap,命令和工具必须注册到,“,ESRI Mx Commands,”,组件类目中。可以通过下列途径将,.Net,类注册到,COM,组件类目中。,自定义对话框,组件类目管理工具,ArcGIS Component Category Registrar,使用,COM,注册函数(,COMRegisterFunction,),自定义对话框,在,.NET,环境下自定义的,ArcGIS,命令和工具可以通过,ArcGIS,的,Customize,对话框中的,Add From File,按钮快速地添加到工具条中。,在这种情况下,只需要简单地浏览一下,TLB,并打开它。,ArcGIS,框架会自动地将从类型库中选中的类添加到合适的组件类目中。,组件类目管理工具,使用,Component Catesories Manager,(,Categories.exe,),浏览类型库,并选择合适的类目。,ArcGIS Component Category Registrar,This dialog box,as part of the ArcGIS Visual Studio integrated development environment(IDE)Integration Framework,allows you to register classes in the current project to ESRI component categories.,使用,COM,注册函数(,COMRegisterFunction,),添加注册代码到,.NET,类中,这样每当注册,.NET,组件的时候,会在特定的组件类目中自动注册,.NET,类。,.NET Framework,类库中包含两个属性类(,ComRegisterFunction,和,ComUnregisterFunction,),它们允许用户指定方法注册或注销,.NET,类。在组件类目内注册一个组件类,需要程序员知道组件类目的唯一,ID,(,CATID,)。,为了帮助程序员简化这一注册过程,,ESRI,提供了,ESRI.ArcGIS.ADF,程序集,其中包含,ESRI.ArcGIS.ADF.CATIDs,名称空间,这个名称空间中包含代表,ArcGIS,组件类目的类,这些类知道组件类目的,CATID,,并提供两个静态方法,(Register and Unregister),来添加或删除组件类。,Guid(d36096cd-4680-42d6-8e5a-8c88cf86170b),public sealed class PanTool:BaseTool,#region Component Category Registration,ComRegisterFunction(),static void Reg(string regKey),MxCommands.Register(regKey);,ComUnregisterFunction(),static void Unreg(string regKey),MxCommands.Unregister(regKey);,#endregion,.,4.4,COM,到,.NET,的类型转换,命名空间:,ESRI.ArcGIS,加上库名。,例如,Geometry,库的命名空间是,ESRI.ArcGIS.Geometry,。所有类型通过它们的完整的命名空间和类型名识别。,所有的,COM,类被转换成为托管类;托管类的类名为起初的类名加上,“,Class,”,,,例如,,Point,组件类的运行时可调用包装(,RCW,)为,PointClass,,,Map,组件类的运行时可调用包装为,MapClass.,C,中不支带参数的属性。,ILayer pLayer=axMapControl1.get_Layer(0);,在上例中带参数的,Layer,属性,在,C#,中是不支持的,所以改用,get_Layer(),方法。,5,ArcGIS,系列产品与开发方式,ArcGIS,最终用户产品及应用程序命名变化:,Prior to 10.1,10.1,ArcGIS Desktop,ArcGIS for Desktop,ArcInfo,ArcGIS for Desktop Advanced,ArcEditor,ArcGIS for Desktop Standard,ArcView,ArcGIS for Desktop Basic,ArcGIS Mobile,ArcGIS for Windows Mobile,ArcGIS Mobile for Tablet PCs,ArcGIS for Windows Tablet,ArcGIS for Windows Phone,No change,ArcGIS for Android,No change,ArcGIS for iOS,No change,ArcGIS Mapping for SharePoint,ArcGIS for SharePoint,ArcGIS Server,ArcGIS for Server,ArcGIS Server Advanced Enterprise,ArcGIS for Server Advanced,ArcGIS Server Standard Enterprise,ArcGIS for Server Standard,ArcGIS for Basic Enterprise,ArcGIS for Server Basic,ArcGIS Server Advanced Workgroup,ArcGIS for Server Advanced Workgroup,ArcGIS Server Standard Workgroup,ArcGIS for Server Standard Workgroup,ArcGIS Server Basic Workgroup,ArcGIS for Server Basic Workgroup,ArcGIS Explorer,No change,ArcGIS Explorer Online,No change,ArcGIS Explorer Desktop,No change,ArcReader,No change,ArcGIS Viewer for Flex,No change,ArcGIS Viewer for Silverlight,No change,Developer technology,Prior to 10.1,10.1,ArcGIS API for JavaScript,No change,ArcGIS API for Flex,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服