微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ms sqlserver 2008 空间查询操作

 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 
103.8404129.170240);
var result 
 pointStart.Stdistance(pointEnd);

//

  //定义一个多边形
    var polygon  sqlGeography.STGeomFromText(
        
new sqlChars(
        
 sqlString("polyGON ((-114.01611328125 42.0003251483162, -114.0380859375 42.0003251483162,
            
+ -113.994140625 37.0200982013681, -109.05029296875 37.0200982013681, -109.09423828125 41.0130657870063,0)">-111.07177734375 41.0462168145206, -111.07177734375 42.0003251483162, -114.01611328125 42.0003251483162))111)),245)">);
    var sql 
insert Cities (CityName,CityLocation) values ('test',' polygon.ToString() ');
    InsertToDB(sql);

privatestaticvoid InsertToDB(string sql)
{
    
using (var conn  sqlConnection(ConfigurationManager.AppSettings[sql2008]))
    {
        
if (conn.State == ConnectionState.Closed) conn.open();
        
 (var cmd  sqlCommand(sql, conn))
        {
            
int row  cmd.ExecuteNonQuery();
        }
    }
}

//

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

    var polygon 
 sqlString(result)),245)">);

    Console.WriteLine(polygon.ToString()); 

 QueryDB(return cmd.ExecuteScalar().ToString();
        }
    }
}

具体可参考:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐