友情提示,您阅读本篇博文的先决条件如下:

  1、具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验。

  2、熟悉或了解Microsoft SQL Server 2008中的空间数据类型。

  3、具备相应的GIS专业理论知识

  4、其他相关知识


  SQL Server 2008为大地测量空间数据提供了geography数据类型,为平面空间数据提供了geometry数据类型。这两个都是Microsoft .NET Framework通用语言运行时(CLR)类型,并且可以用来存储不同种类的地理元素,例如点、线和多边形。这两个数据类型都提供了你可以用来执行空间操作的属性和方法,例如计算位置间的距离和找出两者间交叉的地理特性(例如一条河流经一个城镇)。本篇以SQL Server 2008的数据类型为核心内容,介绍其数据类型的支持以及新的空间数据类型的相关特性及基本应用。

        

一、SQL Server 2008通用数据类型

  在SQL Server 2008中的每个变量,参数都会被定义为一个特定的数据类型,这些特定的数据类型主要用于排序、存储等,在SQL Server 2008中的通用数据类型和SQL Server 2005一样,主要的几个通用数据类型为下表所示:

  

通用数据类型

数据类型 描述
char 固定长度字符串
datetime 日期时间类型字段
float 单精度字段
int 整型字段
money 货币类型
nvarchar 可变长字符型

二、SQL Server 2008空间数据类型

  SQL Server 2008中出了兼容低版本的SQL数据库的通用数据类型和其他基础数据类型(比如:),新推出了两个用于支持空间数据存储的空间数据类型,分别为:大地向量空间类型(geography)和几何平面向量空间类型(geometry)。

  1、geography数据类型

  官方定义:geography数据类型为空间数据提供了一个由经度和纬度联合定义的存储结构。使用这种数据的典型用法包括定义道路、建筑、或者地理特性如可以覆盖到一个光栅图上的向量数据,它考虑了地球的弯曲性,或者计算真实的圆弧距离和空中传播轨道,而这些在一个平面模型中所存在的固有失真引起的错误程度是不可接受的。

  2、geometry数据类型

  官方定义:geometry数据类型为空间数据提供了一个存储结构,它是由任意平面上的坐标定义的。这种数据通常是用在区域匹配系统中的,例如由美国政府制定的州平面系统,或者是不需要考虑地球弯曲性的地图和内层布置图。geometry 数据类型提供了与开放地理空间联盟(OGC)Simple Features Specification for SQL标准结合的属性和方法,使得你可以对geometry数据执行操作以产生行业标准的行为。

      

  虽然这两个数据类型都可以用于存储空间数据,在针对不同的空间数据的时候还是有所异同。如果我们需要自己基于SQL Server 2008来做空间数据定义,就需要根据不同的数据在这两种空间数据类型中作出正确的决策了,这点在以后的博文中会进行介绍,这里飘过。此两种空间类型是完美符合空间参照系统标准制定的,包括测距计量单位、空间引用索引、授权标准以及WKT等规范,如下SQL可查看对于空间数据类型所对于的空间引用索引标准中制定的地理空间测距计量单位:

SELECT
  unit_of_measure
FROM
  sys.spatial_reference_systems
WHERE
  authority_name = 'EPSG'
  AND
  authorized_spatial_reference_id = 4326
------------------------------------------------------------
执行结果:metre

 三、空间数据的存储方式

  SQL Server 2008中的两种空间数据:大地向量空间类型(geography)和几何平面向量空间类型(geometry)都是可变长度的数据类型,这意味着它们相对于比如int或者datetime等固定长度的数据类型,其存储的数据占用空间根据所存储数据的复杂程度、数据描述文字等不同可自适应数据类型的长度变化。

  空间数据类型字段的数据存储以8个字节的二进制格式存储,每条记录的数据的头部分就被定义好了空间数据的类型(点、线、面等类型),以及所使用的空间参考系统和地理坐标(经度、纬度)等值。通常情况下二进制数据内容越长所占用的空间数据存储空间就越大。

四、空间数据可视化

  在 SQL Server 2008 中Microsoft 引入具有两个新的内置数据类型、 几何图形和地理空间数据支持。 尽管您可能 “ 看到 ” 数据空间列的二进制数据存储但还是不能直观的反应出空间数据的预览效果, SQL Server 2008 的SQL Server Management Studio 中提供了一个空间结果选项卡,专门用于可视化预览空间数据结果。

  比如当前执行查询重庆大区边界的空间数据,那么对应于重庆大区边界数据库表可以执行以下SQL:

SELECT [ID]
      ,[CODE]
      ,[ELEV]
      ,[NAME]
      ,[geom]
  FROM [BingMapsDB].[dbo].[CQ_Area_region]

  得到相应的SQL查询记录结果和空间可视化结果为下图所示:

      

  

五、参考资料

  [1]、空间数据(百度百科):http://baike.baidu.com/view/125911.htm

  [2]、空间数据可视化:http://msdn.microsoft.com/zh-cn/magazine/ee335706.aspx

SQL Servr 2008空间数据应用系列三:SQL Server 2008空间数据类型相关推荐

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

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

  2. SQL Server 2008空间数据应用系列十一:Bing Maps中呈现GeoRSS订阅的空间数据

    友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. 2.具备 Transact-SQL 编程经验和使用 SQL Server Ma ...

  3. SQL Server 2008空间数据应用系列四:基础空间对象与函数应用

    SQL Server 2008空间数据应用系列四:基础空间对象与函数应用 原文:SQL Server 2008空间数据应用系列四:基础空间对象与函数应用 友情提示,您阅读本篇博文的先决条件如下: 1. ...

  4. SQL Server 2008空间数据应用系列七:基于Bing Maps(Silverlight) 的空间数据展现

    SQL Server 2008空间数据应用系列七:基于Bing Maps(Silverlight) 的空间数据展现 原文:SQL Server 2008空间数据应用系列七:基于Bing Maps(Si ...

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

    友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. 2.具备 Transact-SQL 编程经验和使用 SQL Server Ma ...

  6. SQL Servr 2008空间数据应用系列七:基于Bing Maps(Silverlight) 的空间数据展现

    友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. 2.具备 Transact-SQL 编程经验和使用 SQL Server Ma ...

  7. SQL Servr 2008空间数据应用系列一:空间信息基础

    Microsoft SQL Server 2008 提供了全面性的空间支持,可让组织通过具空间功能的应用程序来无缝地取用.使用及扩展以位置为基础的数据,最后可协助用户做出更好的决策.空间分析是一项非常 ...

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

    友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. 2.具备 Transact-SQL 编程经验和使用 SQL Server Ma ...

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

    友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. 2.具备 Transact-SQL 编程经验和使用 SQL Server Ma ...

最新文章

  1. mqttjar包_GitHub - a-voyager/MqttLib: Mqtt 通信封装库.
  2. 数据链路层和传输层的区别
  3. redis数据结构之一:链表
  4. Highcharts 中文参考文档
  5. 组件库实战 | 用vue3+ts实现全局Header和列表数据渲染ColumnList
  6. linux命令fs ls,Linux 命令:fsdisk
  7. Eclipse Debug 配置
  8. 设计模式七大原则简述
  9. 加载不同库,同名函数引起的BUG一例
  10. matlab frontier,使用Matlab计算Efficient frontier
  11. 专业的统计分析软件 IBM SPSS Statistics 26.0.2 Mac版(内附安装包网盘链接)
  12. 第六章 jQuery选择器
  13. data fastboot 擦除_fastboot是什么?如何解锁fastboot?
  14. 2023年南昌大学电子信息考研考情与难度、参考书及上岸前辈经验
  15. 传闻再起 微软成功收购雅虎五大理由分析
  16. MySQL必须知道的点
  17. Java——第二次上机(第二部分)
  18. python空气质量指数计算_Python的学习笔记案例8--空气质量指数计算5.0
  19. 人工智能前沿——玩转OpenAI聊天机器人ChatGPT(中文版)
  20. 第十六章:垃圾回收相关概念

热门文章

  1. ASP.NET Core 中间件(Middleware)详解
  2. JasperMES.cn JasperMES.com.cn 我的MES网站
  3. ubuntu-11.10-server-i386学习笔记-SVN版本服务器安装
  4. boost::bind时候注意性能问题
  5. SQL语句判断指定的数据库、表、字段、存储过程是否存在
  6. 错误/异常:java.io.FileNotFoundException: .\src\db.properties (系统找不到指定的路径。);的解决方法...
  7. 【第一届“文翁杯”现场竞技赛】(校内“欢乐”赛)T1—洗刷刷(dp)
  8. ASP.NET MVC 4中如何为不同的浏览器自适应布局和视图
  9. InstallShield安装打包编译自动化(3)- 更新Package GUID,Product GUID以及Upgrade GUID
  10. jQuery中json对象与json字符串互换