您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 旅游娱乐 > 地图控件MapInfo-MapX研究
地图控件MapInfo-MapX研究摘要:论文介绍了目前国内广泛应用的GIS软件开发平台MapInfo系列产品中的MapX组件,针对这一组件的数据结构、模型结构等方面做了深入研究。关键词:组件式GIS;MapInfo;MapX中图分类号:TN929.5文献标识码:B文章编号:1009-3044(2008)33-1492-02ResearchonMapInfo-MapXDUWei(ShengliOilfieldGeologicalInstituteofScienceandTechnology,DongYing207015,China)Abstract:Firstofall,thethesisintroducestheMapXcomponents,whichisoneofMapInfoproductsseries-popularGISplatformatpresent.ThenitmakesadeepresearchonMapX′sdatastructure,modelstructureandsoon.Keywords:ComGIS;MapInfo;MapX1MapX概述MapX是一个基于ActiveX技术的可编程控件,也是MapInfo公司的得意之作,它使用了与MapInfoProfessional一致的地图数据格式,而且还在这个远远小于MapInfo的控件中实现了MapInfo的大多数功能。MapX的内部提供了四十多个面向Microsoft基础类的OLE控件,这就使得应用程序员可以使用任何支持ActiveX的程序开发环境,如VC++等,来采用嵌入MapX控件的方式,方便快捷地开发GIS应用程序。MapInfo用工作空间(Workspace)、图层(layer)、地物类等概念组织数据,MapX则利用自动化对象将这些概念封装起来,相应地提供了DataSet对象、Layer对象、Feature对象等,并且考虑到数据组织中大量出现集合类型的引用的情况,对这些对象的集合也进行了封装。与MapInfoProfessional相比,MapX可以实现95%以上的MapInfoProfessional的功能,但在图形编辑编程上的开发周期可能是MapInfoProfessional的3倍以上,但对于查询和空间分析以及其它简单的图形编辑功能、地图注记功能MapX在使用时是很方便的,具有系统开销小、开发周期短、方便快捷等优点,很适合于各种中小型GIS,MIS软件的开发。随着COM,DCOM技术的成熟,MapX的功能将会更加完善,应用前景将会更加广阔。使用MapX,可以完全拥有向应用程序添加强大的地图绘制功能的能力。可以将数据显示为点、按主题遮蔽的区域、饼图或条形图等。通过在特定的半径、矩形或特定点内组合和组织数据、执行搜索或选择地图图元,可以充分发挥MapX的分析功能。下面我们就来从空间数据结构,组件模型结构等方面详细的分析一下MapX。2MapX的空间数据结构空间数据结构,是GIS的基石,GIS就是通过这种地理空间拓扑结构建立地理图形的空间数据模型并定义各空间数据之间的关系,从而实现地理图形和数据库的结合。从横向分析,MapX采取的空间数据结构是基于空间实体和空间索引相结合的一种结构。空间实体是地理图形的抽象模型,主要包括点、线、面三种类型。任何点、线、面实体都可以用直角坐标点x、y来表示。点可以表示成一组坐标(x,y),对于线和面,则均被表示成多组坐标(xl,y1;x2,y2;xn,yn)。空间索引是查询空间实体的一种机制,通过空间索引,就能够以尽量快的速度查询到给定坐标范围内的空间实体及其所对应的数据。从纵向分析,MapX的空间数据结构是一种分层存放的结构。用户可以通过图形分层技术,根据自己的需求或一定的标准对各种空间实体进行分层组合,将一张地图分成不同图层。采用这种分层存放的结构,可以提高图形的搜索速度,便于各种不同数据的灵活调用、更新和管理。3MapX的组件模型结构MapX组件的基本组成单元是Object(单个对象)和Collection(集合)。其中集合包括对象,是多个对象的组合。每种对象和集合负责处理地图某一方面的功能。位于顶层的是Map对象本身,其它均由Map对象继承。Layers,DataSets,Annotations是Map对象下面的三个重要的分支。其中Layer主要用于操作地图的图层,DataSet用于访问空间数据表,Annotation用于在地图上增加文本或者符号。4MapX的显著特点1)专题地图将数据库表中的特定值赋给地图对象的颜色、图案或符号从而创建不同的专题地图;可创建范围值、等级符号、点密度、独立值、直方图和饼图6种方式的专题地图;2)可深入的地图通过简单的点击方式可浏览与地图对象相连的数据信息;3)数据绑定地图可通过嵌入OCX的容器与数据库相连,并提供了几种不同的数据绑定方式包括ZIPCode-level地理编码法;4)注解可提供方向、加亮显示特殊数据,还可加入文本、符号、表格使地图信息更加丰富直观;5)图层显示和控制图层的缩放、使用或创建无缝地图、还可支持一些特殊的应用,比如用于实时跟踪的活动图层和可绘制特殊图形的用户自定义图层(如logo图案);6)栅格图像采用栅格图像作为地图的基础图层可使其它图层有一个更细致的背景;7)自动标记自动在地图上加入标记,同时标记属性和显示;8)选择可在地图上拖动鼠标以在圆、矩形或特定的点上选择一个或多个对象或记录以供分析;9)对象库可以使用FeatureFactory对象,创建、联接或删除点、线、区域图形对象;10)工具使用MapX的标准工具或根据需要自己创建的自定义工具,用户可通过点击或拖拽对地图直接进行操作;11)地图编辑允许用户添加、修改、删除地图上的文本、编辑区域、点等特殊对象;12)投影与坐标系MapX允许用户调整地图的显示、用本地坐标系处理X-Y坐标数据;13)远程空间数据服务器可以访问存储在Oracle和MapInfoSpatialWare中的远程地图数据。空间数据服务器如SpatialWare和Oracle等都提供了先进的查询处理能力,提高了空间数据组织的性能。将空间数据存储到关系型数据库中,可以增加应用程序的灵活性,同时也要求在地图编辑和大数据集方面做更多的工作。5MapX的基本属性1)Map每个Map对象主要包括Datasets,Layers,Annotations三个对象集合。Map对象有一些主要的属性,如Zoom用来设置放大级别(在地图上显示的大小),Rotation控制地图的旋转角度,CenterX和CenterY用于设置x和Y的坐标系,这要取决于地图的投影。Map对象的许多属性本身又是一个对象,比如说一幅地图由多个图层组成,则在一个Map对象中存在一个单独的layers集合,其中包含所有图层的信息。2)Layers在MapX中,每张单独的地图都被表示成单独的一个图层,所有的图层存储在layers集合中。Layers集合由Layer对象组成,按顺序编号为。到noLayer对象由features对象组成,features对象又是由Feature对象组成,对应于地图中的点、线、区域或符号。最上面一层为Layers(1),Layers(2)位于Layers(1)的下面,以次类推。最下面的图层最先绘制,最上面的图层最后绘制。在应用程序中,合理地安排好每层在Layers中的顺序是至关重要的。比如说有两个图层,一层为点,一层为区域,则应将点层放到区域层的上方,否则区域会将点覆盖。另外,在进行地图选择操作时,根据要求调整图层的顺序也是十分重要的。MapX中的选择工具总是从可选择图层中的最上层开始选择,如果在地图上的同一位置存在多个位于不同层的地图对象,其结果是很难精确地选择到目标对象。因此,最好将被选择图层提到最上层显示。3)GeoSetsGeoSet是在GeoManager中建立好的.GST文件,类似MapInfo中的Workspace概念,是图层及其设置的集合,控制程序中显示的地图。也可以在运行阶段设置GeoSet,此时将导致已经加载的所有图层和DataSet被删除而由GeoSet中定义的图层所代替。如果单纯地想删除所有图层,只需给GeoSet赋一个空字符串即可。可以使用GeoSetManager程序来管理GeoSet文件(*.GST)。默认情况下.GST文件存储在...\\mapx\maps目录下,可以调用GeoDictionaryManager程序进行修改,指向用户程序数据所在的位置。4)DatasetsDatasets用于实现地图与数据的绑定。举例说明,有一个关于城市销售情况的MSAccess数据库和一张该城市的地图,则可以将二者绑定,在地图上形象地显示出各城市销售业绩的趋势,这一点是表格数据无法做到的。建立地图信息与属性数据之间联系的过程称之为自动绑定或自动匹配(autobinding/automatching)。要实现这一过程,必须首先将地图在GeoDictionary中注册。5)AnnotationsAnnotations集合提供了操纵地图中文字和符号的简单方法。Annotations位于所有其它图层的上方并且不与任何数据连接,有点儿象MapInfo中的透明图层。Annotations包括以下主要的属性与方法:AddSymbol在Annotations中增加符号,符号类型使用Map.DefaultStyle定义;AddText在Annotations中增加文本;Remove删除特定的标注.;Type取值为miSymbolAnnotation或miTextAnnotation。Annotations还有一个非常重要的属性Graphic,其定义为Graphic对象,在该对象中包含了符号或文本的样式、位置等信息,即Graphic的Caption、Position、Style、X、Y属性。如Annotations的Type属性定义为miTextAnnotation,则可以定义Graphic的Caption属性设置标注的字符串。6)可创建对象在MapX对象模型中,以下对象是可以被创建的:AffineTransform,BindLayer,BitmapSymbols,CoordSys,Datum,Feature,Fields,LayerInfo,Map等等。参考文献:[1]卢廷军,黄明.基于MapInfo环境下GIS的开发研究[J].黑龙江工程学院学报,2003,17(3):27-28.[2]齐锐,曲韶琳.用MapX开发地理信息系统[M].北京:清华大学出版社,2003:37-39.[3]TonyNY,MapXDeveloper'sGuide,MapInfoCorporation.
本文标题:地图控件MapInfo-MapX研究
链接地址:https://www.777doc.com/doc-6845050 .html