当前位置:首页 >> 电力/水利 >>

《空间数据库索引建立》实验报告


论文网(http://www.lunw.com/thesis/35/20976_1.html)——2010 年 04 月

《空间数据库索引建立》实验报告
张占阳
(长安大学地测学院地理信息系统,陕西西安 710054)

一、 实验课时和类型:
学时:8 实验类型:综合性

二、实验目的:


1.认识空间数据库中数据的存放方式或存储结构; 2.掌握空间数据库的格网索引、标题索引的建立方法; 3.理解空间索引的功能和意义; 4.加强学生面向对象程序设计的能力。

三、适用专业:
地理信息系统专业

四、采用教材:
教材: 《计算机地图制图》艾自兴,龙毅编著 参考书: 《地图学》 祝国瑞 编著 武汉大学出版社 武汉大学出版社

五、仪器与工具:
P3 以上配置计算机; VC++工具软件; 实验地图数据。

六、实验原理与内容:
本次实验为综合性实验,涉及《数字地图制图原理》《计算机地图制 、 图原理》《地图数据库》等几门课程中所讲的内容。 、

论文网(http://www.lunw.com/thesis/35/20976_1.html)——2010 年 04 月

七、实验数据说明
1、 地图区域:武汉市 文件名:武汉实习数据.usr 2、分类代码: 代码 30000 10000 10001 10003 10004 20001 20002 20003 20004 3、代码说明: 分类代码第一个字符为 1,表示线目标; 分类代码第二个字符为 2,表示面目标。 4、控制点顺序: 第一点:左上角 第三点:右下角 第二点:右上角 第四点:左下角 名称 控制点 图廓点 铁路 汽渡虚线 主要道路 码头 铁路中转站 河流、湖泊 居民地

控制点的理论值(人为规定 x,y) : 第一点:12.50 37.40

论文网(http://www.lunw.com/thesis/35/20976_1.html)——2010 年 04 月

第二点:62.50 第三点:62.50

37.40 82.40

采用仿射变换方法。 主要实验内容: 1.读取数据 2.仿射变换 3.绘图显示 4.建立定位索引——格网索引 5.建立定性索引——标题索引 6.将已建立的格网索引用于目标拾取功能的实现 7.运用已建立的标题索引实现对象的属性查询

八、实验步骤:
第一;建立一个 MapOfWuhan (MFC)工程,参数缺省。 第二;建立地图三要素:点、线、面。点类包括对应点的 X,Y 坐标; 线类包括线号(Xcode) ,线分类代码(Xflcode)以及组成线的点号数 组(m_array) ;面类包括面号(Mcode) ,面分类代码(Mflcode)以 及组成面的点号数组(m_array) 。 第三;在读取数据时,要设计存储结构。在 Doc 中要建立点类数组 Array_dian,线类数组 Array_xian,面类数组 Array_mian,分别存放对 应的点线面类目标。一共有 655 组数据,读取的时候每组中的 X,Y 坐标存放到预先定义的点类对象中, 若每组的分类代码为线类目标的 分类代码,则把相应的线的分类代码存放到事先定义的线类对象的

论文网(http://www.lunw.com/thesis/35/20976_1.html)——2010 年 04 月

Xflcode 中,把对应的组号存放到 Xcode 中,把组成线的一系列点类 对象存放到线类对象的 m_array 中, 最后把线类对象存放到对应的线 类数组(Array_xian)中;面类也是如此。这样,就完成了读取存储, 即将不同类的对象存放到不同的类数组中。 第四;对数据进行仿射变换。选择控制点中的 1,2,3 点,根据这三 点的理论值和规定其在屏幕上的输出值求出仿射变换的未知系数 a0,a1,a2,b0,b1,b2。然后,顺序扫描线类数组 Array_xian 和 面类数组 Array_mian , 对 不 同 的 线 类 对 象 和 面 类 对 象 的 坐 标 值 进 行 变 换 (X=a0*x+a1*y+a2;Y=b0*x+b1*y+b2)。 第五;当显示数据时,为了保证面状地物不压盖线状地物,首先要对 面装地物进行显示,即顺序扫描面类数组 Array_mian,根据数组中对 象分类代码(Mflcode)的不同,将不同的对象进行着色填充并显示 在屏幕上;然后再顺序扫描线类数组 Array_xian,同样根据线分类代 码(Xflcode)的不同,对不同对象规定不同的画笔并显示在屏幕上。 第六;建立格网索引首先要建立一个索引类 Csuoyin,其中包括存放 经过每个格网的对象的标志号码(即线号(Xcode)和面号(Mcode) ) 的数组 HLcode,然后再 Doc 中定义一个自己已规定行列号的格网索 引类的数组 HL[行号][列号]。然后对格网进行初始化,按行顺序扫描 每一个格网, 在初始化每一个格网时, 要顺序扫描线类数组 Array_xian 和面类数组 Array_mian,判断当前对象是否在当前格网内部,若在当 前格网内部,则将当前对象的标志码(即线号 Xcode 或面号 Mcode) 存放到当前格网对应的 HLcode 中,依次进行,直到扫描完毕,格网

论文网(http://www.lunw.com/thesis/35/20976_1.html)——2010 年 04 月

初始化完毕。 第七;生成格网索引。首先要判断当前鼠标点击处所对应格网的行列 号(行号=(当前点击点.Y-20)/20;列号=(当前点击点.X-60)/20) , 然后再顺序扫描当前格网所存放的对象,在扫描每一个对象时,都要 扫描一次线类数组 Array_xian 和面类数组 Array_mian,若当前格网对 象的号码与线类或者面类数组对象的 Xcode 或是 Mcode 相同,则对 线类或者是面类数组中的对象进行显示输出。至此,格网索引完毕。 第八;建立一个定性索引的对话框,在对话框中加入一个 EditBox, 即文字输入窗口,在窗口中输入要查询的地物名称,点击确定即可将 窗口中的内容存放到定性索引下预先定义的一个 Char 类型的数组 Dx_shuzu 中。 第九;在 Doc 中定义一个定性索引类型的对象 Dx_dialog,然后顺序 扫描线类数组 Array_xian,若当前在对话框输入的内容与对应的线类 地物名称匹配成功 (即 Strcmp “对话框输入内容” ( , “线类地物名称” ) ==0) ,则根据当前线状地物的分类代码 Xflcode,将当前地物输出显 示在屏幕上;顺序扫描面类数组 Array_mian,若在对话框中输入的内 容与面状地物的名称匹配成功(即 Strcmp( “对话框输入内容”“面 , 类地物名称” )==0) ,则根据面状地物的分类代码 Mflcode,将当前面 状地物输出显示在屏幕上,定性索引建立完毕。 第十;求出当前点击点所对应的格网行列号,然后将当前格网存放的 对象一次取出,再求出当前点击点与每个对象的距离 d,再求出 d 中 的最小值 dmin,若 dmin<规定的阀值 D,则拾取显示 dmin 对应的对

论文网(http://www.lunw.com/thesis/35/20976_1.html)——2010 年 04 月

象,否则拾取不成功。

九、注意事项
1.上机之前应先做好设计,以控制实验进程和方向。 2.实验中注意总结,联系所涉及的理论知识,解决所遇到的问题。

十、问题讨论
1.格网索引建立的方法是什么? 格网型空间索引的基本思想是将研究区域用横竖线条划分大小相等 和不等的格网,记录每一个格网所包含的空间实体。当用户进行空间 查询时,首先计算出用户查询对象所在格网,然后再在该网格中快速 查询所选空间实体,这样一来就大大地加速了空间索引的查询速度。 建立格网索引常用的方法包括空间驱动索引和数据驱动索引, 空间驱 动索引包括均匀格网索引,点对象的网格文件索引,网格文件索引 MBB;数据驱动索引包括 R 树和 R+树索引等。 2.建立空间索引的目的是什么? 空间索引的目的是为了在地理信息系统中快速定位到所选中的地理 对象,从而提高了空间操作的速度和效率。空间技术的优劣直接影响 GIS 的整体性能,因而它是 GIS 的一项关键技术。建立空间索引机制 的主要目的是便于空间目标的定位及各种检索操作。 在一体化结构中 共有两种不同类型的索引结构:一种是建立面向目标数据(点和线要 素数据)的索引结构,以便直接明确目标与空间位置之间的二维关系; 另一种是建立面向空间数据(面要素基本格网充填数据)的索引结构, 以便使其部分具有面向目标的功能。


相关文章:
《数据库表的建立》实验报告
数据库表的建立》实验报告开课实验室:课外实践 工程管 理 专业 班级 理 实验:数据表的建立 实验名称 实验项目 工程管 学号 姓名 成绩 2013 年 5 月 12 ...
空间数据库实验报告
空间数据库实验报告_工学_高等教育_教育专区。关于地理信息系统的空间数据的几个...利用 Geodatabase 建立空间数据库 a) 建立个人的 Geodatabase b) 创建一个新的...
《数据库系统原理》实验报告
数据库系统原理》实验报告_工学_高等教育_教育专区。数据库实验报告 ...6、掌握所以设计原则和技巧,能够创建合适的索引以提高数据库查询、统计分 析效率...
数据库实验报告
数据库实验报告_实习总结_总结/汇报_实用文档。实验...②使用界面方式创建索引。 使用界面方式在 Employees ...2014年证券考试《投资基金》考前押题卷 证券从业资格...
《Oracle数据库》实验报告一
《Oracle数据库》实验报告一_计算机软件及应用_IT/计算机_专业资料。广东金融学院...3、创建空间 stu_tbs (1)利用 SQL 语句创建一个表空间 stu_tbs,同时添加...
数据库实验3:连接查询、索引实验报告
GDOU-B-11-112 广东海洋大学学生实验报告书实验名称 学院(系) 学生姓名实验目的: 1. 使用内连接 2. 使用外连接 3. 索引创建 完成在在 GlobalToyz 数据库...
实验三 空间数据库的建立
《地理信息系统》实验报告 试验( 二 ) 题目:空间数据库建立、运行 姓名: 班级:测绘工程 10-2 班 专业:测绘工程 时间:2013.10.9 实验内容: 建立数据库及...
数据库的索引查询 实验报告一
实验报告实验项目:数据库索引与查询 实验项目 数据库索引与查询一 实验名称 姓名:极品流氓 姓名 极品流氓 学号: 学号:XXXXXXCXX 数据库索引与查询 二 实验...
数据库实验报告二
数据库原理》实验报告实验三: 学号 数据库完整性与安全性控 制 2013302534 实验四: 视图与索引 姓名 杨添文 班级 10011303 日期 2015.10.1 7 实验三:数据...
Arcgis实验一空间数据库建立
Arcgis实验一空间数据库建立_电脑基础知识_IT/计算机_专业资料。空间数据库建立实验...= TEXT; 点击 OK,多边形建立完成,如下图: 四、实验报告及要求做出书面报告,...
更多相关标签:
数据库索引怎么建立 | 数据库如何建立索引 | 数据库建立索引 | 数据库建立索引的作用 | 数据库建立索引的原则 | mysql数据库建立索引 | oracle数据库建立索引 | 数据库索引建立原则 |