开发者社区> 余二五> 正文

SQL Server 2008空间数据应用系列九:使用空间工具(Spatial Tools)导入ESRI格式地图数据

简介:
+关注继续查看

 geography 和geometry数据类型包括以用于在OGC中所定义的地理数据的已知文本(Well Known Text,WKT)和已知二进制(Well Known Binary,WKB)格式导入和导出数据的方法,还包括普遍使用的地理标示语言(Geographic Markup Language,GML)格式,这使得很容易从支持这些格式的数据源导入地理数据。地理数据很容易从一些政府和商业数据源获得,并且可以相对容易地从许多现有的GIS应用程序和GPS系统中导出。Microsoft保持与一些第三方GIS供应商和地理数据解决方案供应商的紧密关系,这帮助确保SQL server 2008和广泛的行业标准工具间的强大兼容能力,以用于导入、导出和操纵空间数据。

 

  通常我们开发一个GIS应用,基于GIS做数据分布呈现、统计汇总、搜索等等的功能,几乎都离不开地图数据的支持,一方面是作为地图呈现需要,其次是为了方便做空间分析等诸多功能。而对于空间数据的需求,通常不需要自己去建立空间数据,市面上有许多非常成熟的地图数据可以直接被采购使用,并以此为基础直接建立基于地图空间数据的GIS应用。另外网上也提供了比较多的空间数据免费下载资源,可以轻松的获取到空间数据。本篇将使用SQL空间工具(SqlSpatialTools) 介绍ESRI地图空间数据(shpfile)导入到SQL Server 2008的实现。

 

一、SQL空间数据导入工具(Shape2SQL)

  SharpGIS发布了一个专门用来导入ESRI地图空间数据(shpfile)的工具,可以非常简单的实现将shpfile的地图数据文件中的空间数据导入到SQL Server 2008中,可以通过如下地址下载该工具。

  SQL空间工具下载地址:http://www.sharpgis.net/page/SQL-Server-2008-Spatial-Tools.aspx

        

 

  该工具的运行环境需要微软.NET Framewrok 3.5和Microsoft SQL Server System CLR Types。使用该工具通过简单的可视化界面即可连接上SQL Server 2008的数据库服务器,目前该工具仅仅只支持几种常用的主流空间类型数据,包括:Point 、MultiPoint、(Multi)Polygon 和 (Multi)LineStrings 。详细可访问:http://www.sharpgis.net/page/Shape2SQL.aspx

 

二、SQL空间数据查询工具(SqlSpatial-Query-Tool)

   SQL Server 2008空间数据查询工具可以直接连接到SQL Server 2008数据库服务器,实现空间数据的查询,可视化界面呈现。详细可访问:http://www.sharpgis.net/page/SqlSpatial-Query-Tool.aspx

        

  

 

三、导入Shpfile地图空间数据

   如本文篇前的截图,使用SQL空间导入工具实现将ESRI的shpfile地图空间数据导入SQL Server 2008其实非常简单,在导入的时候注意表名和SRID就可以了,其他的可以不用管。如下图演示了将重庆市的大区边界地图数据导入到SQL Server 2008中。

        

 

四、查询空间数据

  实现可以查询可以在SQL Server Management Studio中执行对表(CQ_Region)的的全表查询,于空间结果选项中可以看到如下图所示的空间呈现效果。  

        

  另外还可以使用空间查询工具实现SQL Server 2008中的空间数据查询,Spatial Query Tools查询出的空间输入结果如下所示。

        

 

五、空间计算支持

   数据库里面有了空间数据,就可以给予数据展开空间计算、统计、分析等给力的功能实现,与GIS客户端结合来完成各种简单、负责的空间计算、分析。如下SQL演示了计算上面导入的重庆大界区的地图的地理面积计算。

select geom.STArea() from CQ_Region WHERE ID=1;
select geom.STArea() from CQ_Region WHERE ID=2
select geom.STArea() from CQ_Region WHERE ID=3;
select geom.STArea() from CQ_Region WHERE ID=4;
select SUM(geom.STArea()) from CQ_Region;

 






本文转自 beniao 51CTO博客,原文链接:http://blog.51cto.com/beniao/524620,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【译】Databricks使用Spark Streaming和Delta Lake对流式数据进行数据质量监控介绍
本文主要对Databricks如何使用Spark Streaming和Delta Lake对流式数据进行数据质量监控的方法和架构进行了介绍,本文探讨了一种数据管理架构,该架构可以在数据到达时,通过主动监控和分析来检测流式数据中损坏或不良的数据,并且不会造成瓶颈。
1443 0
SpringCloud迁移至EDAS微服务——Series2:在 ECS 集群中部署 Web 应用
SpringCloud迁移至EDAS微服务——Series2:在 ECS 集群中部署 Web 应用
1794 0
使用ServiceStack.Redis实现Redis数据读写
原文:使用ServiceStack.Redis实现Redis数据读写 User.cs实体类 public class User { public string Name { get; set; ...
1517 0
Redis不同数据类型命令使用及应用场景
Redis不同数据类型命令使用及应用场景
2244 0
+关注
20378
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载