sql server 空间数据(geometry类型)创建、查询、空间分析和计算

1、SQL语言实现空间对象的创建、插入、删除、查询。

1.1直接创建空间对象
查找SQLServer的帮助文档,查找到不需要建立表也能直接创建空间对象,运用DECLARE和SET STGeomFromText()的方法声明空间对象,并赋值,代码如下。在这里插入图片描述
执行创建空间对象的代码,可以看到表结果和空间结果如下图所示。
在这里插入图片描述

在这里插入图片描述
1.2创建存储空间对象的表结构以存储空间对象。
创建空间对象的表,运用geometry的数据类型的代码如下。
在这里插入图片描述
执行创建表的代码后,可以看到创建空间对象的存储表的字段如下图所示。
在这里插入图片描述

1.3空间对象得插入。
运用insert values()结构和空间对象的STGeomFromText()方法创建点,线,面的代码如下所示。
在这里插入图片描述
插入五条数据后,可以看到表中新增了五条空间对象的记录。直接显示为他们的空间对象文本形式和转为文本的形式。
在这里插入图片描述

1.4空间对象的查询。
1.4.1 查找表中的满足Where条件的对象
书写SQL的查询语句,同时显示为十六进制形式和open gis的WKT文本形式的代码如下。
在这里插入图片描述
执行后的表结果和空间结果如下图所示,可以看到一条折线段和一个面状几何形状。
在这里插入图片描述
1.4.2查询表中与id为2的面相交的空间对象
查询与面相交需要用到空间函数Crosses,其查询的SQLServer代码如下。
在这里插入图片描述
可以看到查出的与面相交的空间对象为如图所示的折线段。
在这里插入图片描述
在这里插入图片描述
1.4.3查询获取面对象和线对象相交部分的空间对象
声名空间对象的变量,并把表中已有的空间数据赋值给空间数据变量,然后调用STIntersection()的空间方法代码如下。
在这里插入图片描述
执行代码后,可以看到如下图所示的空间结果和表结果,和上次查相交的对象相比较,这次查询的与两个对象相交的部分,由两个顶点的坐标表示。
在这里插入图片描述

1.4.4查空间对象的并集
声名并赋值两个空间对象,然后运用Union空间方法直接查询出并集的代码如下。
在这里插入图片描述
执行代码后,可以看到空间对象执行后查询到的并集对象的表结果和空间结果如下。
在这里插入图片描述
1.5空间对象的删除。
运用关系型数据库的删除语句,删除表中的行,即可以删除空间对象,代码如下。
在这里插入图片描述
删除后可以看到原来的空间数据表少了一行,即为删除了第五行空间数据。
在这里插入图片描述

2利用扩展的geometry方法实现简单的空间计算、空间分析。

2.1空间计算
2.1.1计算长度
运用Length()的空间方法计算空间对象的长度,其代码如下。
在这里插入图片描述
计算空间对象的长度结果如下所示。
在这里插入图片描述
2.1.2计算面积
运用area()空间方法计算空间对象的面积,其代码如下图所示。
在这里插入图片描述
计算表中空间对象的面积的表结果如下。
在这里插入图片描述
2.2缓冲区分析
声名并赋值一个三角形的空间对象,其代码如下。
在这里插入图片描述
创建的空间对象在生成缓冲区前的表结果和空间结果如下。
在这里插入图片描述
更改查询的条件,调用buffer()方法,获取缓冲区对象的代码如下。
在这里插入图片描述
获取的缓冲区对象的表结果和控件结果如下图所示。
在这里插入图片描述
微软sql server帮助文档参考:https://docs.microsoft.com/zh-cn/sql/t-sql/spatial-geometry/spatial-types-geometry-transact-sql?view=sql-server-ver15

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值