03.MapGIS VirtualEarth二次开发技术篇
- 格式:pdf
- 大小:641.89 KB
- 文档页数:22
MapGIS常见问题中地数码集团平台二次开发支持部本期常见问题主要由MapGIS开发平台C/S开发问题组成,涉及部分B/S开发问题。
1、基于MapGIS开发平台,如何通过代码实现修改线的图形参数操作,包括可变颜色、可变笔宽、线型等参数?答:可按照如下步骤实现:(1)在MapGIS软件中若需查看线、区等要素的图形参数,需开启还原显示功能,可通过编写代码手动开启还原显示功能。
(2)在还原显示模式下,线是通过MapGIS符号库的线型来显示的,而线型符号则由几部分构成,而每一部分若采取固定颜色或者固定笔宽的模式,则无法看到修改后的线型参数。
只有在某一部分采取可变颜色或者可变笔宽的情况下,对图形信息中的相关项的修改才会有效果,因此可以通过修改符号库的相关线型的颜色模式或笔宽模式来达到效果。
(3)一个线型可以通过线型号+辅助线型号来唯一确定,以COM组件式开发C#语言为例的线属性如下:mcLinInfo. libID:辅助线型号mcLinInfo. linstyID:线型号(4)基于COM组件式开发C#语言的还原显示实现代码如下:mcLinInfolineInfo = new mcLinInfo();//线信息mcGeoVarLinevarLine = new mcGeoVarLine();//折线对象//点对象mcDot dot1 = new mcDot();mcDot dot2 = new mcDot();//点对象赋值dot1.x = 50;dot1.y = 50;dot2.x = 200;dot2.y = 200;//添加到折线对象varLine.Append2D(dot1);varLine.Append2D(dot2);//设置线参数lineInfo.linstyID = 21;lineInfo.libID = 4;lineInfo.xscale = 20;lineInfo.yscale = 20;//绘图IXDisplay display = this.axMapXView1.Display;//绘图对象display.DispLine(ptGeom as IGeoLine, lineInfo as mcLinInfo, 6);//根据线参数显示对应的线display.DisplayOption.SymbolShow = true;//开启还原显示功能display.DispLine(varLine, lineInfo as mcLinInfo, 0);//重绘制线2、在查看地图的过程中,常要通过不同比率显示地图,如何通过代码实现按照一定的显示比率显示地图的功能?答:步骤如下:(1)用户常常将显示比率与比例尺相混淆,比例尺一般应用于地图数据打印输出时,表示图上距离与实际距离的比值。
mapgis二次开发基础知识MAPGIS二次开发基础知识一、手动注册组件与注销组件COM以及客户应用程序所需的、用来定位组件及对组件进行实例化的信息存储在Windows的注册表(Registry)里。
因此,在使用组件之前要对组件进行注册,只有成功注册才能引用该组件,其具体步骤为:1.将包容组件的DLL文件放入MAPGIS PROGRAM 目录下,假设物理路径为:D:\mapgis65\program\ MapGisBasCom1.dll2.运行注册表程序注册组件 Windows开始菜单-〉运行:regsvr32 D:\mapgis65\program\MapGisBasCom1.dll 注册成功与否将有对话框弹出。
3.注销该组件方法为:regsvr32 /u D:\mapgis65\program\MapGisBasCom1.dll二、Visual Basic中嵌入对象类型库为了使Visual Basic能够访问MAPGIS对象定义,应该在Visuai Basic项目或模块中嵌入MAPGIS对象类型库。
如果想把一个Visual Basic对象声明为MAPGIS对象类型,要求嵌入MAPGIS对象类型库, 如果想把一个Visual Basic对象声明为一般Object类型,就不必嵌入MAPGIS对象。
为了在项目中嵌入MAPGIS对象类型库,通常执行这些步骤:从Project(工程)菜单, 选择References, References对话框出现, 选中复选框嵌入MapGisBasCom1 Type Library文件。
这要求VisualBasic环境或代码模块编辑器是活动的,正在运行。
三、使用MAPGIS对象可以使用Visual Basic编写使用MAPGIS对象的程序。
在Visual Basic程序中使用MAPGIS 对象所要求的步骤是:1.嵌入MAPGIS对象类型库。
2.建立一个MAPGIS对象。
收稿日期:2001-11-16基金项目:国家“九五”重中之重科技攻关项目“M APGIS 软件的开发与商品化”(N o.96-B02-03-05).基于MAPGIS 组件的二次开发周顺平,王海龙(中国地质大学信息工程学院,湖北武汉430074)摘要:组件式GIS 是GIS 与组件技术相结合的新一代地理信息系统.介绍了地理信息系统和组件式GIS 的基本概念,并简单介绍了组件式GIS 的基本优点及M APGIS 组件开发平台的组成和功能划分.阐述了使用M APGIS 组件进行GIS 应用软件二次开发的一般方法和步骤,以及在VB 中使用M APGIS 组件对象的基本步骤.并以VB 为开发环境,结合M APGIS 数据管理组件、图形显示组件、图形编辑控件、属性编辑控件等,给出了一个具有图形显示、地理属性数据编辑等功能的实例程序,演示了如何使用M APGIS 组件进行GIS 应用软件的二次开发.关键词:地理信息系统;组件;组件式地理信息系统;M APGIS;GIS 二次开发.中图分类号:TP311.52 文献标识码:A 文章编号:1000-2383(2002)03-0289-04作者简介:周顺平(1967-),男,副教授,1999年毕业于中国地质大学信息工程学院,获硕士学位,现主要从事GIS 基础软件和数据库方面的科研及应用开发工作.E 2mail :zhouspin @ 地理信息系统(geographic information system ,简称GIS )是在计算机软硬件支持下,以采集、存储、管理、检索、分析和描述空间物体的地理分布数据及与之相关的属性,并回答用户问题等为主要任务的技术系统[1,2].组件式GIS (com ponent GIS )指基于组件对象平台,以组件的形式提供基本功能的GIS ,是GIS 与组件技术相结合的新一代地理信息系统[3].组件式GIS 充分利用了组件的可重用特性,使用GIS 组件可以很大程度地提高GIS 应用软件的开发效率和质量.MAPGIS 地理信息系统是国产的GIS 基础软件平台,它提供了丰富的二次开发手段,包括API 函数库、C ++类和组件开发库[4].1 MAPGIS 组件开发平台MAPGIS 组件开发平台以一系列C OM 组件和ActiveX 控件的形式提供了GIS 基本功能:包括数据管理组件、图形显示组件、图层管理组件、地图管理组件、图例管理组件、图像处理组件、图库管理组件、图1 M APGIS 组件(控件)对象关系Fig.1Relation of M APGIS com ponent (ActiveX control )ob 2jects图形编辑控件、工程管理控件、属性编辑控件、属性结构编辑控件等.这些组件(控件)对象关系如图1所示.数据管理组件是整个系统的基础和核心,主要进行空间数据和属性数据的存取和管理,并提供基本的数据交互功能.数据管理组件定义了MAPGIS的基本数据类型和数据结构,封装了对点、线、区、网、表格等工作区的基本操作[5].GIS 通用功能组件(控件)集合提供了MAPGIS 平台的通用处理功能.通用功能组件基于数据管理组件构造而成,它们具有面向通用GIS 功能:图形显示第27卷第3期地球科学———中国地质大学学报V ol .27 N o .32002年5月Earth Science —Journal of China University of G eosciencesM ay 2002对象MAPGIS DC封装了MAPGIS的基本显示操作;图层对象Layer封装了点、线、区、网文件的数据管理功能;地图对象Map封装了对MAPGIS基本图形的编辑/输出操作和对多个图层的管理功能;图例对象Legend封装了点、线、区图例元素的管理和操作功能,并提供了管理图例文件存储和图例元素的功能;MSI对象封装了对图像工作区的操作和显示,并提供了矢量数据和栅格数据的相互转换功能;DBS 对象封装了操作和显示图库工作区的方法.同时, MAPGIS组件开发平台还提供了几个可视化控件: EditView控件对象包括点编辑、线编辑、区编辑、数字化、矢量化及其他操作功能;MapT reeCtrl控件对象封装了与Map对象的交互操作功能;G isAttEdit控件对象主要用来浏览和编辑MAPGIS属性数据; AttStruEdit控件对象主要用来浏览和编辑MAPGIS 属性结构.MAPGIS组件包含在一系列WI NDOWS动态连接库文件里,ActiveX控件则包含在一系列.ocx文件中.表1是WI NDOWS文件与MAPGIS组件的对应关系.表1 WIN DOWS文件与MAPGIS组件对应关系T able1C orrespondence of WI NDOWS files and M APGIS com po2 nentsWINDOWS文件M APGIS组件(控件)M ap G isBasC om1.dll数据管理组件M ap G isDspC om.dll图形显示组件M ap G is LayerC om.dll图层管理组件M ap G isM apC om.dll地图管理组件、图例管理组件M ap G isDBSC om.dll图库管理组件M ap G isRasterC om.dll图像分析管理组件EditView.ocx图形编辑控件M apT ree.ocx工程管理控件G isAttEdit.ocx属性编辑控件AttS truEdit.ocx属性结构编辑控件2 基于MAPGIS组件的二次开发MAPGIS组件不依赖于某一种开发语言,它可以直接嵌入到通用的开发环境(如VIS UA L BASIC或DE LPHI)中实现GIS功能.通过调用MAPGIS组件的基本功能,并结合其他专业模型和专业模型分析控件,可以快速地开发GIS应用程序,这就大大降低了GIS应用系统的开发难度与开发成本.利用MAPGIS组件开发平台进行GIS应用程序的开发分以下几个步骤进行:(1)选择应用系统的开图2 M APGIS应用程序层次结构Fig.2Architecture of M APGIS application发工具,如VB;(2)将使用到的MAPGIS组件引用到应用程序中;(3)调用MAPGIS组件的属性和方法完成GIS基本功能;(4)开发应用系统专用的功能.基于MAPGIS组件开发平台的GIS应用程序结构如图2所示.3 VB开发示例MAPGIS组件的使用方法与一般组件的使用方法完全相同,在使用MAPGIS组件之前,必须先注册.运行MAPGIS二次开发包中的setup.exe程序,可以自动安装并注册组件;或进行手工注册:将要注册的组件对应的文件(如数据管理组件对应的Map G is2 BasC om1.dll文件)拷贝到MAPGIS的program目录下,假设路径为:“D:\mapgis61\program\”,选择WI NDOWS开始菜单的运行,在命令行中输入:“regsvr32D:\mapgis61\program\map G isBasC om1. dll”,进行组件的注册[6].在VIS UA L BASIC中使用MAPGIS组件对象的步骤是:(1)嵌入MAPGIS对象类型库;(2)建立MAPGIS对象;(3)调用MAPGIS对象和其他VB对象的方法和属性完成GIS应用软件功能;(4)释放MAPGIS对象.下面的例子演示了如何使用MAPGIS 组件(控件)进行GIS应用软件的开发.首先,新建一个VB工程(标准EXE类型),“引用”程序中用到的组件和控件.为了使VIS UA L BA2 SIC能够访问MAPGIS组件对象,需要在VIS UA L BA2 SIC项目中嵌入MAPGIS对象类型库.执行下列步骤:从Project(工程)菜单中选择References(引用), References对话框出现后,选中所需的类型库: Map G isBasC om11.0T ype Library和Map G isDspC om1. 0T ype Library.再从Project(工程)菜单中选择C om po2 nents(组件),C om ponents对话框出现后,选中所需的682地球科学———中国地质大学学报第27卷控件:EditView ActiveX C ontrol M odule和G isAttEdit ActiveX C ontrol m odule.然后,将图形编辑控件、属性编辑控件添加到一个F orm中,并将控件的名称分别改为EditView和G isAttEdit,并定义在此F orm中使用到的变量:Public linAi As LinArea ’线工作区对象Public isBrowAtt As Integer. ’浏览编辑属性标志接着,添加LoadLinFile函数和BrowOrEditAtt函数,并在“装入线文件”和“浏览、编辑线属性”的菜单响应中调用这2个函数.Load LinFile函数,调用线工作区对象LinArea的Load方法,装载一个线文件到工作区中,并设置图形显示范围;BrowOrEditAtt函数,则调用G isAttEdit控件的属性和方法来编辑工作区文件的属性值:Public Function Load LinFile()’装入线文件I f N ot linAi Is N othing ThenSet linAi=N othing ’释放原工作区End I fSet linAi=New LinAreaI f linAi.Load Then ’装入新文件EditView.SetWinMapRange-linAi.rect.xmin,linAi.rect.ymin,-linAi.rect.xmax,linAi.rect.ymax ’设置图形显示范围EditView.RestoreWindow ’复位窗口End I fEnd FunctionPublic Function BrowOrEditAtt(ByVal Editable As Integer)’浏览/编辑属性I f N ot linAi Is N othing ThenG isAttEdit.AttachArea linAi,gis LI N ’添加要编辑的工作区到控件中G isAttEdit.EditEnable=Editable ’浏览或编辑属性标志isBrowAtt=1F orm-Resize ’调整窗口及控件的位置和大小End I fBrowOrEditAtt=1End Function再接着,触发EditView控件的MyDraw事件和F orm的Resize事件,在事件处理过程中分别添加显示工作区和移动、调整控件大小的代码:Private Sub EditView-MyDraw(ByVal M pDC As Object)’显示工作区图3 M APGIS组件开发示例Fig.3Sam ple of application based on M APGIS com ponents Dim mapDC As Map G isDCSet mapDC=M pDC ’设置图形显示对象mapDC.DispArea linAi ’调用图形显示对象的方法显示linAi工作区Set mapDC=N othing ’释放图形显示对象End SubPublic Sub F orm-Resize()’调整窗口及控件的位置和大小I f isBrowAtt=0Then ’不显示实体属性EditView.M ove0,0,Me.ScaleWidth,Me.Scale2 HeightG isAttEdit.M ove0,0,0,0E lse ’显示实体属性EditView.M ove0,0,Me.ScaleWidth,Me.Scale2 Height/332G isAttEdit.M ove0,Me.ScaleHeight/332,Me. ScaleWidth,Me.ScaleHeight/3End I fEnd Sub’最后,释放工作区对象:Private Sub F orm-Unload(Cancel As Integer)’释放对象I f N ot linAi Is N othing ThenSet linAi=N othing782 第3期 周顺平等:基于M APGIS组件的二次开发End I fEnd Sub程序运行结果如图3所示.参考文献:[1]吴信才.地理信息系统的基本技术与发展动态[J].地球科学———中国地质大学学报,1998,23(4):329-333.W U X C.Basic technology and development of geographic in2 formation system[J].Earth Science—Journal of China Univer2 sity of G eosciences,1998,23(4):329-333.[2]李超岭,张克信.基于GIS技术的区域性多源地学空间信息集成若干问题探讨[J].地球科学———中国地质大学学报,2001,25(6):545-550.LI C L,ZH ANG K X.S tudy on regional multi2s ource geologi2 cal spatial in formation system based on techniques of GIS[J].Earth Science—Journal of China University of G eosciences, 2001,25(6):545-550.[3]宋关福,钟耳顺.组件式地理信息系统研究与开发[J].中国图象图形学报,1998,3(4):314-316.S ONG G F,ZH ONG E S.Research and development of com2 ponents geographic in formation system[J].Journal of Image and G raphics,1998,3(4):314-316.[4]周顺平,李雪平.M APGIS二次开发库的设计与实现简介[J].地球科学———中国地质大学学报,1998,23(4):337 -340.ZH OU S P,LI X P.M APGIS design and realization in the secondary2developed functions set[J].Earth Science—Journal of China University of G eosciences,1998,23(4):337-340.[5]袁艳斌,吴冲龙,李伟忠.面向野外地质填图的空间实体对象表达[J].地球科学———中国地质大学学报,2001, 26(2):192-196.Y UAN Y B,W U C L,LI W Z.Object styles of spatial entity for field geological mapping based on object2oriented method [J].Earth Science—Journal of China University of G eo2 sciences,2001,26(2):192-196.[6]R ofail A,Shohoud Y.C OM与C OM+从入门到精通[M].邱仲潘,等译.北京:电子工业出版社,2000.27-34.R ofail A,Shohoud Y.Mastering C OM and C OM+[M].Bei2 jing:E lectronics Industry Press,2000.27-34.Secondary Development of GIS Application B ased on MAPGIS ComponentsZH OU Shun2ping,W ANG Hai2long(Faculty o f Information Engineering,China Univer sity o f G eosciences,Wuhan430074,China)Abstract:C om ponent GIS,combined with GIS and com ponent technology,is a mainstream in GIS technology. This paper introduces the concept of GIS and com ponent GIS and presents the merits of com ponent GIS and the struc2 ture of MAPGIS com ponent development platform.Meanwhile it shows the comm on method of GIS application develop2 ment by using MAPGIS com ponents and the steps of using MAPGIS com ponents in VIS UA L BASIC.Als o,it describes a sam ple to dem onstrate how to develop GIS application based on MAPGIS com ponents.The sam ple is combined with VIS UA L BASIC and MAPGIS com ponents,such as data management com ponent,graphic display com ponent,graphic editing control and attribute data editing control,and thus possesses the functions of graph display and GIS attribute data editing.K ey w ords:GIS;com ponent;com ponent GIS;MAPGIS;secondary development of GIS.882地球科学———中国地质大学学报第27卷。
MAPGIS 二次开发库的设计与实现简介31998年3月10日收稿.3国家“九五”重中之重科技攻关项目(No.96-B02-03)资助.周顺平李雪平(中国地质大学信息工程学院,武汉430074)(中国地质大学环境科学与工程学院,武汉430074)摘 要 MAPGIS 系统不仅是一个GIS 基础软件,而且是用户开发面向具体领域的GIS 的工具.在分析对比GIS 空间模型的基础上,从空间实体模型分析、二次开发函数库软件结构设计、函数的功能分类、二次开发函数库的实现几个方面,介绍了MAPGIS 二次开发函数库的设计思想和实现方法.关键词 二次开发库,软件结构,空间模型,地理信息系统.中图法分类号 TP311.52第一作者简介 周顺平,男,副教授,1967年生,1991年毕业于中国地质大学(武汉)计算机系,获学士学位,主要从事计算机图形学和地理信息系统的研究和开发工作.0 引言能够进行二次开发是工具型GIS 的基本特征.二次开发接口一般称为应用程序界面(application program interface ,简称API ),是一组供应用程序调用(call )的命令集.二次开发就是利用工具型GIS 提供的API ,编写更高级程序的过程.实现API 的方法一般有两种:宏命令(macro command )和函数库(function library ).宏命令方式需要提供一个解释命令的环境,在这个环境下,用户很容易作一些较小的开发,但对于较大规模的二次开发,这种方式效率低,不容易进行.而函数库方式则是提供API 函数库,这种方式以某种高级语言(如C ,PASCAL ,BA 2SIC 等)为宿主语言,API 函数可看作高级语言的扩展,因而能够充分利用高级语言提供的编程环境,便于进行较大规模的二次开发,且开发完成的应用程序执行效率高.MAP GIS 是中国地质大学(武汉)开发的一个工具型GIS ,具有二次开发能力.其二次开发接口为一组定义在空间模型之上的函数集,借助于这组接口函数,用户可在BORLAND C ++,V ISUAL C ++,V ISUAL BASIC 等编程环境下,建造面向特定领域的应用型GIS.1 空间模型分析人类生活和生产所在的现实空间世界是由事物或实体组成的,有着错综复杂的组成结构.要表示、模拟这样的现实世界,就必须对现实世界进行抽象和概括,建立GIS 空间模型.换句话说,空间模型是现实世界到计算机世界的一个转换器.1.1 基本模型(1)基于平面的点、线、面模型(planar-graph based model ).这种模型把现实世界投影到一个二维平面上,再把平面上的各种要素(feature )归纳为点、线、面或零维、一维、二维3种类型的实体.这种模型的优点是精度高,适于表达曲状要素和不规则多边形,容易表示二维拓扑结构;缺点是不适于表示连续变化的空间[1].(2)连续铺盖的栅格模型(tessellation based raster model ).这种模型是将连续空间离散化,即用二维铺盖或面片(tessellation )覆盖整个连续空间,每个面片所覆盖的范围都被认为具有相同的性质.这种模型的优点是适于表征连续空间,且和现代高效的数据采集手段(遥感)紧密结合,数据的实效性强;缺点是不易精确表示实体的位置、形状和特征,且不直接考虑空间拓扑关系[1].1.2 时态矢量栅格模型(temporal planar-graph based vector and raster model)上述两种基本模型对现实世界的描述方法不同,各有优缺点,这决定了它们对解决不同的空间问第23卷第4期地球科学———中国地质大学学报Vol.23 No.41998年7月Earth Science —Journal of China University of G eosciencesJ uly 1998题具有不同的适应性.单一模型的GIS难以满足城乡规划管理对空间数据存储、管理、查询检索、分析评价、输出表达等方面的要求.而这两种模型的优缺点呈一定的互补性,所以在实际应用中,常常要求将两者结合起来[2].这两种模型都有一个共同点,就是把现实世界投影到一个二维平面上;不同点是对二维平面上的各种要素的描述方式不同.因而,理论上二者能够结合在一起,在实践中需要解决的主要问题是两个平面的套合(参照系的变换)、两种信息的相互转化,以及多种信息融合问题.MAP GIS 采用的空间模型是基于平面的时态矢量栅格一体化模型.这种模型将矢量模型和栅格模型的优点结合在一起,并增加了时间维,以便处理随时间变化引起的空间实体的变化.图1 时态矢量栅格空间模型Fig.1Temporal vector and raster spatial model如图1所示,空间实体随着时间t 的变化而变化,这种变化包括实体的空间位置、形状和属性的变化.在TVR 模型中,t 离散取值,即采用摄影方式记录在某一时刻或时间段内空间实体的状态.摄取到的空间实体的状态集则按照基于平面的矢量栅格模型处理.每一个状态集合可同时包含矢量数据和栅格数据,或二者之一.矢量数据把空间实体归纳为点、线、面3种类型,这3种类型又进一步细分为弧段(arc )、结点(node )、坐标(coordinate )等数据组织单元.其中弧段和结点还可以代表空间实体.属性信息始终和实体相关联.TVR 模型的矢量数据组织结构如图2所示.空间实体之间的关系通过结点和弧段拓扑信息表达,栅格数据则通过控制点与矢量数据进行配准.为了减少数据冗余和节省存储空间,MAP GIS 采用增量存储方式存储数据.在这种方式下,假设t 0,t 1,坐标点结点弧段面空间数据属性数据点空间数据属性数据属性数据空间数据线图2 矢量数据组织结构Fig.2The organization structure of vector datat 2时刻,空间实体的状态集如下.S 0=S (t 0)={es 00,es 01,…,es 0n }(1)S 1=S (t 1)={es 10,es 11,…,es 1n }(2)S 2=S (t 2)={es 20,es 21,…,es 2n }(3)其中:es 00,es 01,…,es 2n 表示实体的状态,每个状态包括实体的空间信息和属性信息.这样,从t 0时刻到t 1时刻,空间实体的状态变化为ΔS 1=S (t 1)-S (t 0)={es 10,es 11,…,es 1n }- {es 00,es 01,…,es 0n }(4)从t 1时刻到t 2时刻,空间实体的状态变化为ΔS 2=S (t 2)-S (t 1)={es 20,es 21,…,es 2n }- {es 10,es 11,…,es 1n }(5)因此,MAP GIS 表示t 0,t 1,t 2时刻空间的状态为{t 0,S (t 0)},{t 1,ΔS 1}和{t 2,ΔS 2}.为了表示相同实体在相邻两个时刻空间状态之间的联系,MAP GIS 使用下列5种联系操作,如表1所示.表1 实体空间状态之间的5种联系Table 1Five types of links of a entity ’s spatial state ><=操作符示意类型保持分解合并消失产生2 API 函数库结构和功能分类MAP GIS 的二次开发平台以数据库管理为核心,采用积木式总体结构.整个二次开发函数库以数据库管理为核心,包括遥感图象处理、属性操作、空间数据输入输出、空间查询、空间分析这几个部分(图3).833地球科学———中国地质大学学报第23卷OODBC图象处理其他GIS空间分析矢量数据I数据库管理属性操作查询空间数据属性数据A PI图3 MAPGIS API 结构Fig.3MAPGIS API structure (1)数据库管理.管理空间数据和属性数据,负责数据添加、提取、更新、维护数据一致性,并进行操作权限检查等[3].(2)图象处理.提供遥感图象处理工具,包括数据校正和专业信息提取等,实现栅格数据与矢量数据的准确套合.(3)属性操作.提供编辑、浏览属性结构和记录的手段,将SQL 查询语言转换为内部数据库存取操作.(4)矢量数据I/O.提供输入、输出矢量数据的手段,建立矢量型空间实体,维护空间拓扑结构,与其他图形系统交换数据.(5)查询.提供空间数据查询手段,将图视化查询语言GSQL 分解成空间范围查询和属性SQL 查询.(6)空间分析.提供矢量空间分析工具和栅格空间分析工具,包括空间叠加、Buffer 计算、统计空间分类、网络分析等.3 API 函数分类MAP GIS API 函数根据操作类型分成8类.操作对象包括空间数据、属性数据、时间数据、参考系统数据、质量描述数据、系统字典数据等.(1)Append ,Insert.添加实体(或对象)到当前数据集,Append 将实体添加到数据集的尾部,Insert 将对象插入当前位置.(2)G et.从数据库中检索对象.(3)Delete ,Undel ,Remove.删除或反删除数据库中的某个对象.其中Delete 从数据库中逻辑删除某个对象,Undel 则清除某个对象的逻辑删除标志;Remove 将某个对象从数据库中永久性删除,且不能恢复.(4)Set ,Update ,Modify.改变对象或对象的某些域,使对象更新或更准确[4].(5)Display.显示可视化对象.(6)Setup.设置或清除系统状态.(7)If ,Is.判断某个对象或对象集是否处于某种给定状态.(8)Ask.根据给定条件查找信息.4 MAP GIS 的API 的实现设计MAP GIS 的目的之一就是要使更多的用户能够充分发挥他们的聪明才智,编写他们所需要的应用程序;因此,对二次开发的用户不能作过高的要求.MAP GIS 选择的操作系统是WINDOWS 3.1,WINDOWS 95,WINDOWS N T ,在实现API 的过程中,充分利用WINDOWS 提供的程序设计方法.MAP GIS API 的基本部分,即数据管理,用动态连接库(DLL )实现;更上层API 则按照DLL 和OL E 进行设计和实现,并逐步实现控件化设计.到目前为止,MAP GIS API 5.0版已经完成,然而还有很多需要改进的地方.上述TVR 模型中,在两个相邻时刻空间实体状态之间的联系就不完善.研究能够准确描述现实世界的时空模型是GIS 学术界关注的焦点之一,也是我们今后研究的一个方向.参考文献1 宋现锋.系统模型分析.见:中国地理信息系统协会编.中国地理信息系统协会首届年会论文集.[s.l.]:[s.n.],1995.3192ISO/TC 211G eographic Information/G eomatics ,1996-11.World Wide Web :http ://www.statkart.no/isotc211/3 王光启.基于客户-服务器方式的地理信息系统及其实现.见:中国地理信息系统协会编.中国地理信息系统协会首届年会论文集.[s.l.]:[s.n.],1995.3564Zhang J Q ,Zhang J.GIS software system design considera 2tion.In :Proceedings of the 3rd International Workshop on GIS.[s.l.]:[s.n.],1993.160933 第4期 周顺平等:MAPGIS 二次开发库的设计与实现简介043地球科学———中国地质大学学报第23卷MAPGIS DESIGN AN D REAL IZATION IN THESECON DAR Y-DEVE LOPED FUNCTIONS SETZhou Shunping(Faculty of Inf orm ation Engi neeri ng,Chi na U niversity of Geosciences,W uhan430074)Li Xueping(Faculty of Envi ronmental Science and Geotechnique,Chi na U niversity of Geosciences,W uhan430074)Abstract MAP GIS system is not only the foundation of basic software of MAP GIS,but also a tool of GIS to develop a specific field that the user faces.This paper introduces,from several aspects of spatial sub2 stantial model,software structure design for secondary-developed functions set,ability classification of func2 tions,realization of secondary-developed functions set,the thought of design and method of realization for sec2 ondary-developed functions set of MAP GIS based on comparing GIS spatial model.K ey w ords secondary-developed functions set,software structure,spatial model,geographic informa2 tion system.333333333333333333333333333333333333333333333《地球科学———中国地质大学学报》1998年 第23卷 第5期 要目预告…………………………………………………………………中央造山带的演化及其特点殷鸿福 张克信关于“中央造山带”几个问题的思考张国伟 柳小明…………………………………………………………中央山系大别、东秦岭和东昆仑段最古老岩系变质过程对比陈能松 朱 杰 游振东等………………………………华北克拉通基性火山岩HFSE对A-P界限及新生代地幔源区特征的示踪刘勇胜 高 山昆仑山东段构造隆升、水系响应与环境演化李长安 殷鸿福 于庆文等……………………………………大别造山带中新生代隆升作用的时空格局———构造年代学证据王国灿 杨巍然……………………………………………………………………………………海西—印支阶段华南大陆构造演化张 宁 夏文臣女山玄武岩中尖晶石-石榴石二辉橄榄岩包体及其岩石物理意义金淑燕 潘顺安………………………浙江遂昌治岭头金银矿床硅同位素研究章传玲 姚书振………………………………………………………………………………………山西柳林泉域水-岩相互作用地球化学模拟王焰新 马 腾 罗朝晖等用遗传算法求解地下水资源管理模型邵景力 魏加华 崔亚莉等…………………………………………一维层状介质大地电磁模拟退火反演法师学明 王家映……………………………………………………………………………………反应条件指数(RCI)及其在地球化学中的应用史维浚 孙占学 周文斌等简单剪切———中国活动构造变形主要机制王业新 李运贵 李子权等……………………………………华北地台北缘中段中新元古代地块的p-T-t轨迹及构造演化研究吴泰然 刘树文 张臣…………。
前言MAPGIS 是武汉中地信息工程有限公司研制的具有自主版权的大型基础地理信息系统平台。
它是一个集当代最先进的图形、图像、地质、地理、遥感、测绘、人工智能、计算机科学于一体的大型智能软件系统,是集数字制图、数据库管理及空间分析为一体的空间信息系统,是进行现代化管理和决策的先进工具。
MAPGIS 连续四年在全国GIS 测评中名列第一,并成为唯一连续四年获得国家科技部向社会推荐的国产GIS 软件平台。
中地软件丛书之MAPGIS 二次开发培训教程是根据最新推出的MAPGIS 软件平台编写而成,主要介绍进行MAPGIS 二次开发必须具备的基础知识、主流开发工具以及MAPGIS 系统的基本概念、结构体系和操作方法。
该教程分为三个部分,共十一讲。
其中:第一部分(即第一讲的内容):介绍Windows 编程的概念。
包括类与数据封装、继承、重载、虚拟函数与多态性以及内存管理。
该部分为可视化编程的基础,有可视化编程经验的读者可以略过此讲,直接进入下一部分的学习。
第二部分(即第二讲的内容):编程工具VC 。
对于在VC 这样一个编程环境中开发应用程序所应熟悉的概念,术语和最基本的框架、构件实现过程等知识做了一个简明扼要的介绍。
已掌握一定VC 编程基础知识的读者可以略过该部分。
第三部分(即第三讲至第十一讲的内容):详细讲述了地理信息系统的基本概念(包括GIS 原理概述、空间数据类型、空间数据库、空间数据结构与数据管理等内容);MAPGIS的基本概念和体系结构(简要描述了MAPGIS 二次开发的基本概念、术语、工作区、空间实体及其数据、C++类组织和开发环境介绍的内容);MAPGIS 空间数据存取和属性编辑(包括工作区、空间实体和属性的操作及其网络介绍);图形显示输出及窗口操作、图形编辑、类库和控件开发;矢量空间分析和属性查询;投影变换、图框生成和工程管理;图库管理和查询系统(包括基于图库的应用程序开发、MAPGIS 图库介绍、开发的一般步骤以及结合图库显示说明图库主要函数的功能等方面的内容)以及图象分析与处理。
1 gis软件技术经理了五个阶段:集成式GIS、模块式GIS、核心式GIS、组件式GIS、万维网GIS2 gis由4个要素组成:硬件、软件、数据、人员3 gis分为工具性软件(GIS二次开发平台、am/fm专用开发平台软件、其他工具性软件)应用型软件(制图软件、资源调查、信息管理、空间分析与预测)4 gis用户分为:最终用户、GIS专业人员、GIS开发商/系统集成商5 gis自身的特点:(1)GIS处理的是空间数据,具有数据量庞大、实体种类繁多、实体间的关联复杂等特点(2)GIS设计以空间数据为驱动(3)GIS工程投资大、周期长、风险大、涉及部门繁多6 gisS设计的理论思想:GIS工程学思想7GIS工程学体系主要由任务(运用系统论的理论和方法实现GIS工程的最优设计、最优管理和最有运行,以求得到系统总体的最优化)、基础理论(系统学、地理信息科学、系统工程学)和方法论组成8地理信息科学是研究地球信息的本质和运动规律的一门学科,其研究对象是地理信息。
他通过对地理信息技术中的一般性问题和规律性问题进行研究,对GIS工程学提供指导。
9 地理信息科学体系划分为三个层次:;理论地理信息科学、市局地理信息科学和应用地理信息科学10gis设计与一般信息系统设计的差异:设计重心(GIS处理的是海量空间数据,数据库设计在GIS设计中尤其重要,一般系统设计的中心是软件功能)数据库建设(gis不仅要进行属性数据库的设计,更要进行空间数据库的设计,包括空间数据结构、存储方式、管理机制。
而一般的只需要建立属性数据库)设计方法(GIS以业务需求为导向、异空间数据为驱动进行系统设计,而一般的以业务需求为导向,以功能为驱动进行系统设计)11gis设计包括软件设计和数据库设计12 实现地理信息资源共享,必须具备:(啊)数据资源储备(2)有技术支撑系统的保障(3)共享规则的制定,被广泛采纳和遵循13标准化是空间信息共享和系统集成的重要前提,也是GIS产业化和社会化的必经之路。
Mapgis二次开发(入门)——MFC下的基本步骤作者:刘明瓒成都理工大学QQ:34194203欢迎大家转载此文,但请在转载时保证文章的完整性开发平台:VC++6.0&&Mapgis6.75内容:mapgis二次开发的一些基本概念和基本步骤要求:阅读此文需要一定C++编程基础和一点MFC的知识以及一点mapgis知识。
1概述1.1Mapgis二次开发的作用扩展mapgis产品功能,以达到自己的目的。
简单讲有:简化操作(将mapgis产品提供的功能包装,以前要点几下的现在点一下就可以了),功能扩展(mapgis产品没有的功能,可以通过二次开发自己实现),功能应用(自己开发的某个系统如果想使用mapgis里面的一些功能,可以通过二次开发直接拿到自己的系统中),……等等。
1.2基本概念有一点需要说明,mapgis二次开发所有API函数都是以“_”开头的,如_OpenPntArea、_GetPnt、_GetLin等等。
其他概念在要碰到时在谈。
1.3所需工具1、Microsoft Studio VC++6.02、Mapgis6.75产品及二次开发包以上工具网上均有免费下载, 进行一下步骤时请先下载并安装好。
2Mfc向导与工程设置2.1新建工程(1)打开VC++6.0 【File】->【New】选择【Projects】选项卡、【MFC AppWizard(exe)】、填入工程名称Mapgis_1,点击【OK】如下图:(2)选择Dialog based (为简单起见)点击【Finish】新建工程完毕2.2工程设置(1)点击菜单栏【Project】->【Setting】选择【C/C++】选项卡 Category:中选择【Code Generation】Struct member alignment选择【1 Byte】点击【OK】说明:此步设置是将C++结构体成员的内存对齐方式设置为1字节,因为mapgis6.X的开发就是采用的此对齐方式。
mapgis二次开发教程默认分类 2009-09-08 10:18:14 阅读898 评论1 字号:大中小订阅目前MAPGIS二次开发库主要以API函数、MFC(Microsof t Foundation Class)类库、Com组件、Activ eX 控件四种方式提供。
开发库被封装在若干动态链接库(DLL)中。
API函数在使用方法上与Windows的API函数完全一样,因此是独立于开发工具的。
无论您使用VC++、VB还是BC++、Dephi…,您在这些工具中如何调用Windows的API函数,您就可以怎么调用这些二次开发函数。
MAPGIS类库是为基于MFC类库的C++开发者提供的多个可重用基类,它将应用程序所需的常见基本功能作了封装,使用便利,改动灵活。
开发者只需从类库派生即可使自己的程序获得从窗口显示控制到图形查询编辑的各项功能。
MAPGIS COM组件是MAPGIS新一代体系结构的表现,功能更加强大,使用更加便利。
具有二次开发方便、易于集成、无限扩展等特点。
支持多种开发软件,包括Visual C++、Visual Basic、Delphi、script、InterDev、Power Builder等,开发者可以多层次的访问MAPGIS组件的数据层、功能层和界面层。
Activ eX 控件是MAPGIS完成组件化改造的成果之一,它们使得二次开发更为快捷便利,代码的可复用性更高。
上述各类开发接口提供了从最基本数据单元的读取、保存、更新和维护到MAPGIS地图库的建立和漫游,以及空间分析,图象处理等一系列功能。
其中,API函数是基础,使用上最灵活,但技巧性要求也最高。
所以本书大量篇幅用于介绍C++ API函数。
MAPGIS将不断丰富完善各类二次开发接口,以多种开发手段满足不同层次、不同应用的需求。
这些函数所在的C++头文件表4-1所示:表4-1 二次开发头文件4.2 MAPGIS基本术语下面介绍MAPGIS系统中经常使用的一些基本概念。
MapGIS嵌入式二次开发平台3.0武汉中地数码科技有限公司 嵌入式产品研发部内容提纲研发背景 平台概述平台特点案例应用1. GIS技术的发展探索&研究CAD高校、研究院所实现&商品化GIS-CAD、地图制图、行业软件GIS客户应用时代政府、管理决策机构导航、位置服务…GIS网络时代GIS科学研究GIS软件开发GIS服务1. GIS行业应用• • • • • • • 国土:土地调查… … 市政:巡检、事件上报… … 管网:管网信息实时查询… … 地税:纳税户信息实时查询… … 物流:位置信息… … 交通:实时车流信息… … ……室内>室外专业>大众固定>移动• 实时、实地的获取、浏览、查询空间信息与定位2. 嵌入式技术储备 • 1998年,研发了“MAPGIS嵌入式应用开发平台1.0”,基于 CE的通用GIS平台系统。
• 2003年,“MAPGIS嵌入式应用开发平台2.0”,是国家863项 目的一个分支,属于预研项目,探索了部分GIS的新概念 和通用嵌入式开发。
• 2006年5月到2008年12月,在和“北京北阳电子科技有限公 司”合作开发GPS导航系统过程中,对嵌入式系统和嵌入式 系统开发以及嵌入式GIS开发做了深入的分析和研究,积 累了相当丰富的经验。
• 2008年至今, MAPGIS嵌入式应用开发平台3.0内容提纲研发背景平台概述平台特点案例应用1. EMS3.0平台概述• 是拥有完全自主知识产权、基于卫星定位的移动综合信 息服务系统。
• 它提供实时的地图浏览、定位导航、信息检索、空间分 析,数据获取,以及各类以移动终端增值服务为主题的 多种功能的综合应用。
• 它面向与空间信息有关的各行各业,能为企事业单位或 社会大众等不同层次的客户群体提供随时、随地、丰富 而全面的空间信息服务。
• 它提供多层次的二次开发接口,针对不同用户群体,能 够在不同的软硬件环境下,快速的布置智能移动终端 GIS系统 。
MAPGIS VirtualEarth 安装配置篇目录1. MAPGIS VIRTUALEARTH安装说明....................................................................................- 3 - 1.1系统部署说明 (3)1.2系统环境要求 (4)2. MAPGIS VIRTUALEARTH安装要求....................................................................................- 4 - 2.1产品安装包说明.. (4)2.2支持的操作系统 (4)2.3磁盘空间需求 (5)2.4内存需求 (5)2.5显卡需求 (5)2.6系统运行环境 (5)2.7系统开发语言 (5)3. MAPGIS VIRTUALEARTH安装过程....................................................................................- 5 - 3.1安装文件.. (5)3.2启动向导 (6)3.3许可协议 (7)3.4客户信息 (7)3.5选择安装目录 (8)3.6检查当前设置 (9)3.7安装过程 (9)3.8完成安装 (10)4. 验证MAPGIS VIRTUALEARTH的安装..............................................................................- 11 - 4.1验证开始菜单. (11)4.2验证安装目录 (11)5. MAPGIS VIRTUALEARTH安装目录详解..........................................................................- 12 - 5.1D ATA目录.. (12)5.2D ATA B ASE目录 (13)5.3T OOLS目录 (13)5.4W EB_S AMPLE目录 (13)5.5INTERFACE DOCS目录 (14)6. MAPGIS VIRTUALEARTH服务器配置..............................................................................- 14 - 6.1客户端配置.. (14)6.2W EB服务器端配置 (14)7. MAPGIS VIRTUALEARTH软件卸载..................................................................................- 15 - 7.1选择卸载 (15)7.2选择方式 (15)7.3确定卸载 (16)7.4卸载过程 (16)7.5卸载完成 (17)1.MAPGIS VirtualEarth安装说明MAPGIS VirtualEarth(简称MVE)是中地数码推出的拥有自主产权的一套显示三维地球的软件,它以MapGIS平台为基础,基于JA V A Applet技术和JOGL技术开发。
MAPGIS二次开发常见问题及解答MAPGIS, 解答, 开发1、问:如何用Delphi生成MAPGIS明码文件?答:先利用手册看懂明码格式文件的格式,知道数据的组织方式,利用delphi的文件函数创建一个文本型文件,吧数据库中的数据按照格式输出就是了。
2、问:ATT_STRU 和CATT_STRU的区别和联系?答:ATT_STRU是以前老版本的东东,换成CATT_STRU试试.CATT_STRU中包含了属性结构的详细信息,具体用法可参见二次开发帮助文档中第三章数据结构中关于属性字段描述结构,属性字段描述头和属性信息头的介绍,里面有该结构的详细内容。
3、问:请教关于“不能打开子图库...”的问题,急!答:系统库路径不对,将mapfont.gis、mconfig.gis、netcfg.gis三个文件拷贝到执行目录即可。
这几个语言件放在MAPGIS\PROGRAM\目录中。
或是运行MapEnv.exe可设置,该运行文件也同样在MAPGIS\PROGRAM\目录中。
4、问:如果只知道工作区ai 能不能依次得到工作区中的图元号,该如何得到啊!答:long i,pntn;short len;pnt_info inf;d_dot xy;char *dat;{_GetPntNum(ai,&i,&pntn);//取点数for(i=1;i《pntn;i++){if(_getpnt(ai,i,&xy,&dat,&len,&inf)<=0)//取点,返回值1/0/-1 成功/失败/删除continue;…对该图元进行操作}}i就是图元号5、问:MapGis6.5的SDK函数NearPnt,到底应该如何用啊!跟以前的不同了,给个例子吧!答:long WINAPI _NearPnt(short ai,D_DOT *xy,unsigned char *layerOnOffPad,short padLen,double *dis);ai 点工作区号*xy 点位置号---比如鼠标的位置layeronoffpad 图层开关标志,如不为空就只在打开状态的图层中查找padLen 是layerOnOffPad的长度出口 dis 返回距离返回值成功返回点号,失败为06、问:如何屏蔽掉CPrjEditView中的右键功能!!!答:editview有一个PopMenuControl属性,同理CPrjEditView也可以直接使用这个属性。
第4卷 第2期 中 国 水 运 ( 理 论 版 · 自 然 科 学 ) Vol.4 No.2 2006年 2月 China Water Transport(Theory Edition·Natura science) February 2006收稿日期:2006-1-25作者简介:罗美芳 女(1982-) 中国地质大学(武汉) 硕士 (430074) 研究方向:地下水数值模拟和地质灾害评价预测基于MAPGIS的地质环境信息管理系统二次开发罗美芳 孙 敬摘 要:以MAPGIS 作为地质环境信息管理系统二次开发的平台,主要介绍了MAPGIS 的开发环境和数据管理方式、系统设计结构以及体系结构图。
该管理系统的关键就在于对属性数据的管理,在MAPGIS 的开发库里主要提供了三种方式。
最后对介绍如何实现对工程文件的管理和编辑。
关键词:地理信息系统 地质环境 二次开发中图分类号:X141:TP14 文献标识码:A 文章编号:1006-7973(2006)2-0042-02一、引言地理信息系统主要有三种开发模式:一是独立开发,完全从底层做起,不依赖任何GIS 系统,所有的算法都由开发者独立设计,这种模式开发难度大、周期长、投资大,不适合一般的开发用户;二是单纯的二次开发,基于国内外先进的GIS 平台,利用其提供的二次开发语言进行开发,如美国Esri 公司Arcview Gis 的二次开发语言Avenue,开发出具有特定应用功能的地理信息系统,该模式简单易行,有很多功能可以直接从原有的平台软件中引用过来,但它的可扩充性太差,往往不能满足要求;三是借助某些商用地理信息系统提供的组件库或MFC 函数库,结合特殊的功能需求开发专业的地理信息系统。
MAPGIS 提供了完整的二次开发库,用户可以在MAPGIS 平台上开发面向各自领域的应用系统。
目前,二次开发库以API 函数、MFC 扩展类、COM 组件、ActiveX 控件四种方式提供。
GIS⼆次开发概述(整理)GIS ⼆次开发概述地理信息系统根据其内容可分为两⼤基本类型:⼀是应⽤型地理信息系统,以某⼀专业、领域或⼯作为主要内容,包括专题地理信息系统和区域综合地理信息系统;⼆是⼯具型地理信息系统,也就是 GIS ⼯具软件包,如 ARC/INFO 等,具有空间数据输⼊、存储、处理、分析和输出等 GIS 基本功能。
随着地理信息系统应⽤领域的扩展,应⽤型 GIS 的开发⼯作⽇显重要。
如何针对不同的应⽤⽬标,⾼效地开发出既合乎需要⼜具有⽅便美观丰富的界⾯形式的地理信息系统,是 GIS 开发者⾮常关⼼的问题。
⼀ . GIS 开发模式独⽴开发:指不依赖于任何 GIS ⼯具软件,从空间数据的采集、编辑到数据的处理分析及结果输出,所有的算法都由开发者独⽴设计,然后选⽤某种程序设计语⾔,如Visual C++、Delphi 等,在⼀定的操作系统平台上编程实现。
这种⽅式的好处在于⽆须依赖任何商业GIS ⼯具软件,减少了开发成本,但⼀⽅⾯对于⼤多数开发者来说,能⼒、时间、财⼒⽅⾯的限制使其开发出来的产品很难在功能上与商业化GIS ⼯具软件相⽐,⽽且在购买GIS ⼯具软件上省下的钱可能还抵不上开发者在开发过程中绞尽脑汁所花的代价。
宿主型⼆次开发:指基于 GIS 平台软件上进⾏应⽤系统开发。
⼤多数GIS 平台软件都提供了可供⽤户进⾏⼆次开发的脚本语⾔,如ESRI 的ArcView 提供了Avenue 语⾔,MapInfo 公司的MapInfo Professional提供了MapBasic 语⾔等等。
⽤户可以利⽤这些脚本语⾔,以原GIS 软件为开发平台,开发出⾃⼰的针对不同应⽤对象的应⽤程序。
这种⽅式省时省⼼,但进⾏⼆次开发的脚本语⾔,作为编程语⾔,功能极弱,⽤它们来开发应⽤程序仍然不尽如⼈意,并且所开发的系统不能脱离GIS 平台软件,是解释执⾏的,效率不⾼。
基于 GIS 组件的⼆次开发:⼤多数 GIS 软件产商都提供商业化的GIS 组件,如ESRI 公司的MapObjects、MapInfo 公司的MapX 等,这些组件都具备GIS 的基本功能,开发⼈员可以基于通⽤软件开发⼯具尤其是可视化开发⼯具,如Delphi、Visual C++、Visual Basic、Power Builder 等为开发平台,进⾏⼆次开发。
MAPGIS VirtualEarth 二次开发技术篇目录目录..............................................................................................................................................- 2 -1 概述..............................................................................................................................- 3 -2 开发环境介绍..............................................................................................................-3 -2.1开发环境................................................................................................................- 3 -2.2开发软件---Eclipse................................................................................................- 4 -3 MAPGIS VirtualEarth二次开发技术........................................................................- 14 -3.1 JavaScript脚本语言.............................................................................................- 14 -3.2 Java语言...............................................................................................................- 16 -3.3 HTML语言..........................................................................................................- 18 -3.4 JSP技术................................................................................................................- 19 -3.5 数据库(SQL Server/Oracle)..........................................................................- 20 -3.6 XML语言.............................................................................................................- 21 -1 概述MAPGIS VirtualEarth是中地数码拥有自主产权的一套显示三维地球的软件,它依托MapGIS平台为基础,基于Java applet技术和JOGL技术开发。
采用面向Internet的分布式计算技术,支持跨平台、跨网络的大型网络应用系统的集成。
为了方便用户的二次开发,下面将会从开发环境、开发中涉及的主要技术等方面入手,详细的说明MAPGIS VirtualEarth二次开发的有关事项。
2 开发环境介绍MAPGIS VirtualEarth二次开发的环境是基于开发工具MyEclipse 6.0、开发语言JA V A、Applet、OpenGL的。
这些工具和技术是当下J2EE开发的主流技术,具有各自的特点,有助于用户更好地进行MAPGIS VirtualEarth的二次开发。
在开发之前需要配置开发环境,设置环境变量。
配置好环境后,就能利用功能强大的JA V A工具及技术开发WEB项目。
2.1开发环境开发环境配置如下:1、操作系统:WindowsXP、 Windows2003 Server(推荐)2、浏览器:IE 6.0 及以上版本3、环境支持:jdk1.6及以上、tomcat5.0及以上4、数据库: SQL Server 、Oracle2.1.1 MAPGIS VirtualEarth的开发环境MAPGIS VirtualEarth的开发环境配置如下:1.按上述配置开发环境,安装好JDK1.6和tomcat5.0后,正确配置好环境变量。
2.开发语言:JA V A和JavaScript。
3.二次开发工具:Eclipse3.2,MyEclipse5.0,MyEclipse6.0、其他插件。
如果不习惯英文版的Eclipse,可以用相应版本的汉化包汉化,便于开发。
4.准备好地图数据和相关的点位信息数据,并参照相关的配置文档配置好GIS服务器、相关数据和数据服务器。
示例中自带地图数据和点位信息数据,点位信息数据以SQL Server数据库文件形式存放。
如果使用自带的点位信息数据时,要将VirtualEarthDemoDatabase_Data.MDF附加到本地SQL Server 2000数据库里。
5.如果有用户自定义数据,则站点开发过程中须保持GIS服务器(MapGisIMSSvr)呈启动状态。
2.1.2 MAPGIS VirtualEarth的开发语言MAPGIS VirtualEarth开发的语言为JA V A语言。
JA V A语言由Sun公司推出,是一个支持网络计算的面向对象程序设计语言。
JA V A语言吸收了Smalltalk语言和C++语言的优点,并增加了其它特性,如支持并发程序设计、网络通信、和多媒体数据控制等。
2.1.3 MAPGIS VirtualEarth所用的文件类型MAPGIS VirtualEarth中用到的文件类型和重要文件如下表所示:表2-1 JA V A开发环境文件类型文件扩展名用途及说明.java Java文件。
.class Java文件编译后的文件。
.jar Java归档文件,存放各种java文件的压缩包。
.htm 静态网页文件。
.css 样式文件,存放网站样式的样式表。
编写的脚本文件。
.js Javascript.jsp 内含java 代码的文件,网站后台处理文件。
web.xml 网站配置文件。
使用Hibernate的数据库表映射文件。
.hbm.java与.hbm.xmlhibernate.cfg.xml 使用Hibernate操纵数据库的文件,即数据库连接。
2.2开发软件---EclipseEclipse是一种通用工具平台——普遍适用的开放式扩展IDE。
它提供了功能丰富的开发环境,众多插件能够无缝集成到Eclipse平台中的工具。
Eclipse的体系结构如下图:图3-1 Eclipse的体系结构图Eclipse的设计思想是:一切皆为插件。
Eclipse的核心是非常小的,其他所有的功能都以插件的形式附加到这个Eclipse核心之上。
这样的功能插件包括它的图形API(称为SWT/JFace)、Java开发环境插件(简称JDT)、插件开发环境(简称PDE)等。
Eclipse对插件的协同工作提供了良好的支持,不仅安装简单,而且还可以无缝结合。
Eclipse是开放源码的。
对于程序员,Eclipse的开放源码让他们阅读最顶级的Java源码,学习最优秀的Java技术。
下面就开始介绍如何在Eclipse里新建一个WEB站点,流程如下:1.打开Eclipse,其开始界面如图3-2。
图3-2 Eclipse启动时界面2.在初次启动Eclipse时会跳出一个对话框,提示选择工作空间,用来存Eclipse项目的文件。
如图3-3,选择路径后单击“确定”就可以启动Eclipse。
如果想下次启动时不出现该窗口,则勾选对话框最下面的“将此值用作缺省值并且不再询问”选项。
启动后的界面如图3-4。
图3-3 选择工作空间页面图3-4 Eclipse工作环境3.新建网站项目:选择文件Æ新建Æ项目,跳出如图3-5所示对话框。
4.点击“向导”下的MyEclipse,选择J2EEProjects下的WebProject,如图3-6。
图3-5 Eclipse中新建项目对话框图3-6 选择Web Project新建Web工程5.点击“下一步”,在跳出的对话框中的Project Name栏内输入项目名,例如填入newjavap,如图3-7。
Location栏指项目存放的目录,默认存放在选择的工作空间中,一般不需要更改。
如要特殊情况下需要更改时,请把Use default location的钩去掉,点击Directory栏的Browse按钮,选择路径。
图3-7 输入新工程名6.点击“完成”,新的WEB站点创建成功。
完成后的界面如图3-8。
图3-8 新建工程后的工作页面7.此时在包资源管理中右键点击站点,选择新建Æ文件,在弹出的对话框中根据站点的需要新建文件(如图3-9);也可以选择新建Æ其他,在弹出的对话框中选择要新建的文件模板。
图3-9 新建文件页面在如下的对话框中,选择站点目录(WebRoot),将新建的文件保存到该站点目录下。
图3-10 选择父文件夹对话框输入文件名和后缀名,根据不同的后缀名建立不同的文件类型。
网站启动时需要一个起始页,可以是.htm文件或者是.jsp文件。
在此可新建一个default.htm文件作为站点的起始页(如图3-11)。
图3-11 输入文件名8.文件建好后,可以在编辑区打开文件进行编程,实现所需要的功能。
例如,搭建一个简单的示例,即在起始页default.htm中写入如下代码:图3-12 default.htm中添加代码9.修改配置文件web.xml,在该文件中为站点进行相关的配置。
如图,给站点设置起始页default.htm。
图3-13 配置web.xml10.站点搭建完成后,需要进行站点部署。
点击按钮,弹出如下图3-14所示窗口,在“Project”中选择项目newjavap;点击“Add”按钮,出现下图3-15界面,在“Server”中选择tomcat5,在“Deploy type”中选择Exploded Archive,点击“完成”按钮;再点击“确定”按钮即可(如图3-16)。