第11章MapX基础11.1MapInfoMapX介绍11.1.1产品介绍11.1.2内容介绍11.2MapX的功能11.3MapX的基本属性11.3.1属性对象11.3.2MapX组件的模型结构11.4MapX安装11.4.1系统要求11.4.2安装MapX11.5MapX的两个实用应用程序11.5.1GeodictionaryManager11.5.2GeoSetManager11.6添加Map控件11.7习题1111.1MapInfoMapX介绍11.1.1产品介绍MapX为开发人员是一个快速、易用、功能强大的地图化组件。①在VisualBasic,Delphi,PowerBuilder,VC++等可视化开发环境中,只需在设计阶段将MapX控件放入窗体中,并对其进行编程,设置属性或调用方法或相应事件,即可实现数据可视化,专题分析,地理查询,地理编码等丰富的地理信息系统功能。②MapX具有强大的数据绑定能力。在VisualBasic中,可以和DataControl绑定,在Delphi和PowerBuilder中,可通过ODBC绑定,实现数据库中的数据与MapX中的MapInfo地图的关系连接,使得地图对象与关系数据库中的数据项相对应。经过数据绑定,可以将数据中的数据制成专题图,或在地图上查询数据,以及通过SQL语句实现对地图的查询。11.1.2MapX内容介绍1.MapX包含的内容(1)示例地图(2)示例数据(3)示例应用程序(4)实用程序2.MapX文档11.2MapX的功能1.专题制图可使用六种不同的样式来表现数据(范围值、点密度、独立值、等级符号、饼图、直方图)。2.逐层细化制图允许用户通过定点和单击逐层细化地图的某个区域。3.数据绑定MapX提供多种不同类型数据的绑定。4.注释通过添加文本、符号和标注来使用户的地图信息变得更加丰富。5.图层化控制地图图层的显示,创建无缝地图图层。6.栅格图像可将栅格图像作为地图背景。7.自动标注自动向地图添加标注。8.选择在一个指定的半径、矩形区域或指定点的范围内选择地图图元。9.图元工厂FeatureFactory对象使用户得以创建、合并缓冲区或擦除点、线和区域图元。10.工具通过MapX内置的导航、选择和标注工具或自定义工具来对地图进行操作。11.地图编辑可以让用户在地图上添加、修改或删除图元。12.投影和坐标系MapX对地图坐标系和投影的完全支持使用户可以更精确地调整地图的显示并在自己的坐标系中处理X-Y数据。13.远程空间服务器连接可以连接运行在Oracle8.0.5、Informix或其他所支持的数据库上的Oracle8iSpatial和MapInfoSpatialWare上存储的真实数据。11.3MapX的基本属性11.3.1属性对象1.Map对象每个Map对象主要包括Datasets、Layers、Annotations三个对象集合。2.Layers对象在MapX中,每张单独的地图都被表示成单独的一个图层,所有的图层存储在layers集合中。Layers集合由Layer对象组成,按顺序编号为0到n。3.GeoSets对象GeoSet是在GeoManager中建立.GST文件,类似MapInfo中的工作空间的概念,是图层及其设的集合,控制程序中显示的地图。4.Datasets对象Datasets用于实现地图与数据的绑定。建立地图信息与属性数据之间联系的过程称之为自动绑定。5.Annotations对象Annotations集合提供了操纵地图中文字和符号的方法。方法描述代码示例AddSymbol向Annotation集合添加符号。使用默认样式(由Map.DefaultStyle指定)。Map1.Annotations.AddSymbolX,YAddText向Annotation集合添加文本。第四个参数表示文本在指定坐标系中的初始位置。Map1.Annotations.AddText,“DeveloperServices”,79.44,46.8889,miPositionTLRemove从集合中删除指定的Annotation。Map1.Annotations.Remove1RemoveAll从集合中删除所有的Annotation。Map1.Annotations.RemoveAll表11-1Annotations集合方法表11-2Annotations集合属性属性描述代码示例Editable指定注释是否可以编辑。Map1.Annotations.Editable=TrueType指定Annotation对象类型。IfMap1.Annotations(2)Type=miTextAnnotationThenPrint“Itistext”Graphic包含了拥有Annotation属性的Graphic对象。请参阅联机帮助中的Graphic对象描述。请参阅联机帮助中的Graphic对象描述。6.可创建对象在MapX对象模型中,以下对象是可以被创建、的:AffineTransform、BindLayer、BitmapSymbols、CoordSys、Datum、Feature、Fields、LayerInfo、Map、ODBCQueryInfo、Parts、Point、Points、Rectangle、RowValue、RowValues、Style、Variables、NotesQueryInfo、NotesViewInfo。11.3.2MapX组件的模型结构图11-1MapX的模型结构11.4.2安装MapX①将MapXCD置于CD驱动器中或双击Setup图标。②此时将出现“安装类型选择”对话框,如图11-2所示,提供若干选项。单击“安装MapX”按钮,出现“Setup”对话框,如图11-3所示。图11-2“安装类型选择”对话框图11-3“Setup”对话框③进程完成后,此时将显示“欢迎”对话框,如图11-4所示。选择“下一步”,继续进行安装进程。④此时将显示“软件许可”对话框,如图11-5所示。选择“是”,接受协议条款,然后继续安装进程。⑤此时将显示“选择目标位置”对话框,如图11-6所示。指定安装MapX的目录。如果当前没有安装MapX,默认位置为:ProgramFiles\MapInfo\MapX5.0。如果当前已经安装了MapX,则默认为当前的安装目录。图11-4“欢迎”对话框图11-5“软件许可”对话框图11-6“选择目标位置”对话框图11-7“组件”对话框⑥出现“组件”对话框,如图11-7所示。指定要安装的产品组件。此时将显示所选组件的磁盘空间要求。⑦此时将显示“选择程序文件夹”对话框,如图11-8所示。指定程序文件夹。⑧此时将显示“开始复制文件”对话框,如图11-9所示。图11-8“选择程序文件夹”对话框图11-9“开始复制文件”对话框图11-10进度栏⑨在MapXInstaller安装完毕之后,将会启动“MapX数据设置”对话框。重复上述介绍的各个步骤,完成整个安装,如图11-11所示。图11-11“完成”对话框11.5MapX的两个实用应用程序11.5.1GeodictionaryManager在MapXGeoSetManager的工具菜单下有执行GeoDictionary程序的选项。弹出“GeoDictionaryManager”对话框,如图11-12所示。GeoDictionaryManage程序允许把新的MapInfo表注册到GeoDictionary中。同时,在“GeoDictionaryManager”中,单击“注册表(Register)”按钮,弹出“表属性(TableProperties)”对话框,如图11-13所示。然后选择要注册的表,设置表属性并为其输入描述。如果要想自动地把这张表加载到GeoSet中,请单击添加按钮然后选择要把表添加进的GeoSet。图11-12“GeoDictionaryManager”对话框图11-13“TableProperties”对话框11.5.2GeoSetManager通过使用GeosetManager,可以将所有的工作表集中在一起,连同每一层的设置一并存储到一个.GST文件中,下次使用时,只需打开此文件就可以了。图11-14为GeoSetManager的用户界面,可以利用此管理工具更改图层设置,当认为满意时,就可以保存地图。图11-14GeoSetManager的用户界面可以调出Layers控制对话框对每一图层分别进行设置,如图11-15所示。图11-15“Layers控制”对话框11.6添加Map控件1.在VB中添加MapX控件①右键单击VisualBasic工具箱,然后从快捷方式菜单中选择“部件”。或者执行“工程”→“部件”命令,弹出“部件”对话框,如图11-16所示。②在“部件”对话框中,单击控件选项卡,然后在列表中查找MapInfoMapXv5.0。如果没有选择这一项目,则将其选中。单击“确定”。工具箱上此时会出现地图控件。要将地图置于VisualBasic表单之上,选择地图控件,然后在表单上绘制一个图框。图11-16“部件”对话框图11-17所示“Form1”对话框2.升级已有版本的MapX如果VisualBasic项目使用早期版本的MapX使用以下步骤来将该应用程序转换到当前版本。①打开要升级到当前版本的应用程序的项目。②从表单删除地图对象。记录地图控件的名称,以及任何可以从其默认设置更改的属性的名称。③从“工具”菜单,选择“定制控件”。④在“可用控件”列表中,取消选择MapInfoMapX控件,然后选择“确定”。⑤返回到“工具”→“定制控件”对话框,然后选中MapInfoMapX版本x控件(其中的x是当前的版本号),再单击“确定”。3.向VB中添加工作地图①从VisualBasic工具箱选择地图控件。②在表单上绘制图框,表示要显示地图的区域。MapX显示地图的预览。③右键单击地图控件,然后从快捷方式菜单中选择“特性”。此时将出现MapInfoMapX“属性页”对话框,如图11-18所示。图11-18“属性页”对话框④找到常规选项卡底部的当前工具(Current)选项。将当前工具设置为“1103-ZoomIn”并单击确定。⑤运行程序以查看地图。请注意只要指针位于地图上,将变为带加号的放大镜。⑥单击地图,MapX在单击的位置放大地图。可以反复单击,使得它放得越来越大。也可以绘制一个选取框以指定要放大的准确区域。11.7习题11一、思考题1.MapX包括哪些内容?具有哪些功能?2.MapX具有哪些属性?各属性有什么作用?3.MapX的两个应用程序是什么?它们有什么用途?二、上机练习1.按照课本上的介绍,上机安装应用程序。2.上机熟悉MapX应用程序界面,建立新的GeoSet文件。3.在VisualBasic工具箱上添加Map(地图)控件。