书签 分享 收藏 举报 版权申诉 / 58
上传文档赚钱

类型第5章-空间数据查询、访问课件2.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4514210
  • 上传时间:2022-12-16
  • 格式:PPT
  • 页数:58
  • 大小:1.59MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第5章-空间数据查询、访问课件2.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    空间 数据 查询 访问 课件
    资源描述:

    1、1 空间数据库 杨 勇地理信息系统课程河南财经政法大学资源与环境学院2第五章第五章 空间数据查询、访问空间数据查询、访问标准数据库查询语言空间查询语言35.2 空间查询语言为什么使用空间查询语言空间查询语言的实现PostgreSQL/PostGIS介绍空间查询语言应用实例4n例1:列出日销售额超过万元的超市名称列出财经政法大学方圆500m内的超市名称5n例2:L6 为什么使用空间查询语言(为什么使用空间查询语言(SSQL)?标准 SQL通常只提供简单的数据类型,如整型、日期型等,空间数据库的应用必须能够处理空间数据库的应用必须能够处理像点、线、面这样复杂的数据类型像点、线、面这样复杂的数据类型

    2、;空间数据库管理系统作为一种扩展的DBMS,应该既可以处理空间数据,也可以处理非空间数据,所以,应当对SQL进行扩展,使它支持空间数据。75.2.1 5.2.1 关系模型的扩展关系模型的扩展对关系模型进行扩展:对关系模型进行扩展:(1)突破第一范式的限制,允许定义层次关系和嵌套关系 (2)增加抽象数据类型如点、线、面、栅格、图像等和用户自定义数据类型 (3)增加空间谓词,包括空间关系谓词(如相交、包含(如相交、包含等)等)以及空间操作谓词(如叠加、缓冲区等)(如叠加、缓冲区等)(4)增加适用于空间数据的索引技术,如如R树、四叉树树、四叉树等等85.2.2 OGIS5.2.2 OGIS标准的标准

    3、的SQLSQL扩展扩展nOGIS OpenGIS(open geodata interoperation specification,OGIS,开放的地理数据互操作规范):一些主要软件供应商组成的联盟,负责制定与GIS互操作相关的行业标准9n扩展的扩展的SQL提供了:提供了:针对所有几何类型的基本操作;如spatial reference返回所定义几何体采用的基础坐标系统。描述空间对象间拓扑关系的函数;如Touch用来返回几何体之间是否相接。空间分析的一般操作。如difference用来返回几何体与给定几何体不相交的部分。10 OGIS利用其自定义函数来支持空间关系,进而基于空间关系来实现空间

    4、查询。其具有的各种函数包括:n基本函数:Dimension(),GeometryType(),SRID(),Envelope(),.n拓扑/集合运算函数:Equals(),Disjoint(),Intersects(),Touches(),Crosses(),Within(),Contains(),Overlap(),Relate()11n空间分析函数:Distance(),Buffer(),ConvexHull(),Intersection(),Union(),Difference(),SymDifference()n空间数据转换函数:GeoFromBin(),AsBinary()12131

    5、4 5.2.3 5.2.3 对象关系对象关系SQLSQL3/SQL99SQLSQL3/SQL99u面向对象技术非常适合处理空间数据。u面向对象技术与传统关系数据库系统相结合产生了对象关系数据库管理系统(ORDBMS),ORDBMS对传统SQL进行扩展,产生了SQL在ORDBMS上的标准SQL3/SQL99。u典型的对象-关系型数据库管理系统(ORDBMS):PostgreSQL 15PostgreSQL/PostGIS:nPostgreSQL 是一种对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大、特性最丰富和最复杂的自由软件数据库系统。n起源于伯克利(BSD)的数据库研究计划,

    6、目前最重要的开源数据库产品开发项目之一,有着非常广泛的用户。nPostGIS 在对象关系型数据库PostgreSQL 上增加了存储管理空间数据的能力。nPostGIS 最大的特点是符合并且实现了OpenGIS 的一些 规范,是最著名的开源GIS 数据库161.SQL3概述概述 SQL3不仅对SQL的语法作了更详细和准确的定义,而且对空间数据的支持作出统一的描述。它详细描述了空间数据类型点、线、面在数据库中的存储方式,并且能够定义操作空间数据的空间运算符。17SQL3定义了0维的点、一维的环和曲线、二维的面。18 SQL3可使用户在关系数据库的框架内定义自己的数据类型,可以支持抽象数据类型(Ab

    7、stract Data Type,ADT)和其它数据结构。如:如:点的定义:ST_Point 线的定义:ST_LineString 面的定义:ST_Polygon192.SSQL2.SSQL查询实例查询实例 (1 1)选择湖北省的所有城市及其人口。)选择湖北省的所有城市及其人口。Select Select 城市名,城市名,人口人口 From From 城市城市 Where Center Where Center(城市地图)(城市地图)Inside Inside 湖北;湖北;20(2)选择流经湖北省的所有河流名及其在湖北省内的长度)选择流经湖北省的所有河流名及其在湖北省内的长度 Select 河

    8、流名河流名,Length(Intersection(Route(河流流河流流域图域图),湖北),湖北)FROM 河流河流 WHERE Route(河流流域图河流流域图)Intersects 湖北湖北 这里:这里:Inside 用来判断一个空间实体是否在另一个空间实用来判断一个空间实体是否在另一个空间实体的内部,体的内部,Route用来计算河流、道路等的中心线,用来计算河流、道路等的中心线,Intersection 用来返回由两个实体的交集构成的几何体。用来返回由两个实体的交集构成的几何体。Intersects判断相交不相交。判断相交不相交。Center用来判断一个实体的用来判断一个实体的中心是

    9、否在另一个实体的内部。中心是否在另一个实体的内部。213.2.4 基于PostGIS的空间查询语言应用示例n示例数据介绍以下为虚构的、蓝湖地区的整饰地图22建表的SQL语句n湖泊:create table lakes (fid integer not null primary key,name varchar(64),shore geometry);n路段:create table road_segments (fid integer not null primary key,name varchar(64),aliases varchar(64),num_lanes integer,cent

    10、erline geometry);23n组合路create table divided_routes(fid integer not null primary key,name varchar(64),aliases varchar(64),num_lanes integer,centerline geometry);n桥Create table bridges(fid integer not null primary key,name varchar(64),roadseg1id integer references road_segments,roadseg2id integer refe

    11、rences road_segments,positon geometry);24n河流create table streams(fid integer not null primary key,name varchar(64),fromlakeid integer references lakes,tolakeid integer references lakes,centerline geometry);n建筑物create table buildings(fid integer not null primary key,address varchar(64),position geome

    12、try,footprint geometry);25n池塘create table ponds(fid integer not null primary key,name varchar(64),type varchar(64),shores geometry);n岛create table island(fid integer not null primary key,name varchar(64),lakeid integer references lakes,boundary geometry);26n区域create table zone(fid integer not null p

    13、rimary key,name varchar(64),boundary geometry);27n空间数据的插入 湖泊:insert into lakes values(101,蓝湖,ST_GeomFROMText(MULTIPOLYGON(52 18,66 23,73 9,48 6,52 18),(59 18,67 18,67 13,59 13,59 18),101);insert into lakes values(0,图外其他湖泊);28路段:insert into road_segments values(102,路5,NULL,2,ST_GeomFromText(LINESTRIN

    14、G(0 18,10 21,16 23,28 26,44 31),101);insert into road_segments values(103,路5,主街,4,ST_GeomFromText(LINESTRING(44 31,56 34,70 38),101);insert into road_segments values(104,路5,NULL,2,ST_GeomFromText(LINESTRING(70 38,72 48),101);insert into road_segments values(105,主街,NULL,4,ST_GeomFromText(LINESTRING(7

    15、0 38,84 42),101);insert into road_segments values(106,绿森林边路,NULL,1,ST_GeomFromText(LINESTRING(28 26,28 0),101);29桥insert into bridges values(110,卡姆桥,102,103,PointFromText(POINT(44 31),101);河流insert into streams values(111,卡姆河,0,101,ST_GeomFromText(LINESTRING(38 48,44 41,41 36,44 31,52 18),101);inser

    16、t into streams values(112,null,101,0,ST_GeomFromText(LINESTRING(76 0,78 4,73 9),101);30建筑物insert into buildings values(113,主街123号,ST_GeomFromText(point(52 30),101),ST_GeomFromText(polygon(50 31,54 31,54 29,50 29,50 31),101);insert into buildings values(114,主街215号,ST_GeomFromText(point(64 33),101),ST

    17、_GeomFromText(polygon(66 34,62 34,62 32,66 32,66 34),101);31池塘insert into ponds values(120,null,思道哥池塘,ST_GeomFromText(multipolygon(24 44,22 42,24 40,24 44),(26 44,26 40,28 42,26 44),101);32岛insert into island values(109,鹅岛,101,ST_GeomFromText(multipolygon(67 13,67 18,59 18,59 13,67 13),101);区域insert

    18、 into zone values(117,阿诗顿,ST_GeomFromText(multipolygon(62 48,84 48,84 30,56 30,58 34,62 48),101);insert into zone values(118,绿森林,ST_GeomFromtext(MULTIPOLYGON(28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18),(59 18,67 18,67 13,59 13,59 18),101);33n简单空间查询 查询1:卡姆河流是否与蓝湖连接 select ST_Touches(S.

    19、centerline,L.shore)from streams S,lakes L where S.name=卡姆河 and L.name=蓝湖 查询结果:T 查询2:判读75号路是否与阿斯顿相离 select ST_Disjoint(centerlines,boundary)from divided_routes d,zone z Where d.name=路75 and z.name=阿诗顿;查询结果:T 34查询3:获得卡姆桥与阿斯顿的距离 select ST_distance(Position,boundary)From bridges b,zone z Where b.name=卡姆

    20、桥 and z.name=阿诗顿查询结果:12(m)35空间数据查询指从空间数据库中找出所有满足属性约束条件和空间约束条件的地理对象。空间查询是GIS最基本最常用的功能。空间数据查询的方式有两大类:即“属性查属性查图形图形”和“图形查属性图形查属性”。5.3 GIS中空间数据检索与查询36空间数据库空间数据库查询条件查询条件属性限制属性限制空间拓扑限制空间拓扑限制二者结合二者结合GISGIS软件软件查询结果查询结果统计结果:统计结果:图、表、文字图、表、文字新图层新图层新的属性域添加到属新的属性域添加到属性数据库性数据库 查询方式查询方式图形图形-属性属性空间查询语言空间查询语言闪烁、颜色等明

    21、显表闪烁、颜色等明显表示示 37一、空间查询的方式一、空间查询的方式1 1、给出图形信息:如鼠标点取、拉框等方式。1 1)检索其相应属性)检索其相应属性;2)检索其空间拓扑关系检索其空间拓扑关系 2、给出属性特征条件1 1)检索对应的空间实体)检索对应的空间实体 2 2)查询属性)查询属性 38q单纯查询:单纯查询:单纯地查询属性,或只查询空间拓扑关系;q联合查询:联合查询:将空间数据与属性数据联合查询。39 空间查询是GIS最基本最常用的功能。可以分为四种方式:l几何参数查询l空间定位查询l空间关系查询lSQL查询二、空间数据查询种类二、空间数据查询种类 401 1、几何参数查询:、几何参数

    22、查询:包括点的位置坐标,两点间的距离,一个或一段线目标的长度,一个面目标的周长或面积等。实现:实现:查询属性库或空间计算41n2、空间定位查询、空间定位查询:给定一个点或一个几何图形,检索该图形范围内的空间对象及其属性。1)按点查询:给定一个鼠标点,查询离它最近的对象及属性-点的捕捉。2)开窗查询-按矩形、圆、多边形查询 分为该窗口包含和穿过的区域。423、空间关系查询、空间关系查询1 1)相邻分析检索)相邻分析检索-通过通过检索拓扑关系检索拓扑关系面面面:如查询与面状地物相邻的多边形的实现方法:面:如查询与面状地物相邻的多边形的实现方法:A、从从多边形与弧段关联表多边形与弧段关联表中,检索该

    23、多边形关联的所有中,检索该多边形关联的所有弧段;弧段;B、从从弧段关联弧段关联的左右多边形表中,检索出这些弧段关联的左右多边形表中,检索出这些弧段关联的多边形。的多边形。A A12BC43n线线线(与某干流线(与某干流A相连的所有支流)相连的所有支流)从线状地物表中,查找组成A的所有弧段及关联的结点;44n2)包含关系查询)包含关系查询查询某个面状地物所包含的空间对象。同层包含:同层包含:如,某省的下属地区,若建立有空间拓扑关系,可直接查询拓扑关系表来实现。不同层包含:不同层包含:如某省的湖泊分布,没有建立拓扑,实质是叠置分析检索,通过多边形叠置分析技术,只检索出在窗口界限范围内的地理实体,窗

    24、口外的实体作裁剪处理。3)穿越查询)穿越查询 某公路穿越了某些县,采用空间运算的方法执行,根据一个线目标的空间坐标,计算哪些面或线与之相交。454)落入查询)落入查询 一个空间对象落入哪个空间对象之内。-空间运算 5 5)缓冲区查询)缓冲区查询根据用户给定的一个点、线、面缓冲的距离,从而形成一个缓冲区的多边形,再根据多边形检索原理,检索该缓冲区内的空间实体。464 4、SQL查询(属性查询)查询(属性查询)1 1)查找查找 仅选择一个属性表,给定一个仅选择一个属性表,给定一个属性值,找出对应的属性记录或属性值,找出对应的属性记录或图形。图形。在屏幕上已有一个属性表,用在屏幕上已有一个属性表,用

    25、户任意点取记录,对应的图形以户任意点取记录,对应的图形以高亮显示。高亮显示。实现实现:执行数据库查询语言,找到满足要求的记录,得到它的目标标识,再通过目标标识在图形数据文件中找到对应的空间对象,并显示出来。472)SQL查询查询Select Select 属性项属性项 From From 属性表属性表 Where Where 条件条件1 or or 条件条件2 and and 条件条件3实现:实现:交互式选择各项,输入后,系统再转换为标准的SQL,由数据库系统执行,得到结果,提取目标标识,在图形文件中找到空间对象,并显示。483 3)扩展)扩展SQLSQL 在数据库查询语言上加入空间关系查询。

    26、为此需要增加空间数据类型(如点、线、面等)和空间操作算子(如求长度、面积、叠加等)。在给定查询条件时也需含有空间概念(如距离、邻近、叠加等)。主要优点:主要优点:保留了SQL的风格,便于熟悉SQL的用户的掌握,通用性较好,易于与关系数据库连接。执行扩展SQL,如果要将属性和空间关系整体统一起来,从底层进行查询优化,有一定困难。目前一般将两层分开进行查询。49例如,例如,“查询长江流域人口大于查询长江流域人口大于50万的县或市万的县或市”,可表示为:可表示为:SELECT *FROM县或市WHERE 县或市.人口 50万 AND CROSS(河流.名称=“长江”)505 5、其它查询方法、其它查

    27、询方法1 1)可视化空间查询)可视化空间查询 可视化查询是指将查询语言的元素,特别是空间关系,用直观的图形或符号表示。查询主要使用图形、图像、图标、符号来表达概念。512 2)自然语言空间查询)自然语言空间查询在在SQLSQL查询中引入一些自然语言,如温度高的城市查询中引入一些自然语言,如温度高的城市 SELECT nameSELECT name FROM Cities FROM Cities WHERE WHERE temperature is hightemperature is high SELECT name SELECT name FROM Cities FROM Cities WH

    28、ERE WHERE temperature=33.75temperature=33.75这种查询方式只能适用于某个专业领域的地理信息系统,而不能作为地理信息系统中的通用数据库查询语言。作定量转换作定量转换52例:ArcGISArcGIS中的空间查询中的空间查询(1)空间定位查询 空间定位查询是指给定一个点或一个几何图形,检索出该图形范围内的空间对象以及相应的属性。53n空间定位查询包括按点查询、按矩形查询、按圆查询、及按多边形查询等方式。n按矩形查询给定一个矩形窗口,查询出该窗口内某一类地物的所有对象,如果需要,显示出每个对象的属性表。54(2)基于空间特征和属性特征的联合查询 基于空间特征和属性特征联合查询的实质是查询条件同时涉及空间特征和属性特征。如用户希望查询出满足如下条件的城市:A:在某条铁路的东部;B:距离该铁路不超过30km;C:城市人口大于70万;D:城市选择区域是特定的多边形。55基于SQL查询5657n查询结果显示582022-12-1658 本 章 小 结n内容q标准SQL语言q空间查询语言q空间查询处理与优化qGIS的空间查询n重点q标准SQL语言语法及应用q空间查询语言的实现及扩展

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第5章-空间数据查询、访问课件2.ppt
    链接地址:https://www.163wenku.com/p-4514210.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库