基于ArcGISEngine的符号化研究与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
End Function 该函数返回一个面状符号对象,点对象和线对象 类同。 用获取的符号符号化图层对象,实现地图的符号化。
第 7 卷第 4 期
赵成福等:基于 ArcGIS Engine 的符号化研究与实现
59
Public Sub RenderLayer (ByVal strStyleName As String, ByVal strCategory As String, ByVal strSymbolName As String)
1 ArcGIS Engine 介绍
ArcGIS Engine 是与 ArcGIS9.0 同时推出的独立的 软件开发包,可以脱离 ArcGIS Desktop 环境进行应用 程序开发。ArcGIS Engine 提供了 21 个组件对象库,这 些组件对象库对 ArcGIS 底层功能进行了封装,使 GIS 开发人员能够集中精力按照应用需求进行开发。ArcGIS Engine 是按照 COM 标准实现的,支持跨平台和多种编 程语言的开发, 在 Windows 下支持 C++、Java、VB、 Delphi 和. Net 等。
3选中某个要素图层在右键下拉菜单中选择convertsymbology符号转化为制图表达4在弹出的要素图层的符号面板中可以看到制图表达的配置属性其中包括制图表达名称制图表达规则id要素编辑时的制图表达行为等属性单击convert按钮把图层符号转换成制图表达
2009 年 8 月 第 7 卷第 4 期
地理空间信息
1) 在 ArcMap 中 选 择“Tools” 菜 单 的“Style Manager”命令,弹出“Style Manager”工具(见图 1)。 在该工具中主要完成创建 Style 符号文件,新建点、线、 面符号样式对象等。
收 稿 日 期 :2008-05-09
58
地理空间信息
第 7 卷第 4 期
ZHAO Chengfu,WANG Yuan,LI Yonghua, LIU Haijun
(Provincial Geomatics Centre of QingHai, Xining 810000, China)
Abstract:This paper introduced the method for establishment of map symbols database on the base of ArcGIS platform, then realized map symbolization using ArcGIS Engine, the re-developed platforms with three programming methods and made comparison with three symbolized methods. It has certain reference for GIS development using ArcGIS Engine。 Key words: GIS; map symbols; ArcGIS Engine
3)在 ArcGIS Engine 应用程序中加载符号化后的 MXD 文档,程序代码如下:
Public Sub OpenDocument (ByVal sFilePath As String)
Dim m_pMapDocument As IMapDocument m_pMapDocument = New MapDocument m_pMapDocument. Open (sFilePath, "")
4) 依照上述方法依次建立各比例尺图式符号。建 好的符号样式保存在用户新建的 Style 符号文件中,至 此符号库建立完毕。
3 符号化方法
3.1 基于 MXD 文档的符号化方法 MXD 文档是 ArcMap 中使用的文件类型,该文档
相当于一个工程文件,可以保存数据层集合、数据层 的符号化、VBA 宏代码等信息。下文介绍用 MXD 文 档实现地图符号化功能的方法和步骤。
Dim pPolySymbol As IFillSymbol Dim pFeatLyr As IFeatureLayer Dim pSym As ISymbol
… pPolySymbol=GetPolySymbol (GetFilePath ("
Styles\"), strStyleName, strCategory, strSymbolName) pFeatLyr=MainAxMapControl. Map. Layer (i) pSym = pPolySymbol … pSimpleRenderer = Nothing End Sub
化并对三种符号化方法进行比较,对采用 ArcGIS Engine 进行地理信息系统开发具有一定的参考价值。
关键词:地理信息系统;地图符号;ArcGIS Engine
中 图 分 类 号 :P208
文献标志码: B
文章编号: 1672-4623 (2009) 04-0057-03
Implementation of Symbolization Based on the ArcGIS Engine
1)在 ArcMap 中新建一个 MXD 文档,将需要符 号化数据集用添加对话框添加到 MXD 文档中。
2)选择要符号化的数据层,用“Symbol Selector” 符号选择工具选择符号库中的符号。在此工具中可以 设置符号的颜色和大小,还可以调用符号编辑器对所 选符号再次编辑, 将所有数据层符号化完成后,保存 MXD 文档。
MainAxMapControl. Map = m_pMapDocument. Map (0)
End Sub 上述代码使用 ArcGIS Engine 中的 IMapDocument 接口的 Open 方法打开MXD 文档,实现了地图的符号化。 3.2 基于 StyleGallery 对象的符号化方法 在 ArcGIS Engine 中 StyleGallery 对象是一个与文 档对象相关的 Style 的集合对象,它代表了一个 Style 符号文件,通过这个对象开发人员可以将一个 Style 符 号文件中的样式提取出来供系统使用。StyleGallery 类 实现了 IStyleGallery 接口,该接口定义了操作一个样式 的种类、样式类、样式条目的方法和属性。下文介绍 用 StyleGallery 对象实现地图符号化功能的方法和步骤。 1)由于 ArcGIS Engine 支持的符号文件是 ServerStyle 文件,所以需要用 ArcGIS 提供的 Make ServerStyle Sets.exe 工具将 ArcgisStyle 文件转换为 ArcEngine ServerStyle 符号文件。 2)利用 IStyleGallery 接口获取符号, 部分程序代 码如下: Public Function GetPolySymbol (ByVal strStyleFilePath As String, ByVal strStyleFile As String, ByVal strStyleType As String, ByVal strSymbolName As String) As IFillSymbol …
Public Sub SetRepClassRender (ByVal strReptName As String, ByRef pFLayer As IFeatureLayer)
Dim pFClass As IFeatureClass Dim pRWE As IRepresentationWorkspaceExtension …
图 1 符号库设计工具
2) 选中某个样式对象,在右侧列表控件中点击鼠 标右键,在弹出菜单中选择“New” 命令,新建一个 符号对象。新建的符号要输入有意义的名称和分组,比 如 铁 路 符 号“Name” 属 性 为“Railway”,“Category” 为 “DLG025W”。
3) 在弹出的“Symbol Property Editor”对话框中可 以编辑符号的颜色、大小、线划、定位方式等属性。在 层属性(Layers)中可以叠加字体符号和图片符号,形 成形状复杂的符号。
GEOSPATIAL INFORMATION
Aug., 2009 Vol. 7, No. 4
基于 ArcGIS Engine 的符号化研究与实现
赵成福,王 苑,李永花,刘海军
(青海省基础地理信息中心,青海 西宁 810000)
摘 要:介绍基于 ArcGIS 平台的符号库建பைடு நூலகம்方法,然后利用 ArcGIS Engine 二次开发平台用三种编程方法实现地图的符号
图 2 符号转化为制图表达
4)在弹出的要素图层的符号面板中可以看到制图 表达的配置属性,其中包括制图表达名称、制图表达 规则 ID、要素编辑时的制图表达行为等属性,单击 “Convert” 按钮把图层符号转换成制图表达。
5)由于制图表达也是一种符号渲染方法,所以需 要用程序调用此渲染方法,部分程序代码如下:
地图符号是地图的语言,是表达空间数据的基本 手段,是可视化表达地理信息内容的基础工具。地图 符号的绘制是地理信息系统开发中的一个重要组成部 分,在地理信息系统专业软件中寻求合适的制图方式 和方法,是地理信息系统需要完成的重要任务之一。目 前国内许多测绘单位采用 ArcGIS 平台建立自己的空间 地理信息数据库,和纸质测绘成果一样,空间数字产 品同样要用地图符号的方式表达地理信息,因此地图 符号化的问题在测绘数字产品中同样存在。由于空间 地理信息的复杂性和计算机自动化制图技术的限制,地 理信息符号化一直是地理信息系统中的一个难点。
2 符号库的建立
地图符号库即地图符号描述信息的集合,通过地 图符号描述代码,完成地图符号的使用、编辑和存储。 地图符号库是地理信息系统建设的一项基础性工作,是 地理信息系统进行广泛应用不可缺少的部分。
基于 ArcGIS Engine 二次开发的符号化前提是在 ArcGIS 平台中用符号设计工具制作好需要的符号,然 后用程序去调用符号库中的符号,完成图形符号化。目 前基于 ArcGIS 平台建立符号库的设计方法有多种,其 中包括 ArcGIS 符号设计工具建立符号库,绘图软件和 ArcGIS 符号设计工具相结合的符号库设计方法和造字 软件与 ArcGIS 符号设计工具相结合的方法等,后两种 方法主要用来制作形状复杂的符号。本文主要说明如 何利用 ArcGIS 符号设计工具建立符号库的方法及步骤。
pSGallery = New ServerStyleGalleryClass pSGStorage = pSGallery strTmp = strStyleFilePath & strStyleFile pSGStorage. TargetFile = strTmp pSGStorage. AddFile (strTmp) penumGItem = pSGallery. Items ("Fill Symbols", strTmp, strStyleType) penumGItem. Reset () mStyleItem = penumGItem. Next pFSymbol = mStyleItem. Item Do While Not mStyleItem Is Nothing pFSymbol = mStyleItem. Item If (mStyleItem. Name = strSymbolName) Then Exit Do End If …
3.3 基于制图表达的符号化方法 制图表达是一种智能符号化。同时,也是一种存
储模型,它把符号信息存储在 GeoDatabase 中,可以达 到重复使用和共享的目的。它是 ArcGIS9.2 新推出的功 能,其作用是为了解决以前制图方面的难题。下文介 绍用制图表达实现地图符号化功能的方法和步骤。
1)将要符号化的要素集导入 GeoDatabase 中。 2)将 GeoDatabase 中的要素集加载到 ArcMap 中, 按照上文中配置 MXD 文档符号的方法,配置每个数据 层的符号。 3) 选 中 某 个 要 素图 层,在 右 键 下拉 菜 单 中 选 择 “Convert Symbology to Representation…”命令(见图 2)。
相关文档
最新文档