SQLServr空间数据库应用系列12页.docx

上传人:b****4 文档编号:6225469 上传时间:2023-05-09 格式:DOCX 页数:21 大小:30.17KB
下载 相关 举报
SQLServr空间数据库应用系列12页.docx_第1页
第1页 / 共21页
SQLServr空间数据库应用系列12页.docx_第2页
第2页 / 共21页
SQLServr空间数据库应用系列12页.docx_第3页
第3页 / 共21页
SQLServr空间数据库应用系列12页.docx_第4页
第4页 / 共21页
SQLServr空间数据库应用系列12页.docx_第5页
第5页 / 共21页
SQLServr空间数据库应用系列12页.docx_第6页
第6页 / 共21页
SQLServr空间数据库应用系列12页.docx_第7页
第7页 / 共21页
SQLServr空间数据库应用系列12页.docx_第8页
第8页 / 共21页
SQLServr空间数据库应用系列12页.docx_第9页
第9页 / 共21页
SQLServr空间数据库应用系列12页.docx_第10页
第10页 / 共21页
SQLServr空间数据库应用系列12页.docx_第11页
第11页 / 共21页
SQLServr空间数据库应用系列12页.docx_第12页
第12页 / 共21页
SQLServr空间数据库应用系列12页.docx_第13页
第13页 / 共21页
SQLServr空间数据库应用系列12页.docx_第14页
第14页 / 共21页
SQLServr空间数据库应用系列12页.docx_第15页
第15页 / 共21页
SQLServr空间数据库应用系列12页.docx_第16页
第16页 / 共21页
SQLServr空间数据库应用系列12页.docx_第17页
第17页 / 共21页
SQLServr空间数据库应用系列12页.docx_第18页
第18页 / 共21页
SQLServr空间数据库应用系列12页.docx_第19页
第19页 / 共21页
SQLServr空间数据库应用系列12页.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

SQLServr空间数据库应用系列12页.docx

《SQLServr空间数据库应用系列12页.docx》由会员分享,可在线阅读,更多相关《SQLServr空间数据库应用系列12页.docx(21页珍藏版)》请在冰点文库上搜索。

SQLServr空间数据库应用系列12页.docx

SQLServr空间数据库应用系列12页

SQLServr2019空间数据应用系列一:

空间信息基础

一般说来,“教师”概念之形成经历了十分漫长的历史。

杨士勋(唐初学者,四门博士)《春秋谷梁传疏》曰:

“师者教人以不及,故谓师为师资也”。

这儿的“师资”,其实就是先秦而后历代对教师的别称之一。

《韩非子》也有云:

“今有不才之子……师长教之弗为变”其“师长”当然也指教师。

这儿的“师资”和“师长”可称为“教师”概念的雏形,但仍说不上是名副其实的“教师”,因为“教师”必须要有明确的传授知识的对象和本身明确的职责。

MicrosoftSQLServer2019提供了全面性的空间支持,可让组织通过具空间功能的应用程序来无缝地取用、使用及扩展以位置为基础的数据,最后可协助用户做出更好的决策。

空间分析是一项非常复杂的工作,包含一系列学术内容:

地理、数学、天文、图形等。

虽然在使用SQLServer2019的空间特性中不必要深入研究关于地理、数学、天文以及图形等学科,但如果你想在学习或者是正式的项目开发中能够很好的使用空间特性,适当和有效的掌握一些关于空间信息方面的理论概念可谓理所当然。

要练说,先练胆。

说话胆小是幼儿语言发展的障碍。

不少幼儿当众说话时显得胆怯:

有的结巴重复,面红耳赤;有的声音极低,自讲自听;有的低头不语,扯衣服,扭身子。

总之,说话时外部表现不自然。

我抓住练胆这个关键,面向全体,偏向差生。

一是和幼儿建立和谐的语言交流关系。

每当和幼儿讲话时,我总是笑脸相迎,声音亲切,动作亲昵,消除幼儿畏惧心理,让他能主动的、无拘无束地和我交谈。

二是注重培养幼儿敢于当众说话的习惯。

或在课堂教学中,改变过去老师讲学生听的传统的教学模式,取消了先举手后发言的约束,多采取自由讨论和谈话的形式,给每个幼儿较多的当众说话的机会,培养幼儿爱说话敢说话的兴趣,对一些说话有困难的幼儿,我总是认真地耐心地听,热情地帮助和鼓励他把话说完、说好,增强其说话的勇气和把话说好的信心。

三是要提明确的说话要求,在说话训练中不断提高,我要求每个幼儿在说话时要仪态大方,口齿清楚,声音响亮,学会用眼神。

对说得好的幼儿,即使是某一方面,我都抓住教育,提出表扬,并要其他幼儿模仿。

长期坚持,不断训练,幼儿说话胆量也在不断提高。

一、什么是空间数据

要练说,得练看。

看与说是统一的,看不准就难以说得好。

练看,就是训练幼儿的观察能力,扩大幼儿的认知范围,让幼儿在观察事物、观察生活、观察自然的活动中,积累词汇、理解词义、发展语言。

在运用观察法组织活动时,我着眼观察于观察对象的选择,着力于观察过程的指导,着重于幼儿观察能力和语言表达能力的提高。

  空间数据是指用来表示空间实体的位置、形状、大小及其分布特征诸多方面信息的数据,它可以用来描述来自现实世界的目标,它具有定位、定性、时间和空间关系等特性。

定位是指在已知的坐标系里空间目标都具有唯一的空间位置;定性是指有关空间目标的自然属性,它伴随着目标的地理位置;时间是指空间目标是随时间的变化而变化;空间关系通常一般用拓扑关系表示。

空间数据是一种用点、线、面以及实体等基本空间数据结构来表示人们赖以生存的自然世界的数据。

  来自XX百科的定义:

用于描述有关空间实体的位置、形状和相互关系的数据,以坐标和拓扑关系的形式存储。

  地理服务的普遍性,和用户使用数据所采用的混合度的提高意味着这个空间信息只是合成到解决方案中的另一个组件,并且是作出更好决策和提供更高的价值服务的一个基础。

SQLServer2019通过引入新的空间数据类型提供了对地理数据的支持,你可以使用它来存储和操纵基于位置的信息,SQLserver2019中的空间支持可以帮助用户通过分析基于地理的位置数据来作出更好的决策。

二、地图上的空间数据

  空间数据提供了可以在不同领域的广泛使用的信息,比如地图、地图分析、空间分析、GPS定位、车辆监控等多行业领域。

这里不分别详细介绍空间数据到各个行业领域的应用,主要介绍空间数据在地图上的应用为主。

实际上地图上的空间对象是很复杂且不规则的对象,通常表现为一些复杂、不规则的几何图形,使用空间数据来解释就是:

“近似他们实际的形状和位置的简单、或复杂的几何形状”。

  SQLServer2019主要支持三种类型的空间数据,用来表示空间信息的几何图形,分别为:

点(Point)、线(LineString)和面(Polygon)。

  1、点(Point):

点是几何的基本类型,用来表示空间上的一个位置。

  2、线(LineString):

线条描述了空间上的两个点之间的距离,有两个端点,分别为:

起止点(StartPoint)和终止点(EndPoint)。

  3、面(Polygon):

面用来表示空间上的一块几何区域,可以是三角形、四边形等,也可以是不规则的任意几何图形块。

  在地图上的面(Polygon)通常可以在空间数据中用来表示群岛、湖泊、工厂、学校、政府、司法管理区域等一块地市区域,如下重庆市区县分布图所示:

三、坐标系统(CoordinateSystem)

  常用的坐标系为地理坐标系(GeograpicCoordinateSystem,简称GCS)和投影坐标系(ProjectedCoordinateSystem,简称PCS)。

  地理坐标系统(GCS)用一个三维的球面来确定地物在地球上的位置,地面点的地理坐标有经度、纬度、高程构成。

地理坐标系统与选择的地球椭球体和大地基准面有关。

椭球体定义了地球的形状,而大地基准面确定了椭球体的中心。

地理空间中可以使用两个坐标值定义在地球表面上的任何位置,既地理经度和地理纬度,经度和纬度共同组成一个地理坐标点(Point),既:

Point(latitude,longitude)。

  投影坐标系统(PCS)是根据某种映射关系,将地理坐标系统中由经纬度确定的三维球面坐标投影到二维的平面上所使用的坐标系统。

在该坐标系统中,点的位置是由(x,y,z)坐标来确定的。

由于投影坐标是将球面展会在平面上,因此不可避免会产生变形。

这些变形包括3种:

长度变形、角度变形以及面积变形。

通常情况下投影转换都是在保证某种特性不变的情况下牺牲其他属性。

根据变形的性质可分为等角投影、等面积投影等。

四、空间参考系统

  上面分别介绍了基于角坐标经度和纬度的地理坐标系统(GCS),以及使用X和Y的笛卡尔坐标的投影坐标系统(PCS)。

无论是基于何种坐标系统,一组坐标始终只能表示坐标系统中的一个位置点,要想了解关于地球上的坐标系统的应用更多的知识,我们需要研究空间参考系统,既地球椭球体、基准、本初子午线、计量单位、投影等其他知识点。

  地球椭球体(Ellipsoid):

即等角横切椭圆柱投影。

假想用一个圆柱横切于地球椭球体的某一经线上,这条与圆柱面相切的经线,称中央经线。

以中央经线为投影的对称轴,将东西各3°或1°30′的两条子午线所夹经差6°或3°的带状地区按数学法则、投影法则投影到圆柱面上,再展开成平面,即高斯-克吕格投影,简称高斯投影。

这个狭长的带状的经纬线网叫做高斯-克吕格投影带。

  基准(Datum):

大地基站设计用为最密合部分或全部大地水准面的数据模式。

它由椭球体本身及椭球体和地表上一点视为原点之间关系来定义。

此关系能以6个量来定义,既:

经度、纬度、原点高度、原点垂线偏差之两分量及原点至某点的大地方位角。

  本初子午线(PrimeMeriaian):

0°经线,是计算东西经度的起点。

1884年国际会议决定用通过英国格林威治(Greenwich)天文台子午仪中心的经线为本初子午线。

1957年后,格林尼治天文台迁移台址。

1968年国际上以国际协议原点(CIO)作为地极原点,经度起点实际上不变。

  计量单位(Unit):

各种物理量都有它们的量度单位,并以选定的物质在规定条件显示的数量作为基本量度单位的标准,在不同时期和不同的学科中,基本量的选择何以不同。

如物理学上以时间、长度、质量、温度、电流强度、发光强度、物质的量这7个物理单位为基本量,它们的单位依次为:

秒、米(单位)、千克、开尔文、安培、坎德拉、摩尔。

  投影(Projection):

从初中数学的角度来说,一般地,用光线照射物体,在某个平面(地面、墙壁等)上得到的影子叫做物体的投影(projection),照射光线叫做投影线,投影所在的平面叫做投影面。

有时光线是一组互相平行的射线,例如太阳光或探照灯光的一束光中的光线。

由平行光线形成的投影是平行投影(parallelprojection).由同一点(点光源发出的光线)形成的投影叫做中心投影(centerprojection)。

投影线垂直于投影面产生的投影叫做正投影。

投影线不平行于投影面产生的投影叫做斜投影。

物体正投影的形状、大小与它相对于投影面的位置和角度有关。

投影分很多种,最为常见的则为墨卡托投影,XX地图、GoogleMaps、微软BingMaps都是基于墨卡托投影架构的。

SQLServr2019空间数据应用系列二:

空间索引(SpatialIndex)基础

 在前一篇博文中我们学习到了一些关于地理信息的基础知识,也学习了空间参照系统,既地球椭球体、基准、本初子午线、计量单位、投影等相关理论知识,我们可以使用这些空间参照系统组件来定义一系列应用于地球空间上的几何图像来表示地理空间中的特定功能,表示着地球上一个一个特定的位置点。

本篇主要介绍地理空间索引的概念以及微软SQLServer2019R2中的空间索引的应用。

一、空间索引

  空间索引是指依据空间对象的位置和形状或空间对象之间的某种空间关系按一定的顺序排列的一种数据结构,其中包含空间对象的概要信息。

作为一种辅助性的空间数据结构,空间索引介于空间操作算法和空间对象之间,它通过筛选作用,大量与特定空间操作无关的空间对象被排除,从而提高空间操作的速度和效率。

  来至百科的定义:

为便于空间目标的定位及各种空间数据操作,按要素或目标的位置和形状或空间对象之间的某种空间关系来组织和存储数据的结构。

  关于更多空间索引的知识点需要深入了解EPSG和SRID,本文主要介绍基于微软SQLServer2019的空间数据特性实现介绍,故不详细介绍这些基础理论知识点,有兴趣的可以访问文末的推荐资料链接,了解更多关于EPSG核SRID的相关知识。

二、SQLServer2019的空间参考系统

  微软SQLServer2019的空间系统表(实际上是一个系统视图)"sys.spatial_reference_systems"中存储了详细的支持所有大地测量空间参考系统标准,该表中的每一行数据对应于一个唯一的空间参考系统,可以基于这些空间参考系统在SQLServer2019中来定义任何形式的空间数据。

select*fromsys.spatial_reference_systems

系统表“sys.spatial_reference_systems”中实际上仅仅只是存储了应用于SQLServer2019中地理参照坐标的参考系统,除了空间参考系统可以使用这张表中列出的参考系统标准,也可以基于这些标准来定义基于任何地理投影的空间数据。

三、空间参照文本格式(WKT)

  Well-KnownText(WKT)RepresentationofSpatialReferenceSystems:

顾名思义用众所周知的文字形式来描述看见坐标参考系统,它与EPSG(2019年已经换名)的坐标文字表述模型一致。

WKT字符串应用于确定空间参考系统的组成部分的描述,其定义主要包含以下10项内容:

  1、一个总体的坐标系名

  2、一个地理图形坐标系统名

  3、一个基准面定义

  4、一个椭球体的名字。

长半轴(semi-majoraxis)和反扁率(inverseflattening)

  5、本初子午线(primemeridian)名和其与格林威治子午线的偏移值

  6、投影方法类型(如横轴莫卡托)

  7、投影参数列表(如中央经线等)

  8、一个单位的名称和其到米和弧度单位的转换参数

  9、轴线的名称和顺序

  10、在预定义的权威坐标系中的编码(如EPSG)

selectwell_known_text

fromsys.spatial_reference_systems

whereauthorized_spatial_reference_id=4326

andauthority_name='EPSG'

  基于sys.spatial_reference_systems表定义了多种不同的空间参照系统的WKT描述,如上SQL语句查询出的是我们平时在地图应用开发中使用最多的EPSG:

4326空间参照系统标准,则对于的WKT如下:

GEOGCS["WGS84",

DATUM["WorldGeodeticSystem1984",

ELLIPSOID["WGS84",6378137,298.257223563]],

PRIMEM["Greenwich",0],

UNIT["Degree",0.0174532925199433]

  以上KWT字符串确定了EPSG:

4326空间参照系统的组成部分元素描述,其主要使用了四种空间配置,分别为:

基准(Datum)、椭圆(Ellipsoid)、本初子午线(Primem)和Unit(计量单位)。

关于这些空间参考系统参数在上一篇文中中介绍过,这里就不在做重复介绍,以上KWT字符串表述的意思大致是这样的:

“WGS84坐标系,采用1984年订立的世界地理坐标系统标准,地理标准半径为:

6378137........”。

四、SQLServer2019的空间索引

  SQLServer2019引入了对空间数据和空间索引的支持。

“空间索引”是一种扩展索引,允许您对空间列编制索引。

空间列是包含空间数据类型(如geometry或geography)数据的表列。

本节中的主题介绍了空间索引。

  在SQLServer2019中,空间索引(存储在:

sys.spatial_indexes表中)使用B树构建而成,也就是说,这些索引必须按B树的线性顺序表示二维空间数据。

因此,将数据读入空间索引之前,SQLServer2019先实现对空间的分层均匀分解。

索引创建过程会将空间分解成一个四级“网格层次结构”。

这些级别指的是“第1级”(顶级)、“第2级”、“第3级”和“第4级”。

  每个后续级别都会进一步分解其上一级,因此上一级别的每个单元都包含下一级别的整个网格。

在给定级别上,所有网格沿两个轴都有相同数目的单元(例如4x4或8x8),并且单元的大小都相同。

下图显示了网格层次结构每个级别的右上角单元被分解成4x4网格的情况。

事实上,所有单元都是以这种方式分解的。

因此,以此为例,将一个空间分解成四个级别的4x4网格际上会总共产生65,536个第四级单元。

针对空间索引进行的空间分解与应用程序数据使用的度量单位无关。

 网格层次结构的单元是利用多种Hilbert空间填充曲线以线性方式编号的。

然而,出于演示目的,这里使用的是简单的按行编号,而不是由Hilbert曲线实际产生的编号。

在下图中,几个表示建筑物的多边形和表示街道的线已经放进了一个4x4的1级网格中。

第1级单元的编号为1到16,编号从左上角的单元开始。

 沿网格轴的单元数目确定了网格的“密度”:

单元数目越大,网格的密度越大。

例如,8x8网格(产生64个单元)的密度就大于4x4网格(产生16个单元)的密度。

网格密度是以每个级别为基础定义的。

网格配置单元数目低:

4X4=16,中8X8=64,高16X16=256,默认设置所有级别都为中。

  您可以通过指定非默认的网格密度控制分解过程。

例如,在不同级别指定不同网格密度对于基于索引空间的大小和空间列中的对象来优化索引可能非常有用。

空间索引的网格密度显示在sys.spatial_index_tessellations目录视图的level_1_grid、level_2_grid、level_3_grid和level_4_grid列中。

  将索引空间分解成网格层次结构后,空间索引将逐行读取空间列中的数据。

读取空间对象(或实例)的数据后,空间索引将为该对象执行“分割过程”。

分割过程通过将对象与其接触的网格单元集(“接触单元”)相关联使该对象适合网格层次结构。

从网格层次结构的第1级开始,分割过程以“广度优先”方式对整个级别进行处理。

在可能的情况下,此过程可以连续处理所有四个级别,一次处理一个级别。

  注:

以上内容截取SQLServer2019帮助文档,详细请查看联机帮助文档。

SQLServr2019空间数据应用系列三:

SQLServer2019空间数据类型

 SQLServer2019为大地测量空间数据提供了geography数据类型,为平面空间数据提供了geometry数据类型。

这两个都是MicrosoftFramework通用语言运行时(CLR)类型,并且可以用来存储不同种类的地理元素,例如点、线和多边形。

这两个数据类型都提供了你可以用来执行空间操作的属性和方法,例如计算位置间的距离和找出两者间交叉的地理特性(例如一条河流经一个城镇)。

本篇以SQLServer2019的数据类型为核心内容,介绍其数据类型的支持以及新的空间数据类型的相关特性及基本应用。

一、SQLServer2019通用数据类型

  在SQLServer2019中的每个变量,参数都会被定义为一个特定的数据类型,这些特定的数据类型主要用于排序、存储等,在SQLServer2019中的通用数据类型和SQLServer2019一样,主要的几个通用数据类型为下表所示:

 二、SQLServer2019空间数据类型

  SQLServer2019中出了兼容低版本的SQL数据库的通用数据类型和其他基础数据类型(比如:

),新推出了两个用于支持空间数据存储的空间数据类型,分别为:

大地向量空间类型(geography)和几何平面向量空间类型(geometry)。

  1、geography数据类型

  官方定义:

geography数据类型为空间数据提供了一个由经度和纬度联合定义的存储结构。

使用这种数据的典型用法包括定义道路、建筑、或者地理特性如可以覆盖到一个光栅图上的向量数据,它考虑了地球的弯曲性,或者计算真实的圆弧距离和空中传播轨道,而这些在一个平面模型中所存在的固有失真引起的错误程度是不可接受的。

  2、geometry数据类型

  官方定义:

geometry数据类型为空间数据提供了一个存储结构,它是由任意平面上的坐标定义的。

这种数据通常是用在区域匹配系统中的,例如由美国政府制定的州平面系统,或者是不需要考虑地球弯曲性的地图和内层布置图。

geometry数据类型提供了与开放地理空间联盟(OGC)SimpleFeaturesSpecificationforSQL标准结合的属性和方法,使得你可以对geometry数据执行操作以产生行业标准的行为。

 虽然这两个数据类型都可以用于存储空间数据,在针对不同的空间数据的时候还是有所异同。

如果我们需要自己基于SQLServer2019来做空间数据定义,就需要根据不同的数据在这两种空间数据类型中作出正确的决策了,这点在以后的博文中会进行介绍,这里飘过。

此两种空间类型是完美符合空间参照系统标准制定的,包括测距计量单位、空间引用索引、授权标准以及WKT等规范,如下SQL可查看对于空间数据类型所对于的空间引用索引标准中制定的地理空间测距计量单位:

SELECT

unit_of_measure

FROM

sys.spatial_reference_systems

WHERE

authority_name='EPSG'

AND

authorized_spatial_reference_id=4326

执行结果:

metre

三、空间数据的存储方式

  SQLServer2019中的两种空间数据:

大地向量空间类型(geography)和几何平面向量空间类型(geometry)都是可变长度的数据类型,这意味着它们相对于比如int或者datetime等固定长度的数据类型,其存储的数据占用空间根据所存储数据的复杂程度、数据描述文字等不同可自适应数据类型的长度变化。

  空间数据类型字段的数据存储以8个字节的二进制格式存储,每条记录的数据的头部分就被定义好了空间数据的类型(点、线、面等类型),以及所使用的空间参考系统和地理坐标(经度、纬度)等值。

通常情况下二进制数据内容越长所占用的空间数据存储空间就越大。

四、空间数据可视化

  在SQLServer2019中Microsoft引入具有两个新的内置数据类型、几何图形和地理空间数据支持。

尽管您可能“看到”数据空间列的二进制数据存储但还是不能直观的反应出空间数据的预览效果,SQLServer2019的SQLServerManagementStudio中提供了一个空间结果选项卡,专门用于可视化预览空间数据结果。

  比如当前执行查询重庆大区边界的空间数据,那么对应于重庆大区边界数据库表可以执行以下SQL:

SELECT[ID]

[CODE]

[ELEV]

[NAME]

[geom]

FROM[BingMapsDB].[dbo].[CQ_Area_region]

  得到相应的SQL查询记录结果和空间可视化结果为下图所示:

SQLServr2019空间数据应用系列四:

基础空间对象与函数应用

 SQLServer2019中支持的7种基础空间对象实例,分别为:

点(Point)、点集合(MultiPoint)、线(LineString)、线集合(MultiLineString)、多边形(Polygon)、多边形集合(MultiPolygon)和空间集合(GeometryCollection)。

本篇意在为大家介绍SQLServer2019空间数据库系统组成部分中的基础空间对象以及系统内置的相关函数API,并就这些开发API进行介绍基于SQLServer2019空间数据库系统的开发与应用。

一、点(Point)

  在SQLServer空间数据中,Point是表示单个位置的零维对象,可能包含Z(仰角)和M(度量)值。

可以通过下面SQL创建一个点的示例,默认该点的SRID(空间引用标识)为0。

DECLARE@pgeometry;

SET@p=geometry:

:

Parse('POINT(30.6666587469201104.062021177233)');

select@p.STXASX;

select@p.STYASY;

  如下SQL命令这创建了包含Z(仰角)和M(度量)值的点(Point)实例,其中Z(仰角)和M(度量)值可以显示的指定为“null”。

DECLARE@ggeometry;

SET@g=geometry:

:

Parse('POINT(30.6666587469201104.062021177233153.5)');

--SET@g=geometry:

:

Parse('POINT(30.6666587469201104.062021177233nullnull)');

select@g.STXASX

select@g.STYA

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2