ArcGISEngine二次开发——提高篇

合集下载

arcgisengine二次开发实例

arcgisengine二次开发实例

arcgisengine二次开发实例
ArcGIS Engine是ArcGIS系列软件产品之一,用于在分布式系统环境下构建ArcGIS 技术,实现GIS应用软件开发。

开发人员可以利用ArcGIS Engine来构建自定义GIS应用程序、地理空间分析应用程序以及分布式GIS解决方案。

ArcGIS Engine提供了一个强大的开发平台,它的几乎所有的开发框架以及资源都位于一个方便的框架中,开发人员可以使用其中的几中可视化控件进行ArcGIS地图和数据应用开发。

ArcGIS Engine是一款基于COM(Component Object Model)技术的GIS应用平台,它通过COM在用户定义的交互界面之间提供了独立的组件。

组件定义了一种行为和数据的概念,组件间的交互可以非常简单的实现。

ArcGIS Engine可以作为地图数据的可视化引擎,允许开发者使用统一的图形化界面控制地图的显示和操作。

此外它还可提供复杂的数据空间分析模块,在开发人员输入实际的空间数据后,可进行数据空间分析,产生对空间结果分析的可视化输出。

ArcGIS Engine可以让开发者灵活地构建系统架构,以满足自定义的GIS应用开发需求。

开发人员可以使用ArcGIS Engine的组件,使其在分布式的应用程序框架中更好的发挥作用。

比如可以使用专业矢量处理组件,在GIS信息系统中构建面板,并在面板上放入各种可视化控件,满足对空间数据的管理和空间数据分析需求。

优-ArcEngine基础开发教程C#二次开发ArcGis

优-ArcEngine基础开发教程C#二次开发ArcGis

pLine.PutCoords(pPoint1,pPoint2); //QI 到 ISegment
ISegment pSegment= pLine as ISegment; //创建一个 Path 对象
SegmentCollection pPath= new PathClass();
object o=Type.Missing; //通过 ISegmentCollection 接口为 Path 对象添加 Segment 对象
04/04/2011
本文由 fxlcoco 编写 ESRI BBS GIS 大讲堂首发 第 1 页,共 80 页
山东农业大学资源与环境学院
世界有我精彩-【侯志伟】整理
地理信息系统08-3
可以看到在 Visual Studio 中看到在新创建的项目中自动加载了 ToolBarControl、TocControl、LicenseControl、 MapControl 四个 ArcGIS Engine 控件以及一个.NET ToolStripMenuItem 菜单控件,如图 3 所示:
pPolyline.AddGeometry(pPath as IGeometry, ref o, ref o); 2.4.4.2Polylgon 几何对象
2Polylgon 对象是由一个或多个 Ring 对象的有序集合,它可以是由单个 Ring 对象构成,也可以使用多个 Ring 组成如下图所示。其中 Ring 可以分为 Outer Ring(外环)和 Inner Ring(内环)之分。外环和内环都是有方向的, 它们的区别是外环的方向是顺时针的,内环的方向是逆时针。Polygon 通常用来代表有面积的多边形矢量对象, 如行政区,建筑物等。
04/04/2011

“提高ArcGIS Engine代码效率的方法”连载系列(之一)

“提高ArcGIS Engine代码效率的方法”连载系列(之一)

“提高ArcGIS Engine代码效率的方法”连载系列(之一)公司现在涉及到GIS的项目很多,在这些项目中,有很多一部分采用了ArcGIS的相关产品,也出现了很多性能上的问题。

其实,在对ArcGIS系列产品进行编程的时候,有很多方法可以让自己的程序跑的更快,性能更好。

本文将以连载的形式,列举这些提高性能的方法。

一、GetFeature和GetFeatures的区别在对Feature进行查找的时候,我们往往使用GetFeature。

殊不知,GetFeature对于GeoDatabase的访问是比较慢的,尤其是在有一系列Feature进行查找的时候。

当需要查找的Feature在10个以下时,利用循环的方式GetFeature和直接GetFeatures的效率是差不多的。

但一旦超过10个Feature需要查找时,效率就体现出来了。

当数据量达到100时,采用后者查找的时间是前者的10分之一;而当数据量达到1000个的时候,采用后者查找的时间是前者的20分之一。

比较以下代码:1、GetFeatureprivate static void GetFeatureExample(IFeatureClass featureClass, int[] oidList){int nameFieldIndex =featureClass.FindField("NAME");foreach (int oid in oidList){IFeature feature = featureClass.GetFeature(oid);Console.WriteLine("NAME: {0}", feature.get_Value(nameFieldIndex));}}2、GetFeaturesprivate static void GetFeaturesExample(IFeatureClass featureClass, int[] oidList){int nameFieldIndex = featureClass.FindField("FIPSSTCO");using(ComReleaser comReleaser = new ComReleaser()){IGeoDatabaseBridge geodatabaseBridge = new GeoDatabaseHelperClass();IFeatureCursor featureCursor = geodatabaseBridge.GetFeatures(featureClass, ref oidList, true);comReleaser.ManageLifetime(featureCursor);IFeature feature = null;while ((feature = featureCursor.NextFeature()) != null){Console.WriteLine("NAME: {0}", feature.get_Value(nameFieldIndex));}}}可以看到,代码的差别并不是很大,但带来的效果却非常显著。

ArcGIS_Engine二次开发高级讲义

ArcGIS_Engine二次开发高级讲义

ArcGIS Engine二次开发实习高级讲义遥感信息工程学院地理信息工程方向实习材料指导教师:秦昆文档编写:张文、郭善昕、余万里、刘文涛武汉大学遥感信息工程学院Contents1. 缩略图(鹰眼) ..............................................错误!未定义书签。

添加控件及代码............................................错误!未定义书签。

代码说明..................................................错误!未定义书签。

小结......................................................错误!未定义书签。

2. 缓冲区分析................................................错误!未定义书签。

添加控件..................................................错误!未定义书签。

添加引用和代码............................................错误!未定义书签。

代码说明..................................................错误!未定义书签。

小结......................................................错误!未定义书签。

3. 叠置分析..................................................错误!未定义书签。

添加控件..................................................错误!未定义书签。

添加引用和代码............................................错误!未定义书签。

基于ArcGISEngine的地理信息系统二次开发原理和方法_金靖

基于ArcGISEngine的地理信息系统二次开发原理和方法_金靖
第 35 卷 第 3 期 2012 年 3 月
测绘与空间地理信息
GEOMATICS & SPATIAL INFORMATION TECHNOLOGY
Vol. 35,No. 3 Mar. ,2012
基于 ArcGIS Engine 的地理信息系统 二次开发原理和方法
Байду номын сангаас金靖
( 湖北省鄂州市勘测院,湖北 鄂州 436000)
第3 期
金 靖: 基于 ArcGIS Engine 的地理信息系统二次开发原理和方法
47
开发的原理和 方 法,以 期 为 相 关 地 理 信 息 系 统 的 开 发 和 建设提供参考。
1 COM 原理
COM( Component Object Model,组件对象模型) 是一 种以组件为发 布 单 元 的 对 象 模 型,它 可 作 为 一 种 跨 平 台 的客户服务器系统开发技术,具有开放的体系结构,它不 仅定义了组件 程 序 之 间 进 行 交 互 的 标 准,并 且 也 提 供 了 组件程序运行所需的环境[7]。COM 提供了编写组件的一 种标准方法,只要遵循 COM 标准的组件就可以组合起来 以形成应用程序。COM 接口是一组逻辑上相互关联的操 作,这些操作定 义 了 某 种 行 为,即 这 组 操 作 的 规 范,而 非 特定的实现,实 质 是 接 口 代 表 了 接 口 调 用 者 和 实 现 者 之 间的一种约定,当两个应用程序通信时,一个应用程序初 始化二者之 间 的 关 系,这 个 应 用 程 序 被 称 为 COM 客 户 机,或 COM 控制器,而另一个应用程序被称为 COM 服务 器,COM 客户机访问由 COM 服务器提供的服务[9 - 11]。
3 ArcGIS Engine 开发实例

ArcGIS二次开发

ArcGIS二次开发

第一章z开发基础
1.1组件对象模型
在明确讨论COM之前,有必要先一般性地思考一下软件组件使用的广泛性。

在软件组件背后有许多的驱使因素,但最基本的就是软件开发是个昂贵和耗时的风险行为。

在理想的世界里,假如曾经写了一段代码,然后通过不同的开发工具一次一次的反复使用它,这种情况是可能的,即便是在最初的开发者不能预见的环境下也能使用。

理想情况下,对最初开发者生成的函数功能的改变能在不需要目前用户改变和重编译他们的代码情况下实现。

早期重用代码块的尝试就是创建类库的进展,这些类库通常用C++开发。

早期的尝试有很多的限制,较为明显的是:共享系统组件的困难(共享二进制C++组件是非常困难的——大部分的尝试是共享源代码);不重新编译就很难保存和更新C++组件的问题;缺乏好的建模语言和工具以及属性接口和定制工具。

为了解决这样那样的一些问题,许多软件工程师开始采用基于组件的方法进行系统开发。

一个软件组件就是一个可重用代码的二进制单元。

已经出现了几个不同但相互重叠的开发和共享组件标准。

微软的COM已成为建立交互式桌面应用程序事实上的标准。

在互联网上,JavaBean是可行的技术。

对象管理组(OMG)制定了粗粒度层次上适用于应用程序互操作的公用
PS:双击获取文档,ctrl+A,ctrl+C,然后粘贴到word即可。

未能直接提供word版本,抱歉。

arcgis 二次开发

arcgis 二次开发

gis的开发方法有三种,即独立开发,宿主型二次开发,基于gis组件的二次开发,其中独立开发为底层开发,不依赖于任何gis工具软件,开发难度太大,后两者是基于一种软件的二次开发,这样的二次开发则相对较简单,他的好处也是显而易见的。

宿主型二次开发是指基于GIS平台软件上进行应用系统开发。

大多数GIS平台软件都提供了可供用户进行二次开发的脚本语言,如ESRI的ArcView提供了Avenue语言,Maplnfo公司的MapInfo Professional提供了MapBasic语言等等。

用户可以利用这些脚本语言,以原GIS软件为开发平台,开发出自己的针对不同应用对象的应用程序。

这种方式省时省心,但进行二次开发的脚本语言,作为编程语言,功能极弱,用它们来开发应用程序仍然不尽如人意,并且所开发的系统不能脱离GIS平台软件,是解释执行的,效率不高。

相比基于组件的二次开发可以根据自己的需要扩展系统的功能,并且可以脱离原gis平台软件,综合看来,单纯二次开发受gis基础平台提供的编程语言的限制,而基于组件式的二次开发不仅能提高开发效率,同时可靠性好,易于移植,便于维护。

所以,结合gis基础平台软件与当今可视化开发语言的组件式二次开发成为gis开发的主流。

但是二次开发也不是十全十美的,只要我们使其中的瑕疵减少,误差也就会减少。

ArcGIS Engine开发工具包是一个基于组件的软件开发产品,用于建立和部署自定义GIS和制图应用程序。

ArcGIS Engine开发工具包不是一个终端用户产品,而是一个应用程序开发人员的工具包。

可以用ArcGIS Engine开发工具包建立基本的地图浏览器或综合、动态的GIS编辑工具。

使用ArcGIS Engine开发工具包,开发人员在建立定制的地图接口方面具有前所未有的灵活性。

开发人员可以使用几个API中的任何一个来建立独一无二的应用程序,或者将ArcGIS Engine组件与其他软件组件组合起来实现地图与用户管理信息之间的协同关系。

ArcGIS Engine二次开发文档

ArcGIS Engine二次开发文档

1.1简单的A rcGIS Engine地图显示程序这个例子将引导您创建第一个简单的地图显示程序,并添加基本的缩放和漫游功能。

并介绍MapControl、ToolbarControl、TOCControl的应用,1.1.1创建一个新的工程首先打开Microsoft Visual Studio 2010,点击菜单栏中的“文件”—>“新建”—>“项目”,在弹出的对话框中选择新建一个Visual C#的Windows应用程序,之后更改项目名称为“地图浏览”,更改文件的路径为个人实习文件夹,点击“确定”即可。

图1新建项目对话框选中项目“地图浏览”中的窗体“Form1”,修改其Name属性为“MainForm”,Text 属性为“地图浏览”,图2窗体命名1.1.2添加控件及引用点击编译器最左侧的“工具箱”(不存在时可通过“视图”“工具箱”打开),在弹出的选择项中找到“ArcGIS Windows Forms”项,单击其中的MapControl,之后在Form1的空白处单击鼠标左键不放并拖拽鼠标,直到调整MapControl到合适的大小再松开鼠标(您也可以直接在工具箱中双击MapControl,该控件则会自动加入到Form1中)。

用同样的方法,再将LicenseControl添加到Form1中。

图 3 打开工具箱图4工具箱如果您在工具箱中找不到MapControl,则请依次尝试以下两种解决方案。

首先单击工具栏,待工具箱弹出之后,在工具箱的任意位置上单击鼠标右键,从弹出菜单中选择“重置工具箱”。

如果这一步操作之后仍然无法看到MapControl,则在工具箱的任意位置上单击鼠标右键,找到“常规”选项卡,然后在“常规”选项卡上单击鼠标右键,在弹出菜单中单击“选择项(I)…”,在弹出的对话框中选择“.NET Framework组件”,找到“LicenseControl”和“MapControl”,将这两项前的复选框打上勾,最后点击确定即可(如果在“.NET Framework 组件”这个面板中找不到这两项,则选择“COM 组件”面板,在“ESRI LicenseControl”和“ESRI MapControl”前面打勾)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ArcGIS Engine二次开发——提高篇1缩略图(鹰眼)鹰眼功能是GIS的主要功能之一,当地图范围很大时,它可以很好的为用户指明当前地图的范围。

在本小节中我们将学习如何制作这种鹰眼。

1.1添加控件新建一个C#.Net项目,项目名称为OverView,将Form1的名字设置为MainForm,并添加ToolbarControl 、两个MapControl和LicenceControl等四个控件。

布局如下图所示。

左边的axMapControl1用于地图数据显示和操作,右边axMapControl2用于鹰眼显示。

图 1 界面布局在ToolbarControl 加载添加数据按钮和地图浏览的功能按钮,如下图所示,并将ToolbarControl的伙伴控件设为axMapControl1。

图2添加按钮1.2代码添加及解释鹰眼用来显示主窗体当前视图范围在全景视图中的位置,在ArcMap中使用一个线框在鹰眼视图中标识。

当主视图中的视图范围改变时,鹰眼中的线框随之改变,当拖动鹰眼视图中的红线框时,主视图中的视图范围也随之改变。

下面开始实现鹰眼功能,添加、、三个引用。

首先在axMapControl1中视图范围改变时鹰眼窗体要做出对应的响应,即绘制线框并显示,在OnExtentUpdated事件中添加代码如下:private void axMapControl1_OnExtentUpdated(object sender, e){et项目,项目名称为Buffer,将Form1的名字设置为MainForm,并添加ToolbarControl 、MapControl、TOCControl、LicenceControl和Button等五个控件。

并将ToolbarControl 、TOCControl的伙伴控件设为MapControl,Button控件的Name属性设定为btnBuffer,Text属性设定为“缓冲区分析”。

控件布局效果如下图所示。

图3控件布局效果在ToolbarControl 加载添加数据按钮和地图浏览的功能按钮,如下图所示。

图4添加按钮1.2.1代码添加及解释首先添加如下四个命名空间的引用。

在使用Geoprocessor工具实现缓冲区分析时,需要首先定义一个Geoprocessor对象,因为命名空间“也包含Geoprocessor类,为了避免混淆,我们使用命名空间来定义Geoprocessor,然后设置Geoprocessor中的环境参数,这里我们使用默认参数。

然后定义一个操作类Buffer,并设置参数,生成缓冲区的参数包含原始图层,缓冲半径和输出路径,最后使用已定义的Geoprocessor对象执行即可。

双击“生成缓存区”按钮,添加代码如下:private void btnBuffer_Click(object sender, EventArgs e){hp)|*.shp";hp" != {("输出路径错误!");return;}et项目,项目名称为OverLay,将Form1的名字设置为MainForm,并添加ToolbarControl 、MapControl、TOCControl、LicenceControl和Button等五个控件。

并将ToolbarControl 、TOCControl的伙伴控件设为MapControl,Button控件的Name属性设定为btnIntersect,Text属性设定为“叠置求交”。

控件布局效果如下图所示。

图5控件布局效果在ToolbarControl 加载添加数据按钮和地图浏览的功能按钮,如下图所示。

图6添加按钮1.2.2代码添加及解释首先添加如下引用:using与缓冲区分析的实现类似,在使用Geoprocessor工具实现叠置分析时,需要首先定义一个Geoprocessor对象,因为命名空间“也包含Geoprocessor类,为了避免混淆,我们使用命名空间来定义Geoprocessor,然后设置Geoprocessor中的环境参数,这里我们使用默认参数。

然后定义一个操作类,这里为Intersect,然后设置其操作参数,这里我们仅设置输入的要素,最后使用已定义的Geoprocessor对象执行即可。

双击“生成缓存区”按钮,添加代码如下:private void btnIntersect_Click(object sender, EventArgs e){hp)|*.shp";= "选择第一个要素";hp)|*.shp";= "选择第二个要素";hp)|*.shp";hp";;string strName = (index);Union et项目,项目名称为OverLay,将Form1的名字设置为MainForm,Text 属性设为“地图编辑”,并添加ToolbarControl 、MapControl、TOCControl、LicenceControl、四个Button、两个ComboBox、两个Label和一个GroupBox等控件。

将ToolbarControl 、TOCControl的伙伴控件设为MapControl,ToolbarControl 加载添加数据按钮和地图浏览的功能按钮。

控件布局效果如下图所示。

图7界面效果控件属性设置如下:表1控件属性设置1.3添加引用和代码ArcEngine中的地图编辑使用IWorkspaceEdit接口来进行编辑状态的管理,在需要对指定的工作空间进行编辑时,首先使用IWorkspaceEdit获取该工作空间的数据,然后使用StartEditing方法开始编辑状态,StartEditOperation方法打开具体编辑的操作,编辑完成后,使用StopEditOperation方法关闭编辑操作,使用StopEditing方法关闭编辑状态,完成编辑。

在本例中,我们实现了新的点线面要素的创建和移动的功能,涉及到了比较复杂的鼠标与地图间的交互,这个功能的实现中,IDisplayFeedback是一个十分关键的接口,它具有涉及创建要素,移动要素、编辑节点等31个实现类,能够实现鼠标与地图交互中的事件的追踪,返回新的几何对象。

本例的实现,我们首先来添加一个编辑类,将涉及到的编辑的相关方法抽象到这个类中。

在项目中添加“Edit”类。

添加如下引用。

using定义如下成员变量。

private bool mIsEditing; orkspace;mWorkspaceEdit = pWorkspace as IWorkspaceEdit;if (mWorkspaceEdit == null)return;creenDisplay;pNewLineFeedback = mDisplayFeedback as INewLineFeedback;creenDisplay;pNewPolygonFeedback = mDisplayFeedback as INewPolygonFeedback;creenDisplay;et项目,项目名称为MapRender,将Form1的名字设置为MainForm,并添加ToolbarControl 、MapControl、TOCControl、LicenceControl和Button等五个控件。

并将ToolbarControl 、TOCControl的伙伴控件设为MapControl。

控件布局效果如下图所示。

图8控件布局效果在ToolbarControl 加载添加数据按钮和地图浏览的功能按钮,如下图所示。

图9工具栏设置效果添加Buttom按钮的属性设置如下:表4控件属性设置1.4代码添加及解释该工程需要添加如下引用:usingusingusingusingusing在axMapControl1控件中添加图层,如图所示:图10添加初始化图层1. 简单着色代码添加添加btnSimpIeRenderer按钮的Click事件代码:private void btnSimpIeRenderer_Click(object sender, EventArgs e){IMap pMap = ;分级着色代码添加在前面代码的基础上添加如下引用:usingusing然后添加btnCIassBreakRenderer按钮的Click事件代码:private void btnCIassBreakRenderer_Click(object sender, EventArgs e) {IGeoFeatureLayer pGeoFeatureL;ITable pTable;IClassifyGEN pClassify;ITableHistogram pTableHistogram;IBasicHistogram pHistogram;object dataFrequency;object dataValues;double[] Classes;int ClassesCount;IClassBreaksRenderer pClassBreaksRenderer;IHsvColor pFromColor;IHsvColor pToColor;IAlgorithmicColorRamp pAlgorithmicCR;IEnumColors pEnumColors;bool ok;IColor pColor;ISimpleFillSymbol pSimpleFillS;int lbreakIndex;string strPopField = "POP1990";int numDesiredClasses = 5;IMap pMap = ;= 0;pGeoFeatureL = (IGeoFeatureLayer)(0);ET中必须使用IClassifyGEN这个借口定义的对象才能实现分级。

3. 唯一值着色代码添加添加btnUniqueValueRenderer按钮的Click事件代码:private void btnUniqueValueRenderer_Click(object sender, EventArgs e) {IGeoFeatureLayer m_pGeoFeatureL;IUniqueValueRenderer pUniqueValueR;IFillSymbol pFillSymbol;IColor pNextUniqueColor;IEnumColors pEnumRamp;ITable pTable;int lfieldNumber;IRow pNextRow;IRowBuffer pNextRowBuffer;ICursor pCursor;IQueryFilter pQueryFilter;string codeValue;IRandomColorRamp pColorRamp;string strNameField = "State_Name";IMap pMap = ;= 0;m_pGeoFeatureL = (IGeoFeatureLayer)(0);pUniqueValueR = new UniqueValueRendererClass();pTable = (ITable)m_pGeoFeatureL;lfieldNumber = (strNameField);if (lfieldNumber == -1){("未能找到字段 " + strNameField);return;}唯一值着色代码添加在前面代码的基础上添加引用using stdole;然后添加btnSymbolRenderer按钮的Click事件代码:private void btnSymbolRenderer_Click(object sender, EventArgs e) {IGeoFeatureLayer pGeoFeatureLayer;IFeatureLayer pFeatureLayer;IProportionalSymbolRenderer pProportionalSymbolR;ITable pTable;IQueryFilter pQueryFilter;ICursor pCursor;IFillSymbol pFillSymbol;ICharacterMarkerSymbol pCharaterMarkerS;IDataStatistics pDataStatistics;IStatisticsResults pStatisticsResult;pFontDisp;IRotationRenderer pRotationRenderer;IMap pMap = ;= 0;pFeatureLayer = (IGeoFeatureLayer)(0);pGeoFeatureLayer = (IGeoFeatureLayer)pFeatureLayer;pTable = (ITable)pGeoFeatureLayer;pQueryFilter = new QueryFilterClass();("");pCursor = (pQueryFilter, true);质量图着色代码添加这里以柱状图为例,先添加引用如下:然后添加btnChartRenderer按钮的Click事件代码:private void btnChartRenderer_Click(object sender, EventArgs e){IGeoFeatureLayer pGeoFeatureL;IFeatureLayer pFeatureLayer;ITable pTable;ICursor pCursor;IQueryFilter pQueryFilter;IRowBuffer pRowBuffer;int numFields = 2;int[] fieldIndecies = new int[numFields];int lfieldIndex;double dmaxValue;bool firstValue;double dfieldValue;IChartRenderer pChartRenderer;IRendererFields pRendererFields;IFillSymbol pFillSymbol;IMarkerSymbol pMarkerSymbol;ISymbolArray pSymbolArray;IChartSymbol pChartSymbol;简单着色代码添加添加btnDotDensityRenderer按钮的Click事件代码:private void btnDotDensityRenderer_Click(object sender, EventArgs e) {IGeoFeatureLayer pGeoFeatureL;IDotDensityRenderer pDotDensityRenderer;IDotDensityFillSymbol pDotDensityFillS;IRendererFields pRendererFields;ISymbolArray pSymbolArray;ISimpleMarkerSymbol pSimpleMarkerS;string strPopField = "POP1990";IMap pMap = ;pGeoFeatureL = (IGeoFeatureLayer)(0);pDotDensityRenderer = new DotDensityRendererClass();pRendererFields = (IRendererFields)pDotDensityRenderer;//添加点密度着色的字段名(strPopField, strPopField);pDotDensityFillS = new DotDensityFillSymbolClass();//设置着色符号的大小和颜色= 4;IRgbColor color = new RgbColorClass();= 0;= 0;= 0;= color;//设置着色符号的背景颜色= 239;= 228;= 190;= color;pSymbolArray = (ISymbolArray)pDotDensityFillS;//设置点符号样式pSimpleMarkerS = new SimpleMarkerSymbolClass();= ;= 4;= 128;= 128;= 255;= color;((ISymbol)pSimpleMarkerS);= pDotDensityFillS;//设置一个点代表的值= 200000;//创建图例();= (IFeatureRenderer)pDotDensityRenderer;null, null);}着色的效果如下图所示:图11根据POP1990字段的点密度着色图效果1.5小结地图专题图制作是GIS中数据显示和分析的重要环节,涉及到的对象和接口也比较多,上面实例只是简单的实现了五种专题图的显示。

相关文档
最新文档