地图数据与属性数据的关联
开发过程中涉及的数据主要包括两个来源:一部分是Geoset中包含的地图数据文件,即Djqh.tab、Djs.tab和Gq.tab;其它所有的非几何数据即属性数据均由MS SQL Server管理。因此,要实现图文互动,必须建立几何数据和属性数据之间的关系。
MapX支持的外部数据
在MapX中可以引用多种类型的外部数据。
(1)、 地图数据:如果用户已经购买了或是利用MapInfo创建了MapInfo地图,可以直接将它们在应用中打开。
(2)、 远程空间数据库:利用MapX可以访问保存在Oracle8i及MapInfo SpatialWare中的地图数据。其中,对Oracle8i的支持是MapX 4.0的新特性。通过Oracle8 Call Interface(OCI),MapX可以将存储在Oracle8i数据库服务器中的MapInfo空间数据和属性数据同时下载到本地。
(3)、 其它远程数据:MapX支持多种对外远程数据的访问方式,如ADO、DAO、及RDO等,更可以通过ODBC使用更广范围内的数据。
数据库设计原则
GIS系统中涉及的数据包括图形矢量数据、空间属性数据和工程管理数据。为了增强整个系统数据处理的灵活性,采用分开存储的方法。图形矢量数据以MapInfo标准文件格式存储在特定目录下,图形中每个地物均有其对应的唯一的标识(ID号),系统以此为索引建立该地物的图形数据文件。空间属性数据与工程管理数据均采用MS SQL Server来存储,各地物属性记录的关键字为图形文件中该地物的ID号,由此便实现了图形文件与属性文件的一一对应关系。
图3.1 图形数据与属性数据的关联关系
关联属性数据的方法
在MapX中,属性数据与几何数据的关联是通过数据绑定实现的。
(1)、 什么叫数据绑定
数据绑定是将外部数据引入MapX的过程。
可以绑定的数据源包括以下类型:
类型 描述
ADO 使用ADO(Active data objects)
DAO DAO对象,可以是VB中的data control、Access表格等,也可自己创建
Delphi 使用Borland BDE数据源
Global Handle lets you pass in a block of tab-delimited data
Layer 创建一个Dataset,使用MapInfo表字段
Notes View/NotesQuery 专门用于Lotus Notes
ODBC 可以使用ODBC从任何ODBC数据源中获取数据
OLE Data 用于containers,如PowerBuilder
RDO MS Remote Data Objects和RDO结果集对象
safeArra COM数据集,与safearray中的数据进行静态绑定
Unbound 兼容其它
(2)、 数据绑定的强大作用
数据绑定主要有两个作用。
? 以地图中的图形对象来显示数据
通过数据绑定,可以将BindLayer对象作为一个参数,使用Datasets.Add方法将自己的表转变为一个DataSet。这将在地图中创建一个新的图层,并且将表中的数据以点等图形对象表示。一旦将数据引入地图,就可以很容易地使用MapX创建应用程序,并实现多种地图功能。






