原文:SQL Server 2008空间数据应用系列三:SQL Server 2008空间数据类型

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

  1、本文示例基于Microsoft SQL Server 2008 R2调测。

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

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

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

  5、其他相关知识。


  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数据库的通用数据类型和其他基础数据类型(比如:real、text等类型),新推出了两个用于支持空间数据存储的空间数据类型,分别为:大地向量空间类型(geography)和几何平面向量空间类型(geometry)。

  1、geography数据类型

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

  2、geometry数据类型

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

      

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

SELECT  unit_of_measureFROM  sys.spatial_reference_systemsWHERE  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

版权说明

本文属原创文章,欢迎转载且注明文章出处,其版权归作者和博客园共有。为了保存作者的创作热情,请在转载后的明显位置标记本文出处。

作      者:Beniao

文章出处:http://beniao.cnblogs.com/  或  http://www.cnblogs.com/

SQL Server 2008空间数据应用系列三:SQL Server 2008空间数据类型的更多相关文章

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

    原文:SQL Server 2008空间数据应用系列十二:Bing Maps中呈现GeoRSS订阅的空间数据 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Se ...

  2. SQL Server 2008空间数据应用系列十一:提取MapInfo地图数据中的空间数据解决方案

    原文:SQL Server 2008空间数据应用系列十一:提取MapInfo地图数据中的空间数据解决方案 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Serv ...

  3. SQL Server 2008空间数据应用系列十:使用存储过程生成GeoRSS聚合空间信息

    原文:SQL Server 2008空间数据应用系列十:使用存储过程生成GeoRSS聚合空间信息 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2 ...

  4. SQL Server 2008空间数据应用系列八:基于Bing Maps(Silverlight)的空间数据存储

    原文:SQL Server 2008空间数据应用系列八:基于Bing Maps(Silverlight)的空间数据存储 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft S ...

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

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

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

    原文:SQL Server 2008空间数据应用系列七:基于Bing Maps(Silverlight) 的空间数据展现 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft ...

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

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

  8. SQL Server 2008空间数据应用系列二:空间索引(Spatial Index)基础

    原文:SQL Server 2008空间数据应用系列二:空间索引(Spatial Index)基础 在前一篇博文中我们学习到了一些关于地理信息的基础知识,也学习了空间参照系统,既地球椭球体.基准.本初 ...

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

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

随机推荐

  1. Ceph:一个开源的 Linux PB 级分布式文件系统

    探索 Ceph 文件系统和生态系统 M. Tim Jones , 自由作家 简介:  Linux®持续不断进军可扩展计算空间,特别是可扩展存储空间.Ceph 最近才加入到 Linux 中令人印象深刻的 ...

  2. 微信授权登陆接入第三方App(步骤总结)Android

    微信授权登陆接入第三方App(步骤总结)Android Android App实现第三方微信登录

  3. 完整的拆分nginx访问日志

    <pre name="code" class="html"> 10.168.255.134 [09/Oct/2016:15:28:52 +0800] ...

  4. 查看当前发行版可以使用的shell

    查看当前发行版可以使用的shell [root@localhost ~]$ cat /etc/shells/bin/sh/bin/bash/sbin/nologin

  5. 【转】各个层次的gcc警告 #pragma GCC diagnostic ignored "-Wunused-parameter" --不错

    原文网址:http://blog.csdn.net/lizzywu/article/details/9419145 各个层次的gcc警告从上到下覆盖 变量(代码)级:指定某个变量警告 int a __ ...

  6. 【剑指offer】面试题32:从1到n整数中1出现的次数

    题目: 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了.A ...

  7. vs2008如何创建DLL和使用DLL

    一 动态库的编译 文件->新建->项目 选择下一步:然后在应用程序类型里选择DLL 在test项目的头文件里加上test.h;并添加下列代码 在test.cpp里增加如下代码 然后F7编译 ...

  8. OpenMeetings(3)----启动顺序解析

    OpenMeetings系统较大,代码量也不小,如果对前端的OpenLaszlo开发不熟悉的话,刚研究代码时,确实有种丈二和尚摸不着头脑的感觉.一番研究之后,终于初步理清了系统的初步动作流程,具体执行 ...

  9. poj 2229 Sumsets(dp 或 数学)

    Description Farmer John commanded his cows to search . Here are the possible sets of numbers that su ...

  10. qt QSortFilterProxyModel

    # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.Qt import * from PyQt4. ...