技术开发 频道

如何检索SQL Server的GML格式空间数据

  【IT168 技术文档】在此练习中,您将创建返回以地理标记语言 (GML) 表示的空间数据的存储过程。GML 是一个由开放地理空间联盟 (OGC) 定义的标准,用于在应用程序和系统之间交换地理数据。SQL Server 中的空间数据类型支持 GML 作为空间数据类型实例的数据源,也支持 GML 作为表示空间数据值的格式。借助对 GML 的这种支持,可以轻松地在 SQL Server 中的空间数据和其他地理空间系统(如 Microsoft Virtual Earth)之间进行集成。

  注意:您可以从 C:\SQLHOLS\Spatial and VE\Solution\StoredProcs.sql 复制此练习中使用的代码

  创建包含空间数据的数据库

  1. 从开始菜单中的 Microsoft SQL Server 2008 程序组中启动 SQL Server Management Studio。收到提示时,使用 Windows 身份验证连接到数据库引擎的 (local) 实例。

  2. 打开 C:\SQLHOLs\Spatial and VE\Starter 文件夹中的 Create DB.sql 查询文件。

  3. 检查此脚本中的 Transact-SQL 代码。请注意,此代码执行下列任务:

  • 删除名为 StoreData的数据库并重新创建它。

  • 创建一个名为 Stores 表,其中包含名为 StoreLocation 的 geography列。

  • 在 StoreLocation 列上创建一个空间索引。

  • 在 Stores 表中插入大量记录。每个记录都包含一个由纬度和经度坐标定义的表示地理点的 StoreLocation 值。

  4. 单击执行运行此脚本。如果尚不存在 StoreData 数据库,请忽略任何有关无法删除该数据库的错误。

  5. 保持 SQL Server Management Studio 打开,下一个过程还要使用此程序。

  创建检索所有商店的存储过程

  1. 单击新建查询创建新查询。如果收到提示,请使用 Windows 身份验证连接到 (local) 数据库引擎实例。

  2. 在查询编辑器中键入以下 Transact-SQL 代码。

  USE StoreData

  
GO

  
CREATE PROCEDURE GetStoresGML

  
AS

  
-- Return the store location geography data as GML

  
SELECT StoreName,

  StoreAddress
+ ', Tel:' + StorePhone AS ContactDetails,

  StoreLocation.AsGml()
As StoreGML

  
FROM Stores

  
GO

 

  注意:此代码使用地理数据类型的 AsGml 方法返回 GML 格式的空间数据值。

  3. 单击执行运行此脚本。

  4. 在 CREATE PROCEDURE 语句下,添加下面的代码以测试存储过程。

  EXECUTE GetStoresGML

  5. 选择刚刚添加的 EXECUTE 语句,然后单击执行运行所选的代码。

  6. 在结果窗格中,单击任意 StoreGML 值在 XML 查看器中查看空间数据的 GML 表示形式。

  7. 关闭 XML 查看器并返回到查询编辑器。

0