SQL Server 2008之空间数据应用(一)

  因为自身专业(GIS)的原因,所以一直跟空间数据打交道。在专业领域,对于空间数据的存储管理与分析应用有一套专业的科学理论,国内国外都有很多GIS平台厂商也发行了系列GIS平台(比如美国Esri的ArcGIS、中国超图的SuperMap等)来实现空间数据的获取、存储、管理、分析、传输与应用。不知何时,一些数据库平台(ORACLE、SQL SERVER、MySQL、PostgreSQL等)也开始提供空间数据存储、管理、分析与应用等功能了。关于二者的实现方式、各自优缺点、性能表现方面此文暂且不表,本系列文章主要讲述利用SQL Server 2008来建立空间数据的应用。

什么是空间数据
  何为空间数据?空间数据是对地理事物的一种抽象的表达,它以一种统一的方式来表明地理事物的形状大小以及位置和分布等特征,以此来描述显示世界中的地理事物。

SQL Server支持的空间数据类型

  SQL Server支持两种空间数据类型:平面数据类型geometry和地理空间数据类型geography。在SQL Server中,二者都是作为.NET的CLR数据类型来实现的。

  Geometry类型用于欧几里得(平面) 坐标系中的数据。

  回想一下中学时代的平面几何知识,在直角坐标系中绘制点,连接两点构成一条线,连接多条线以构成一个闭合的图形/多边形。

  

  SQL Server 2008中的geometry空间数据类型是在一个统一的二维平面中表示其实体信息,类似于 中学时代所接触的平面几何。它使用用户自定义单位,可以是英寸、公里、像素等。

  Geography用于存储诸如GPS经纬度坐标之类的椭圆形地球坐标系中的数据。  

  作为空间数据所表达的对象的承载体——地球,并不是平坦的,而是接近于一个椭球体。因为地球是非平面的,所以用二维数学方法难以真实的表达现实世界的位置,我们平时所见到的中国地图、世界地图、各种类型的地图集等,只不过将真实的世界投影至一个平面。

  通过数学变换,有很多中方法可创建投影。投影变换的过程不可避免的导致投影变形,投影变形包括角度变形、长度变形和面积变形,任何一种投影都难逃该“厄运”,只不过不同的投影方式在三种变形上的变化量不一致罢了。

     

  正是因为这个原因,用geometry类型来表达地理空间信息并不太合适,特别是在分享您的数据信息给使用另一个投影系统的人的时候。幸运的是,我们可以使用地理坐标系来精确的表达地球上的位置信息。

  SQL Server 2008中的geography空间数据类型使用经纬度来确定地球上的点,经度度量的是一个点(东向与西向)与本初子午线的距离,纬度度量的是一个点(南向与北向)与赤道的距离。这种坐标系可用于确定任何“球体”上的点,比如高尔夫球、地球或者太阳等。

  下面看一下SQL Server中的这两种空间数据类型。打开SSMS,设计一个表时候,可以看到geometry和geography数据类型,如下图所示。

  

  今天先介绍到这里,下一篇SQL Server 2008之空间数据应用(二)详细介绍7种可实例化类型的构成方式与SQL代码示例。

posted @ 2011-08-14 00:30  百折不回  阅读(2498)  评论(7编辑  收藏  举报