SQL Server应用系列八:基于Bing Maps(Silverlight)的空间数据存储.doc
文本预览下载声明
目录
geography (Transact-SQL) 1
SQL Server 2008 R2 1
A. 显示如何添加和查询地理数据 2
B. 返回两个 geography 实例的交集 3
SQL Server 2008 3
注册 geography 类型 3
STArea 4
STAsBinary 5
STAsText 6
STBuffer 7
STDimension 8
STDisjoint 9
STDistance 10
STEndpoint 11
STGeometryN 12
STGeometryN(geography 数据类型) 12
STGeometryType 13
STIntersection 14
STIntersects 15
STIsClosed 16
STIsEmpty 17
STLength 17
STNumGeometries 18
STNumPoints 19
STPointN 20
STSrid 21
STStartPoint 22
STUnion 23
geography (Transact-SQL)
SQL Server 2008 R2
SQL Server 2008
地理空间数据类型 geography 是作为 SQL Server 中的 .NET 公共语言运行时 (CLR) 数据类型实现的。此类型表示圆形地球坐标系中的数据。SQL Servergeography 数据类型用于存储诸如 GPS 纬度和经度坐标之类的椭球体(圆形地球)数据。
SQL Server 2008 支持 geography 空间数据类型的一组方法。这些方法包括开放地理空间联盟 (OGC) 标准和对该标准的一组 Microsoft 扩展所定义的 geography 方法。
注册 geography 类型
geography 类型已进行预定义,可在每个数据库中使用。您可以创建 geography 类型的表列并对 geography 数据进行操作,就像使用其他系统提供的数据类型一样。
示例
A. 显示如何添加和查询地理数据
以下示例显示了如何添加和查询地理数据。第一个示例创建包含一个标识列和一个 geography 列 GeogCol1 的表。第三列将 geography 列呈现为其开放地理空间联盟 (OGC) 熟知文本 (WKT) 表示形式,并使用 STAsText() 方法。接下来将插入两行:一行包含 geography 类型的 LineString 实例,一行包含 Polygon 实例。
IF OBJECT_ID ( dbo.SpatialTable, U ) IS NOT NULL
DROP TABLE dbo.SpatialTable;
GO
CREATE TABLE SpatialTable
( id int IDENTITY (1,1),
GeogCol1 geography,
GeogCol2 AS GeogCol1.STAsText() );
GO
INSERT INTO SpatialTable (GeogCol1)
VALUES (geography::STGeomFromText(LINESTRING(-122.360 47.656, -122.343 47.656 ), 4326));
INSERT INTO SpatialTable (GeogCol1)
VALUES (geography::STGeomFromText(POLYGON((-122.358 47.653 , -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)), 4326));
GO
B. 返回两个 geography 实例的交集
以下示例使用 STIntersection() 方法返回两个以前插入的 geography 实例相交的点。
DECLARE @geog1 geography;
DECLARE @geog2 geography;
DECLARE @result geography;
SELECT @geog1 = GeogCol1 FROM SpatialTable WHERE id = 1;
SELECT @geog2 = GeogCol1 FROM SpatialTable WHERE id = 2;
SELECT @result = @geog1.STIntersection(@geog2);
SELECT @result.STAsText();
SQL Server 2008
SQL Server 2008 R2
地理空间数据类型 geography 是作为 SQL Server 中的 .
显示全部