MapX教程之数据库绑定篇.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MapX教程之数据库绑定篇.doc

第一部分 罗里罗嗦 GIS空间数据(包含属性数据)存储的方式主要有三种: 1、地图文件+属性关系数据库表的混和方式,目前主流方式,如MapInfo一个图层,*.map 文件存储空间地图数据,*.tab以关系数据库表的形式存储属性数据。 2、关系数据库表中有一个特殊字段存储二进制的空间对象数据。这个我把它称为半关系型 空间数据库。比如geomedia 3、全关系型空间数据库。空间对象的坐标位置信息以一定的机制(不是单个二进制大对象 )全部存入关系数据库。如Esri的Geodatabase MapX的开发者肯定有很多是熟悉MapInfo的。在MapInfo里面打开一个地图,同时就可以打 开一个浏览表浏览空间对象的属性。这是因为图层与数据库表进行了预先绑定。 但是如果开发者用MapX打开一个个图层之后,他可能会发现这些图层的属性不知道去哪里 去找了。这是因为MapX没有再为我们预先绑定空间数据和属性数据库了。在mapx下,一个 图层的空间数据和属性数据分别用layer对象和dataset对象完全分开管理。这样的好处就 在于为扩大了属性数据的来源。你可以为一个layer的空间对象绑定多个数据库表。而且用 主流关系型数据库软件来管理属性数据可比一个单纯的*.tab好多啦!(其实mapinfo也为 我们提供了许多绑定和操作外部数据库的工具,我们不常用而已) 那如何在mapx里用语句绑定外部的数据库呢?跟我来 首先我还得罗嗦两句MapX这个控件。MapX控件提供了几十个对象,这些对象又通过其属性 方法实现了MapInfo大部分的GIS功能。在MapX提供的对象里面有几个我们要特别关注,因 为我们要经常用到它们: Layer对象、Layers集合。用于管理图层。 Dataset对象、datasets集合。用于管理属性数据集,可以看作一个数据库的记录集。不过 dataset必须绑定于某一个layer对象上。 Annotation对象、Annotations集合,管理注记。 Feature对象,Features集合。用于管理空间对象。Feature可以是某一layer上的对象,也 可以是不属于某一层的独立的(stand-alone)对象。 FeatureFactory对象。用于对feature进行一些空间操作。比如buffer、创建对象、求对象 相交等 第二部分 言归正传 言归正传,讲MapX里绑定数据库表的方法。 其实说到底只需要一个方法就可以了——Map.Datasets.Add 我以一个实例来讲解这个方法的用法。 假设MapX已经打开一个图层,图层名为a,手头还有一个Access数据库a.mdb,数据库里面 有个表X想和a图层绑定。我们保证a层属性里面有一个字段ID1与表X的一个字段ID2是匹配 的!! OK, let磗 begin。 第一步,数据库的连接 各式各样的数据库要连进VB、VC,就需要二传手——DAO、ADO、RDO等等 我们在VB里面用ADODC这个控件在设计时就可以把a.mdb连接进来,把表X作为一个records et。当然也可以用语句 conn = Provider=Microsoft.Jet.OLEDB.4.0;Data Source=a.mdb;Persist Security In fo=False With Adodc1 .ConnectionString = conn .RecordSource = Select * From X .Refresh End With 其它关系数据库(Oracal、SQL Server)的表也完全可以通过ADODC连接进来。只是连接字 符串里面的Provider不同罢了。 第二步,layer与数据库的绑定 Datasets.add 方法 第一个参数 Type。他可以绑定多达13种的数据源,比如ADO、DAO、ODBC等等。这里我们当 然用miDataSetADO 第二个参数 SourceData。指定数据源。我们的数据源是表X。我们已经指定表X是Adodc1的 当前记录源。该参数即为 adodc1.recordset 第三个参数 Name。指定被绑定后的dataset的名称。可选 第四个参数 GeoField。指定数据源中某个字段作为与layer匹配的字段。如果不选,MapX 会自动帮你找一个的。这里我们是ID2 第五个参数 SecondaryGeofield。指定数据源第二匹配字段。如果指定的第一匹配字段中 两个值相等,就靠它来找到对应的对象了。一般不用 第六个参数 BindLayer。指定绑定到哪一层。可以用层名,也可以用Layer对象。我们例子 里面图层是a,将其作为参数。如果不指定,MapX也会自

文档评论(0)

dmz158 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档