查询几何图形实例的属性和行为
所有 geometry 实例都有很多可以通过 SQL Server 提供的方法进行检索的属性。下列主题定义了几何图形类型的属性和行为,并为查询每种图形定义了方法。
点数
所有非空 geometry 实例都由“点”组成。这些点表示在其上绘制几何图形的面的 X 和 Y 坐标。geometry 提供许多用于查询实例的点的内置方法。
返回构成实例的点数。
返回实例中的特定点
返回位于实例上的某个任意点
返回实例的起始点
返回实例的终点
返回点实例的 X 坐标
返回点实例的 Y 坐标
返回多边形实例的几何中心点
维度
非空 geometry 实例可以为零维、一维或二维。零维 geometries(例如 Point 和 MultiPoint)没有长度或面积。一维对象(例如 LineString 和 MultiLineString)具有长度。二维实例(例如 Polygon 和 MultiPolygon)具有面积和长度。空实例将报告为 -1 维,并且GeometryCollection 将根据其内容类型报告一个面积。
空
“空”geometry 实例不包含任何点。空的 LineString 和 MultiLineString 实例的长度为零。空的 Polygon 和 MultiPolygon 实例的面积为 0。
确定实例是否为空
简单
为了使实例的 geometry 变得“简单”,必须符合以下全部两个要求:
实例的每个图形不能与自身相交,但其终点除外。
实例的任何两个图形可在某个点上相交,但两个边界上的点除外。
![]() |
---|
空几何图形总是简单的。 |
确定实例是否是简单的
边界、内部和外部
geometry 实例的“内部”是指由实例占用的空间,而“外部”是指未占用的空间。
“边界”由 OGC 定义,如下所示:
Point 和 MultiPoint 实例没有边界。
LineString 和 MultiLineString 边界由起始点和终点形成,并删除那些出现次数为偶数的点。
DECLARE @g geometry;
SET @g = geometry::Parse('MULTILINESTRING((0 1, 0 0, 1 0, 0 1), (1 1, 1 0))');
SELECT @g.STBoundary().ToString();
Polygon 或 MultiPolygon 实例的边界是其环的集合。
DECLARE @g geometry;
SET @g = geometry::Parse('POLYGON((0 0, 3 0, 3 3, 0 3, 0 0), (1 1, 1 2, 2 2, 2 1, 1 1))');
SELECT @g.STBoundary().ToString();
返回实例的边界
闭合
“闭合的”geometry 实例是指起始点和终点相同的图形。Polygon 实例是闭合的。Point 实例不是闭合的。
环是一个简单、闭合的 LineString 实例。
确定实例是否闭合
确定实例是否为环
返回多边形实例的外环
返回多边形的内环数
返回多边形的指定内环
空间引用标识符 (SRID)
空间引用标识符 (SRID) 是指定 geometry 实例所在的坐标系的标识符。两个拥有不同 SRID 的实例是不可比的。
设置或返回实例的 SRID
此属性可以进行修改。