zoukankan      html  css  js  c++  java
  • SQL SERVER 2008的GEOMETRY类型

    SQL Server 2008 及更高版本支持空间数据。这包括对平面空间数据类型 geometry 的支持,该数据类型支持欧几里得坐标系统中的几何数据(点、线和多边形)。geography 数据类型表示地球表面某区域上的地理对象,如一片陆地。geography 列的空间索引会将地理数据映射到二维非欧几里得空间。

    空间索引是对包含空间数据的表列(“空间列”)定义的。每个空间索引指向一个有限空间。例如,geometry 列的索引指向平面上用户指定的矩形区域。

    Create Table ZipCodes

    (

      ID INT PRIMARY KEY,  ZipGeometry GEOMETRY NOT NULL,  

         ZipAsText AS ZipGeometry.STAsText()

    )

      

    DECLARE @ZipData GEOMETRY

    SET @ZipData=geometry::STGeomFromText('POLYGON((1 10,15 15,30 13,29 4,7 1,1 10))',0)

    insert into ZipCodes Values('1',@ZipData)

    DECLARE @ZipData GEOMETRY

    SET @ZipData=(SELECT ZipGeometry from ZipCodes where ID=1)

    SELECT @ZipData.STArea() as 'Area of zipcode'

    如果该城市现在10,10建一所中学,并想确定该点所在邮政编码怎么办?以下代码用STWithin()函数来火大这个问题:

    DECLARE @HighSchool GEOMETRY

    SET @HighSchool=GEOMETRY::STGeomFromText('POINT(10,10)',0);

    IF (@HighSchool.STWithin(@ZipData)=1)  

      SELECT 'School is within ZipCode'

    ELSE  

      SELECT 'School is outside of ZipCode'

  • 相关阅读:
    OneProxy与其它数据库中间件的对比
    防御式编程
    google jam 比赛题(设计有问题)
    Python 代码性能优化技巧
    Python性能鸡汤
    如何避免重构带来的危险
    Linux/Unix工具与正则表达式的POSIX规范
    代码抽象层次2
    chinaunix:腾讯面试题
    C++异常处理小例
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2764387.html
Copyright © 2011-2022 走看看