版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
绪论1.1选题的背景及意义随着国民经济的迅猛发展,我国房地产市场也变得充分开放与活跃。正是由于这种开放与活跃使得房地产信息变化与更新变得更加频繁。同时为了适应与发展现代化信息管理,对房地产管理部门提出了更高的标准。近年来,在GIS组件技术的支持下,房地产管理部门已经着手建设以房地产为专题的信息管理系统,以加快房地产管理的信息化、可视化步伐,改变传统的房地产管理模式[1]。传统的管理方法是借助MIS信息系统来实现房地产专题信息管理,但是这种方法只能对一些简单的属性信息进行管理,无法实现房地产中的空间信息的管理以及空间信息与属性信息的结合。伴随着MapInfo技术的迅猛发展以及MapX组件技术的成熟,为解决上述问题提供了有效、可行的技术方法。MapX组件技术能够实现各种专题信息与实际的地理位置的结合,并借助计算机成图和数据库技术来实现信息的采集与存储以及信息的编辑与显示。MapX组件技术不仅仅能够对空间数据进行相应的管理而且还能够对复杂而又繁多的属性数据进行高效、便捷的的处理。这种通过对空间信息(图形信息)与非空间信息(属性信息)的共同管理来克服传统管理方法的局限性,为房地产管理部门提供相应的信息分析和应用服务,也为规划决策提供全面而又全新的辅助信息。为此,将MapX组件嵌入可视化工具中进行开发将会使有关房地产专题信息管理系统功能更加强大和完善。在基于MapX的房地产专题信息管理中主要是利用MapX组件为房地产管理部门开发相应的房地产专题信息管理系统,以便能够准确、高效地查询各类用房用地的空间位置以及统计各类用房的占地面积、楼层数、房间数、房产价值等非空间数据信息,实现信息的可视化效果。1.2国内相关技术的研究现状对于MapX本身而言,它定义了一个类体系,以一种高效的方式来组织各实体的图形数据、各图层协调关系、各实体的属性数据等对象。同时对于MapX编程而言,开发者可以根据自身所熟悉的任何可视化编程语言进行开发而不需要有任何MapBasic知识,对于大多数功能的实现可以直接通过设置MapX控件属性来实现。随着MapX组件技术的成熟,这种简易、便捷、高效的方式使其备受青睐。就房地产行业而言,人们对房屋的需求量逐渐增大,随之房屋建设也猛然增加。在面对繁多的房地产信息,各相关部门也以各种方式建立自己的房地产信息管理系统来实现对房地产专题信息的规范管理,从而减少了管理方面的工作量,也让管理工作变得更加高效。但是独立的信息管理系统具有其局限性,这种局限性主要表现是不能够把空间几何信息与属性信息结合起来以便实现图、文并茂,将一些信息直观、清晰的表现出来。综述所述,无论是从MapX组件技术方面还是在房地产本身需求方面,基于MapX组件来实现房地产专题信息管理具有一定的可行性、经济性、实用性。目前国内已经有很多这样的实例来证明,例如2002年福州市海洋与水产局基于MapX实现了海洋功能区划管理信息系统、2007年兰州大学基于MapX设计并实现了其校园房地产信息管理系统,2007年南京工业大学基于MapX开发了其江浦校区的房地产信息管理系统等。1.3课题涉及的相关技术基于MapX对房地产专题信息进行管理主要体现是将MapX组件嵌入VB、VC或者其他可视化开发工具中,以Access、SQLServer、Oracle等为空间数据库进行开发房地产管专题信息管理系统。这样就能够使房地产的某些属性信息更加直观的体现在地图数据上,也能够准确地了解房地产资源的空间分布情况以及其基本属性信息,真正意义上实现房地产资源的可视化管理。也就是说利用MapX对房地产专题信息进行管理涉及的相关技术主要体现着以下几个方面:在MapX方面,不仅仅要详细了解MapX控件的属性、其对象的属性和方法以及相应的事件而且还需知道MapX地图数据结构。由于Map和MapInfoProfessional在地图数据结构方面存在一致性,所以只有对MapInfoProfessional地图数据结构的充分掌握才能做到MapX的高效开发。在开发语言与数据处理方面,MapX支持多种高级编程语言如VisualBasic、VisualC++、Delphi等,对于开发者而言必须具备某种语言的基本知识。另外由于Access、SQLServer、Oracle等为空间数据库自身都有其优点和不足,所以开发者必须对其具有一定程度的了解,这样才能根据实际开发情况选择合理的数据库,做到房地产信息管理系统的合理性和优越性。在房地产方面,也需要全面了解房地产各方面的信息如房产信息、地产信息,其中房产信息包括建筑信息、楼层信息、房间信息等,地产信息主要包括土地信息管理。另外还需根据具体的情况对某些信息制作专题地图,以便实现地图信息与属性信息的双向管理,也使属性信息更加直观化。1.4课题讨论的主要内容本课题主要从以下几个方面进行讨论:有关软件MapInfo的简介,其中主要包括空间拓扑关系模型以及其数据组织形式。对该内容的介绍主要是因为MapX的数据组织形式与MapInfoProfessional内部的数据组织形式保持着一致性,只有对MapInfoProfessional的数据组织机制做到足够的了解才能实现MapX的充分开发。MapX的研究,其中主要有包括MapX的基本介绍、MapX空间数据的组织机制、MapX控件包含对象的基本模型以及基本属性、MapX的显著特征、MapX的使用程序GeoSetManager的介绍。基于MapX的房地产信息管理系统的设计流程,其中主要包括房地产专题数据的获取与相应数据处理、系统的总体结构。结合实例来实现基于MapX的房地产专题信息管理系统中各模块功能以及其主要代码分析。2MapInfo软件的简介2.1MapInfo的空间拓扑关系模型对于任何地理信息系统而言其存在的基础是空间拓扑关系模型的建立。在如今应用较为广泛的地理信息系统中,空间拓扑关系模型大多采用两种结构模型,其一是POLYVRT结构模型,其二是空间实体结合空间索引所建立的模型。在上述两种结构模型中,MapInfo是利用空间实体结合空间索引建立的拓扑关系模型。80年代中后期出现的商用地理信息系统,尤其是桌面地理信息系统大多采用这种方式,包括ESRI的ArcView,而采用POLYVRT模型的系统主要是以Arc/Info为代表的一些专业GIS产品[2]。“空间实体+空间索引”指的是以“空间实体”为基础进行建立的一种模型。空间实体指的是地理实体对应的抽象形式,比如空间点、空间线以及空间面等类型。每个空间实体对象都维护着自己的所有属性,多个空间实体则可以组成一个图层。“空间实体+空间索引”模型是借助“空间索引”机制来完成对空间实体的查询和定位。空间索引的机制是通过已有的空间坐标形成一个坐标范围,进而在该范围内对空间对象进行快速搜索。MapInfo采用R-Tree技术将空间实体的最小外接矩形(MBR)存储在索引中,并按从大到小的顺序进行索引搜索[3]。只有建立了相应的空间索引,才能快速地进行空间分析了。“空间实体+空间索引”模型因其空间索引机制决定了公共结点的多次存储,进而使存储空间大量开销,但是在数据的编辑和管理方面比较简便。而对于POLYVRT模型而言,虽然通过将一定数量的不同空间实体共用相同结点的方式来节省了必要的存储空间,但是该模型的结构变得繁杂,从而空间数据的可维护性大大降低了。此外,POLYVRT模型在组织空间实体数据方面并不能严格定义为关系模型,而“空间实体+空间索引”模型在该方面存在“实体-关系”的关系模型,进而可以和任何关系数据库进行绑定,并在关系数据库中实现空间数据编辑与存储管理。2.2MapInfo数据组织形式在MapInfo中其数据的是以表的形式进行数据的查询、数据的存储和管理。另外在MapInfo中存在两种表,一种是数据表,可分为包含图形(地图)对象的数据表和不包含图形对象的数据表,例如电子表格或外部数据表,另一种表是栅格表,它是一种只能在地图窗口中显示的图象,没有数据表的记录、字段和索引等表结构[4]。这里我们只讨论数据表的有关操作。MapInfo可调用dBASE数据库、MSExcel电子表格、MSAccess数据库、Lotus1-2-3和ASCll文件等。在MapInfo中可以通过“文件/打开表”命令来进行文件类型的选择。而对于外部的表则可以通过“文件/另存为”命令转换为MapInfo格式的数据表,进而实现外部数据的编辑和管理。另外,MapInfo中也可以直接修改数据表的结构,如增加或删除字段;改变字段的顺序、名称、类型、宽度或索引;从对话框中设定或确定表的投影;还可以删除数据表、重命名数据表和紧缩表结构以减少磁盘空间。MapInfo采用双数据库存储模式,即其空间数据与属性数据是分开来存储的。属性数据存储在关系数据库的若干属性表中,而空间数据则以MapInfo的自定义格式保存于若干文件中,二者通过一定的索引机制联系起来。为了提高查询和处理效率,MapInfo采用层次结构对空间数据进行组织,即根据不同的专题将地图分层(图层还可以分成若干图幅),每个图层存储为若干个基本文件[5]。2.2.1属性数据的表结构文件.TAB属性数据表结构文件定义了地图属性数据的表结构,包括字段数、字段名称、字段类型和字段宽度、索引字段及相应图层的一些关键空间信息描述。.TAB文件实际上是一个文本文件,可以在写字板中打开观察其内容[6]。2.2.2属性数据文件.DAT属性数据文件中存放完整的地图属性数据。在文件头之后,为表结构描述,其后首尾相接地紧跟着各条具体地属性数据记录。2.2.3交叉索引文件.ID交叉索引文件记录了地图中每一个空间对象在空间数据文件(.MAP)中的位置指针。每四个字节构成一个指针。指针排列的顺序与属性数据文件(.DAT)中属性数据记录存放的顺序一致。交叉索引文件实际上是一个空间对象的定位表。2.2.4空间数据文件.MAP具体包含了各地图对象的空间数据。空间数据包括空间对象的几何类型、坐标信息和颜色信息等。另外还描述了与该空间对象对应的属性数据记录在属性数据文件(.DAT)中的记录号。这样,当用户从地图上查询某一地图对象时,就能够方便地查到与之相关的属性信息,其相应的空间数据的索引机制如图2-1。图2-1MapInfo的文件格式及数据关联机制2.2.5索引文件.IND索引文件并不是必须的,只有当用户规定了数据库的索引字段后mapinfo才会自动产生索引文件。索引文件中对应于每个索引字段都有一个索引表。在每个索引表中,先给出总的数据库记录数目,然后按照索引顺序给出每条属性数据记录在对应的索引字段处的具体属性数据和该记录在属性文件(.DAT)及交叉索引文件(.ID)中的记录号[7]。图2-2表示了MapInfo的索引文件机制。图2-2MapInfo的索引文件格式及数据关联机制2.3MapX的研究2.31MapX的简介MapX是MapInfo公司向用户提供的具有强大地图分析功能的ActiveX控件产品。由于它是一种基于Windows操作系统的标准控件,因而能支持绝大多数标准的可视化开发环境如VisualC++、VisualBasic、Delphi、PowerBuilder等。编程人员在开发过程中可以选用自己最熟悉的开发语言,轻松地将地图功能嵌入到应用中,并且可以脱离MapInfo的软件平台运行。利用MapX,能够简单快速地在企业应用中嵌入地图化功能,增强企业应用的空间分析能力,实现企业应用的增值[8]。MapX采用基于MapInfoProfessional的相同的地图化技术,可以实现MapInfoProfessional具有的绝大部分地图编辑和空间分析功能。而且,MapX提供了各种工具、属性和方法,实现这些功能是非常容易的。2.32MapX的空间数据机制空间数据结构是GIS的基石,GIS就是通过这种地理空间拓扑结构建立地理图形的空间数据模型并定义各空间数据之间的关系,从而实现地理图形和数据库的结合。对于MapX而言,其空间数据模型如图2-3。图2-3MapX的空间数据结构从横向分析,MapX采取的空间数据结构是基于空间实体和空间索引相结合的一种结构。空间实体是地理图形的抽象模型,主要包括点、线、面三种类型。任何点、线、面实体都可以用直角坐标点x、y来表示[9]。点可以表示成一组坐标(x,y),对于线和面,则均被表示成多组坐标(x1,y1;x2,y2;xn,yn)。空间索引是查询空间实体的一种机制,通过空间索引,就能够以尽量快的速度查询到给定坐标范围内的空间实体及其所对应的数据。从纵向分析,MapX的空间数据结构是一种分层存放的结构。用户可以通过图形分层技术,根据自己的需求或一定的标准对各种空间实体进行分层组合,将一张地图分成不同图层[10]。采用这种分层存放的结构,可以提高图形的搜索速度,便于各种不同数据的灵活调用、更新和管理。图2-4MapX的模型结构2.33MapX控件包含对象的基本模型以及基本属性MapX控件中最基本的组成单元是单个的对象(Object)和多个对象的集合(Collection)。每种对象和集合负责处理地图某种功能。由图2.4可以看出,位于顶层的是Map对象本身,其它均由Map对象继承。而Layers对象、DataSets对象、Annotations对象又是是Map对象的主要组成部分。其中Layer主要用于操作地图的图层,DataSet用于访问空间数据表,Annotation用于在地图上增加文本或者符号[11]。(1)Map每个Map对象主要包括Datasets、Layers、Annotations三个对象集合。Map对象有一些主要的属性,如Zoom用来设置放大级别(在地图上显示的大小),Rotation控制地图的旋转角度,CenterX和CenterY用于设置x和y的坐标系,这要取决于地图的投影。Map对象的许多属性本身又是一个对象,比如说一幅地图由多个图层组成,则在一个Map对象中存在一个单独的layers集合,其中包含所有图层的信息。(2)Layers在MapX中,每张单独的地图都被表示成单独的一个图层,所有的图层存储在layers集合中。Layers集合由Layer对象组成,按顺序编号为0到n。Layer对象由features对象组成,features对象又是由Feature对象组成,对应于地图中的点、线、区域或符号。最上面一层为Layers(1),Layers(2)位于Layers(1)的下面,以次类推。最下面的图层最先绘制,最上面的图层最后绘制。在应用程序中,合理地安排好每层在Layers中的顺序是至关重要的。比如说有两个图层,一层为点,一层为区域,则应将点层放到区域层的上方,否则区域会将点覆盖。另外,在进行地图选择操作时,根据要求调整图层的顺序也是十分重要的。MapX中的选择工具总是从可选择图层中的最上层开始选择,如果在地图上的同一位置存在多个位于不同层的地图对象,其结果是很难精确地选择到目标对象,因此,最好将被选择图层提到最上层显示[12]。(3)GeoSetsGeoSet是在GeoManager中建立好的.GST文件,类似MapInfo中的WorkSpace概念,是图层及其设置的集合,控制程序中显示的地图。也可以在运行阶段设置GeoSet,此时将导致已经加载的所有图层和DataSet被删除而由GeoSet中定义的图层所代替。如果单纯地想删除所有图层,只需给GeoSet赋一个空字符串即可。可以使用GeoSetManager程序来管理GeoSet文件(*.GST)。默认情况下.GST文件存储在…\\mapx\maps目录下,可以调用GeoDictionaryManager程序进行修改,指向用户程序数据所在的位置。(4)DatasetsDatasets用于实现地图与数据的绑定。举例说明,有一个关于城市销售情况的MSAccess数据库和一张该城市的地图,则可以将二者绑定,在地图上形象地显示出各城市销售业绩的趋势,这一点是表格数据无法做到的。建立地图信息与属性数据之间联系的过程称之为自动绑定或自动匹配(autobinding/automatching)。要实现这一过程,必须首先将地图在GeoDictionary中注册。属性数据表示的可视化使得创建专题地图成为可能;数据绑定"PuttingYourDataontheMap";专题地图"ThemeMappingandAnalysis";(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属性设置标注的字符串[13]。(6)可创建对象在MapX对象模型中,以下对象是可以被创建的:AffineTransform、BindLayer、BitmapSymbols、CoordSys、Datum、Feature、Fields、LayerInfo、Map、 ODBCQueryInfo、 Parts、Point、Points、Rectangle、RowValue、RowValues、Style、Variables、NotesQueryInfo、NotesViewInfo。在Delphi中创建这些对象需要注意一点,即在后面注明MapX的版本。如在本课题实现过程中,由于使用的是MapX4.0版本,因此创建语句要写成如下形式:s:=CreateOleObject('MapX.Style.3');2.34MapX的显著特征(1)专题地图将数据库表中的特定值赋给地图对象的颜色、图案或符号从而创建不同的专题地图,也可创建范围值、等级符号、点密度、独立值、直方图和饼图6种方式的专题地图[14];(2)可深入的地图通过简单的点击方式可浏览与地图对象相连的数据信息;(3)数据绑定地图可通过嵌入OCX的容器与数据库相连,并提供了几种不同的数据绑定方式包括ZIPCode-level地理编码法;(4)注解可提供方向、加亮显示特殊数据,还可加入文本、符号、表格使地图信息更加丰富直观;(5)图层显示和控制图层的缩放、使用或创建无缝地图、还可支持一些特殊的应用,比如用于实时跟踪的活动图层和可绘制特殊图形的用户自定义图层(如logo图案);(6)栅格图象采用栅格图象作为地图的基础图层可使其它图层有一个更细致的背景;(7)自动标记自动在地图上加入标记,同时标记属性和显示;(8)选择可在地图上拖动鼠标以在圆、矩形或特定的点上选择一个或多个对象或记录以供分析;(9)对象库可以使用FeatureFactory对象,创建、联接或删除点、线、区域图形对象;(10)工具使用MapX的标准工具或根据需要自己创建的自定义工具,用户可通过点击或拖拽对地图直接进行操作;(11)地图编辑允许用户添加、修改、删除地图上的文本、编辑区域、点等特殊对象;(12)投影与坐标系MapX允许用户调整地图的显示、用本地坐标系处理X-Y坐标数据;(13)远程空间数据服务器可以访问存储在Oracle8i和MapInfoSpatialWare中的远程地图数据。空间数据服务器如SpatialWare和Oracle8i等都提供了先进的查询处理能力,提高了空间数据组织的性能。将空间数据存储到关系型数据库中,可以增加应用程序的灵活性,同时也要求在地图编辑和大数据集方面做更多的工作。2.35MapX的使用程序GeoSetManager的介绍在MapX中,地图是分层显示的,每一层都对应一个表,即.TAB文件。我们的工作往往不是只针对某一个表,如果每次开始工作都重复性地将所用到的表一一打开,不仅麻烦,而且浪费时间,同时通过使用GeosetManager,可以将所有的工作表集中在一起,连同每一层的设置一并存储到一个.GST文件中,下次使用时,只需打开此文件就可以了[15]。在GeosetManager中,可以浏览已定义的GeoSet,也可以建立新的GeoSet可以调出Layers控制对话框对每一图层分别进行设置,还可以改变投影方式。另外,在tools菜单中提供了RegisterLayersinGeoDictionary项,可以将当前.GST中的某些或全部.TAB文件直接注册到GeoDictionary中。3基于MapX的房地产专题信息管理系统的设计流程借助MapX来实现房地产专题信息管理的主要形式是基于MapX的房地产专题信息管理系统的设计与实现。在以上两节中详细介绍了MapX控件的数据结构、数据组织形式、对象模型和对象的基本属性以及对象的基本方法,本节将着重介绍利用MapX控件对房地产专题信息系统的设计过程。3.1房地产数据的获取与处理通过MapX控件的数据结构及其组织形式,我们可以了解到借助MapX控件实现房地产专题信息管理系统一个重要的部分是相关数据的获取与处理,当然这也是最基本的环节,只有处理好数据方面的内容才能顺利利用MapX进行房地产专题信息系统的开发。在数据的处理方面既包括了房地产空间数据的获取也包括了房地产属性数据的获取。其中房地产空间数据的获取主要有以下几种方式:利用数字化仪获取使用数字化仪,利用大比例尺数字化测图技术获取原始的空间数据再利用专业成图软件(如:南方Cass7.0)绘制平面图。由于其存图方式为Dwg格式,则需要进行一定格式转换,获得MapInfo可以识别的数据格式,进而转换为Gst格式(实例开发的具体过程可以参考下一节中的“应用实例中实现房地产地图的嵌入”)。对于这种方式获取的数据比较精确,同时也是比较常用的方式。使用扫描仪获取顾名思义就是借助扫描仪对所收集的图纸进行扫描以便获取一定格式的数据。由于扫描后数据结构是以栅格的形式存储的,所有还需利用相关的图形整理软件对图像进行质量方面的改善如图像的细化、拼接、矢真处理等,最终是将栅格数据转变为矢量数据。此中方式在空间数据的获取方面更加自动化、智能化,对于开发者而言是一种方便可靠的方式,但是这种方法对图纸的质量有着较高的要求。利用计算机获取该方式是通过人工的方式利用计算机对地图数据的输入,虽然减少了许多外业工作但是大大增加了内业的工作量。通过购买的方式获取众所周知作为信息商品的电子地图已经被广泛地应用到各个行业中,目前电子地图主要包括地形图、遥感影象图以及各种专题图等。从相关部门进行数字拷贝获取通过相关部门提供的标准数据无文件并借助专业软件进行数据的转换,最终得到可以用MapInfo打开的数据格式。对于MapInfo而言并没有向外界明确的指出MapInfo软件的数据结构,但是它提供了可以用来格式转换的其他数据结构如MIF和MID格式以及AUTOCAD所支持的DXF格式的数据。在空间数据处理方面主要是借助软件进行一定格式的转换最终生成能够嵌入MapX控件的Gst格式的电子图。另外对于属性数据的获取主要是从相关部门收集而来或者经过实地的调查与统计形成相关的统计文档。在属性数据获取之后,对其的处理也是比较关键的部分。通常情况可以借助MapInfo软件结合电子地图对属性数据进行录入,但是由于属性数据复杂繁多会导致电子图的在加载、修改、查询方面比较缓慢。另外从商业的角度,这些属性数据具有一定的商业价值,其保密性是必要的,所有在属性数据处理过程中通过建立外接数据库并进行属性数据的录入是一种有效的方式。3.2房地产数据库的设计房地产专题信息管理系统中其涉及的数据有两种:一种是图形数据,另一中就是属性数据。其中图形数据主要是采用MapInfo软件来存储空间数据,并依此为标准生成能够嵌入MapX控件的Gst格式图形数据;而对于属性数据而言,虽然MapInfo软件也提供了一定格式的存储表,但是由于房地产信息的商业性和保密性,所以在属性数据的管理方面是通过建立外接数据库如Access、SQLServer、Oracle等数据库来完成的。空间数据库是利用MapInfo软件并借助其内部机制进行管理的。属性数据则需要根据实际情况决定是否采用外接数据库并通过一定的机制将其绑定到MapX控件中。对于房地产而言为了能够高效运作所开发的程序则需要采用外接数据库。在外接属性数据库的建立过程中并不是盲目的而是根据房地产本身的种类来实现其建立。一类是地产方面,地产是房地产的基本组成部分,所以在属性数据建立一个地产属性表是必要的。在地产属性表中通过设立必要的字段来存储与管理,比如地产名称、面积、用途、权利人的等字段,另外还需要根据具体情况建立相应的索引字段,以便能够关联实体图形和其他的属性表。而另一类是房产方面,房产是房地产的重要组成部分也是房地产信息管理主要研究的方面。在外接数据库中同样需要建立一个房产信息表并在表中建立一定的字段来完成对房产信息的说明,如对建筑物建立一个表并设立建筑物名称、单位、单元号、房间数、楼层数、竣工时间、建筑物面积、权属等字段;在房产项目管理方面,可以建立项目信息表,并设立项目名称、开发商、项目进度、项目坐落、开工时间、竣工时间等;在楼盘管理方面,可以建立楼盘信息表并设立楼盘名称、房号、房价、房产坐落、面积、朝向、户型等字段。3.2将房地产属性数据与地图数据绑定将房地产属性数据与地图数据绑定指的是借助MapX控件提供的方法和相关接口将其他数据库的数据导入到MapX控件的过程。在进行房地产属性数据的绑定到地图后,便可以利用MapX控件轻松快捷的创建对应的应用程序。同时也可以将属性数据作为图元的方式进行查看以及可以基于该属性数据创建一些专题图,实现空间数据与属性数据的双向管理。数据的绑定是实现基于MapX的房地产专题信息管理系统的关键,那么在MapX控件中是如何实现房地产数据的绑定呢?对于这一问题,MapX控件提供了两种解决办法其中包括BindLayer数据绑定和借助MapX的Datasets集合进行数据绑定。3.2.1BindLayer数据绑定BindLayer数据绑定指的是根据数据源中的数据在MapX地图中指定的位置创建点图层。在BindLayer数据绑定过程中首先需要做的是创建一个BindLayer对象。创建BindLayer对象的具体过程是申明一个BindLayer类型数据并根据具体的数据源设置BindLayer的属性,而BindLayer对象的属性见表3-1。表3-1BindLayer对象的属性属性说明值LayerType指数据源所绑定的图层类型MiBindLayerTypeNormalMiBindLayerTypeXYMiBindLayerTypePointRefCoordSys指数据绑定后所创建图层的坐标系CoordSysFileSpec指定的文件的绝对位置用于创建永久图层文本字符串KeyLength创建图层中字段所需的长度,是一个正数数字型,范围在1-255LayeerName当指定图层类型为MiBin-dLayerTypeNormal时其值为数据绑定的图层的名称;当是另外两种类型时则需要指定新的图层名称字符串值RefColumn1当图层类型为MiBindLay-erTypeXY时其值是数据源中X坐标;当图层类型是MiBindLayerTypePoint-Ref时其值为数据源中含有参考信息字段引用某个字段的名称或其对应的索引RefColumn2当图层类型为MiBindLay-erTypeXY时其值是数据源中Y坐标;当图层类型是MiBindLayerTypePoint-Ref时其值为数据源中含有参考信息字段(前提是RefColumn1所指定的字段不唯一)引用某个字段的名称或其对应的索引ReferenceLayer指的是含有参考信息的文件名称(当图层类型为MiBindLayerTypePointRef时需要指定该属性)字符串在创建BindLayer对象后接下来就是利用该对象实现数据的绑定。在BindLayer对象进行数据绑定的过程中会出现以下两种情况:其一源数据中存在X-Y坐标时是根据(x,y)坐标指定的位置创建点图层以实现数据的绑定。这种情况下还必须将BindLayer对象的LayerType属性定义为miBindLayerTypeXY以及定义其RefColumn1属性名或者相对应索引同时也要定义其RefColumn2属性为数据源中涉及Y坐标的字段名或者相对应索引。第二种情况则是通过数据源中包含的相关参考信息来确定点被创建的位置从而实现数据的绑定。当出现这种情况时,需要把BindLayer对象的LayerType属性定义为miBindLayerTypePointRef以及定义其RefColumn1属性为数据源中相关参考信息的字段名或者相对应索引同时也要将其ReferenceLayer属性设置为所引用的具有参考信息文件的名称。另外还需说明的是其RefColumn2属性,如果其RefColumn1属性不唯一则需要定义RefColumn2为另一个参考信息的名称;反之则不需要设置RefColumn2。3.2.2借助MapX的Datasets集合进行数据绑定借助MapX的Datasets集合进行数据绑定的过程中是可以不用指出数据源本身所具备的的属性,这是因为MapX具有自动分析数据的功能并会以一种最佳的方式将数据源绑定到MapX地图上。同样该绑定方式也有两种方法,其一是在设计阶段利用VisualBasic中的数据绑定控件并结合MapX地图对象的Dataset属性来完成。另一中方法使用Datasets集合的Add方法即Datasets.Add方法,这也是数据绑定时常用的方法。下面便是对Datasets.Add方法的详细介绍。Datasets.Add方法在编程中的语法:Datasets.AddType,SourceData,[Name],[Geofield],[SecondaryGeofield],[BindLayer],[Fields],[Dynamic]说明:上述语法中[方括号]中的参数是可选参数,即在其8个参数中前两个是必选的后6个参数则可以根据具体情况适当选择。其中Type参数是指添加到Datasets集合的数据类型,该参数所能接受的参数见表3-2。表3-2参数Type所接受的类型数据类型说明miDataserADO指的是ADO数据集miDataserDAO指的是DAO数据集miDatasetDelphi指的是BorlandBDE数据集miDatasetSafeArray指的是COM数据集miDatasetRDO指的是RDO数据集miDatasetOLEData指的是OLE数据集miDatasetODBC指的是ODBC数据集miDatasetNotesQuery/View指的是LolusNoles类型的数据表miDatasetLayer指的是MapInfo中的数据表语法中SourceData参数是取决于外接数据源的类型,实际是该参数是MapX链接外部数据源的一个接口,数据的绑定也就是通过该接口来完成的。Name参数是数据集合中的字符串,加入Datasets集合后该参数具有唯一的编号。作为一个可选参数,如果再绑定的过程中未指定,MapX将自动为其编号。Geofield参数是包含源数据中地理信息的字段名称或对应的索引。如果在绑定的过程中未将其指定,则MapX将自动查找各个字段以确定GeoDictionary文件中包含地理信息的字段。所匹配的字段并不一定是有关地理数据的字段,也可以是具有唯一关键字的字段。另外作为源数据中的GeoField字段一定要是唯一的,只有这样才能正确的将源数据绑定的MapX地图上进行查看,否则MapX将重复的值进行数据值上的合计。当然,如果在明确知道源数据中存在地理信息的字段的情况下应人工指定,这样会减少MapX自动查找的过程进而提高程序的运行效率。与Geofield参数具有一定的相似性的是SecondaryGeofield参数,该参数出现的唯一可能是数据绑定过程中图层对应的关键字不具有唯一性,也只有在这中情况下该参数才是有效的。BindLayer参数将指定的数据源链接到MapX地图图层中或者MapX的BindLayer对象。同样作为一个可选参数,如果出现未指定的情况则MapX将自动从GeoDictionary文件中查找需要图层。Fields参数是Field对象的集合的一种形式,该参数明确了源数据导入的字段或者在特定情况下的合计函数值所对应的字段。对应该参数如果明确指定了相应的Fields集合时,参数Geofield以及SecondaryGeofield将不会指定数据源中的字段而是Fields中的字段。Dynamic参数判断的是数据在绑定后动态的布尔值的情况,如果未指定该参数则将默认其值为False即是静态绑定,反之其值为Ture即动态绑定,能够实现在必要的情况下实时进行数据连接。但是在源数据不支持动态字段是而又设置该参数为Ture,那么在程序运行时出错。上述已经对数据绑定方法进行了详细的介绍,但是要完成数据的绑定必须在使用这些方法前将源数据中包含地理数据的的关键字段编入为索引字段并且还要在GeoDictionary中指定地图和其关键字段。另外需要说明的是在Datasets.Add方法中涉及的GeoDictionary文件是能够查找与源数据绑定的相关信息。3.3基于MapX房地产专题信息管理系统的模型以及功能设计由于不同区域的房产和地产在实际生活中存在一定的差异所以基于MapX房地产信息管理系统的建立是具有较强的区域性和针对性。该系统是一种信息化管理的现代化工具,其主要用户是房地产管理部门。为了更为全面的实现管理方面的功能,对系统的需求性分析是建立该系统的重要环节。该系统的建立首先是和相关的房地产管理部门沟通,由房地产管理者提出其对该系统在功能和运行环境等其他方面的总体要求,然后由开发者在满足客服需求同时进行系统的调试,并指出初级阶段的开发法案,其中包括开发所用到的编程语言、开发运行的环境、数据库技术、系统总体功能设计等,并再次和相关管理部门进行多次协调和商定,以及对相关的文档、图形资料、数据资料等进行整理、归纳、提炼,最终确定开发方案。只有对系统的需求进行必要的分析才能避免在开发中出现频繁的变动,影响工程周期。完成系统需求性分析后,接下来的工作是对系统总体结构的设计。在相关部门需求的基础上,系统的总体结构一般会包括:MapX地图数据的管理、系统形成的界面、系统实现的功能、房地产数据的存储与管理、数据的显示以及相关数据的录入与输出等。虽然基于MapX的房地产信息管理系统具有一定的区域性和针对性,但是其系统总体结构都会涉及上述的所介绍的各个方面或者其中某几个方面。在系统总体结构设计完成后便可以根据该系统的总体结构来完成系统功能方面的规划和设计。在系统功能设计方面主要包括了以下几个方面:其一是房地产地图操作方面,其中有涉及了地图的基本操作如放大、缩小、漫游、居中和地图的其他操作如面积测量、距离测量、图层控制;其二是信息查询方面,信息的查询是有包含了地图信息查询即通过从地图上指定后显示对应的属性信息以及通过属性信息来定位图形数据;同时还包含了房产信息查询;另外一方面就是数据库的管理,数据库的管理过程主要涉及了数据的录入、输出、编辑、修改、删除等方面。在数据分析方面如房地产专题图的制作:此外还有一些辅助功能如实时显示当前坐标、鹰眼视图、常用功能的快捷设置等,辅助方面的功能是根据实际需要而选择的,同时也是为了实现系统的便捷管理。需这里需要说明的是由于房地产本身具有的区域性和针对性,在系统功能方面的要求需要根据实际情况进行某个或者某些方面的开发。4结合实例开发深入了解基于MapX的房地产专题信息管理4.1开发实例的介绍该实例开发是以河南工程学院校本部1:1000地形图为房地产专题信息的主要资料,并依此为依据获取空间数据如校园内各部分实体的坐标、平面面积、地形资料等以及相关房产和地产的数据文档。同时该实例开发是以VisualBasic6.0作为开发环境并以Access作为数据库平台,最终完成基于MapX的有关河南工程学院校本部的房地产的信息管理系统。在经过与校相关房地产管理部门的沟通与商定,以及对该校区相关图形数据、房地产的属性资料等文档的分析与归纳,最终形成了对该实例系统的功能结构设计的方案。该实例系统中其功能结构的设计包括以下几个方面:(1)系统界面的设计;(2)房地产地图数据管理;(3)房地产属性数据的存储与管理;(4)房地产属性信息和地图数据的双向联系。同时根据该实例系统的功能结构并提出了系统功能的设计方案,对于该系统要完成的功能如下:(1)地图的操作功能,其中包括地图放大、缩小、居中、漫游、图层控制、面积测量、距离测量;(2)房地产专题地图的制作;(3)数据库的管理,其中涉及了数据的查询、修改、删除等基本管理操作;(4)房地产信息查询功能,其中包括了地图数据的点选择并以此显示相关的属性信息。另外通过相关的属性数据来查询地图位置;(5)实例系统需要的辅助功能,该功能主要鹰眼视图、实时显示当前坐标、文件路径的显示、捕捉功能、地图的输出。最终形成开发系统如图4-1:图4-1房地产专题信息管理系统4.2应用实例中实现房地产地图的嵌入在房地产开发实例中地图的嵌入是最基本的环节,具体步骤如下:(1)底图的制作首先通过收集已有控制点并利用全站仪进行野外数据采集,然后基于南方cass7.0绘制校园房地产平面地图。(2)制作校园房地产电子地图(地图为Gst格式)由于Dwg格式的文件与Gst格式的文件在数据结构存在差异,所有在Dwg格式的校园平面图进行转换前应做好以下工作:①将图中同类地物放在同一图层中如建筑物图层、运动场图层、校内道路图层、绿化用地图层、其他用地图层②删除冗余数据如删除多余的标注、点比较密集的线段要进行适当删点③对图层中线、多边形的闭合性以及闭合图形的线自相交性进行检查与修正。经过上述处理之后在借助南方Cass7.0以及MapInfoProfessional7.0SCP软件制作Gst格式的校园房地产电子地图,具体操作过程如下:首先在南方Cass7.0软件中将打开的Dwg格式的校园平面图另存为AutoCADR12/LT12DXF格式;其次通过MapInfoProfessional7.0SCP软件中“表/转入”的功能将DXF格式文件中每个图层数据转换为MapX所需的数据格式,并且在这个过程中设置投影为Non-Earth(meters);最后借助MapInfoProfessional7.0SCP软件中“工具/MapXGeoset工具/另存MapXGeoset”的功能将其转换为能够嵌入MapX中的Gst格式的文件。(3)地图的嵌入在地图嵌入的过程中,需要借助可视化开发工具MicrosoftVisualBasic6.0来实现基于MapX的地图的嵌入功能。首先在MicrosoftVisualBasic6.0软件中通过新建标准EXE并借助该窗口中“部件/工程”插入MapInfoMapXV5控件(即MapX控件)。其次在代码窗口中加入相应的代码,以下是实例中地图嵌入的主要代码说明:Map1.GeoSet=App.Path&"\map\河南工程学院校本部.gst"在该句代码中Map1指MapX控件名称(在下文中的Map1代表相同的意义);GeoSet指MapX控件加载Gst文件的属性;“=”右边指的是Gst格式的校园电子图的绝对路径。另外地图的嵌入并不仅仅指的是基于MapX控件将Gst格式电子地图嵌入可视化开发环境中而且还需为该电子地图设置对应的地图显示的坐标系以及处理数字坐标的坐标系如X-Y坐标的处理。在Gst格式的电子地图中对于每一幅地图都有其特定的坐标系,其中包括控制地图显示的坐标系和处理数字坐标的坐标系,无论哪一个坐标系设置出错都会影响最终结果。地图显示的坐标系是在生成Gst格式的电子地图的过程中已经设置了相应的投影;对于处理数字坐标的坐标系则需要通过MapX控件的NumericCoordSys对象来设置,使用的方法是MapX.NumericCoordSys.Set方法来设置所需的处理X-Y坐标的坐标系或者为MapX.NumericCoordSys属性赋予一个CoordSys对象。在本实例开发过程中其地图显示的坐标系已经在格式转换过程中设置投影为Non-Earth(meters),而处理X-Y坐标的坐标系的主要代码如下:Map1.NumericCoordSys.Set0,,iUnits,0,,,,,,,,,RECT对于上句代码需要说明的是:RECT是已经申明过的用来表示坐标系中外部边界的Rectangle对象。4.3房地产地图操作功能的实现在4.2节中实现了基于MapX的房地产地图数据的嵌入,但是这并不能够完成对地图的操作,那么在本节中将会详细介绍地图操作功能的实现。由于在MapX中对地图操作功能具有多种,而该实例所需要完成的操作功能已经在4.1节中作过详细的介绍。首先我们来看看地图的基本操作功能的实现,该项功能主要是利用了MapX控件中自带的标准工具来实现的。其代码编写过程中是借助Map对象的CurrentTool这一属性的设置来完成的。该实例中相关主要代码如下:Map1.CurrentTool=miZoomInTool‘地图的放大Map1.CurrentTool=miZoomOutTool‘地图的缩小Map1.CurrentTool=miPanTool‘地图的漫游Map1.Bounds=Map1.Layers.Bounds‘地图的居中说明:CurrentTool表示Map1的当前工具属性,Bounds表示Map1的范围属性,通过给这些属性赋予规定的值后,便可完成这些基本功能。其次是对地图其他操作功能的实现,如地图图层控制功能的实现是通过以下代码实现:Map1.Layers.LayersDlg‘图层控制说明:LayerDlg是Map1对象中图层的一个属性,用以弹出图层控制对话框,并且在该对话框中可以实现图层的添加、移除、移动以及图层的可见性的设置,同时还能够对图层中点、线、面的样式以及标签进行必要的设置,如图4-2所示:图4-2图层控制对话框另外量测功能也是地图的基本功能之一,由于MapX控件中并没有包装相对应的距离量测和面积量测,所以要想实现量测功能必须通过MapX控件所提供的“创建定制工具”的方法来完成。因为面积量测和距离量测在实现的过程是大同小异的,所以下面将会以距离量测为例进行主要的说明。要想实现距离量测功能需要以下完成三个步骤:第一步:申明定制工具常数在此步骤中首先需要我们做的是申明常数addDistance等于995来作为该实例中距离量测的自定义工具。然后就是在装载该房地产地图时加入以下代码来实现自定义工具的创建。ConstaddDistanceAsInteger=995‘量测距离第二步:创建自定义的Polytool工具在申明之后便可对量测工具进行创建,在创建定制工具的过程中需要三个参数包括ToolNumber参数和Type参数以及Cursor参数,其中ToolNumber参数指的是第一步中申明的常量;Type参数指定制工具在MapX地图的行为方式;Cursor参数指当前地图上光标的形状。在该实例中创建量测工具的代码如下:Map1.CreateCustomTooladdDistance,miToolTypePoly,miCrossCursor’创建测距说明:addDistance表示已经申明的常数;miToolTypePoly表示用户可以通过多次单击来实现折线的绘制;miCrossCursor表示十字光标。第三步:定义地图的当前工具该步的操作和定义基本功能类似,也是通过Map1对象的CurrentTool属性来设置,如:Map1.CurrentTool=995。对该句需要说明的是“=”右边的995便是在前两步中所创建的量距工具。第四步:完成定制工具的处理程序前三个步骤只是完成了量测工具在地图上的行为方式以及对应坐标的获取,但是并未对量距结果计算与显示。在第二步已经明确了所创建的是Polytools工具,则在编写处理程序时应将代码添加到PolyToolUsed事件中。只有在该事件中MapX控件才会自动调用以便使所定义的工具生效。以下便是实例开发过程中完成定制的量距工具的处理程序的主要代码:Fori=1ToPoints.Count-1X1=Points.Item(i).XY1=Points.Item(i).YX2=Points.Item(i+1).XY2=Points.Item(i+1).Ydis=Map1.Distance(X1,Y1,X2,Y2)Nexti该段代码说明:(1)Pointss是Map1对象的点集合,该点集合是只有在使用了PolyToolUsed事件是才有效的一个点集合,并且此集合中所存储的点是用户多次点击地图时的点坐标,量距结果的计算便是利用该集合中的点。(2).Item(i)是对Points集合中点的引用方法;同理.X和.Y分别是对点X坐标、Y坐标的引用。(3)Distance是MapX控件所封装的计算两点之间距离的函数,量距结果的输出便是借助该函数得以实现。而对于面积的量测功能虽然在实现过程与量距非常相似,但是在这几个步骤中也存在一定的差异。比如:在申明常量时需要重新申明另外一个不相同并且容易区分的常数;定制的面积工具在地图的行为方式改为miToolTypePolygon,并用以表示用户在地图上绘制多边形的行为方式;另外在计算过程中MapX并没有提供相对应的函数,在这里主要是通过Map1的FeatureFactory对象创建一个图元,并利用该图元的Area属性获取面积。在实例中面积量测的主要代码如下:ConstaddAreaAsInteger=996‘申明测面常数Map1.CreateCustomTooladdArea,miToolTypePolygon,miCrossCursor‘创建工具SetArea_Fea=Form1.Map1.FeatureFactory.CreateRegion(Points)‘创建图元Fea_Area=Area_Fea.Area‘面积获取说明:Points同量距中一样;FeatureFactory.CreateRegion是创建临时图元的一种方法。另一方面,要实现精确的量测功能需要做到节点的捕捉。那么接下来就是对节点捕捉、投影(坐标系)、实时显示坐标等辅助功能的介绍,如下:节点捕捉:该功能主要利用Map1对象的SnapToNodeSupport属性和SnapTolerance属性。当SnapToNodeSupport属性为Ture时表示启用节点匹配功能而SnapTolerance属性取1到50之间的整数指,其表示匹配节点时的允差。其主要代码如下:Map1.SnapToNodeSupport=True‘启用捕捉Map1.SnapTolerance=1‘允差投影(坐标系):该功能主要是通过Map1中DisplayCoordSys对象的PickCoordSys属性来调用,投影(坐标系)的选择对话框。其主要代码如下:Map1.DisplayCoordSys.PickCoordSys坐标的实时显示:该功能的实现主要是在Map1对象的MouseMove事件中利用Map1对象的ConvertCoord函数来将当前鼠标的屏幕坐标转换地图坐标并通过控件显示。其主要代码如下:Map1.ConvertCoordX,Y,X11,Y11,miScreenToMap‘坐标转换4.4房地产专题图的制作与其操作房地产专题图指的是利用房地产某些特定的数据进行对房地产地图的渲染过程。房地产专题地图的制作可以使房地产的某些数据图形化,这样一来便可为房地产管理部门在地图上更加直观的查看,同时也为他们在数据的统计和分析方面提供了有力依据。在房地产专题的制作过程中开发者可以通过多种方式进行数据的图解,并且能够是这种图解方式多样化,最终实现数据的分析和可视化。作为一个强大的功能,其实现的方法是通过Theme对象的Add方法,该语法如下:Themes.Add
[Type]
,
[Field]
,
[Name]说明:Type指的是该语法的一个参数,该参数明确了创建专题图的类型,也就是说数据图形化的表现形式。另外该参数是一个可选参数,在不指定该参数的情况下,MapX将会自动选择合适的一个类型,如果没有合适的类型那么将会产生错误;Field参数指的是数据绑定过程中其Fields集合的字段名或者对于的索引,同样这也是个可选参数,在不指定的情况下,MapX会默认选择所绑定的Dataset对象的第一个字段;Name参数指专题图的名称,作为一个字符串参数,如果不指定其值,MapX将会自动生成。在该实例开发中,根据用户要求对房产面积、房价、楼层数三方面制作了专题图。下面是对房价专题的开发过程(以房价专题图为例):第一:房地产属性数据字典的建立这里是通过要Access软件建立一个名为“河南工程学院校本部.MDB”的数据库,并在其中建立张名称为“建筑物”的表。在全面考虑到其各方面属性的情况下,设置了相应字段,如表4-1:表4-1建筑物图层的表结构字段名称ID建筑物名称面积楼层数房间数房价备注权属字段类型整型文本双精度双精度整型双精度文本文本第二:房价信息的绑定房地产信息的绑定主要是借助MapX对象的Fields集合,并利用Fields集合的Add方法将源数据中”面积“、“ID”字段的数据添加到Fields集合中。同时通过给Datasets的Fields参数赋予所添加过的的Fields集合,最终实现房价信息的绑定。整个绑定过程的主要代码如下:Flds.Add"ID","ID"‘添加ID字段Flds.Add"面积","面积(平方米)"‘添加面积字段SetDs=Map1.DataSets.Add(miDataSetADO,Rs,"Dss1","ID",,"建筑物",Flds)‘房价信息的绑定说明:Flds是已经申明过的Fields类型的数据变量;Flds.Add方法中的第一个参数“ID”和“面积”是指源数据中的字段,而第二个参数“ID”和“面积(平方米)”代表的是添加到Fields中名称;对于Datasets.Add的使用参考3.2.2节;同时还需另外说明的是要想实现此功能还需要在借助MapInfoProfessional7.0软件的“表\维护\表结构”功能来创建“ID”的索引。第三:房价主题的创建房价主题的创建利用Themes.Add
方法实现的,对于该方法已经在本节的最开始作了详细的介绍,下面就是实例中的主要代码:SetTheme1=Ds.Themes.Add(miThemeAuto,2,,True)说明:Theme1和Ds分别是已经申明过的Theme变量和Dataset变量;对于Themes.Add方法的第四个参数Ture表示MapX控件自动对原始参数的计算,从而实现专题图的制作。经过上述三个步骤实现的房地产面积专题图如图4-3:图4-3房产面积专题图而在某些情况下,专题图制作并不能够严格满足管理者要求,这时开发者需要实现对专题图操作的功能。专题图的操作通常有三种途径:第一种方式式是通过Theme.ThemeDlg方法来调用MapX自带的专题图控制的对话框,可以使用户更加直接的对专题图特性作必要的修改。虽然这种方式使得对程序控件方面的难度加大,但是该方式把专题图的全部控制权交给了用户。第二种方式是利用更改ThemeProPerties对象的属性来实现专题图的操作,该对象主要是对专题图的颜色、符号等方面的定义。这种方式使开发者可以制作自己的界面满足管理者要求,同时该对象的许多属性又具有其他对象是开发者可以进行深层次的开发与控制。第三种途径是自定义图例来实现对专题图的操作。同样在定义专题图图例的时候可以通过Legend对象的LegendDlg属性来调用默认对话框,并在该对话框中进行相应设置以实现专题图图例修改。同时也可以对Theme对象的Legend属性进行必要的修改与设置。在该实例开发中对专题图操作采用了第一种方式,其主要代码如下:Map1.DataSets("Dss1").Themes(1).ThemeDlg‘面积专题操作Map1.DataSets("Dss2").Themes(1).ThemeDlg‘楼层专题操作Map1.DataSets("Dss3").Themes(1).ThemeDlg‘房价专题操作4.5房地产信息查询与编辑功能的实现信息的查询的查询主要有两种方式:其一是在地图上点取之后显示其属性信息;其二是从属性信息表中查询满足条件的记录后定位到地图上并实现该实体图元的亮显与放大。而对于信息的编辑主要是借助了VB中提供的Adodc控件对数据的绑定和DataGrid控件对数据的显示,并且在DataGrid控件上可以直接对显示的数据进行编辑。该实例开发中此功能实现的步骤如下:第一:数据字典的建立在数据字典建立方面主要是利用Access数据库分别对建筑物图层、其他用地图层、绿化用地图层建立了对应的表数据。而对于建筑物图层建立的“建筑物”表的具体过程在4.3节中作了详细介绍,由于其他用地图层和绿化用地图层的建表过程和建筑物图层是类似的,所以在这里就不做过多说明,对于其表结构分别见表4-2和4-3。表4-2其他用地图层的表结构字段名ID名称面积权属备注类型整形文本双精度型文本文本表4-3绿化用地图层的表结构字段名ID名称面积权属备注字段名ID名称类型整形文本双精度型文本文本类型整形文本第二:地图数据关联到属性数据由于MapX中并未提供点选后显示相应属性信息的工具,所以在该步骤中首先是创建自定义工具,其主要代码如下:ConstI_selectAsInteger=997‘点查询变量Map1.CreateCustomToolI_select,miToolTypePoint,miCrossCursor‘工具的创建CurrentTool=miSelectTool‘引用当前工具在点查询工具创建后便可以通过该工具实现地图数据的查询,该查询是借助Map1对象的ToolUsed事件,其相应的代码也是编写在该事件中的。其主要代码如下:pt.SetX1,Y1‘创建点Setf=Map1.Layers("建筑物").SearchAtPoint(pt)‘地图数据查询Adodc1.RecordSource="select*From建筑物whereID="&Map1.Layers("建筑物").SearchAtPoint(pt).Item(1).FeatureID‘地图数据关联属性数据说明:pt指的是已经申明过的MapXLib.Point类型变量;pt.Set指创建点的方法;f指的是已经申明过的Features类型变量;Record
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年高二上学期期末数学考点《等差数列与等比数列》含答案解析
- 2025年委托翻译合同
- 2025招标合同范本
- 《定向越野策划方案》课件
- 二零二五年度海运货物运输合同及船舶保险合同3篇
- 商标抵押还款合同
- 总销售代理协议
- 2025山阴县土地转让合同书
- 花店资料员合同范本
- 2025借款合同(供基本建设借贷用)
- XX小学体育特色建设三年发展规划
- 高考专题复习:《史记 孙子吴起列传》分析
- 风电工程需要编写的专项施工方案及危大工程目录
- 二级综合医院评审标准实施细则
- 新大《新疆地质概论》教案第6章 矿产资源
- EGD杀生剂剂化学品安全技术说明(MSDS)zj
- GB/T 12229-2005通用阀门碳素钢铸件技术条件
- 超分子化学-第三章 阴离子的络合主体
- 控制变量法教学课件
- 血压计保养记录表
- 食品的售后服务承诺书范本范文(通用3篇)
评论
0/150
提交评论