组件式GIS的特点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一组件概念:简而言之,组件就是对象。组件是对数据和方法的简单封装。组件可以有自己的属性和方法。属性是组件数据的简单访问者。方法则是组件的一些简单而可见的功能。
组件式GIS:组件式GIS的基本思想是把GIS的各大功能模块划分为几个控件,每个控件完成不同的功能。各个GIS控件之间,以及GIS控件与其它非GIS控件之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS应用。控件如同一堆各式各样的积木,他们分别实现不同的功能(包括GIS和非GIS功能),根据需要把实现各种功能的“积木”搭建起来,就构成应用系统
组件式GIS的特点:组件式GIS系统把GIS的功能适当抽象,以组件形式供开发者使用,将会带来许多传统GIS工具无法比拟的优点。其特点是:(1) 小巧灵活、价格便宜。在组件模型下,各组件都集中地实现与自己最紧密相关的系统功能。组件化的GIS平台集中提供空间数据管理能力,并且能以灵活的方式与数据库系统连接。在保证功能的前提下,系统表现得小巧灵活,而其价格仅是传统GIS开发工具的十分之一甚至更少。这样,用户便能以较好的性能价格比获得或开发GIS应用系统。 (2) 直接嵌入MIS开发工具。组件的生产建立在严格的标准之上,因此,凡符合标准的组件都可在目前流行的各种开发工具上使用。VB、VC、Delphi、PowerBuilder、Notes、Foxpro、Access等都可直接成为GIS或GMIS的优秀开发工具,它们各自的优点都能够得到充分发挥。这与传统GIS 专门性开发环境相比是一种质的飞跃。 (3) 强大的GIS功能。新的GIS组件都是基于32位系统平台的,采用InProc直接调用形式,所以无论是管理大数据的能力还是处理速度方面均不比传统GIS软件逊色。小小的GIS组件完全能提供拼接、裁剪、叠合、缓冲区等空间处理能力和丰富的空间查询与分析能力。 (4) 开发简捷。由于GIS组件可以直接嵌入MIS开发工具中,对于广大开发人员来讲,就可以自由选用他们熟悉的开发工具。而且GIS组件提供的API形式非常接近MIS工具的模式,开发人员可以像管理数据库表一样熟练地管理地图等空间数据,无须对开发人员进行特殊的培训。在GIS或GMIS的开发过程中,开发人员的素质与熟练程度是十分重要的因素。这将使大量的MIS 开发人员能够较快地过渡到GIS或GMIS的开发工作中,从而大大加速GIS的发展。
二Icommand使用:command控件被包含在ESRI.ArcGIS.Controls.dll类库中,位于ESRI.ArcGIS.Controls命名空间下。可以单独实例化来使用,也可以被安置在一个AxToolbarControl工具栏控件中下面对这两种方式分别加以说明:
1实例化一个Command对象并显式地运行它:
ICommand command = new ControlsOpenDocCommandClass();
command.OnCreate(m_mapControl.Object);
command.OnClick();
ControlsOpenDocCommandClass是一个Command控件.
2工具栏使用:绝大部分Command对象都可以被寄放到这个工具栏之中。方法非常简单:axToolbarControl1.AddItem("esriControls.ControlsMapZoomInTool");
通过AddItem添加到工具栏中的Command控件使用非常方便。其他的添加控件与以上的类似。
三 AE常用控件:MenuStrip (菜单),MapControl(小地图), PageLayoutControl (大地图), TOCControl(图层库), and ToolbarControl (工具栏),LicenseControl (授权组件)
四 Application还是应用程序(application program)的缩写。一个应用程序通常是指能够执行某种功能的软件程序。
Dataview: DataView类用来表示定制的DataTable的视图。DataTable和DataView的关系是遵循著名的设计模式--文档/视图模式,其中DataTable是文档,而Dataview 是视图。
File:提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建FileStream 对象。
File与Dataview的关系:前者针对的是文件的操作,后者文档的视图。前者打开的是文件,后者是文档类型的文件的视图。
五Feature class 与 Raster :
private void adddatabutton_Click(object sender, EventArgs e)
{
axTOCControl1.SetBuddyControl(null);
IGxDialog pGxDialog = new GxDialogClass();
pGxDialog.Title = "Select FeatureClass to Add to Map";
pGxDialog.AllowMultiSelect = true;
IGxObjectFilter pGxFilter = new GxFilterDatasetsClass();
pGxDialog.ObjectFilter = pGxFilter;
IEnumGxObject pEnumGxObject;
bool domodalopen=pGxDialog.DoModalOpen(0, out pEnumGxObject);
if (!domodalopen)
{
MessageBox.Show("You must select a featureclass!");
pEnumGxObject.Reset();
}
IGxDataset pGxDataset = (IGxDataset)pEnumGxObject.Next();
IRasterLayer pRasterLayer;
IFeatureLayer pFeatureLayer;
IDataset pdataset;
for (int i=0; pGxDataset != null; pGxDataset = (IGxDataset)pEnumGxObject.Next(),i++) {
//加载feature class
if (pGxDataset.Type == esriDatasetType.esriDTFeatureClass)
{
pFeatureLayer = new FeatureLayerClass();