空间数据库设计报告

合集下载

(最新版)空间数据库毕业课程设计报告

(最新版)空间数据库毕业课程设计报告

空间数据库课程设计兼ARCSDE入门手册一.ArcSDE的配置数据库的创建数据库的配置数据库的网络配置数据库的控制和管理ArcSDE的配置二.数据库的设计建立数据库连接表的创建与设计版本的注册与创建成员角色与任务分配三.问题与解决方案软件本身的问题多版本编辑的问题四.总结个人心得各成员工作情况一.ArcSDE的配置1.数据库的创建:打开Database Configuration Assistant工具如图(1.1)所示为初始界面图(1.1)按照向导对话框依次选择执行的操作创建数据库→选择一般用途的模→输入数据库名称和SID号(*注意SID号默认和数据库名相同)→管理选项(默认设置)→输入口令号(*可以根据不同的用户设置不同的口令)→存储选项(默认设置)→数据库文件所在位置(默认设置)→恢复配置(默认设置)→数据库内容(默认设置)→初始化参数(默认设置)→数据库存储(默认设置)→创建选项(如图1.2)→确定对话框→开始创建图1.22.数据库的配置创建数据库成功之后需要进行数据库的配置,同上打开Database Configuration Assistant工具,点击下一步,选择配置数据库选项→选择需要配置的数据库→数据库内容(默认设置)→连接模式(*客户机较少时默认设置),点击完成开始配置数据库(如上图) 3.数据库的网络配置配置数据库之后,打开Oracle Net Configuration Assistant工具,如图(1.4)为初始界面图1.4按下一步进入监听程序配置→监听程序(*若需要添加新的监听程序,选择添加,这里选择已有的监听程序,选择重新配置如右图)→选择监听程序→选择协议(默认有TCP)→选择端口(*端口号默认为1521,若配置了多个监听程序,不应重复使用1521端口,否则后期的本地NET服务名配置会出错,如右图)→完成配置好监听程序后配置本地NET服务名配置→重新配置→选择Net服务名(根据新创建的数据库选择服务名)→服务名配置(输入新创建的数据库名)→选择协议(默认配置)→输入主机号和选择端口(主机号为计算机名)→选择测试→测试登录方式用户名填system,口令重新输入,如右图(若测试失败,可以试着重新配置数据库,注意配置端口号)4.数据库的控制和管理工具: OEM和SQL*PLUS登录OEM方式:网页登陆。

空间数据库设计

空间数据库设计

空间数据库设计随着现代科技的不断进步,空间数据库设计已成为地理信息系统(GIS)和相关领域中一个至关重要的环节。

空间数据库主要负责存储和管理地理空间数据,包括但不限于地形、地貌、建筑物、道路等地理信息。

本文将探讨空间数据库设计的重要性及其在实现数据高效存储和管理方面的关键作用。

一、空间数据库设计概述空间数据库设计是针对空间数据的存储和管理进行规划和构建的过程。

它需要对空间数据的特性和关系进行深入理解,并运用相关的数据库技术来实现数据的有效组织和存储。

空间数据库设计需要考虑数据模型的建立、数据结构的优化、数据存储的方式以及数据访问的控制等问题。

二、空间数据库设计的重要性1、提高数据存储效率空间数据库设计通过对数据模型的优化和数据结构的调整,可以提高数据的存储效率。

这不仅可以减少存储空间的需求,还可以降低数据的维护成本。

2、增强数据管理能力通过合理的空间数据库设计,可以实现对空间数据的有效管理,包括数据的查询、更新、删除等操作。

这有助于提高数据处理效率,并保证数据的一致性和完整性。

3、促进数据共享与应用良好的空间数据库设计可以促进数据的共享与应用。

通过数据模型和数据结构的规范化,可以实现不同系统之间的数据共享和交互,从而扩大数据的应用范围。

三、空间数据库设计的关键环节1、数据模型的选择与优化在空间数据库设计中,选择适合的数据模型是至关重要的。

常见的空间数据模型有层次模型、网络模型、关系模型等,选择哪种模型取决于具体的应用需求和数据特点。

还需要根据实际需求对数据模型进行优化,以提高数据处理效率。

2、数据结构的规划与调整数据结构是空间数据库设计的核心部分,它决定了数据的组织方式和访问方式。

在规划数据结构时,需要考虑数据的完整性、一致性、并发控制等因素,以确保数据的安全性和可靠性。

同时,还需要根据实际应用需求对数据结构进行调整和优化,以满足不同场景下的数据处理需求。

3、数据存储策略的制定与实施制定合理的数据存储策略可以有效提高空间数据库的性能。

东北大学空间数据库实验报告

东北大学空间数据库实验报告

空间数据库原理课程设计学院:资源与土木工程学院班级:测绘1402班姓名:古再丽努尔·喀日学号: ******** 指导老师:***2016 年 12 月实习成绩评定表目录一Access数据库实验报告实验一创建Access数据库 (4)实验二创建和使用表 (6)实验三查询设计 (10)实验四SQL语言 (12)实验五窗体设计 (14)实验六报表设计 (16)实验七宏 (17)实验八数据访问页设计 (17)实验九小型数据库管理系统的设计 (18)二空间数据库概念设计实验报告1.1实验要求 (20)1.2实验目的 (22)1.3 实验步骤 (25)1.4 实验内容 (28)1.5实验分析 (32)三基于ArcSDE与Postgresql的空间数据库实验报告1.1实验要求 (43)2.数据库的配置 (45)3.数据库的网络配置 (46)4.数据库的控制和管理 (48)5.ArcSDE的配置 (50)6.postgreSQL (53)空间数据库实验报告一,Access数据库实验报告实验要求Microsoft Access应用实验是Microsoft Access应用课程的重要组成部分,属于学科基础实验范畴,是与相关教学内容配合的实践性教学环节。

学生通过实验,验证课堂学习的知识,掌握数据库、数据表建立、查询、窗体、报表、宏以及数据访问页的方法,从而具有小型数据库管理系统的设计能力。

实验一创建Access数据库【实验目的】1.了解Access数据库窗口的基本组成2.熟悉Access的工作环境,达到熟练使用的目的3.学会查找7个数据库对象的相关帮助信息,为以后实验打下基础4.学会如何创建数据库文件【实验内容】1.启动Access数据库,在“d:\Access练习”文件夹中创建一个名为“图书管理.mdb”的空数据库文件。

2.启动Access数据库,使用“库存控制”向导创建一个名为“库存管理.mdb”的数据库文件,并保存在“d:\ Access练习”文件夹中。

空间数据库实验报告

空间数据库实验报告

一、实验目的1. 了解空间数据库的基本概念和原理;2. 掌握空间数据库的建立、管理和使用方法;3. 熟悉空间数据库的查询和操作;4. 提高空间数据处理和分析能力。

二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 开发工具:Visual Studio Code4. 空间数据库驱动:MySQL Spatial Extension三、实验内容1. 空间数据库的建立与配置(1)创建数据库打开Visual Studio Code,连接到MySQL数据库服务器,执行以下SQL语句创建空间数据库:CREATE DATABASE IF NOT EXISTS spatial_db;(2)创建空间表在空间数据库中创建空间表,使用以下SQL语句:CREATE TABLE IF NOT EXISTS cities (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50),geom GEOMETRY NOT NULL,INDEX geom_idx (geom));2. 空间数据的插入与查询(1)插入空间数据使用以下SQL语句插入空间数据:INSERT INTO cities (name, geom) VALUES ('Beijing',ST_GeomFromText('POINT(116.4074 39.9042)'));INSERT INTO cities (name, geom) VALUES ('Shanghai',ST_GeomFromText('POINT(121.4737 31.2381)'));(2)查询空间数据查询与给定坐标点距离小于10公里的城市:SELECT name FROM cities WHERE ST_Distance(geom,ST_GeomFromText('POINT(116.4074 39.9042)')) < 10000;3. 空间数据的更新与删除(1)更新空间数据使用以下SQL语句更新城市名称:UPDATE cities SET name = 'Beijing New City' WHERE name = 'Beijing';(2)删除空间数据使用以下SQL语句删除城市:DELETE FROM cities WHERE name = 'Beijing New City';4. 空间数据的聚合与分析(1)计算所有城市的面积SELECT name, ST_Area(geom) AS area FROM cities;(2)计算相邻城市的距离SELECT name, name AS neighbor, ST_Distance(geom,ST_GeomFromText('POINT(116.4074 39.9042)')) AS distanceFROM cities, cities AS neighborWHERE <> AND ST_Distance(geom, neighbor.geom) < 10000;四、实验结果与分析1. 成功创建空间数据库和空间表,并插入、查询、更新和删除空间数据;2. 空间查询和分析功能正常,可以计算城市面积和相邻城市距离;3. 实验过程中未出现异常,空间数据库运行稳定。

空间数据库课程设计

空间数据库课程设计

空间数据库原理课程设计学院:资源与土木工程学院班级:测绘1402班姓名:古再丽努尔·喀日学号: 20141668 指导老师:郭甲腾2016 年 12 月实习成绩评定表目录1.地图编辑 (4)1.1裁剪及符号规范化 (6)2.添加控制 (7)2.1 添加引用和代码 (8)3. 总结 (10)空间数据库原理课程设计报告本次课程设计中我安装了相应的软件运行操作之外还辅助完成了图形裁剪,图层添加,图形边框设计,通过组员们的耐心讲解,以及查阅相应资料和笔记看懂了菜单栏的数据导入的代码,而且从我们组的成员学到了不少。

1.地图编辑地图编辑功能涉及到比较复杂的地图与鼠标的交互以及事件的响应,ArcGIS提供了强大的地图编辑的相关功能。

本节我们将尝试实现一些简单的地图编辑功能,包括点、线、面要素形状的创建和移动。

通过本节希望你能掌握Arc Engine实现地图编辑的机制以及常用的地图编辑的接口。

1.1裁剪及符号规范化首先把nsdi文件解压选出相应文件重命名放到另一个文件夹。

②打开ArcMap 软件,把重命名的新文件夹加载出来,导入文件把选出的文件按点线面进行重命名分类保留,为了研究出辽宁省洪水问题,用draw框出辽宁省进行裁剪。

③裁剪:layer-data frame-clip to shape-outline of selected graphic 步骤裁剪出辽宁省即可把框删除。

④裁剪完后进行文件的保存成.mxd文件,进行下一步操作。

⑤其次对省级,县级行政界线,河流的面,国家的线面等进行删除,保留边框线,使之规范化,即符号规范化。

对市,县,区等进行符号规范化。

保存该.mxd文件。

2.添加控制新建一个C#.Net项目,项目名称为Overlay,将Form1的名字设置为Main Form,Text属性设为“地图编辑”,并添加Toolbar Control 、Map Control、TOC Control、License Control、四个Button、两个Combo Box、两个Label和一个Group Box等控件。

空间数据库的建立实验报告

空间数据库的建立实验报告

空间数据库的建立实验报告空间数据库是一种用于存储和管理空间数据的数据库系统。

它具有将空间数据与地理位置进行关联的能力,能够有效地存储和查询地理信息。

本文将介绍空间数据库的建立实验报告。

一、引言空间数据库是地理信息系统(Geographic Information System,GIS)中的重要组成部分,它可以存储和管理地理空间数据,如地图、遥感图像等。

在实际应用中,空间数据库可以广泛应用于城市规划、环境监测、交通管理等领域。

本实验旨在通过建立一个空间数据库,探索其在地理信息管理中的应用。

二、实验目的1.了解空间数据库的基本概念和原理;2.掌握空间数据库的建立方法;3.熟悉空间数据库的查询与分析功能;4.实践运用空间数据库解决实际问题。

三、实验步骤1.选择合适的空间数据库管理系统(Spatial Database Management System,SDMS),如PostgreSQL+PostGIS;2.安装和配置SDMS,确保系统正常运行;3.创建数据库,并设计空间数据表结构;4.导入地理空间数据,如地图数据、遥感图像等;5.进行数据查询和分析,验证空间数据库的功能。

四、实验结果与分析在实验中,我们选择了PostgreSQL作为SDMS,并通过PostGIS 扩展实现空间数据的存储和管理。

首先,我们创建了一个名为"gis"的数据库,并设计了三个表:地图表、地点表、线路表。

地图表存储了各个地图的名称、边界等信息;地点表存储了各个地点的名称、经纬度等信息;线路表存储了各个线路的起点、终点、长度等信息。

然后,我们导入了一份城市地图数据,并进行了一些简单的查询和分析。

通过查询地点表,我们可以找到某个地点的经纬度;通过查询线路表,我们可以计算某条线路的长度。

此外,我们还可以通过空间查询,查找某个地点周围一定范围内的其他地点。

实验结果表明,空间数据库能够有效地存储和管理地理空间数据,并提供了丰富的查询和分析功能。

空间数据库课程设计报告第五章

空间数据库课程设计报告第五章

空间数据库课程设计报告第五章第5章空间数据的加载、传输和验证⼀、向SDO_GEOMETRY列中插⼊数据新建⼀个sales_regions表,向表中插⼊⼀个多边形⼏何体,运⽤前⾯学过的SDO_GEOMETRY数据类型。

SQL语句如下:程序5—1CREATE TABLE sales_regions(id NUMBER,geom SDO_GEOMETRY);把表⽰销售区域的多边形插⼊到这表中的geom列中,SQL语句如下:程序5-2INSERT INTO sales_regions VALUES(10000, -- SALES_REGIONS IDSDO_GEOMETRY -- use the SDO_GEOMETRY constructor(2003, -- A two-dimensional Polygon8307, -- SRID is GEODETICNULL, -- SDO_POINT_TYPE is null as it is not a pointSDO_ELEM_INFO_ARRAY (1, 1003, 1), -- A polygon with just one ringSDO_ORDINATE_ARRAY -- SDO_ORDINATES field(-77.04487, 38.9043742, -- coordinates of first vertex-77.046645, 38.9040983, -- other vertices-77.04815, 38.9033127, -77.049155, 38.9021368,-77.049508, 38.9007499, -77.049155, 38.899363, -77.048149, 38.8981873, -77.046645, 38.8974017, -77.04487,38.8971258, -77.043095, 38.8974017, -77.041591, 38.8981873, -77.040585, 38.899363, -77.040232, 38.9007499, -77.040585, 38.9021368, -77.04159, 38.9033127, -77.043095, 38.9040983, -77.04487, 38.9043742 -- coordinates of last vertex same as first vertex )));⼆、加载和转换空间数据(⼀)⽤SQL*Loader从⽂本⽂件加载SQL*Loader是Oracle的⼀个⼯具,⽤于从⽂件向Oracle表加载数据,可以执⾏批量加载。

空间数据库实验报告

空间数据库实验报告

实验一拓扑规则实验题目:拓扑规则实验准备:相关概念解释1、拓扑关系:是指图形要素之间几何上的相互关系,图形在保持连续状态下即使变形,相互之间的关系依然不变。

2、Geodatabase的拓扑规则包括点拓扑规则、线拓扑规则、多边形拓扑规则。

3、拓扑结构:即反映拓扑关系的结构,利用拓扑关系的空间数据结构,不仅要记录要素的空间位置(坐标),而且记录不同要素在空间上的相互关系。

4、Geodatabase 用一系列的拓扑规则(Rule ,Topology Rule),在空间要素之间建立起相互关系,即拓扑结构。

5、悬结点(Dangle):仅和一个线要素相连,孤立的结点6、伪结点(Pseudo):两个线要素相连、共享一个结点7、普通结点:三个或者三个以上的线要素交汇、共享一个结点8、线簇容差(Cluster Tolerance):不相连的要素拐点之间的最小距离9、问题区(Dirty Area):建立拓扑关系后,又被编辑过的空间范围,该范围很可能存在不符合拓扑规则的要素。

10、差错(Error):不符合拓扑规则的地方,用红点、方块、线表示。

实验内容:1、拓扑规则用于同一图层内数据质量检验。

2、拓扑规则用于不同一图层内数据质量检验。

实验过程:1、拓扑规则用于同一层内数据质量检验1.1 建立线要素拓扑规则启动ArcCatalog ,将路径定位到c:\gis_ex09\ex22.mxd,利用拓扑规则Must Not Have Dangles(不能出现悬节点)为Geo_DB22\dataset1\lotlines建立拓扑关系Dataset1_Topology,建立后,成果如图1-1,意思是有三个悬节点,不符合预定义的拓扑规则图1-11.2修改拓扑错误关闭ArcCatalog,启动ArcMap,打开ex22.mxd,激活Data frame1,除了已经存在的lotlines以外,加入Dataset1_Topology,可以看出有三处拓扑错误——线过长、线过短、线多余,调动Editor,打开Topology拓扑工具条和Advanced Editing 高级编辑工具条,Start Editing开始编辑辑,此处例举线过短时的编辑情况,选中参考边界,在Advanced Editing高级编辑工具条中选择Extention工具,点击需要延长的线,如图1-2,过短的线就延伸到参照线——图1-2当将当前窗口的拓扑关系错误一一修改后,需要验证刚才编辑过的地方是否还有错误,则需勾取Dataset1_Topology图层中Properties中Symbology Dirty Areas (问题区),则地图上刚刚编辑过的地方有三个蓝色区域,如图1-3图1-3则只需再对Dirty Areas进行拓扑关系验证,即利用Vilidate Topology In Specified Area工具进行质量验证,无拓扑错误后,如图1-4——(如若有错,仍需进一步修改)图1-41.3生成地块多边形启动ArcCatalog,右击Geo_DB22\dataset1,选用New\Polygon Feature FromLines(从线要素产生多边形),生成一个新的多边形要素类lotspolygons ,预览如图1-5 图1-52、拓扑规则用于不同图层之间数据检测2.1 建立不同要素之间的拓扑关系在ArcCatalog中Geo_DB22\dataset2下为Road、Parcel建立拓扑关系Topology22.2修改拓扑错误在ArcMap中利用Topology2对Road、Parcel进行拓扑查错并修改,此处的拓扑关系主要是多边形共同边界的错误和线多余的错误,正确修改后结果如图1-6 图1-6实验小结:1、Geodatabase可以有多种线、点、多边形规则,用于控制要素类之间的特定空间关系。

空间数据库报告

空间数据库报告

专业:地理信息系统班级:091班指导老师:兰小机(博士)报告人:温丁学号:19时间:2011-12-26至2011-01-08实验五ArcSDE的安装及配置一、实验目的:熟练掌握ArcSDE空间数据库安装技术。

二、实验步骤:1、安装ArcSDE(根据需要选择安装模式)点击下一步:2、ArcSDE后安装3、选择默认配置,下一步4、创建链接用户(按如下设置填写)5、弹出窗口后选择确定,后选择下一步取得许可文件(按如下设置),后进行下一步设置授权完成(得到许可)6、创建ArcSDE服务(选择下一步,弹出提示窗口时,选择“是”及“确定”)注:当出现这个错误时,点击确定,会回到上一个界面,进行重新设置(如以前装过ArcSDE 还保留了服务,则要先删除,方可安装成功)到此ArcSDE就配置好了。

7、下面打开ArcCatalog8、首先实验间接连接,它是通过ESRI两个中间服务管理数据,属于三层模式,双击“添加空间数据库连接”,出现下面界面:注释:服务器:计算机名服务:ArcSDE服务默认情况是这样(可以填入esri_sde或者5151)用户:数据库用户名数据库:数据库名字可不填更改版本:(点选更改)出现右图9、创建数据库成功。

双击打开或右键选择连接,则显示如下:到此ArcSDE配置完成。

10、直接连接,它不通过ESRI提过的服务直接连接数据库,属于两层模式,双击”添加空间数据库连接”,出现下面界面:注释:(在直接连接中可以server是主机的名字可为空,因为它会自动找到本地数据库,即使随便指定主机名也是会默认连接本地数据库,服务是服务的名字填上sde:oracle11g,数据库是数据库的名字可以不填,用户名是数据库中的用户名,密码是sde的密码)11、创建数据库成功。

双击打开或右键选择连接打开,则显示如下:12、使用oracle11g进行Net configuration assistant配置数据库服务用于直接连接,下一步13、添加一个网络服务名,下一步14、输入全局数据库服务名,默认为orcl,下一步15、选择网络协议,一般使用TCP,下一步16、输入主机名,下一步根据自己主机名填入相应的名字17、测试数据库连接,看是否能连接到数据库中,下一步18、更改登录用户和密码,下一步19、配置网络服务名(这里网络服务名为orcl),方便直接连接使用,20、选择是否还要配置另一个服务名,选择“否”下一步,配置完数据库连接实验二:Geodatabase 数据库设计注:使用工具软件进行Geodatabase数据库的辅助设计:(Visio2007、ArcGIS Diagrammer)一、利用Microsoft Visio2007设计构建UML对象模型图并输出为XMI格式,然后在ArcCatalog中使用CASE 工具(SchemaWizard )根据XMI生成geodatabase模式,最后,使用Geodatabase Diagrammer进行geodatabase设计文档化。

空间数据库的课程设计报告

空间数据库的课程设计报告

空间数据库设计报告摘要:此次空间数据库课程设计是基于ArcSDE,将空间数据和非空间数据集成于大型数据库软件Oracle中进行管理。

所用到的平台包括:ArcGIS Desktop、ArcSDE、Orcale 10.2等。

现对空间数据库设计的流程进行系统的说明:一、ArcSDE的配置1、准备工作(安装Oracle):1)、Oracle 10.2数据库的安装,打开安装文件:点击下一步2)、输入全局数据库名及输入数据库口令和确认口令(数据库名和数据库口令最好设置成一样,以便在后面的数据库配置的过程中避免混淆),完成后点击下一步:3)、在出现的对话框中输入全局数据库名和SID(保持和全局数据库名一样),完成后点击下一步:4)、在出现下面的界面后:点击安装2、ArcSDE的安装,打开安装包,根据图文进行:二、数据库的详细设计1、空间数据库的连接(ArcSDE的空间数据库连接分为两种:应用服务器连接和直接连接),下面介绍用应用服务器连接方式创建空间数据库连接:1)、打开ArcCatalog主界面,双击Database Connection下的Add Spatial Database Connection,在弹出的对话框中输入Server(ArcSDE 的服务名esri_sde;直接连接时输入sde:oracle10g)、Username、Password,最后点击Test Connection,弹出下图中的Connection Succeeded提示消息窗体则表示成功。

2)、数据库连接创建成功之后,向中导入数据,如下所示:3)、选择创建的连接,右键选择New—>Feature Dataset创建数据集:4)、选中创建的数据集,右键New—>Feature Class建立要素集:此次创建的要素全为点的集合。

注:此次空间数据库课程设计由小组共计四人完成,之前的数据库连接、数据集及要素类的创建,和包括将要素类注册为版本、设置不同组员编辑的版本号,及要素的分类,字段的设置都由小组长完成,下面把小组长设置的每个分类的表和字段列出,并做简要说明。

空间数据库设计综合实习报告

空间数据库设计综合实习报告

空间数据库设计综合实习报告班级:地理信息系统091、092班实验人员名单及学号:日期:2011/10/24目录空间数据库设计综合实习报告..................................................................... 错误!未定义书签。

一、设计题目................................................................................................. 错误!未定义书签。

二、实验目的................................................................................................. 错误!未定义书签。

三、需求分析................................................................................................. 错误!未定义书签。

四、功能分析和数据组织............................................................................. 错误!未定义书签。

五、数据库建设流程..................................................................................... 错误!未定义书签。

5.1软硬件配置...................................................................................... 错误!未定义书签。

5.2数据采集流程................................................................................. 错误!未定义书签。

空间数据库详细设计报告

空间数据库详细设计报告

空间数据库详细设计报告预览说明:预览图片所展示的格式为文档的源格式展示,下载源文件没有水印,内容可编辑和复制详细设计报告一、需求分析,确定主题随着社会发展水平的日益提高,人民的生活水平越来越高,私家车也是越发的普及,人们对于自由旅游的意向越来越浓重,大量的出游人群都会选择自驾游。

但对景点的路线规划很多人都会有一定的犹豫,不知该如何选择。

在这样的背景之下,我们进行了旅游向导的课程设计,帮助用户简洁方便的找出去某个景点的最佳方案,我们建立旅游查询平台让游客更加方便的进行查找,比如去某个旅游景点的最优路径。

二、组内人员任务分配***:数据入库及整理,简单查询的实现***:软件安装及连接,主程序的编写***:查询结果可视化功能的实现***:收集数据,PPT制作***:程序界面设计及美化,概念设计***:相关资料查询,制定数据库建库规范***:需求分析三、数据获取和工具选择及安装数据获取:数据主要来自于老师给的全国地图和网站各论坛、相关程序的网站等。

本次实验的数据计划使用老师提供的中国地图中的CITY(城市)要素类、ROAD(公路)要素类以及PROVINCE(省份)要素类。

由于该数据字段较少,难以满足我们小组进行课程设计的要求,因此,手动添加了一些查询中用到的字段,如CITY表中加入INTRODUCTION(介绍)字段。

新加字段的格式严格按照数据库设计规范进行编辑。

工具选择及安装:按照预期规划,我们组选择使用Oracle11g、Arcgis10.1及相应的ArcSDE 展开本次的课程设计。

四、数据库、ArcGis、ArcEngine及C#四者连接关系◆数据库与ArcGis建立连接;◆通过C#语句实现数据库与窗体程序的连接;◆以C#语言为基础,使用ArcEngine对ArcGis进行二次开发,实现图形显示功能;五、数据入库及整理(需按照相关标准编辑数据)本次实验的数据是以.shp文件格式导入到ArcCatalog中,进而存入到与ArcGis相连的数据库中。

空间数据库报告

空间数据库报告

课程设计报告课程名称:空间数据库管理专业:地理信息科学班级:地信1301姓名:刘晨音学号: 06指导教师:徐敬海起讫日期: 2016.6.7--6.13测绘科学与技术学院目录一、课程设计目的 (3)二、课程设计内容 (3)三、课程设计工具 (3)四、课程设计步骤 (4)五、主要步骤和流程 (5)六、主要关键技术分析及相应解决方案 (29)七、遇到的问题和解决方案 (29)八、版本化原理了解 (29)九、课程设计进度安排 (30)十、课程设计总结 (31)一.课程设计目的1.《空间数据库》课程是地理信息系统本科专业的核心课程,课程总学时为48,分理论课(40)与实验课(8)两部分。

2.《空间数据库课程设计》是《空间数据库》课程的实践环节,通过本课程设计的学习,学生应该掌握空间数据库的基本理论及应用技术,熟练掌握ArcSDE Geodatabse空间数据库设计、创建、版本及事务管理、分布式空间数据管理、大型空间数据库管理等技术。

二.课程设计内容1.根据面向对象Geodatabase数据库模型结构,对南京工业大学江浦校区空间数据库结构进行设计;2.应用Visio软件创建南京工业大学江浦校区空间数据库UML对象模型图,通过CASE工具转换建立南京工业大学江浦校区空间数据库;3.使用南京工业大学DWG数据源,参照基础地理数据建库流程,完成南京工业大学江浦校区空间数据入库。

三.课程设计工具1.Microsoft Visio 2007(安装SP2补丁)2.ArcGIS Cass Tools:ArcGIS Case Tools工具是依附于ArcGIS Desktop软件,用户需要单独安装该软件与Office Visio相结合使用,主要是利用Office Visio进行行数据库的建模,然后可以导出xml文档。

利用ArcGIS识别XML文件,自动生成相关的数据结构。

利用Case Tools可以创建我们基本的数据集、要素类、子类、关系类、几何网络模型等常用的数据类型,在数据库设计方面使用非常方便。

水政空间数据库设计报告

水政空间数据库设计报告

1任务概述1.1 设计目标与设计原则1.1.1设计目标为水行政管理相关的信息系统建设提供空间数据的存储和服务支持,为智能水系的建设,提供存储层的功能支持。

在提供高效数据读取和管理功能的同时,为水系网络的上下游联通关系的追溯服务、沿河流定位要素、要素之间的强关联关系等等,提供存储层的支持。

1.1.2设计原则本设计围绕空间数据库建设,以“实用、先进、开放、标准、可靠”为基本原则。

♦实用性原则满足水行政管理各工作环节的需求,充分考虑用户的一般要求和特殊要求。

数据的取舍关系的建立应符合水行政管理工作的实际需求和数据获取的可行性。

属性结构设计格式和数据加载格式尽可能采用习惯的资料填报登录格式,避免数据入库时产生人为错误。

♦先进性原则尽可能采用现代空间数据库技术,保证设计的先进性。

♦开放性原则本设计是水行政管理部门建立水行政空间数据库的基础,可在此基础上进一步扩展,满足水利行业其它如规计、水保等管理部门的业务需求。

♦标准化原则工程类别界定清晰,定义明确,字段说明翔,实术语的采用和定义尽可能符合有关国家和行业规范,对没有国家或行业标准,但是使用频繁、数据量多的字段,或经常需要进行排序、统计的字段,定义本系统内统一的代码编制规则和代码表。

可靠性原则空间数据结构、属性字段的定义完整、明确,界限清晰,保证用户能方便、准确地采集和查询数据,力争减少数据冗余度,确保数据一致性,避免更新异常,提高查询速度,提高系统的可靠性。

1.2 设计依据2需求调查与分析2.1 水政监察空间数据库在水政监察信息系统中的位置水政监察空间数据库为水政监察信息系统提供大部分的数据来源,包括影像数据、基础地理信息数据、业务审批相关数据等等。

提供低耦合度、高效访问、低冗余的数据存储机制。

提供水系几何网络的连通关系的底层支持。

为上溯、下溯分析等提供基础。

提供空间与非空间要素的关联关系支持,为水政监察信息系统中的关联查询和分析提供基础。

提供基于服务的数据访问机制,除为水政监察信息系统提供数据之外,可方便被其他系统共享或直接以数据服务的方式提供给用户。

空间数据库设计报告

空间数据库设计报告

空间数据库设计报告一、设计思想本次空间数据库设计是基于SQL sever2008开放的外挂式空间数据库管理系统。

基于传统的关系型数据库外挂式的空间数据库系统的关键在于SDE的设计与实现,SDE在用户和异构空间数据库之间提供了一个开放的接口。

用户可以通过SDE服务来实现对空间数据的读取、插入、更新和删除的基本操作,还可以基于SDE实现对空间数据的分析功能,如拓扑关系的查询、缓冲区分析、叠加分析、、合并和切分等。

SDE同时提供了链接DBMS数据库的接口,与数据库的操作都是在这个上面进行交互的。

1.1 数据的存储1.1.1 几何数据的存储把GIS数据放在RDBMS中,但是一般的RDBMS都没有提供GIS的数据类型(如点、线、多边形、以及这些feature之间的拓扑关系和投影坐标等相关信息),RDBMS只提供了少量的数据类型支持:int,float,double,Blob,Long ,char等,一般都是数字,字符串和二进制数据几种。

并且RDBMS不仅没有提供对GIS数据类型的存储,也没有提供对这些基础类型的操作(如:判断包含关系,相邻、相交、求差、距离、最短路径等)。

在本次数据库设计中,成功的完成了对点线面的数据的存储和相关的读取、插入、更新和删除以及可视化的显示的功能。

此处的存储是基于SQLsever2008进行的,具体的存储结构如下表所示:其中Point表中包含Point的空间信息,即空间的点的x,y坐标。

由于当个点的只有相当于独立地物才会有相关的属性信息,本次在操作的时候并没有在存储的表中添加相应的属性信息。

一条线是由很多个小线段的组成的,因此在存储的时候,每个边都有一个独立的ID,每条边是由起点和终点链接起来的,因此在在这个表中只需要存储相应的点的ID即可,一般的线都是具有相关的属性信息的,故在本次设计中添加了线的属性信息,咋通过SDE对空间数据查询的时候便可以很方便的看到边的属性。

的存储一样,按照每条边两个点来存储,而是将所有的边的序列来形成一个字符串来链接,然后再通过边表来操纵点表,最后完成查询信息。

空间数据库实验报告

空间数据库实验报告

空间数据库原理及应用(B)实验报告学号:姓名:班级:专业:任课老师:2022年十一月二十六日目录1实验一:非空间数据库创建与查询 (1)1.1实验目的 (1)1.2实验内容 (1)1.3实验步骤与结果 (1)1.3.1概念模型设计 (1)1.3.2逻辑模型设计 (3)1.3.3创建表格并插入数据 (5)1.3.4进行查询操作 (8)2实验二:空间数据库综合应用 (11)2.1实验目的 (11)2.2实验内容 (11)2.3实验步骤与结果 (12)2.3.1.概念模型设计 (12)2.3.2.逻辑模型设计 (12)2.3.3.建表并插入数据 (14)2.3.4.矢量数据函数操作 (30)3实验总结 (33)1实验一:非空间数据库创建与查询1.1实验目的✧掌握SQL语句,用于数据表格创建与查询1.2实验内容✧分别设计并建立学生信息表、课程信息表、选课表、教师信息表、授课信息表;✧分别向个表格插入自定义数据;✧查询每个老师(姓名)教授的课程(课程名),以及选课的人数;✧查询每个老师(工号和姓名)教授的学生(工号和姓名);✧查询每个学生所选课程数量和平均成绩;✧查询出完整成绩单,并按照平均成绩倒序排列。

要求:给出数据库中的概念模型设计、逻辑模型设计、物理实现语句及结果截图。

1.3实验步骤与结果1.3.1概念模型设计1.3.1.1局部E-R图画出局部的E-R图,对数据库进行解释说明。

图1-1学生E-R图图1-2课程E-R图图1-3教师E-R图1.3.1.2全局E-R图合并成全局E-R图,3个数据类别之间存在两个关系。

图1-4全局E-R图1.3.2逻辑模型设计1.3.2.1关系模式设计学生Student(学号,姓名,性别,班级,专业)课程Course(课程编号,教师编号,课程名称,课程学分)教师Teacher(教师编号,教师姓名,教师所在学院)选课表S_C(学号,课程编号,课程分数)授课表T_C(教师编号,教师姓名,教师所在学院)1.3.2.2数据类型定义(1)学生Student表表1-1 Student表(2)课程Course表表1-2 Course表(3)教师Teacher表表1-3 Teacher表(4)选课表S_C表表1-4 S_C表(5)授课表T_C表表1-5 T_C表1.3.3创建表格并插入数据(1)创建学生信息表格并插入数据图1-5创建学生表格与插入数据代码图1-6 查询学生信息表格结果图1-7 创建课程信息与插入数据代码图1-8 查询课程信息表格(3)创建教师信息表格并插入数据图1-9 创建教师信息与插入数据代码图1-10 查询教师信息结果图1-11 创建选课表与插入数据代码图1-12 查询选课表结果图1-13 创建授课表与插入数据代码图1-14 查询授课表结果1.3.4进行查询操作(1)查询每个老师(姓名)教授的课程(课程名),以及选课的人数图1-15 查询代码图1-16 查询结果(2)查询每个老师(工号和姓名)教授的学生(工号和姓名)图1-17 查询代码图1-18 查询结果(3)查询每个学生所选课程数量和平均成绩:图1-19 查询代码图1-20 查询结果(4)查询出完整成绩单,并按照平均成绩倒序排列:图1-21 查询代码图1-22 查询结果2实验二:空间数据库综合应用2.1实验目的✧了解空间数据库的设计过程✧掌握SSQL相关使用方法2.2实验内容✧在PostGIS数据库中重复课本第五章空间数据库相关操作(详见5.4和5.5节)✧在第四章每一类矢量数据操作函数中选取其中一个函数,对第五章示例数据进行计算与操纵(如果第五章案例中已有相关函数,则报告中详细介绍该函数的功能、参数需求等)要求:给出数据库中的概念模型设计、逻辑模型设计、物理实现语句及结果截图。

数据库设计实验报告5篇

数据库设计实验报告5篇

数据库设计实验报告数据库设计实验报告5篇在不断进步的时代,需要使用报告的情况越来越多,写报告的时候要注意内容的完整。

相信很多朋友都对写报告感到非常苦恼吧,以下是小编为大家收集的数据库设计实验报告,仅供参考,希望能够帮助到大家。

数据库设计实验报告1有关于数据库实验的心得体会,总的来说,受益匪浅。

在这些天中,我们学到了很多东西,包括建表,导入数据,查询,插入。

最重要的是我们有机会用电脑自己进行实践,没接触的时候总是觉得它比较深奥或是不可接近的新型语言,尽管自己对C语言非常感兴趣,但还是有些心理上的陌生感。

学习数据库就和我们平时的其它科目学习一样感觉它有永无止境的知识,数据库是我在高中时候听过,到了大学渐渐了解了些,但就其原理性的内容还不知道,也就是根本就不清楚什么是数据库,只是知道一个所谓的中国字典里的名词。

我认识它是从我接触实验运作开始的,刚开始就是建立数据库,两种验证模式,没什么东西但还觉得不错。

进而就是操作语言了,紧接着就是触发器的使用,进而对数据库高级的使用,等等。

开始知道数据库的时候想学,不知道从何而起,不懂的话怎么问,从什么地方学起。

后来到大三开学后有数据库原理必修课,非常高兴。

当时感觉SQL Sever数据库管理既然是单独一门课程一定会讲的比较细,也能学到真正实用的内容。

学了这门课以后发现和我想的基本是一样的,老师对学生也比较和蔼可亲,对我们要求也不是很紧。

让每个人都觉得轻轻松松就能把这门课程学完,没有多么紧张的作业,也没有太苛刻的要求。

当老师在最后说这个课程结束了,回顾一下以前老师给我们讲过的东西,真的有很多是我们应该去注意的。

学习完SQL Sever数据库后感觉可分两大块,一块是开发,一块是管理。

开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form。

有点类似于程序员。

开发还需要有较强的逻辑思维和创造能力,自己没有真正做过,但感觉应该会比较辛苦,是青春饭;管理则需要对SQL Sever数据库的原理有深刻的认识,有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会弄掉整个数据库,相对前者来说,后者更看重经验。

空间数据库实验报告

空间数据库实验报告

空间数据查询摘要:SQL通常只提供简单的数据类型,如整型、日期型等。

空间数据库的应用,必须能够处理像点、线、面这样的复杂的数据类型。

空间数据库管理系统作为一种扩展的DBMS,应该既可以处理空间数据,也可以处理非空间数据,所以应当对SQL进行扩展,使它支持空间数据。

空间数据库查询语句是空间数据库不可缺少的重要组成部分,如何将关系数据库查询语句进行适当扩展,以适应空间数据的需求,是目前亟待研究的课题。

一、空间关系算子和空间分析算子空间算子一般按操作对象的数目分为一元空间算子和二元空间算子。

一元空间算子主要用于计算空间对象的几何特征。

二元空间算子主要表达空间关系以及空间分析。

空间关系的表达有拓扑和非拓扑之分,在基于九交模型的512种二元拓扑关系中,有8中是可以实现的,并且彼此互斥且完全覆盖。

算子的返回值为逻辑true或false。

非拓扑的空间几何运算主要指空间方位的判断,目前还没有比较规范的算子定义。

二、MakeValid(geometry 数据类型)将无效 geometry 实例转换为具有有效开放地理空间联盟(OGC) 类型的 geometry 实例。

语法为:.MakeValid()三、实现流程1)导入数据1、打开SQL Server并登陆。

2、打开文件夹SqlSpatialTools_build3759,点选Shape2Sql.exe。

3、在跳出窗口选择cities.shp文件,选择Set复选框,点击Upload to Database加载。

4、重复步骤3,依次加载countries.shp和Rivers.shp。

加载好后,在SQL Server对象资源管理器中可以看到对应的表。

5、打开文件夹内SqlSpatialTools_build3759中SqlSpatialQuery.exe,打开查询界面。

6、点击Database后的空白处,选择连接的数据库。

7、在空白框内输入查询语句,点击进行查询。

以下为简单示例:2)查询实例我自己试验的SELECT C1.LONG_NAMEFROM countries C1,countries C2WHERE C1.geom.STTouches(C2.geom)=1 And C2.LONG_NAME='CHINA' 出现的错误:1、查询:列出countries中所有与中国相邻的国家的名字。

数据库室内设计实训报告

数据库室内设计实训报告

一、实习背景随着我国经济的快速发展,室内设计行业逐渐成为热门行业之一。

为了提高室内设计专业学生的实践能力,我们学校组织了一次数据库室内设计实训。

通过本次实训,使学生能够将所学理论知识与实际操作相结合,掌握室内设计的基本流程和数据库应用技巧。

二、实习目的1. 了解室内设计的基本流程和规范。

2. 掌握数据库的基本操作,如创建、查询、修改和删除等。

3. 学会运用数据库技术进行室内设计信息管理。

4. 培养学生的团队协作能力和沟通能力。

三、实习内容1. 室内设计基本流程(1)需求分析:了解客户需求,包括面积、风格、功能等。

(2)方案设计:根据需求分析,进行初步的方案设计。

(3)深化设计:对方案进行深化,包括空间布局、家具配置、材料选择等。

(4)施工图绘制:根据深化设计,绘制施工图。

(5)施工监理:对施工过程进行监理,确保施工质量。

2. 数据库应用(1)数据库创建:使用SQL语句创建数据库,包括表、字段等。

(2)数据录入:将室内设计相关信息录入数据库。

(3)数据查询:根据需求查询数据库中的数据。

(4)数据修改:对数据库中的数据进行修改。

(5)数据删除:删除不再需要的数据库数据。

四、实习过程1. 实习前期(1)了解室内设计的基本流程和规范,掌握室内设计软件(如AutoCAD、SketchUp等)的使用。

(2)学习数据库基本知识,了解SQL语句的编写。

2. 实习中期(1)分组进行室内设计方案设计,每个小组负责一个设计方案。

(2)根据设计方案,创建数据库,并录入相关信息。

(3)进行数据库查询、修改和删除等操作。

3. 实习后期(1)对室内设计方案进行修改和完善。

(2)对数据库进行优化,提高查询效率。

(3)撰写实习报告,总结实习经验。

五、实习成果1. 完成多个室内设计方案,并绘制施工图。

2. 创建数据库,实现室内设计信息管理。

3. 掌握数据库操作技巧,提高实践能力。

4. 提升团队协作能力和沟通能力。

六、实习体会1. 室内设计是一个涉及多个领域的综合性学科,需要掌握一定的理论知识、软件操作和实际操作技能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

空间数据库设计报告一、设计思想本次空间数据库设计是基于SQL sever2008开放的外挂式空间数据库管理系统。

基于传统的关系型数据库外挂式的空间数据库系统的关键在于SDE的设计与实现,SDE在用户和异构空间数据库之间提供了一个开放的接口。

用户可以通过SDE服务来实现对空间数据的读取、插入、更新和删除的基本操作,还可以基于SDE实现对空间数据的分析功能,如拓扑关系的查询、缓冲区分析、叠加分析、、合并和切分等。

SDE同时提供了链接DBMS数据库的接口,与数据库的操作都是在这个上面进行交互的。

1.1 数据的存储1.1.1 几何数据的存储把GIS数据放在RDBMS中,但是一般的RDBMS都没有提供GIS的数据类型(如点、线、多边形、以及这些feature之间的拓扑关系和投影坐标等相关信息),RDBMS只提供了少量的数据类型支持:int,float,double,Blob,Long ,char等,一般都是数字,字符串和二进制数据几种。

并且RDBMS不仅没有提供对GIS数据类型的存储,也没有提供对这些基础类型的操作(如:判断包含关系,相邻、相交、求差、距离、最短路径等)。

在本次数据库设计中,成功的完成了对点线面的数据的存储和相关的读取、插入、更新和删除以及可视化的显示的功能。

此处的存储是基于SQLsever2008进行的,具体的存储结构如下表所示:其中Point表中包含Point的空间信息,即空间的点的x,y坐标。

由于当个点的只有相当于独立地物才会有相关的属性信息,本次在操作的时候并没有在存储的表中添加相应的属性信息。

一条线是由很多个小线段的组成的,因此在存储的时候,每个边都有一个独立的ID,每条边是由起点和终点链接起来的,因此在在这个表中只需要存储相应的点的ID即可,一般的线都是具有相关的属性信息的,故在本次设计中添加了线的属性信息,咋通过SDE对空间数据查询的时候便可以很方便的看到边的属性。

的存储一样,按照每条边两个点来存储,而是将所有的边的序列来形成一个字符串来链接,然后再通过边表来操纵点表,最后完成查询信息。

每一个多边形都有相关的属性说明。

1.1.2 属性数据的存储属性数据和结合数据的关联是通过几何数据的ID来识别的,属性数据也是存储在一个表中的,相应的没有几何类型都有自己的几何属性说明。

1.1.3 几何数据和属性数据的说明在上述的设计中,在几何数据的表中设置了相应的一些数据说明,其实其按照严格意义上来将就是属性数据,这是方便说明数据的信息,对于一些几何类型承载的信息比较的复杂的数据相应的也是设计了专门的属性数据表,同几何数据的ID来进行级联操作,如对数据的读取、更新、插入或者是删除等。

1.2 数据的维护和管理。

1.2.1 空间数据的维护空间数据的维护包括几何数据和空间几何数据的增加、更新、删除、维护等操作。

本次实习所完成的系统已经成功实现了对空间数据点、线和面类型的操作。

本次实现中,将对点、线和面的数据维护分别封装在不同的类中,用户可以通过SDE来完成从SQL中取出数据,并且对数据进行相应的维护。

下面就对点线面的实现分别做以介绍。

1.2.1.1 点的维护在空间数据库中,点的几何信息的存储就是完成X、Y坐标的存储即可,同样对数据的操作就是只需要完成相应的点的坐标的操作即可。

数据库中点的存储已经做过相应的介绍,现在就封装为数据引擎的设计做以说明。

首先将点数据类型封装为一个类,类中分别定义与点的查询、插入和删除对应的函数,在每次调用这些函数的时候,都是调用一个唯一的接口来对数据库进行来接的。

////////////////定义数据源连接字符串变量并赋值///////////////CString g_strConnect=_T("DSN=S_DataBasechenxiong;UIN=sa;PWD=sa");//数据源链接字符串CDatabase p_DB;BOOL bReturn =p_DB.OpenEx(g_strConnect,0);if(bReturn==FALSE||!p_DB.BeginTrans())//数据库请求传送数据{MessageBox((LPCTSTR)"访问数据库失败!",(LPCTSTR)"错误信息!",MB_OK|MB_ICONERROR);p_DB.Close();return;}上述通过CDatabase提供了链接数据库的接口,在每个要素封装的类中,都提供了与该类的接口,以此链接数据库。

相应函数的声明:void dlgPoint::OnBnClickedButtonquerypoint()//查询点void dlgPoint::OnBnClickedButtoninsert()//插入一个点void dlgPoint::OnBnClickedButtondelete()//删除点的操作1.2.1.2 线的维护线的操作和点的操作有点类似,由于线中存储的是点的ID,因此在具体的实现的时候有所不同。

无论在执行对线的删除或者是对线的增加,其实质上都是对点的操作。

链接数据的方式与点的一样,不做过多的介绍。

CDatabase p_DB;BOOL bReturn =p_DB.OpenEx(g_strConnect,0);if(bReturn==FALSE||!p_DB.BeginTrans())//数据库请求传送数据{MessageBox((LPCTSTR)"访问数据库失败!",(LPCTSTR)"错误信息!",MB_OK|MB_ICONERROR);p_DB.Close();return;}具体的函数声明如下:void dlgEdge::OnBnClickedButtonQueryEdge()//查询边表函数void dlgEdge::OnBnClickedButtonAddEdge()//添加边void dlgEdge::OnBnClickedButtonDeleteEdge()//删除边的操作1.2.1.3 面的维护对面的操作大致与上面两种要素类似,在具体实现的时候也离不开另外两种要素,例如在查询的时候,首先应该得到的是面的ID,通过面的ID得到边的一系列字符串,通过读取字符串的每一个字符来得到相应的边的ID,最后通过边的ID来得到相应的点的信息,最后还是实现对点的操作。

链接数据库的方式与上面的类似,此处不做过多的介绍。

CDatabase p_DB;BOOL bReturn =p_DB.OpenEx(g_strConnect,0);if(bReturn==FALSE||!p_DB.BeginTrans())//数据库请求传送数据{MessageBox((LPCTSTR)"访问数据库失败!",(LPCTSTR)"错误信息!",MB_OK|MB_ICONERROR);p_DB.Close();return;}具体函数的声明如下所示:void dlgArea::OnBnClickedButtonQueryArea()//查看面的属性void dlgArea::OnBnClickedButtoninsert()//插入一个面void dlgArea::OnBnClickedButtondelete()//删除一个面1.2.2 空间数据的管理能够通过图形用户界面实现对空间数据库的管理,支持图形显示及编辑交互、支持对地理数据图层的管理(图层的增、删、改、枚举)。

本次设计中,设计了对点线面操作的用户界面,通过用户界面可以实现对几何要素的显示和相应的几何要素的属性的操作,以及对几何要素的增加、删除、修改和读取等。

在查询的过程中,由于时间的原因,对各种数据的查询并没有设计好相应的索引,而是直接查询的,这是本次实习的第一个缺陷。

初次之外,图层的分层显示也是一个没有实现的,因此在此基础上形成的分析功能如buffer、叠加、网络分析都没有实现,在设计过程中尝试过使用ArcGIS Engine来实现相应的分析功能,功能模块虽然可以实现,但是在具体数据存储这一块就出现了bug,由于自身的积累的问题,并没有是实现相应的操作,下面就本次实习实现的功能做一介绍。

1.2.2.1 点的管理用户操作界面如下图所示:如上图所示,编辑框是相应的输入要插入点的信息,右边的功能按钮实现了对点的查询、插入和删除的操作。

上述实现的是插入一个点的操作,由于要对数据库进行操作,故在实现时要对数据库进行链接。

可以查看一下SQL sever表中,里面更新了点的编号为16的点,如下图所示:点的可视化操作,点的可视化是在单文档中使用绘图工具实现的如下图所示,由于点比较少,所以看的不是很清楚,下图中红色椭圆圈表示显示的点:1.2.2.1 线的管理用户管理界面如下所示:上图所显示的是有对插入边的一些信息的编辑,同时也给出了相应的对边的查询(上图已经是实现了所有边的查询),同时可以进行添加和删除操作。

List中给出了边的ID和起始点的ID和相应的点的描述。

其他功能不做一一显示,下面就线的绘制进行演示:1.2.2.3 面的管理面操作的用户界面:如上图所示,编辑框提供了对面的插入的操作,输入面的相关的编号,面所包含的边的编号所构成的字符串以及对面所包含的描述,上图已经进行了对面的查询操作。

下面就面的删除和插入做一操作。

面的插入面的删除删除后的显示下面进行面的显示操作,与线的显示不同,对面进行了相应的填充:二、工程实现1.1工作环境SQL server 2008以及VS 20101.2 点的封装的工程代码对点要素的封装的相应的函数描述:// dlgPoint 消息处理程序//////////////////////////定义一个链接数据库的变量///////////////////////extern CString g_strConnect;/////////////////////查询点的属性//////////////////////////////void dlgPoint::OnBnClickedButtonquerypoint(){CDatabase p_DB;BOOL bReturn =p_DB.OpenEx(g_strConnect,0);if(bReturn==FALSE||!p_DB.BeginTrans())//数据库请求传送数据{MessageBox((LPCTSTR)"访问数据库失败!",(LPCTSTR)"错误信息!",MB_OK|MB_ICONERROR);p_DB.Close();return;}myList.ModifyStyle(0,LVS_SHOWSELALWAYS);myList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES| LVS_EX_TWOCLICKACTIVATE);myList.SetBkColor(RGB(247,247,255));myList.SetTextColor(RGB(0,0,0));myList.SetTextBkColor(RGB(247,247,255));for(int i=0;i<3;i++){myList.DeleteColumn(0);}myList.DeleteAllItems();myList.InsertColumn(0,_T("PID"), LVCFMT_LEFT,100);//在list中插入三列myList.InsertColumn(1,_T("x"), LVCFMT_LEFT,100);myList.InsertColumn(2,_T("y"), LVCFMT_LEFT,100);CString strSQL;CRecordset p_DBSet(&p_DB);strSQL="select * from POINT";//查询所有的点的信息p_DBSet.Open(CRecordset::snapshot,strSQL,CRecordset::readOnly);int nIndex = 0;CString strVal;while(!p_DBSet.IsEOF()){p_DBSet.GetFieldValue(_T("PID"),strVal);//获取点的IDmyList.InsertItem(nIndex,strVal);p_DBSet.GetFieldValue(_T("x"),strVal);//获取点的x坐标strVal.TrimRight();myList.SetItemText(nIndex,1,strVal);p_DBSet.GetFieldValue(_T("y"),strVal);//获取点的y坐标strVal.TrimRight();myList.SetItemText(nIndex,2,strVal);nIndex++;p_DBSet.MoveNext();}p_DBSet.Close();//UpdateData();// TODO: 在此添加控件通知处理程序代码}//////////////////////////插入一个点///////////////void dlgPoint::OnBnClickedButtoninsert(){CDatabase p_DB;BOOL bReturn =p_DB.OpenEx(g_strConnect,0);if(bReturn==FALSE||!p_DB.BeginTrans())//数据库请求传送数据{MessageBox((LPCTSTR)"访问数据库失败!",(LPCTSTR)"错误信息!",MB_OK|MB_ICONERROR);p_DB.Close();return;}UpdateData(true);CString strSQL;if(m_pare(_T(""))==0){MessageBox(_T("点的ID不能为空"),_T("错误信息"),MB_OK|MB_ICONERROR);}CString a;a="insert into POINT values('";//插入点的每个坐标和IDa+=m_strID;a+="','";a+=m_strPointX;a+="','";a+=m_strPointY;a+="')";strSQL=a;p_DB.ExecuteSQL(strSQL);p_mitTrans();p_DB.Close();OnBnClickedButtonquerypoint();UpdateData(false);// TODO: 在此添加控件通知处理程序代码}/////////////////////////删除点的操作////////////////////void dlgPoint::OnBnClickedButtondelete(){CDatabase p_DB;BOOL bReturn =p_DB.OpenEx(g_strConnect,0);if(bReturn==FALSE||!p_DB.BeginTrans())//数据库请求传送数据{MessageBox((LPCTSTR)"访问数据库失败!",(LPCTSTR)"错误信息!",MB_OK|MB_ICONERROR);p_DB.Close();return;}UpdateData(TRUE);CString strSQL;//寻找当前选中的记录位置///POSITION pos=myList.GetFirstSelectedItemPosition();if(pos==NULL){MessageBox(_T("请先选中一条记录"),_T("错误信息"),MB_OK|MB_ICONERROR);return ;}//获取当前记录的位置//-int m_ncurPoint=myList.GetNextSelectedItem(pos);//获取当前选中的记录Book//CString PID=myList.GetItemText(m_ncurPoint,0);TRY{strSQL="delete from POINT where PID='";strSQL+=PID;strSQL+="'";p_DB.ExecuteSQL(strSQL);p_mitTrans();}CATCH_ALL(e){TCHAR tc_ErrorMSg[255];e->GetErrorMessage(tc_ErrorMSg,255);CString str_HitMsg;//此处为错误消息//MessageBox(str_HitMsg,_T("错误信息"),MB_OK|MB_ICONERROR);p_DB.Rollback();p_DB.Close();return ;}END_CATCH_ALLOnBnClickedButtonquerypoint();//UpdateData(false);p_DB.Close();// TODO: 在此添加控件通知处理程序代码}1.3 线的封装的工程代码// dlgEdge 消息处理程序//////////////////////////定义一个链接数据库的变量///////////////////////extern CString g_strConnect;//////////////////////////////////查询边表函数/////////////////////////void dlgEdge::OnBnClickedButtonQueryEdge(){CDatabase p_DB;BOOL bReturn =p_DB.OpenEx(g_strConnect,0);if(bReturn==FALSE||!p_DB.BeginTrans())//数据库请求传送数据{MessageBox((LPCTSTR)"访问数据库失败!",(LPCTSTR)"错误信息!",MB_OK|MB_ICONERROR);p_DB.Close();return;}m_List.ModifyStyle(0,LVS_SHOWSELALWAYS);m_List.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES| LVS_EX_TWOCLICKACTIVATE);m_List.SetBkColor(RGB(247,247,255));m_List.SetTextColor(RGB(0,0,0));m_List.SetTextBkColor(RGB(247,247,255));for(int i=0;i<4;i++){m_List.DeleteColumn(0);}m_List.DeleteAllItems();m_List.InsertColumn(0,_T("EID"), LVCFMT_LEFT,100);m_List.InsertColumn(1,_T("Start"), LVCFMT_LEFT,100);m_List.InsertColumn(2,_T("End"), LVCFMT_LEFT,100);m_List.InsertColumn(3,_T("EAttribute"), LVCFMT_LEFT,100);CString strSQL;CRecordset p_DBSet(&p_DB);strSQL="select * from Edge";p_DBSet.Open(CRecordset::snapshot,strSQL,CRecordset::readOnly);int nIndex = 0;CString strVal;while(!p_DBSet.IsEOF()){p_DBSet.GetFieldValue(_T("EID"),strVal);m_List.InsertItem(nIndex,strVal);p_DBSet.GetFieldValue(_T("Start"),strVal);strVal.TrimRight();m_List.SetItemText(nIndex,1,strVal);p_DBSet.GetFieldValue(_T("End"),strVal);strVal.TrimRight();m_List.SetItemText(nIndex,2,strVal);p_DBSet.GetFieldValue(_T("EAttribute"),strVal);strVal.TrimRight();m_List.SetItemText(nIndex,3,strVal);nIndex++;p_DBSet.MoveNext();}p_DBSet.Close();// TODO: 在此添加控件通知处理程序代码}//////////////////////添加边///////////////////////void dlgEdge::OnBnClickedButtonAddEdge(){CDatabase p_DB;BOOL bReturn =p_DB.OpenEx(g_strConnect,0);if(bReturn==FALSE||!p_DB.BeginTrans())//数据库请求传送数据{MessageBox((LPCTSTR)"访问数据库失败!",(LPCTSTR)"错误信息!",MB_OK|MB_ICONERROR);p_DB.Close();return;}UpdateData(true);CString strSQL;if(m_pare(_T(""))==0){MessageBox(_T("边的ID不能为空"),_T("错误信息"),MB_OK|MB_ICONERROR);}CString a;//strSQL="insert into POINT values('"+m_strID+"','"+m_strPointX+"','"+m_strPointY+"')";a="insert into Edge values('";a+=m_strEID;a+="','";a+=m_strSID;a+="','";a+=m_streID;a+="','";a+=m_strEA;a+="')";strSQL=a;//////////////////////////////////////////////////////////////////p_DB.ExecuteSQL(strSQL);p_mitTrans();p_DB.Close();OnBnClickedButtonQueryEdge();UpdateData(false);// TODO: 在此添加控件通知处理程序代码}///////////////////////////////删除边的操作////////////////////////void dlgEdge::OnBnClickedButtonDeleteEdge(){CDatabase p_DB;BOOL bReturn =p_DB.OpenEx(g_strConnect,0);if(bReturn==FALSE||!p_DB.BeginTrans())//数据库请求传送数据{MessageBox((LPCTSTR)"访问数据库失败!",(LPCTSTR)"错误信息!",MB_OK|MB_ICONERROR);p_DB.Close();return;}UpdateData(TRUE);CString strSQL;//寻找当前选中的记录位置///POSITION pos=m_List.GetFirstSelectedItemPosition();if(pos==NULL){MessageBox(_T("请先选中一条记录"),_T("错误信息"),MB_OK|MB_ICONERROR);return ;}//获取当前记录的位置//int m_ncurEdge=m_List.GetNextSelectedItem(pos);//获取当前选中的记录Book//CString m_strSeletetedEID=m_List.GetItemText(m_ncurEdge,0);TRY{strSQL="delete from Edge where EID='";strSQL+=m_strSeletetedEID;strSQL+="'";p_DB.ExecuteSQL(strSQL);p_mitTrans();}CATCH_ALL(e){TCHAR tc_ErrorMSg[255];e->GetErrorMessage(tc_ErrorMSg,255);CString str_HitMsg;//此处为错误消息//MessageBox(str_HitMsg,_T("错误信息"),MB_OK|MB_ICONERROR);p_DB.Rollback();p_DB.Close();return ;}END_CATCH_ALLOnBnClickedButtonQueryEdge();//UpdateData(false);p_DB.Close();// TODO: 在此添加控件通知处理程序代码}1.4 面的封装的工程代码// dlgArea 消息处理程序//////////////////////////定义一个链接数据库的变量///////////////////////extern CString g_strConnect;//////////////////////////查看面的属性//////////////////////////////////void dlgArea::OnBnClickedButtonQueryArea(){CDatabase p_DB;BOOL bReturn =p_DB.OpenEx(g_strConnect,0);if(bReturn==FALSE||!p_DB.BeginTrans())//数据库请求传送数据{MessageBox((LPCTSTR)"访问数据库失败!",(LPCTSTR)"错误信息!",MB_OK|MB_ICONERROR);p_DB.Close();return;}m_list.ModifyStyle(0,LVS_SHOWSELALWAYS);m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES| LVS_EX_TWOCLICKACTIVATE);m_list.SetBkColor(RGB(247,247,255));m_list.SetTextColor(RGB(0,0,0));m_list.SetTextBkColor(RGB(247,247,255));for(int i=0;i<3;i++){m_list.DeleteColumn(0);}m_list.DeleteAllItems();m_list.InsertColumn(0,_T("AID"), LVCFMT_LEFT,100);m_list.InsertColumn(1,_T("EStr"), LVCFMT_LEFT,100);m_list.InsertColumn(2,_T("Attribute"), LVCFMT_LEFT,100);CString strSQL;CRecordset p_DBSet(&p_DB);strSQL="select * from Area";p_DBSet.Open(CRecordset::snapshot,strSQL,CRecordset::readOnly);int nIndex = 0;CString strVal;while(!p_DBSet.IsEOF()){p_DBSet.GetFieldValue(_T("AID"),strVal);m_list.InsertItem(nIndex,strVal);p_DBSet.GetFieldValue(_T("EStr"),strVal);strVal.TrimRight();m_list.SetItemText(nIndex,1,strVal);p_DBSet.GetFieldValue(_T("Attribute"),strVal);strVal.TrimRight();m_list.SetItemText(nIndex,2,strVal);nIndex++;p_DBSet.MoveNext();}p_DBSet.Close();// TODO: 在此添加控件通知处理程序代码}////////////////////////插入一个面//////////////////////////////////////void dlgArea::OnBnClickedButtoninsert(){CDatabase p_DB;BOOL bReturn =p_DB.OpenEx(g_strConnect,0);if(bReturn==FALSE||!p_DB.BeginTrans())//数据库请求传送数据{MessageBox((LPCTSTR)"访问数据库失败!",(LPCTSTR)"错误信息!",MB_OK|MB_ICONERROR);p_DB.Close();return;}UpdateData(true);CString strSQL;if(m_pare(_T(""))==0){MessageBox(_T("边的ID不能为空"),_T("错误信息"),MB_OK|MB_ICONERROR);}CString a;//strSQL="insert into POINT values('"+m_strID+"','"+m_strPointX+"','"+m_strPointY+"')";a="insert into Area values('";a+=m_strAreaID;a+="','";a+=m_strAedge;a+="','";a+=m_strAttribute;a+="')";strSQL=a;//////////////////////////////////////////////////////////////////p_DB.ExecuteSQL(strSQL);p_mitTrans();p_DB.Close();OnBnClickedButtonQueryArea();UpdateData(false);// TODO: 在此添加控件通知处理程序代码// TODO: 在此添加控件通知处理程序代码}////////////////////////删除一个面/////////////////////////////////////void dlgArea::OnBnClickedButtondelete(){CDatabase p_DB;BOOL bReturn =p_DB.OpenEx(g_strConnect,0);if(bReturn==FALSE||!p_DB.BeginTrans())//数据库请求传送数据{MessageBox((LPCTSTR)"访问数据库失败!",(LPCTSTR)"错误信息!",MB_OK|MB_ICONERROR);p_DB.Close();return;}UpdateData(TRUE);CString strSQL;//寻找当前选中的记录位置///POSITION pos=m_list.GetFirstSelectedItemPosition();if(pos==NULL){MessageBox(_T("请先选中一条记录"),_T("错误信息"),MB_OK|MB_ICONERROR);return ;}//获取当前记录的位置//int m_ncurAID=m_list.GetNextSelectedItem(pos);//获取当前选中的记录Book//CString m_strSeletetedAID=m_list.GetItemText(m_ncurAID,0);TRY{strSQL="delete from Area where AID='";strSQL+=m_strSeletetedAID;strSQL+="'";p_DB.ExecuteSQL(strSQL);p_mitTrans();}CATCH_ALL(e){TCHAR tc_ErrorMSg[255];e->GetErrorMessage(tc_ErrorMSg,255);CString str_HitMsg;//此处为错误消息//MessageBox(str_HitMsg,_T("错误信息"),MB_OK|MB_ICONERROR);p_DB.Rollback();p_DB.Close();return ;}END_CATCH_ALLOnBnClickedButtonQueryArea();//UpdateData(false);p_DB.Close();// TODO: 在此添加控件通知处理程序代码}1.5 要素可视化实现在显示的过程是使用计算机图形学中的知识来显示相应的点线面的。

相关文档
最新文档