摘自SQL Server 2008帮助
平面空间数据类型 geometry 是作为 SQL Server 中的公共语言进行时 (CLR) 数据类型实现的。此类型表示欧几里得(平面)坐标系中的数据。
注册 geometry 类型
geometry 类型已进行预定义,并可在每个数据库中使用。您可以创建 geometry 类型的表列并对 geometry 数据进行操作,就像使用其他 CLR 类型一样。
示例
以下两个示例显示了如何添加和查询几何图形数据。第一个示例创建了带有标识列和 geometry
列 GeomCol1
的表。第三列将 geometry
列呈现为其开放地理空间联盟 (OGC) 熟知文本 (WKT) 表示形式,并使用 STAsText()
方法。接下来将插入两行:一行包含 geometry
类型的 LineString
实例,一行包含 Polygon
实例。
IF OBJECT_ID ( 'dbo.SpatialTable', 'U' ) IS NOT NULL
DROP TABLE dbo.SpatialTable;
GO
CREATE TABLE SpatialTable
( id int IDENTITY (1,1),
GeomCol1 geometry,
GeomCol2 AS GeomCol1.STAsText() );
GO
INSERT INTO SpatialTable (GeomCol1)
VALUES (geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0));
INSERT INTO SpatialTable (GeomCol1)
VALUES (geometry::STGeomFromText('POLYGON ((0 0, 150 0, 150 150, 0 150, 0 0))', 0));
GO
第二个示例使用 STIntersection()
方法返回两个以前插入的 geometry
实例相交的点。
DECLARE @geom1 geometry;
DECLARE @geom2 geometry;
DECLARE @result geometry;
SELECT @geom1 = GeomCol1 FROM SpatialTable WHERE id = 1;
SELECT @geom2 = GeomCol1 FROM SpatialTable WHERE id = 2;
SELECT @result = @geom1.STIntersection(@geom2);
SELECT @result.STAsText();
维度
非空 geometry 实例可以为零维、一维或二维。零维 geometries(例如 Point 和 MultiPoint)没有长度或面积。一维对象(例如 LineString 和 MultiLineString)具有长度。二维实例(例如 Polygon 和 MultiPolygon)具有面积和长度。空实例将报告为 -1 维,并且GeometryCollection 将根据其内容类型报告一个面积。
空
“空”geometry 实例不包含任何点。空的 LineString 和 MultiLineString 实例的长度为零。空的 Polygon 和 MultiPolygon 实例的面积为 0。
简单
为了使实例的 geometry 变得“简单”,必须符合以下全部两个要求:
实例的每个图形不能与自身相交,但其终点除外。
实例的任何两个图形可在某个点上相交,但两个边界上的点除外。
边界、内部和外部
geometry 实例的“内部”是指由实例占用的空间,而“外部”是指未占用的空间。
“边界”由 OGC 定义,如下所示:
-
Point 和 MultiPoint 实例没有边界。
-
LineString 和 MultiLineString 边界由起始点和终点形成,并删除那些出现次数为偶数的点。
包络线
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_text 为 nvarchar(max) 表达式。
SRID
一个 int 表达式,它表示您希望返回的 geometry 实例的空间引用 ID (SRID)。
返回类型
SQL Server 返回类型:geometry
CLR 返回类型:SqlGeometry
备注
STGeomFromText()
返回的 geometry 实例的 OGC 类型设置为相应的 WKT 输入。
如果输入格式不正确,此方法将引发 FormatException。
示例
下面的示例使用 STGeomeFromText()
创建 geometry
实例。
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0);
SELECT @g.ToString();
分享到:
相关推荐
### SQL Server 2008 空间数据类型概览 #### 知识点一:空间数据类型介绍 在SQL Server 2008中,空间数据类型的引入为数据库领域带来了革命性的变化,尤其在处理地理位置信息时,极大地提高了效率和准确性。空间...
- 数据库引擎:支持数据类型如 Geography 和 Geometry,增强了空间数据存储和查询能力;FILESTREAM特性允许将BLOB数据存储在文件系统中。 - 先进的安全性:新增透明数据加密(TDE),增强了对数据库文件的保护;...
在数据类型方面,SQL Server 2008也进行了扩展,支持非关系数据类型,比如FILESTREAM,以及其他的如 Geography 和 Geometry 空间数据类型,它们用于存储和操作地理坐标和几何形状。这些新数据类型使得SQL Server能够...
### SQL2008平面空间数据类型geometry数据类型方法引用详解 #### 一、概述 在SQL Server 2008中,`geometry`数据类型是用于存储平面空间数据的一种重要方式。它允许用户在数据库中操作地理空间数据,如地图上的点...
3. **数据类型扩展**:新增了 Geography 和 Geometry 数据类型,用于存储和操作空间数据,支持地理信息系统(GIS)应用。 4. **Policy-Based Management(基于策略的管理)**:提供了一种集中式管理方式,可以定义...
此外,SQL Server 2008还引入了GEOGRAPHY和GEOMETRY这两种空间数据类型。GEOGRAPHY类型用于存储地理位置信息,支持基于球面的坐标系统,适用于地球表面的地理数据处理。GEOMETRY类型则用于平面或欧几里得空间中的...
5. **数据类型**: 全面支持SQL Server 2008引入的新数据类型,如FILESTREAM、HIERARCHYID、GEOMETRY和GEOGRAPHY等空间数据类型。 **安装和配置** 安装SQL Server Native Client 2008通常涉及以下步骤: 1. 下载并...
在SQL Server中创建一个包含空间数据的表,需要使用geometry数据类型。例如,以下语句创建了一个名为streets的表,其中包含id、名称和几何形状三个字段,几何形状字段类型为geometry。 ```sql CREATE TABLE streets...
- **新数据类型支持**:增加了新的数据类型如`GEOMETRY`、`GEOGRAPHY`等,以支持地理空间数据的存储和处理。 - **增强的数据类型功能**:对于已有数据类型进行了增强,比如对`VARCHAR`类型的支持增加到了最大8000个...
4. **数据类型**:新添了FILESTREAM、 Geography 和 Geometry 数据类型,支持非结构化数据存储和空间数据处理,扩大了数据库的应用范围。 5. **备份与恢复**:SQL Server 2008提供了灵活的备份选项,如差异备份、...
SQL Server 2008引入了两种空间数据类型:`geometry`和`geography`。这两种类型都支持点、线、多边形等基本几何对象,但它们之间有一个重要的区别:`geometry`用于存储平面上的对象,而`geography`则用于存储地球...
标签中的"CLR Types"是指用于SQL Server的.NET框架类型,它们提供了一系列预定义的类,用于处理SQL Server特有的数据类型,如 Geography 和 Geometry(空间类型),或者XML、DateTimeOffset等复杂类型。这些类型使得...
2. **空间数据类型**:SQL Server 2008 提供了两种内置的空间数据类型——`Geometry`和`Geography`。`Geometry`用于处理欧几里得(平面)空间数据,适用于不考虑地球曲率的场景;`Geography`则基于球面几何,适用于...
SQL Server 2008引入了两种新的数据类型:`GEOMETRY`和`GEOGRAPHY`,专门用于存储和操作几何和地理数据。`GEOMETRY`类型处理笛卡尔坐标系中的平面几何形状,而`GEOGRAPHY`则处理基于球面或椭球体的地球表面的地理...
4. **数据类型增强**: 添加了 Geography 和 Geometry 类型,支持空间数据处理。 5. **Policy-Based Management**: 基于策略的管理,简化了数据库的合规性和配置管理。 6. **Resource Governor**: 控制服务器资源分配...
SQL Server还提供了其他数据类型,如DATE、TIME、DATETIME2、DATEIMEOFFSET、BINARY、VARBINARY、BOOLEAN(在某些版本中可用)、XML、SQL_VARIANT、HIERARCHYID、GEOMETRY、GEOGRAPHY等,这些类型为各种场景提供了...
它提供了对新的SQL Server功能的支持,如XML数据类型、行版本控制以及透明网络IP失败重试等。 2. **SQL Server Native Client 10.0**:对应于SQL Server 2008。此版本增加了对新特性如FILESTREAM、Policy-Based ...
1. 数据类型扩展:增加了FILESTREAM、 Geography 和 Geometry 等类型,支持地理空间数据和大数据流处理。 2. 表分区:通过分区策略提升大规模数据表的查询性能。 3. 改进的索引:引入了覆盖索引、稀疏索引和Filtered...
- **Geometry数据类型**:用于表示平面上的空间对象,如点、线和多边形。 - **Geography数据类型**:用于表示地球上(通常是球体或椭球体模型)的空间对象,支持经纬度坐标。 ##### 2. 存储空间数据 在SQL Server 2008中...
SQL Server中的空间数据类型主要有两种:`geometry`和`geography`。前者用于平面坐标系统,后者用于球面坐标系统(地球表面)。点、线和面都是这些数据类型的基础元素。在C#程序中,可以使用System.Data.SqlTypes...