基于ArcGIS Engine的地图制图系统开发与实现
摘要:基于ESRI公司的ArcGIS Engine组件开发了地图制图系统,实现图面整饰,打印输出等功能。
关键词:地图制图 C# ArcGIS Engine
1、概述
自二十世纪末以来,环境、资源、可持续发展成为全球的焦点问题,空间信息的可视化显得尤为重要,而空间信息可视化最基本的表达方式就是地图。地图作为人类形象思维的一种方式,地理学的第二语言,源远流长又方兴未艾。随着空间探测技术的发展,以及经济建设和空间信息传输对地图的需要,现代科学技术和理论在地图学中被不断引用,计算机地图制图,遥感制图和地理信息系统技术开始出现,人们对地图的人事不断深化。GIS技术的出现为计算机地图制图提供了更加强大的功能和便利的条件,传统的专题制图技术与GIS技术相结合,使专题地图制图方法更加简便、表达更加清晰、内容更加丰富。
目前,国内外已经有很多成熟的商用GIS制图软件。国外的有ESRI公司的ArcGIS系列软件、mapinfo软件、intergraph等等;国内的有mapgis、supermap、geostar、citystar等。这些软件已经在各行各业得到了广泛的应用。商业化的GIS软件制图效果很好,所面向的行业很多,但针对性不强,这在无形中就增加的了生产中的支出。GIS集成二次开发很好的解决了这个问题。用户可以根据自己的需要购买组件,然后在一定的软件开发环境下实现自己的功能,这样在很大程度上节约了开支。本文在visual studio 2008开发环境下,使用C#语言,在ArcGIS Object基础之上实现了地图制图系统的开发,能够进行图面整饰,打印输出等功能。
2、专题制图内容
1)地图模板。具体包括图框大比例小,图框的类型与颜色,模板的底色等。
2)地图格网。地图格网是地图表达的重要内容,反应地图的坐标系统和投影信息。地图格网有两种:第一种是方里网,一般适合大比例尺的地图;第二种是经纬网,一般适合小比例尺地图。举个例子,国家1:5万基础地形图,采用的是高斯克吕格投影,采用的方里网,国家1:100万行政区划地图大部分使用的是双标准纬线等角圆锥投影,采用的是经纬网。
3)地图整饰。地图整饰就是地图地图表现形式、表示方法,是地图制图具包括指北针,图例,比例尺。的重要环节,整饰目的为根据地图性质和用途,正确选择表示方法和表现形式,恰当处理图上各种表示方法的相互关系,以充分表现地图主题及制图对象的特点,达到地图形式同内容的统一。
4)地图标注。地图标注可以分为文字标注和图表标注。地图标注标注旨在增加地图的可读性。
5)文件操作。具体包括地图打印和地图输出,地图输出的格式可以为jpg、emf、pdf等格式。
3、系统开发与实现
Visual Studio是目前比较流行的Windows平台应用程序开发环境,本文在VS2008环境下使用C#语言进行集成二次开发,使用DotnetBar的Ribbon风格界面。
3.1、ArcEngine概述
ArcGIS Engine(AE)是ESRI公司推出的功能强大的组件式地理信息系统开发软件,它是目前GIS业界最为著名的组件式GIS开发产品,通过ArcGIS Engine提供的组件,用户可以实现地理信息系统的灵活应用和扩展。ArcGIS系列软件的核心是Arc Object(AO)组件,即AO构建了DeskTop,同样构建了AE。
3.2系统开发与实现
本次制图系统的开发所涉及到得通用接口有IPageLayout、IActiveView、IElement、IMapSurroundFrame、IFrameElement、IMap Frame、IGraphicsContainer、ICommand、ITool等。核心功能实现如下:
1)增加坐标格网,主要使用的接口如下:IMapGrids和IMeasuredGrid(格网的类型设置)、IProjectedGrid(投影信息的设置)、IFormattedGridLabel和INumericFormat(格网标签格式设置)、ICalibratedMapGridBorder(格网属性设置)、IDMSGridLabel(经纬网标签格式设置)。
2)增加图例,主要使用的接口为ILegend(图例元素的初始化接口)、ILegendFormat(图例格式设置)、ITextSymbol(图例文字类型)、ISimpleFillSymbol和IFillShapeElement(图例背景设置)、Ilegendelement(图例元素和IElement一起使用)。
3)增加比例尺,主要使用的接口为IScaleBar(设置比例尺的类型和单位),需要说明的是有六种类型的比例尺类实现了此接口分别为AlternatingScaleBarClass、DoubleAlternatingScaleBarClas、HollowScaleBarClass、ScaleLineClass、SingleDivisionScaleBarClass、SteppedScaleLineClass。
4)增加指北针和地图标注,主要使用的接口IMarkerNorthArrow、IMarkerSymbol、ICharacterMarkerSymbol等。
5)地图导出,主要使用的接口IExport,有三种导出格式类实现了这个接口,分别为JPG类、PDF类、EMF类。
4、总结
本文主要论述了基于ArcGIS Engine的地图制图系统的开发,介绍了实现本系统所使用的主要AE接口,并经过具体数据的实验得到了预期的效果。但是本系统是基于AE二次开发的,系统的运行依赖于ArcGIS RunTime运行时环境,如何从底层开发出不依赖于AE的系统将是下一步的工作重点。
参考文献:
[1]李军等,基于ArcGIS平台的地质制图的实现,地质通报,2009
[2]边雪清等,专题地图制图系统设计与实现,测绘科学,2009
[3]黄佩等,浅谈基于ArcGIS自动化专题制图的关键技术—以南充市水利资源分布专题图为例,科技信息,2009