摘自SQL Server 2008帮助

平面空间数据类型 geometry 是作为 SQL Server 中的公共语言进行时 (CLR) 数据类型实现的。此类型表示欧几里得(平面)坐标系中的数据。

注册 geometry 类型

geometry 类型已进行预定义,并可在每个数据库中使用。您可以创建 geometry 类型的表列并对 geometry 数据进行操作,就像使用其他 CLR 类型一样。

示例

以下两个示例显示了如何添加和查询几何图形数据。第一个示例创建了带有标识列和 geometryGeomCol1 的表。第三列将 geometry 列呈现为其开放地理空间联盟 (OGC) 熟知文本 (WKT) 表示形式,并使用 STAsText() 方法。接下来将插入两行:一行包含 geometry 类型的 LineString 实例,一行包含 Polygon 实例。

ALTER PROCEDURE [dbo].[Spatialpro]
AS
BEGIN
if object_id('dbo.test','u') is null
CREATE TABLE test(id INT IDENTITY(1,1),Geocol1 geometry,Geocol2 as Geocol1.STAsText());
insert into test(Geocol1)values(geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)',0));
insert into test(Geocol1)values(geometry::STGeomFromText('POLYGON ((0 0, 150 0, 150 150, 0 150, 0 0))',0));
END

  第二个示例使用 STIntersection() 方法返回两个以前插入的 geometry 实例相交的点。

ALTER PROCEDURE [dbo].[Spatialpro]
AS
BEGIN
declare @g1 geometry;
declare @g2 geometry;
declare @result geometry;
select @g1=Geocol1 from test where id=1;
select @g2=Geocol1 from test where id=2;
select @result=@g1.STIntersection(@g2);
select @result;
END

  

维度

非空 geometry 实例可以为零维、一维或二维。零维 geometries(例如 PointMultiPoint)没有长度或面积。一维对象(例如 LineStringMultiLineString)具有长度。二维实例(例如 PolygonMultiPolygon)具有面积和长度。空实例将报告为 -1 维,并且GeometryCollection 将根据其内容类型报告一个面积。

“空”geometry 实例不包含任何点。空的 LineStringMultiLineString 实例的长度为零。空的 PolygonMultiPolygon 实例的面积为 0。

简单

为了使实例的 geometry 变得“简单”,必须符合以下全部两个要求:

  • 实例的每个图形不能与自身相交,但其终点除外。
  • 实例的任何两个图形可在某个点上相交,但两个边界上的点除外。

边界、内部和外部

geometry 实例的“内部”是指由实例占用的空间,而“外部”是指未占用的空间。

“边界”由 OGC 定义,如下所示:

  • PointMultiPoint 实例没有边界。
  • LineStringMultiLineString 边界由起始点和终点形成,并删除那些出现次数为偶数的点。

包络线

geometry 实例的“包络线”又称为“边界框”,它是一个由实例的最小和最大坐标 (X,Y) 形成的轴对齐矩形。

闭合

“闭合的”geometry 实例是指起始点和终点相同的图形。Polygon 实例是闭合的。Point 实例不是闭合的。

环是一个简单、闭合的 LineString 实例。

空间引用标识符 (SRID)

空间引用标识符 (SRID) 是指定 geometry 实例所在的坐标系的标识符。两个拥有不同 SRID 的实例是不可比的。

geometry 数据类型提供了许多内置方法,您可以使用这些方法基于现有实例创建新的 geometry 实例。

geometry 数据类型提供了许多内置方法,您可以使用这些方法确定两个 geometry 实例之间的关系。

所有 geometry 实例都有很多可以通过 SQL Server 提供的方法进行检索的属性。下列主题定义了几何图形类型的属性和行为,并为查询每种图形定义了方法。

可通过以熟知文本(Well-Known Text,WKT)或熟知二进制(Well-Known Binary,WKB)格式输入数据来构造 geometry 空间数据类型的实例。

STGeomFromText(geometry 数据类型)

从开放地理空间联盟 (OGC) 熟知文本 (WKT) 表示形式返回 geometry 实例,增加了该实例传递的任何 Z(标高)和 M(度量)值。

语法

STGeomFromText ( 'geometry_tagged_text' , SRID )

参数

geometry_tagged_text

您希望返回的 geometry 实例的 WKT 表示形式。geometry_tagged_textnvarchar(max) 表达式。

SRID

一个 int 表达式,它表示您希望返回的 geometry 实例的空间引用 ID (SRID)。

返回类型

SQL Server 返回类型:geometry

CLR 返回类型:SqlGeometry

备注

STGeomFromText() 返回的 geometry 实例的 OGC 类型设置为相应的 WKT 输入。

如果输入格式不正确,此方法将引发 FormatException

ALTER PROCEDURE [dbo].[Spatialpro]
AS
BEGIN
declare @g1 geometry;
set @g1=geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0);
select @g1;
END

  

SQL Server 2008 geometry 数据类型的更多相关文章

  1. SQL Server 2008空间数据应用系列三:SQL Server 2008空间数据类型

    原文:SQL Server 2008空间数据应用系列三:SQL Server 2008空间数据类型 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server ...

  2. sql server 2008 数据库数据类型

    sql server 2008 数据库数据类型 一.数值型 int:整数类型,它的精度由执行机构确定.. smallint:短整数类型,它的精度由执行机构确定.. numeric(p,s):数值型,并 ...

  3. 【转】SQL Server 2008 新数据类型

    概览: 新日期和时间数据类型 代表在层次结构中的位置 用于处理空间数据的两种模型 在全球经济环境下开展业务这一趋势越来越要求各公司使用新型的数据.应用程序以及复杂的计算.SQL Server 2008 ...

  4. SQL SERVER 2008 Hierarchyid数据类型

    以往我们在关系数据库中建立树状结构的时候,通常使用ID+ParentID来实现两条纪录间的父子关系.但这种方式只能标示其相对位置.解决这类问题在SqlServer2005出现之前通常是采用游标来操作, ...

  5. C#中SQL SERVER 2008字符数据类型使用心得

    一.尽可能使用Varchar,少使用或者不使用Char字符类型 因为char类型输入的数据长度达不到设计长度,会用空格补足,下面是数据表设计图: 下面是编辑前200行的图: 凡是输入的数据长度达不到设 ...

  6. SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型

    原文:SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测 ...

  7. SQL SERVER 数据类型详解(SQL Server 2008)

    数据类型类别 SQL Server 中的数据类型归纳为下列类别: 数字类型 1.精确数字 2.近似数字 3.日期和时间 字符串类型 4.非Unicode字符串 4.Unicode字符串 5.二进制字符 ...

  8. SQL Server 2008空间数据应用系列九:使用空间工具(Spatial Tools)导入ESRI格式地图数据

    转自:http://www.cnblogs.com/beniao/archive/2011/03/22/1989310.html 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Micros ...

  9. SQL Server 2008空间数据应用系列六:基于SQLCRL的空间数据可编程性

    原文:SQL Server 2008空间数据应用系列六:基于SQLCRL的空间数据可编程性 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 ...

随机推荐

  1. 关于IE11

    最近,一个开发代号为Windows Blue的Windows操作系统泄漏到了互联网上,该操作系统的内置浏览器为IE11,本文将介绍一下这个泄漏版的IE11中有哪些关键的新变化和新特性. 预先声明: 本 ...

  2. (转)SQL中的ISNULL函数介绍

    SQL中有多种多样的函数,下面将为您介绍SQL中的ISNULL函数,包括其语法.注释.返回类型等,供您参考,希望对您学习SQL能够有所帮助. ISNULL 使用指定的替换值替换 NULL. 语法ISN ...

  3. Qt sqlite

    原文地址:http://blog.csdn.net/NewBee520/article/details/8247236QSqlDatabase类实现了数据库连接的操作 QSqlQuery类用来执行SQ ...

  4. org.hibernate.service.jndi.JndiException: Error parsing JNDI name []

    我的hibernate.cfg.xml文件如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTY ...

  5. Linux下Tomcat的安装配置 去掉应用名称

    http://blog.csdn.net/zhuying_linux/article/details/6583096/ Tomcat下为每个Web应用配置不同的访问端口 http://www.linu ...

  6. HTML5画布(线条、渐变)

    绘制直线时,一般会用到moveTo与lineTo两种方法. 案例1: <!DOCTYPE html><html><head lang="en"> ...

  7. C语言内存分配函数

    c语言标准库提供了3个内存分配的函数,都包含在头文件<stdlib.h>中 1.malloc 函数原型: void *malloc( size_t size ); 参数:要分配内存大小的字 ...

  8. Linux下使用VirtualBox安装Windows系统

    (文档比较长,只是写的详细,实际操作起来相对简单.) 由于一些特殊原因,我们并不能完全抛下Windows而使用Linux.VirtualBox 是一款虚拟机软件,支持多系统.在Linux下安装 Vir ...

  9. 安卓开发中ScrollView不能用RelativeLayout的解决方案

    RelativeLayout的意义: 布局各个部件的相对布局.使得界面空间合理利用. 一.ScrollView局限: 滑动的只能是linearlayout,甚至整个布局都不能有RelativeLayo ...

  10. DELL配置信息

    CPU详情CPU厂商 英特尔CPU (英特尔)Intel(R) Core(TM) i3 CPU M 370 @ 2.40GHzCPU核心数 2CPU默认频率 2400 MhzCPU外频 533 MHz ...