mapx教程之数据库绑定篇

mapx教程之数据库绑定篇

ID:17460018

大小:27.00 KB

页数:5页

时间:2018-09-01

mapx教程之数据库绑定篇_第1页
mapx教程之数据库绑定篇_第2页
mapx教程之数据库绑定篇_第3页
mapx教程之数据库绑定篇_第4页
mapx教程之数据库绑定篇_第5页
资源描述:

《mapx教程之数据库绑定篇》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、MapX教程之数据库绑定篇GIS空间数据(包含属性数据)存储的方式主要有三种:1、地图文件+属性关系数据库表的混和方式,目前主流方式,如MapInfo一个图层,*.map文件存储空间地图数据,*.tab以关系数据库表的形式存储属性数据。2、关系数据库表中有一个特殊字段存储二进制的空间对象数据。这个我把它称为半关系型空间数据库。比如geomedia3、全关系型空间数据库。空间对象的坐标位置信息以一定的机制(不是单个二进制大对象)全部存入关系数据库。如Esri的GeodatabaseMapX的开发者肯定有很多是熟悉MapInfo

2、的。在MapInfo里面打开一个地图,同时就可以打开一个浏览表浏览空间对象的属性。这是因为图层与数据库表进行了预先绑定。但是如果开发者用MapX打开一个个图层之后,他可能会发现这些图层的属性不知道去哪里去找了。这是因为MapX没有再为我们预先绑定空间数据和属性数据库了。在mapx下,一个图层的空间数据和属性数据分别用layer对象和dataset对象完全分开管理。这样的好处就在于为扩大了属性数据的来源。你可以为一个layer的空间对象绑定多个数据库表。而且用主流关系型数据库软件来管理属性数据可比一个单纯的*.tab好多啦!(

3、其实mapinfo也为我们提供了许多绑定和操作外部数据库的工具,我们不常用而已)那如何在mapx里用语句绑定外部的数据库呢?跟我来首先我还得罗嗦两句MapX这个控件。MapX控件提供了几十个对象,这些对象又通过其属性方法实现了MapInfo大部分的GIS功能。在MapX提供的对象里面有几个我们要特别关注,因为我们要经常用到它们:Layer对象、Layers集合。用于管理图层。Dataset对象、datasets集合。用于管理属性数据集,可以看作一个数据库的记录集。不过dataset必须绑定于某一个layer对象上。Annot

4、ation对象、Annotations集合,管理注记。Feature对象,Features集合。用于管理空间对象。Feature可以是某一layer上的对象,也可以是不属于某一层的独立的(stand-alone)对象。FeatureFactory对象。用于对feature进行一些空间操作。比如buffer、创建对象、求对象相交等第二部分言归正传言归正传,讲MapX里绑定数据库表的方法。其实说到底只需要一个方法就可以了——Map.Datasets.Add我以一个实例来讲解这个方法的用法。假设MapX已经打开一个图层,图层名为"

5、a",手头还有一个Access数据库a.mdb,数据库里面有个表X想和a图层绑定。我们保证a层属性里面有一个字段ID1与表X的一个字段ID2是匹配的!!OK,let磗begin。第一步,数据库的连接各式各样的数据库要连进VB、VC,就需要二传手——DAO、ADO、RDO等等我们在VB里面用ADODC这个控件在设计时就可以把a.mdb连接进来,把表X作为一个recordset。当然也可以用语句conn="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=a.mdb;PersistSecur

6、ityInfo=False"WithAdodc1.ConnectionString=conn.RecordSource="Select*FromX".RefreshEndWith其它关系数据库(Oracal、SQLServer)的表也完全可以通过ADODC连接进来。只是连接字符串里面的Provider不同罢了。第二步,layer与数据库的绑定Datasets.add方法第一个参数Type。他可以绑定多达13种的数据源,比如ADO、DAO、ODBC等等。这里我们当然用miDataSetADO第二个参数SourceData。指定

7、数据源。我们的数据源是表X。我们已经指定表X是Adodc1的当前记录源。该参数即为adodc1.recordset第三个参数Name。指定被绑定后的dataset的名称。可选第四个参数GeoField。指定数据源中某个字段作为与layer匹配的字段。如果不选,MapX会自动帮你找一个的。这里我们是ID2第五个参数SecondaryGeofield。指定数据源第二匹配字段。如果指定的第一匹配字段中两个值相等,就靠它来找到对应的对象了。一般不用第六个参数BindLayer。指定绑定到哪一层。可以用层名,也可以用Layer对象。我

8、们例子里面图层是a,将其作为参数。如果不指定,MapX也会自动帮你找一个的。(呵呵蛮智能的吧)第七个参数Fields。指定数据源中哪些字段参与绑定。第八个参数Dynamic。指定是否是动态绑定。缺省为false。动态绑定就是要用这个dataset时MapX再临时绑定数据到对象上讲解完了参数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。