zoukankan      html  css  js  c++  java
  • SQL Server中的geometry类型

    SQL Server中的geometry类型

    最近在工作中用到了SQL Server数据库保存点的坐标,然后研究了该类型。

    关于该类型的资料主要来源官方。如果想了解更多资料访问SQL Server官方

    1. 什么是geometry类型?

    官方说法

    平面空间数据类型 geometry 在 SQL Server 中作为公共语言运行时 (CLR) 数据类型实现。 此类型表示欧几里得(平面)坐标系中的数据。

    SQL Server 支持 geometry 空间数据类型的一组方法。 这些方法包括开放地理空间信息联盟 (OGC) 标准和对该标准的一组 Microsoft 扩展所定义的 geometry 方法。

    通俗的说

    geometry是平面空间数据类型,也就是说通过该类型可以保存平面坐标系(学过是x、y轴坐标系都应该明白什么是平面坐标系)上的线多边形

    2. 从示例说起

    2.1 关于插入

    我们创建一个表,该表中只有两个字段:

    -- 创建一个表
    create table T_Geometry(
    id int not null primary key,
    geo geometry not null
    );
    

    1. 插入一个点(POINT)

    -- 插入一个点
    insert into T_Geometry(id,geo) values(1,geometry::STGeomFromText('POINT (20 180)', 0));
    

    2. 插入一条线(LINESTRING)

    -- 插入一条线
    insert into T_Geometry(id,geo) values(2,geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0));
    

    3. 插入一个多边形(POLYGON)

    -- 插入一个多边形
    insert into T_Geometry(id,geo) values(3,geometry::STGeomFromText('POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 0));
    

    查询结果:

    select * from T_Geometry;
    

    我们看到,直接查询出来的结果是二进制数据,以十六进制显示的,行2和行3的数据没有显示完……

    我们想要查看出来的数据和添加进去时一样直观,显然,这不是我们要的结果。

    2.2 关于查询

    SQL Server给我们提供了一些函数,方便我们更加直观的显示查询结果。我将列出几个常用的函数,方面认识和学习,更多函数请查阅官方文档。

    1. 查询转换字符串

    使用STAsText(),返回类型:nvarchar(max)

    -- 查询转换字符串
    select id,geo.STAsText() AS geo from T_Geometry;
    

    或者用另外一个函数ToString(),返回类型:nvarchar(max)

    select id,geo.ToString() AS geo from T_Geometry;
    

    2. 查询转换面积

    使用STArea(),返回类型:float

    -- 查询转换面积,非多边形查询结果为0
    select geo.STArea() from T_Geometry;
    

    3. 结束

    相信应该很清楚的明白了SQL Server geometry类型的插入和查询的方法了吧。

  • 相关阅读:
    X oracle move lob 字段到另外的表空间
    X CentOS7使用firewalld打开关闭防火墙与端口
    X ftpd服务常见配置总结(/etc/vsftpd/vsftpd.conf) 【附参数文件】
    P1853 投资的最大效益
    P1466 [USACO2.2]集合 Subset Sums
    小A点菜
    NASA的食物计划
    动态规划入门笔记
    数字三角形 Number Triangles
    P1825 [USACO11OPEN]Corn Maze S
  • 原文地址:https://www.cnblogs.com/koubeisi/p/11182676.html
Copyright © 2011-2022 走看看