MapX应用教程 如何和大型数据库关联 空间数据库索引技术
- 空间数据库
- 2009-04-25
- 122热度
- 0评论
空间数据库
空间数据库中的索引技术用的是R_Tree技术,而不是原来一般意义上的B_Tree索引技术。空间数据在Spatial中以地理属性信息形式存放。在Oracle的版本中有如下需要注意事项:
a) Oracle 8.1.5这个版本中,首次引入Spatial组件。使用上非常不好:图形的样式非常单一,且为黑白的而非彩色,上载地图数据时,数据丢失非常严重。存取数据时非常慢。
在Spatial中自动创建prinx字段作为地图索引主关键字段。
b) Oracle 8.1.6版本:图形为彩色的,增加了样式的支持,但不支持同一图层下的多样式(主要指点对象)。创建地图数据时,地图的坐标常发生偏移。属性数据更新时,需要两
次刷新才能完整提交;地图数据数据提交时,其坐标发生偏移:向原点偏移,需要认为地单独将其移动到其初始创建位置。存取速度上还是比较慢,离实用尚有一定距离。在Spat
ial中自动创建mi_prinx字段作为地图索引主关键字段 ² Oracle 8.1.7版本:支持多样式,数据上载丢失非常小(只有文本对象存在丢失的记录)。在地图数据存取不是很大的时候,速度上可以被用户接受。² 如何将MapInfo 的TAB表内容上传到Oracle 中?
a) 免费工具:easyloader6.7(Oracle 8.1.7),下载地址:www.mapinfo.com.cn
b) 如何上载?注意:上载之前对Tab表进行紧缩。
c) 在程序中如何使用空间数据库中的地图数据?
d) 添加地图时,必须指定字段mi_prinx的明确值,且该值不能为表中已存在的值。写入地图数据时,应将其全部NOT NULL 字段值赋给,否则保存失败。
e) 示例:Tab表+空间数据表 的数据分布形式。
如何和大型数据库关联
系统是混合结构:对地图的访问使用的是文件访问方式,对属性数据的访问使用的是大型 数据库形式使用ID关联:在TAB表和数据库中有ID字段,两个字段作为唯一值关联字段。(一对一的关系)。示例:
Lyr.KeyField=”ID”
Set Ftr=Ftrs.Item(J)
‘SQL语句查找对应的属性信息
SampleAdo.RecordSource =”Select a.id as id,b.name as name from Table1 a, Tabl
e2 b WHERE (a.id=b.id) AND ( a.id LIKE ‘%“ +Ftr.KeyValue+“%’)”