ms sqlserver 2008 空间查询操作

原创 2011年11月21日 10:57:45

 geometry字段的数据是平面坐标,不用投影

 geography是经纬度,需要投影 

1. 首先下载一个导入shp的工具,绿色版的。

http://www.sharpgis.net/page/SQL-Server-2008-Spatial-Tools.aspx

2. 导入已有的shp文件到数据库

3. 可以用sql management studio tools查询,并且显示地图,用下载的那个工具包里面的查询工具,也可以查询地图。

4. ms sqlserver 空间查询

sql语句如下:

  select SUM(geom.STArea()) from [GeoDBForFieldInspector].[dbo].[bou2_4p] where [ID]=1 or [ID]=2;
  select geom.STArea() from [GeoDBForFieldInspector].[dbo].[bou2_4p] where [ID]=1 or [ID]=2;
select geom.STAsText() from [GeoDBForFieldInspector].[dbo].[bou2_4p] where [ID]=1;

点执行不要点调试

5. 资料链接

空间信息基础 http://zhiwenweb.cn/jszx/sjkjs/mssql/201110/29036.html

SQL Server 2008空间数据类型 http://zhiwenweb.cn/jszx/sjkjs/mssql/201110/29034.html

SQL Servr 2008空间数据应用系列四:基础空间对象与函数应用 http://zhiwenweb.cn/jszx/sjkjs/mssql/201110/29033.html

空间索引(Spatial Index)基础 http://zhiwenweb.cn/jszx/sjkjs/mssql/201110/29035.html

基于Bing Maps(Silverlight) 的空间数据展现 http://zhiwenweb.cn/jszx/sjkjs/mssql/201110/29030.html

基于SQLCRL的空间数据可编程性 http://zhiwenweb.cn/jszx/sjkjs/mssql/201110/29029.html

基于Bing Maps(Silverlight)的空间数据存储 http://zhiwenweb.cn/jszx/sjkjs/mssql/201110/29026.html

使用存储过程生成GeoRSS聚合空间信息 http://zhiwenweb.cn/jszx/sjkjs/mssql/201110/29021.html


6.在程序中使用,包括使用所有SQLCLR编程中所提供的编程接口,意思是通过引用

C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.SqlServer.Types.dll

可以实现计算距离等功能,不止是调用数据库。

比如

var pointStart = SqlGeometry.Point(107.0435228.8705544326);
var pointEnd 
= SqlGeometry.Point(103.8404129.1702404326);
var result 
= pointStart.STDistance(pointEnd);

//

  //定义一个多边形
    var polygon = SqlGeography.STGeomFromText(
        
new SqlChars(
        
new SqlString("POLYGON ((-114.01611328125 42.0003251483162, -114.0380859375 42.0003251483162,"
            
+ "-113.994140625 37.0200982013681, -109.05029296875 37.0200982013681, -109.09423828125 41.0130657870063, "
            
+ "-111.07177734375 41.0462168145206, -111.07177734375 42.0003251483162, -114.01611328125 42.0003251483162))",
            
111)),
            
4326);
    var sql 
= "insert Cities (CityName,CityLocation) values ('test','" + polygon.ToString() + "')";
    InsertToDB(sql);

private static void InsertToDB(string sql)
{
    
using (var conn = new SqlConnection(ConfigurationManager.AppSettings["SQL2008"]))
    {
        
if (conn.State == ConnectionState.Closed) conn.Open();
        
using (var cmd = new SqlCommand(sql, conn))
        {
            
int row = cmd.ExecuteNonQuery();
        }
    }
}

//

 var sql = "select CityLocation from Cities where ID = 5";
    var result 
= QueryDB(sql);

    var polygon 
= SqlGeography.STGeomFromText(
        
new SqlChars(
        
new SqlString(result)), 4326);

    Console.WriteLine(polygon.ToString()); 

private static string QueryDB(string sql)
{
    
using (var conn = new SqlConnection(ConfigurationManager.AppSettings["SQL2008"]))
    {
        
if (conn.State == ConnectionState.Closed) conn.Open();
        
using (var cmd = new SqlCommand(sql, conn))
        {
            
return cmd.ExecuteScalar().ToString();
        }
    }
}

具体可参考:

http://www.cnblogs.com/beniao/archive/2011/02/24/1961729.html

技巧:查看sql server表空间的占用方法

1、查看当前库里面每个表空间的占用情况select object_name(id) tablename,8*reserved/1024 reserved,rtrim(8*dpages/1024)+Mb...
  • sgmao
  • sgmao
  • 2007年11月27日 09:07
  • 3335

ArcSDE for SQLServer的SQL操作

题记 大家对Oracle数据库的SQL操作应该不陌生吧,也就是出于所谓的效率而言,使用SQL语句对ArcGIS对象(要素类)进行直接的读操作或写操作,目前来说在电信行业运用较广泛,这方面的知识我就不...

SQL Server 2008 预览以Geometry或Geography存储的空间数据

        其实看到标题就知道就是推荐一个SQL Server 2008数据库的一个功能,也算是SQL Server 2008的一个新特性,可能是该功能与GIS的图形有点联系,所以还是还是想给大家...

SQL Server 支持空间数据(Geometry和Geography)的空间索引概述

SQL Server 2008之后支持了空间数据存储(geometry和Geography),那么我们在使用ArcGIS10.1桌面打开这些数据看到相关索引时会看到如下界面:下面就针对SQL Serv...

SQLserver空间数据的保存及编辑(以Polygon为例)

注意 SQLServer 所用的Geometry一般的开发语言并不包含,所以需要转化,如图,最简便的转化是用Polygon包含。 SQL语句 //插入语句(编辑语句应该不用给出了) IN...

Openlayers通过feature获取Layer以及通过点获取线feature

Openlayers虽然提供了很多方法, 一般是从图层(Layer)获取获取元素(feature),或者从元素(Feature)获取坐标(Coordinate)。获取到的一般都是集合。但是想要反着通过...

鼠标经过超链接上,元素(li)背景变色的代码

鼠标经过超链接上,元素(li)背景变色的代码 效果如下图 要实现这个效果。很简单。 定义CSS样式 a:hover{    background:#f29901;}这段代码的显示效果如下图显然,...

DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC CHECKALLOC检查指定数据库的磁盘空间分配结构的一致性。

检查指定数据库的磁盘空间分配结构的一致性。  Transact-SQL 语法约定 语法 DBCC CHEC...

DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC SQLPERF提供所有数据库的事务日志空间使用情况统计信息

提供所有数据库的事务日志空间使用情况统计信息。也可以用于重置等待和闩锁的统计信息。  Transact-SQL 语法约定 语法 DBCC SQLPERF ...

DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC CLEANTABLE回收表或索引视图中已删除的可变长度列的空间

回收表或索引视图中已删除的可变长度列的空间。  Transact-SQL 语法约定 语法 DBCC CLE...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ms sqlserver 2008 空间查询操作
举报原因:
原因补充:

(最多只允许输入30个字)